* store built packages in archive tree instead of repository
* write tests to support new changes
* implement atomic_move method, move files only with lock
* use generic packages tree for all repos
* lookup through archive packages before build
* add archive trigger
* add archive trigger
* regenerate docs
* gpg loader fix
* support requires repostory flag
* drop excess REQUIRES_REPOSITORY
* simplify symlionk creation
* remove generators
* fix sttyle
* add separate function for symlinks creation
* fix rebase
* add note about slicing
* smol refactoring of archive_tree class
* remove duplicate code
* fix typos
* few review fixes
* monor fixes and typos
* clean empty directories
* remove side effect from getter
* drop recursive remove
* ensure_exists now accepts only argument
* add package like guard to symlinks fix
* speedup archive_lookup processing by iterrupting cycle
* remove custom filelock
* fix naming
* remove remove flag from repo
* review fixes
* restore wrapper around filelock
* extract repository explorer to separate class
* docs update
* fix ide findings
It has been found that previous system didn't allow to configure
specific cases (e.g. a whitelisted directory inside /usr/lib/cmake). The
current solution replaces two options to single one, which also allows a
regular expressions
Also PackageArchive class has been moved to core package, because it is
more about service rather than model
* Allow to use single web instance for any repository
* some improvements
* drop includes from user home directory, introduce new variables to docker
The old solution didn't actually work as expected, because devtools
configuration belongs to filesystem (as well as sudo one), so it was
still required to run setup command.
In order to handle additional repositories, the POSTSETUP and PRESETUP
commands variables have been introduced. FAQ has been updated as well
* raise 404 in case if repository is unknown
In some cases for better readability of logs, exceptions are now raised
without parent exception stacktrace. Also updated docs and contributing
guidelines
* add support of remote task tracking
* add remote call trigger implementation
* docs update
* add cross-service upload
* add notes about user
* add more ability to control upload
* multipart upload with signatures as well as safe file save
* configuration reference update
* rename watcher methods
* erase logs based on current package version
Old implementation has used process id instead, but it leads to log
removal in case of remote process trigger
* add --server flag for setup command
* restore behavior of the httploghandler
Note that this commit contains the following breaking changes:
* remote pull and remote push triggers are now enabled by default (with
empty target list)
* remote pull and remote push triggers now require target option to be
set (old behaviour had fallback on `gitremote`)
* validation is now considered to be stable, so it is enabled by default
in docker image (can be disabled however)
* implement log storage at backend
* handle process id during removal. During one process we can write logs from different packages in different times (e.g. check and update later) and we would like to store all logs belong to the same process
* set package context in main functions
* implement logs support in interface
* filter out logs posting http logs
* add timestamp to log records
* hide getting logs under reporter permission
List of breaking changes:
* `ahriman.core.lazy_logging.LazyLogging` has been renamed to `ahriman.core.log.LazyLogging`
* `ahriman.core.configuration.Configuration.from_path` does not have `quiet` attribute now
* `ahriman.core.configuration.Configuration` class does not have `load_logging` method now
* `ahriman.core.status.client.Client.load` requires `report` argument now