vieter/CHANGELOG.md

239 lines
7.5 KiB
Markdown
Raw Permalink Normal View History

2022-01-27 22:14:08 +01:00
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased](https://git.rustybever.be/vieter-v/vieter/src/branch/dev)
2022-05-07 22:13:35 +02:00
2023-07-17 13:26:38 +02:00
## [0.6.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.6.0)
### Added
* Metrics endpoint for Prometheus integration
* Search in list of targets using API & CLI
2023-01-02 16:38:43 +01:00
* Allow filtering targets by arch value
2023-05-04 09:36:03 +02:00
* Configurable global timeout for builds
### Changed
* Rewrote cron expression logic in C
2023-02-19 15:54:31 +01:00
* Updated codebase to V commit after 0.3.3
2023-05-04 09:36:03 +02:00
* Agents now use worker threads and no longer spawn a new thread for every
build
### Fixed
* Package upload now fails if TCP connection is closed before all bytes have
been received
2023-01-28 14:53:31 +01:00
### Removed
* Deprecated cron daemon
2022-12-29 15:49:59 +01:00
## [0.5.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.5.0)
### Added
* CLI commands for removing packages, arch-repos & repositories
2022-12-21 23:45:42 +01:00
## [0.5.0-rc.2](https://git.rustybever.be/vieter-v/vieter/src/tag/0.5.0-rc.2)
2022-12-21 23:42:15 +01:00
### Added
* API route for removing logs & accompanying CLI command
* Daemon for periodically removing old logs
* CLI flag to filter logs by specific exit codes
2022-12-21 23:42:15 +01:00
### Changed
* Use `--long-option` instead of `-long-option` for CLI
2022-12-17 14:00:51 +01:00
## [0.5.0-rc.1](https://git.rustybever.be/vieter-v/vieter/src/tag/0.5.0-rc.1)
2022-12-16 16:35:40 +01:00
### Added
2022-11-02 18:38:02 +01:00
2022-12-16 16:35:40 +01:00
* Allow specifying subdirectory inside Git repository
* Added option to deploy using agent-server architecture instead of cron daemon
2022-12-14 16:03:57 +01:00
* Allow scheduling builds on the server from the CLI tool instead of building
them locally
2022-12-16 16:35:40 +01:00
* Allow force-building packages, meaning the build won't check if the
repository is already up to date
### Changed
* Migrated codebase to V 0.3.2
* Cron expression parser now uses bitfields instead of bool arrays
2022-11-02 18:38:02 +01:00
### Fixed
* Arch value for target is now properly set if not provided
* Allow NULL values for branch in database
* Endpoint for adding targets now returns the correct id
2022-12-16 16:35:40 +01:00
* CLI now correctly errors and doesn't error when sending requests
* Fixed possible infinite loop when removing old build images
* Check whether build image still exists before starting build
* Don't run makepkg `prepare()` function twice
* Don't buffer stdout in Docker containers
2022-10-01 17:04:56 +02:00
## [0.4.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.4.0)
### Added
* Server port can now be configured
2022-06-17 14:52:59 +02:00
* Targets now have a 'kind' field describing whether it's a Git repository or a
URL to a PKGBUILD
* Targets with kind 'url' can provide a direct URL to a PKGBUILD instead of
providing a Git repository
2022-06-22 16:38:53 +02:00
* CLI commands for searching the AUR & directly adding packages
2022-08-11 19:44:22 +02:00
* HTTP routes for removing packages, arch-repos & repos
2022-08-13 17:49:05 +02:00
* All endpoints serving files now support HTTP byte range requests
2022-10-01 16:21:49 +02:00
* Better CLI UX
* When adding targets, the ID of the created target is returned
* The `-r` flag only shows raw data of action
* When adding a target, only ID is shown and not surrounding text
* Tabled output returns a tab-separated list (easy to script using
`cut`)
### Changed
* Moved all API routes under `/v1` namespace
* Renamed `vieter repos` to `vieter targets`
2022-06-16 17:38:41 +02:00
* Renamed `/api/v1/repos` namespace to `/api/v1/targets`
2022-06-17 14:52:59 +02:00
* Branch name for 'git' targets is now optional; if not provided, the
repository will be cloned with the default branch
* Build containers now explicitely set the PATH variable
2022-08-13 17:49:05 +02:00
* Refactor of web framework
2022-09-11 20:34:02 +02:00
* API endpoints now return id of newly created entries
* Repo POST requests now return information on published package
* `api` can no longer be used as a repository name
* CLI client now allows setting values to an empty value
### Removed
* md5 hashes are no longer calculated for packages
## [0.3.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.3.0)
2022-06-13 21:32:35 +02:00
Nothing besides bumping the versions.
## [0.3.0-rc.1](https://git.rustybever.be/vieter-v/vieter/src/tag/0.3.0-rc.1)
2022-06-10 15:09:55 +02:00
### Added
* Database migrations
* Improved GitRepo & BuildLog API
* Pagination using `limit` & `offset` query params
* GitRepo: filter by repo
* BuildLog: filter by start & end date, repo, exit code & arch
* CLI flags to take advantage of above API improvements
* Added CLI command to generate all man pages
* PKGBUILDs now install man pages
* Hosted CLI man pages ([vieter(1)](https://rustybever.be/man/vieter/vieter.1.html))
* Proper HTTP API docs ([link](https://rustybever.be/docs/vieter/api/))
### Changed
* Packages from target repo are available during builds
* This can be used as a basic way to support AUR dependencies, by adding
the dependencies to the same repository
* Every build now updates its packages first instead of solely relying on the
updated builder image
* Build logs now show commands being executed
### Fixed
* `POST /api/logs` now correctly uses epoch timestamps instead of strings
## [0.3.0-alpha.2](https://git.rustybever.be/vieter-v/vieter/src/tag/0.3.0-alpha.2)
2022-05-16 17:34:51 +02:00
2022-05-07 22:13:35 +02:00
### Added
* Web API for adding & querying build logs
* CLI commands to access build logs API
2022-05-10 13:43:09 +02:00
* Cron build logs are uploaded to above API
* Proper ASCII table output in CLI
* `vieter repos build id` command to run builds locally
### Removed
* `vieter build` command
* This command was used alongside cron for periodic builds, but this has
been replaced by `vieter cron`
2022-05-10 13:43:09 +02:00
### Changed
* `vieter build` command now only builds a single repository & uploads the
2022-05-10 13:43:09 +02:00
build logs
* Official Arch packages are now split between `vieter` & `vieter-git`
* `vieter` is the latest release
* `vieter-git` is the latest commit on the dev branch
* Full refactor of Docker socket code
2022-05-07 22:13:35 +02:00
## [0.3.0-alpha.1](https://git.rustybever.be/vieter-v/vieter/src/tag/0.3.0-alpha.1)
2022-01-27 22:14:08 +01:00
2022-05-01 15:25:21 +02:00
### Changed
* Switched from compiler fork to fully vanilla compiler mirror
* `download_dir`, `repos_file` & `repos_dir` config values have been replaced
with `data_dir`
* Storage of metadata (e.g. Git repositories) is now done using Sqlite
2022-05-01 15:25:21 +02:00
### Added
* Implemented own cron daemon for builder
* Build schedule can be configured globally or individually per repository
* Added CLI command to show detailed information per repo
### Fixed
* Binary no longer panics when an env var is missing
## [0.2.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.2.0)
2022-04-09 22:41:38 +02:00
### Changed
2022-04-07 12:22:41 +02:00
* Better config system
* Support for both a config file & environment variables
* Each env var can now be provided from a file by appending it with `_FILE`
& passing the path to the file as value
2022-04-01 21:33:55 +02:00
* Revamped web framework
* All routes now return proper JSON where applicable & the correct status
codes
2022-04-09 22:41:38 +02:00
### Added
* Very basic build system
* Build is triggered by separate cron container
* Packages build on cron container's system
2022-03-27 18:22:30 +02:00
* A HEAD request is used to determine whether a package should be rebuilt
or not
* Hardcoded planning of builds
* Builds are sequential
* API for managing Git repositories to build
* CLI to list, add & remove Git repos to build
* Published packages on my Vieter instance
2022-03-27 18:22:30 +02:00
* Support for multiple repositories
* Support for multiple architectures per repository
2022-04-09 22:41:38 +02:00
### Fixed
* Each package can now only have one version in the repository at once
(required by Pacman)
2022-03-27 18:22:30 +02:00
* Packages with unknown fields in .PKGINFO are now allowed
2022-04-09 21:17:22 +02:00
* Old packages are now properly removed
## [0.1.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.1.0)
2022-02-02 13:55:05 +01:00
### Changed
2022-02-02 13:34:28 +01:00
* Improved logging
## [0.1.0-rc.1](https://git.rustybever.be/vieter-v/vieter/src/tag/0.1.0-rc.1)
2022-02-01 00:17:56 +01:00
2022-01-27 22:14:08 +01:00
### Added
* Ability to publish packages
* Re-wrote repo-add in V