7.2 KiB
7.2 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Metrics endpoint for Prometheus integration
- Search in list of targets using API & CLI
- Allow filtering targets by arch value
Changed
- Rewrote cron expression logic in C
Removed
- Deprecated cron daemon
0.5.0
Added
- CLI commands for removing packages, arch-repos & repositories
0.5.0-rc.2
Added
- API route for removing logs & accompanying CLI command
- Daemon for periodically removing old logs
- CLI flag to filter logs by specific exit codes
Changed
- Use
--long-option
instead of-long-option
for CLI
0.5.0-rc.1
Added
- Allow specifying subdirectory inside Git repository
- Added option to deploy using agent-server architecture instead of cron daemon
- Allow scheduling builds on the server from the CLI tool instead of building them locally
- 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
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
- 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
0.4.0
Added
- Server port can now be configured
- 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
- CLI commands for searching the AUR & directly adding packages
- HTTP routes for removing packages, arch-repos & repos
- All endpoints serving files now support HTTP byte range requests
- 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
tovieter targets
- Renamed
/api/v1/repos
namespace to/api/v1/targets
- 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
- Refactor of web framework
- 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
Nothing besides bumping the versions.
0.3.0-rc.1
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
- Pagination using
- 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))
- Proper HTTP API docs (link)
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
Added
- Web API for adding & querying build logs
- CLI commands to access build logs API
- 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
- This command was used alongside cron for periodic builds, but this has
been replaced by
Changed
vieter build
command now only builds a single repository & uploads the build logs- Official Arch packages are now split between
vieter
&vieter-git
vieter
is the latest releasevieter-git
is the latest commit on the dev branch
- Full refactor of Docker socket code
0.3.0-alpha.1
Changed
- Switched from compiler fork to fully vanilla compiler mirror
download_dir
,repos_file
&repos_dir
config values have been replaced withdata_dir
- Storage of metadata (e.g. Git repositories) is now done using Sqlite
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
Changed
- 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
- Revamped web framework
- All routes now return proper JSON where applicable & the correct status codes
Added
- Very basic build system
- Build is triggered by separate cron container
- Packages build on cron container's system
- 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
- Support for multiple repositories
- Support for multiple architectures per repository
Fixed
- Each package can now only have one version in the repository at once (required by Pacman)
- Packages with unknown fields in .PKGINFO are now allowed
- Old packages are now properly removed
0.1.0
Changed
- Improved logging
0.1.0-rc.1
Added
- Ability to publish packages
- Re-wrote repo-add in V