Commit Graph
100 Commits
Author SHA1 Message Date
arcanis f817b32976 use intersection of from_database and depends_on filters for the rebuild subcommand
Old logic used OR condition, i.e. if set from-database, it would ignore
the --depends-on flag. In new logic it calculates dependencies based on
the package list, which can be retrieved from database
2022-11-11 16:02:19 +02:00
arcanis 9fc2b681d4 limit max module size and improve some help messages 2022-11-11 16:01:54 +02:00
arcanis 59ff0589ab speedup docker build command by adding dockerignore listing 2022-11-11 12:47:31 +02:00
arcanis 1b53de6f2b man update 2022-11-10 20:10:07 +02:00
arcanis 41080c5ff8 add exec to shell subcommand 2022-11-10 18:52:55 +02:00
arcanis 791ce4f242 make exception optional argument for check_output method 2022-11-10 18:05:32 +02:00
arcanisandGitHub b75bd30658 replace several store_true keys to booleanoptionalaction alternative (#74) 2022-11-10 18:34:01 +03:00
arcanis b3b3cad706 write .makepkg.conf to home dir instead of repository root (#72) 2022-11-08 17:02:13 +02:00
arcanisandGitHub 82b932371b add ability to use ahriman pacman database instead of system one (#71)
By default this feature is enabled. On the first run it will copy (if
exists) databases from filesystem to local cache (one per each
architecture). Later it will use this cache for all alpm operations. In
order to update this cache, some commands (mainly package building)
provide `-y`/`--refresh` option which has same semantics as pacman -Sy
does.

Note however that due to extending `Pacman` class some methods were
renamed in order to be more descriptive:
* `Pacman.all_packages` -> `Pacman.packages`
* `Pacman.get` -> `Pacman.package_get`

This commit also adds multilib repository to the default docker image
which was missed.
2022-11-08 17:26:51 +03:00
arcanis 45fb2f3c46 improve repo-setup command
* Move devtools executable to ahriman home, because we don't really
  need to use executable inside root
* Use named sudoers file instead of single file. It will allow easily to
  remove file as well as use setup command for several
  repositories/architectures
2022-11-06 14:25:44 +02:00
arcanis 4a5b9d9fa1 fix case in which if no source PKGBUILDs were updated, an exception will occur 2022-11-03 03:39:54 +02:00
arcanis 2f8316ecb0 faq update 2022-11-02 17:15:17 +02:00
arcanis 77ad35fce8 docs update 2022-11-02 04:17:26 +02:00
arcanis 48da4646cf change gitremote api to be same as report and upload
These changes are keeping fallback to old settings, but will allow to
run multiple git targets with different settings
2022-11-02 04:09:42 +02:00
arcanis 3d98dd267a fix update handler tests
If daemon tests are run before the update handler it causes test
failure, because there are other calls
2022-10-31 11:51:12 +02:00
arcanis 09678a3ae1 add possibility to run full update
In case if packages are not set from web, the spawner will run full
repository update
2022-10-31 02:41:24 +02:00
arcanis 8e2732f6fe add daemon subcommand
This command emulates default systemd timer and can be useful in docker
container in order to run 24/7
2022-10-31 01:38:01 +02:00
arcanisandGitHub 73e311a41c implement single-function patches (#69) 2022-10-30 03:11:03 +03:00
arcanis 1e8388af5d drop ahriman.core.triggers.Trigger.run method
In order to force new triggers to use on_result method, the old method
has been removed. However, default on_result method still checks if the
old method exists and tries to run it
2022-10-19 20:07:31 +03:00
arcanis c1d74726b7 fix rtd docs building
Commit 9d016f51b5 introduced kw_only
dataclasess which require python 3.10+
2022-10-18 02:24:18 +03:00
arcanis f2ddcc6d23 disallow no values in configuration
This option could lead to missing warnings about missing or invalid
configuration values because code usually expects that values are exists
and not empty unless it is explicitly specified.

However, pacman configuration still requires this option in order to be
able to deal with boolean values
2022-10-18 02:13:01 +03:00
arcanisandGitHub a5ce6b78dd Add gitremote triggers (#68)
* add gitremote pull trigger

* add push gitremote trigger

* docs update
2022-10-18 01:46:27 +03:00
arcanis 1a83dd6f5a extend triggers to on_start and on_stop methods
This commit also replaces old run method to new on_result
2022-09-26 01:22:54 +03:00
arcanis 16a33f7729 add minimal install step to workflow 2022-09-17 14:52:08 +03:00
arcanis fb21b1da53 make sqlite import consistent 2022-09-17 14:32:21 +03:00
arcanis 8394004943 Release 2.2.2 2022-09-17 04:05:06 +03:00
arcanis 75c6bf6119 skip architecture list patching in case if any architecture is set 2022-09-17 04:04:28 +03:00
arcanis 7e20ff5184 Release 2.2.1 2022-09-14 04:49:08 +03:00
arcanis 757614f5a0 docs update 2022-09-14 04:48:11 +03:00
arcanis 43166e5f94 Release 2.2.0 2022-09-14 03:28:28 +03:00
arcanis 43696b9920 Make optional dependencies trully optional (#67)
The issue appears when there is no boto, jinja and some other libraries
are not installed because the classes which use these libraries are
still being imported inside the package file. The fix removes those
imports from package root, because they should not be here, in fact,
content of report and upload packages must be imported only inside the
trigger class and only if they are actually required

This commit also adds setuptools as required dependency since it is used
for some parsers (previously it was provided dependency)
2022-09-11 01:44:06 +03:00
arcanisandGitHub 8befee58fe patch architecture list in runtime (#66) 2022-08-09 15:18:20 +03:00
arcanis 9d016f51b5 frozen dataclasses 2022-07-26 14:40:28 +03:00
arcanis c5fbccd519 reduce docker image size a bit 2022-07-18 11:42:26 +03:00
arcanis eae5748a30 Release 2.1.0 2022-07-02 15:42:39 +03:00
arcanis 695ef708b6 simplify tmpdir method 2022-06-28 19:11:38 +03:00
arcanis 26408e82c0 review loggers once more
This commit makes loggers like java.util.logging with fully qualified
logger name which is created by LazyLogging trait
2022-06-28 11:00:45 +03:00
arcanis 7b647a9b5a fix case with package name which cannot be downloaded
(without special settings)

The issue appears if file or its version contains one of special URI
characters, e.g. +. Theu will be interpreted as query parameters by
(some) servers (e.g. S3 works in this way). In this commit we rename
archive to the one with safe name.
2022-06-27 18:53:48 +03:00
arcanis fac228d6c6 review loggers once more
This commit makes loggers like java.util.logging with fully qualified
logger name which is created by LazyLogging trait
2022-06-27 01:41:49 +03:00
arcanis eb5ac5a52b bump web libraries
also encode strings for the views
2022-06-24 12:03:38 +03:00
arcanis 047925dcfe review loggers 2022-06-21 11:48:42 +03:00
arcanis b8d2775050 replace if with while for telelgram reporting 2022-06-10 12:02:00 +03:00
arcanis bf959ceb5f Release 2.0.0 2022-06-05 20:46:32 +03:00
arcanis 945b6d0ac0 small docs update 2022-06-04 15:24:14 +03:00
arcanis 5df9f30e37 do not pass timestamp to pretty_datetime functioon 2022-05-31 21:26:39 +03:00
arcanis 1ea3911531 rewrite api under single /api endpoint 2022-05-29 17:15:49 +03:00
arcanis d7966e419d add shell and version parser 2022-05-27 18:34:07 +03:00
arcanis 3a5268993e update readme 2022-05-22 16:00:24 +03:00
arcanis ad84895e18 do not bump timestamp on empty updates 2022-05-21 04:19:04 +03:00
arcanisandGitHub b1dfafe275 dynamic html load (#63)
* dynamic html load
* split by classes
2022-05-20 22:29:36 +03:00
arcanis 375f9fcfb7 add ability to run only speicifed triggers from command line
This commit also restores repo-report and repo-sync subcommands
2022-05-12 18:43:36 +03:00
arcanis 04dcaa93ab fix case when provided trigger path is directory
If trigger is directory and we have permissions to read it, the loaded
will try to load this from it and will fail with IsADirectoryError
2022-05-12 07:22:50 +03:00
arcanis f42c2c57fb add not about pacman database update 2022-05-11 04:30:24 +03:00
arcanis dc3562a4ec add contribution guide 2022-05-11 03:17:37 +03:00
arcanis dda94f8f9e Release 2.0.0rc11 2022-05-10 06:03:33 +03:00
arcanis 709db6a5ed fix bug with checking file
The bug appear when the file exists or doesn't, but we don't have
permissions to read it. This one must be treated as missed permission
2022-05-10 06:01:41 +03:00
arcanis 89a2d8e298 Release 2.0.0rc10 2022-05-09 21:51:35 +03:00
arcanis b9cd98235e triggers implementation (#62) 2022-05-09 20:00:20 +03:00
arcanis 1905360f8f Release 2.0.0rc9 2022-05-08 03:58:53 +03:00
arcanis a7018d9f7d fix error with missing sources
In case if package has local cache it will fail to load because no
remote source set. Particially this case can be observed during tree
load
2022-05-08 03:56:54 +03:00
arcanis 73057bc08d Release 2.0.0rc8 2022-05-06 20:55:54 +03:00
arcanis 7f87863734 shorten public imports 2022-05-06 04:08:05 +03:00
arcanis 2dac5a2520 Docs update (#61)
* Improve sphinx documentation

* update faq formatting

* fix setup doc

* fix docs according to the generated htmls
2022-05-06 02:54:37 +03:00
arcanis 720edc24ba correct archllinux wording in readme 2022-05-06 02:54:37 +03:00
arcanis fe9711d24f add __all__ attribute 2022-05-06 02:54:37 +03:00
arcanis c73a2a4aa9 add note about ahriman to index page 2022-05-06 02:54:37 +03:00
arcanisandGitHub 571f720ae2 Complete official repository support (#59) 2022-05-03 00:49:32 +03:00
arcanis 5030395025 rename classes in order to make documentation reference work 2022-04-18 05:30:02 +03:00
arcanis 03633d47ea readthedoc integration 2022-04-18 04:39:40 +03:00
arcanis 1a575d6db8 move documentation to tox 2022-04-18 01:48:36 +03:00
arcanis cdc018ad07 apply data migration in the same transaction block with schema migration 2022-04-18 01:19:38 +03:00
arcanis f806c8918e fix target naming 2022-04-18 01:19:20 +03:00
arcanisandGitHub 4daff81d5f Docstring update (#58)
* migrate docstrings from reST to google format

* add raises note

Also change behaviour of the `from_option` method to fallback to
disabled instead of raising exception on unknown option

* fix part of warnings for sphinx

* make identation a bit more readable

* review fixes

* add verbose description for properties to make them parsed by sphinx extenstion

* add demo sphinx generator
2022-04-17 20:25:28 +03:00
arcanis 06bd29b78d Release 2.0.0rc7 2022-04-11 00:48:08 +03:00
arcanis c67ac3730c docs update 2022-04-11 00:46:46 +03:00
arcanis c094d4ee79 add backup and restore subcommands 2022-04-10 21:34:34 +03:00
arcanis 3cb479ba4b merge restore to rebuild commannd 2022-04-10 01:51:12 +03:00
arcanis 307a7f4a71 Release 2.0.0rc6 2022-04-09 17:34:23 +03:00
arcanis 25734876de do not render failed packages in jinja (#57)
basic templates require package info which is unavailable if package
wasn't built
2022-04-09 17:31:13 +03:00
arcanis 53df735eb2 Release 2.0.0rc5 2022-04-08 04:42:05 +03:00
arcanis fb7275f9dd change telegram default index to telegram-index 2022-04-08 04:32:34 +03:00
arcanis f01af5f54a force git run from the same dir to clone 2022-04-08 04:04:06 +03:00
arcanis 1abe8d291f fix users migration 2022-04-08 03:45:17 +03:00
arcanis 1a83e55d64 add telegram integraion 2022-04-08 03:41:07 +03:00
arcanis b8e17c4879 Release 2.0.0rc4 2022-04-08 01:14:35 +03:00
arcanis bee41dcc55 trim versions before dependency list calculation
When dependencies list contains same package with version it tries to
find packages which don't exists
2022-04-07 20:32:55 +03:00
arcanis 9f7995fb2f add support of repository restoration 2022-04-07 04:49:07 +03:00
arcanis 9ce1c36f35 add support of officiall repositories api 2022-04-07 04:19:37 +03:00
arcanis 4990ce4198 fix descriptions 2022-04-06 01:48:03 +03:00
arcanis 8f18ead4cc Release 2.0.0rc3 2022-04-04 02:40:17 +03:00
arcanis 7ea50887a4 allow any tag for push 2022-04-04 02:39:56 +03:00
arcanis 97ec5bfa41 Release 2.0.0rc2 2022-04-04 02:27:19 +03:00
arcanis 5fcc15191a change regex for sed 2022-04-04 02:26:42 +03:00
arcanis c5f086a7c6 Release 2.0.0-rc1 2022-04-04 02:18:31 +03:00
arcanis 432ca0cc48 better processing for subcommands
Old versions cached full output to memory and only after that printed it
into log. This behaviour causes issues in case if operation stucks and
you would need to find the step at which it does. New check_output
method uses Popen directly and iterates over stdout lines

Also changed behaviour from merging stderr into stdout to separate
stderr logging.

Any other behaviour of the function must be the same.

Also changed GPG.key_import method to disable local signing since it
seems it is useless (and may break process in case if there is no
private key)
2022-04-04 00:03:22 +03:00
arcanis 1a0322b32e docs update 2022-04-03 01:44:11 +03:00
arcanis fc086c0d87 remove implicit user from docker 2022-04-01 18:39:24 +03:00
arcanisandGitHub d5503b22ba add configurable exit codes to some commands (#55) 2022-04-01 18:30:11 +03:00
arcanis a132b1544a create user in docker container
also fix user reading and add nocolor flag by default
2022-03-31 03:25:53 +03:00
arcanis 63acae4b1c configure docker to work with tags 2022-03-31 02:19:48 +03:00