100 Commits
Author SHA1 Message Date
arcanis 25ecefab83 Release 2.22.1 2026-08-18 12:15:35 +03:00
arcanis b0248ed1cd refactor: split include option 2026-08-18 12:15:05 +03:00
arcanis 5d27fb1248 Release 2.22.0 2026-08-18 11:57:10 +03:00
arcanis 0faf3910c6 refactor: shell script simplification 2026-08-18 11:40:30 +03:00
arcanis fc520de146 docs: mention environment variables change in migration 2026-08-18 11:10:05 +03:00
arcanis c640239f8a build: move toxfile to tools packages 2026-08-18 01:22:18 +03:00
arcanis 024b6a014f build: update frontend dependencies 2026-08-17 13:44:40 +03:00
arcanis e12e844312 build: remove unused backslashes 2026-08-17 13:22:51 +03:00
arcanis eaac507d12 feat: limit environment variables passed to sudo 2026-08-17 12:26:56 +03:00
arcanis 117db10932 docs: update setup instructions to follow new logic 2026-08-17 12:13:46 +03:00
arcanis 9b544f9e45 docs: add devtools_configs option to docs 2026-08-15 20:25:28 +03:00
arcanis 3548b434be feat: full rootless setup (#165)
* use local devtools configs instead of global ones

* make docker image rootless

* add migration notes

* fix setup command

* fix regress jo
2026-08-14 13:34:42 +03:00
arcanis 695424fa16 feat: remove makepkg.conf local configuration, use ahriman own
configuration instead

We used .makepkg.conf solely for two features - MAKEFLAGS and PACKAGER,
which could be actually easily implemented by using environment
variables
2026-08-13 16:39:13 +03:00
arcanis 255ebe117a feat: read includes from list of directories 2026-08-13 16:39:13 +03:00
arcanis a9a12cd247 feat: get rid of sudoers modification during setup command
This commit introduces small shell wrapper, which calls archbuild
mimicing symlinked command. It allows to distribute static sudoers file.

Additionally build_command option has been renamed to devtools_wrapper
in order to allow to keep backward compatibility
2026-08-13 14:26:49 +03:00
arcanis 8dc198aa2b build: tox cleanup 2026-08-13 14:26:49 +03:00
arcanis 1133b75c33 refactor: implement generic optional import mechanisms
this project is actively using optional imports, which leads to
duplicate handling here and there. This commit implements logic in
special method to reduce complexity and simplify tests paths
2026-08-13 14:26:49 +03:00
arcanis 777bedf772 build: handle local imports in pylint check correctly 2026-08-13 14:26:49 +03:00
arcanis cc6ca46342 build: fix mypy type install 2026-08-13 14:26:49 +03:00
arcanis 2eb51ba85a Release 2.21.1 2026-07-21 10:46:21 +03:00
arcanis 36e28aba99 fix: always load tab on remount
it fixes a bug, which leads to missing tab content load when opening
package info
2026-07-21 10:44:20 +03:00
arcanis 81c9e1e596 Release 2.21.0 2026-07-21 00:24:44 +03:00
arcanis 2693f789d0 build: explicit hatchling dep 2026-07-21 00:22:07 +03:00
arcanis 08ade0b425 build: do not use system site packages for archive target 2026-07-21 00:22:07 +03:00
arcanis c648f91662 build: skip install in publish target 2026-07-21 00:10:37 +03:00
arcanis 20482cb137 misc: rename frontend to just ahriman 2026-07-21 00:09:56 +03:00
arcanis 70829619a1 build: handle posargs for tests 2026-07-20 12:48:47 +03:00
arcanis dd659820da build: try to handle workspace packages for tests 2026-07-19 23:58:49 +03:00
arcanis e835668f7d feat: add cooldown for aur packages 2026-07-18 21:55:26 +03:00
arcanis 526edfe2cd build: update frontend dependencies 2026-07-18 20:10:32 +03:00
arcanis a4a7c13344 fix: disable colors for importing parser calls
In case if parser is used to generate docs, it remains w\o colors, but
help messages are still formatted with it
2026-07-18 14:12:33 +03:00
arcanis fd6add46f9 build: fix import paths for rtd 2026-07-17 14:57:19 +03:00
arcanis 700893ecac build: subpackages implementation (#164)
* migrate to hatch

* reorder tests

* generic fixtures

* straight forward conftest

* fix docs generation

* fix tox environments

* reformat tomls

* cleanup pyproject

* some play with renaming

* move root conftest into pytest plugins

* fix setup script

* move fixtures to __init__.py

* remove duplicate fixtures

* disable pylint warning

* simplify configuration fixture

* remove empty conftest

* remove crap from local pyprojects
2026-07-17 14:00:20 +03:00
arcanis f12278a31d build: reorganize scripts 2026-07-16 23:07:09 +03:00
arcanis 3492892cd2 build: replace deprecated ::set-output with GITHUB_OUTPUT 2026-07-08 15:01:06 +03:00
arcanis aef7fa5f93 build: update frontend dependencies 2026-07-06 16:16:31 +03:00
arcanis c412b08135 fix: remove staleTime defaults for query client 2026-07-06 15:33:20 +03:00
arcanis a3b6372c11 fix: override head method for sse endpoint to make it actually working 2026-07-06 14:44:29 +03:00
arcanis 78288befb8 build: use python 3.13 lowerbound 2026-07-06 13:56:02 +03:00
arcanis 49cd3d43c8 fix: handle errors in sse stream 2026-06-09 01:01:08 +03:00
arcanis d9b52806c0 fix: clear subscriber map on shutdown
Even though it is not a case in the application, the interface could be
used externally
2026-06-07 11:58:04 +03:00
arcanis 774db2d780 type: fix typing ignore with the last typing update 2026-05-31 20:04:25 +03:00
arcanis 68afda4c71 feat: allow readonly events with read permission 2026-05-26 20:51:06 +03:00
arcanis fa9fa73078 docs: bump python version to 2.13 2026-05-08 10:25:24 +03:00
arcanis 3e1e24cb50 feat: SSE support (#162)
* event bus implementation

* update tests

* docs update

* review fixes

* update configs

* fix typo

* frontend changes

* install missing pacakge

* queue processing simplification
2026-05-08 10:20:03 +03:00
arcanis 18fe38c30b build: use build_date argument for docker image instead of guessing from pacman root 2026-05-05 13:45:42 +03:00
arcanis 6ee8b26bd5 feat: show aur url in interface 2026-04-22 06:56:28 +03:00
arcanis fce49f22c9 type: fix mypy warnings in updated version 2026-04-03 13:36:41 +03:00
arcanis af8e2c9e9b build: update rtd.io image 2026-03-30 19:20:03 +03:00
arcanis 1c312bb528 feat: add error boundary 2026-03-24 01:17:42 +02:00
arcanis e39194e9f6 feat: etag support 2026-03-23 23:58:56 +02:00
arcanis 21cc029c18 refactor: use usedforsecurity flag for md5 calculations 2026-03-23 23:07:31 +02:00
arcanis 40671b99d5 feat: allow to configure cors 2026-03-23 16:39:07 +02:00
arcanis 3ad2c494af docs: update docstrings 2026-03-22 17:23:16 +02:00
arcanis 34014d1cdd build: add more rules for typescript 2026-03-22 17:23:16 +02:00
arcanis 93ed2b864b docs: describe rollback procedure in docs 2026-03-22 17:23:16 +02:00
arcanis cca931ccd0 fix: handle errors on pkgbuild reading 2026-03-22 13:10:09 +02:00
arcanis 5e090cebdb refactor: reorder arguments in web ui 2026-03-22 04:03:41 +02:00
arcanis d7984c12f0 feat: package rollback support (#161)
* implement support of rollback handler

* react interface for the rollback
2026-03-22 00:36:48 +02:00
arcanis 96684d7ddd refactor: move package archive lockup to package info trait 2026-03-18 18:48:27 +02:00
arcanis 2e9837b70d build: update frontend dependencies 2026-03-15 19:18:58 +02:00
arcanis ac4a8fb2cd fix: hide ignore_list because it is ambiguous now 2026-03-15 19:06:53 +02:00
arcanis 1db8eb0ac4 fix: preserve hold status on status updates 2026-03-15 19:03:05 +02:00
arcanis dc394f7df9 feat: dynamic package hold (#160)
* add dynamic hold implementation to backend

* update frontend to support new status

* force reporter loader

* handle missing packages explicitly

* handle missing packages explicitly
2026-03-15 18:47:02 +02:00
arcanis 058f784b05 fix: center icons on buttons 2026-03-15 17:07:39 +02:00
arcanis f688768ca7 fix: fallback to timestamp in case if crypto context is not available
Previous tests have been done in either secure (HTTPS) or loopback
(localhost) environments, so I missed the case, that crypto methods
might not be available

Fixes #159
2026-03-13 17:00:06 +02:00
arcanis a09ad7617d feat: support archive listing 2026-03-12 22:26:35 +02:00
arcanis 81aeb56ba3 refactor: lightweight Package.from_archive method 2026-03-11 23:00:55 +02:00
arcanis 2cd4ef5e86 refactor: separate package_archives method from trigger 2026-03-11 13:36:59 +02:00
arcanis 998ed48dde feat: add pkgbuild subscommands 2026-03-11 13:31:19 +02:00
arcanis 021d88dc4c feat: store and show pkgbuild (implements #157) 2026-03-11 01:05:06 +02:00
arcanis 9012ee7144 feat: add dark theme support and increase contrast 2026-03-08 22:59:31 +02:00
arcanis 945ddb2942 Release 2.20.0 2026-03-08 16:51:28 +02:00
arcanis 9cd0926588 docs: add http client description 2026-03-08 16:49:46 +02:00
arcanis f5c12d03ec Release 2.20.0rc7 2026-03-08 12:18:03 +02:00
arcanis 606ee2fb0e docs: architecture spec update 2026-03-08 12:16:26 +02:00
arcanis 875e9cf58a docs: update web preview picture 2026-03-08 03:33:49 +02:00
arcanis a809a4b67f feat: support request-id header 2026-03-08 02:51:30 +02:00
arcanis 437ae2c16c style: some minor style improvements 2026-03-06 21:38:57 +02:00
arcanis 10661f3127 fix: catch some StopIteration exceptions 2026-03-06 17:04:19 +02:00
arcanis 88ac3d82a0 feat: explicitly disable archive rotation if option is set to 0 2026-03-06 12:59:48 +02:00
arcanis 386765ab4e fix: fix dashboard visual 2026-03-06 01:48:11 +02:00
arcanis 78998182b8 Release 2.20.0rc6 2026-03-06 01:32:13 +02:00
arcanis 2563391aaf build: correct order of building 2026-03-06 01:31:53 +02:00
arcanis 90a78e99e7 Release 2.20.0rc5 2026-03-06 01:06:15 +02:00
arcanis a05eab9042 feat: brand-new interface (#158)
This was initally generated by ai, but later has been heavily edited.
The reason why it has been implemented is that there are plans to
implement more features to ui, but it becomes hard to add new features
to plain js, so I decided to rewrite it in typescript.

Yet because it is still ai slop, it is still possible to enable old
interface via configuration, even though new interface is turned on by
default to get feedback
2026-03-06 00:59:10 +02:00
arcanis db46147f0d fix: mount archive to chroot
while file:// repository is automatically mounted by devtools, it
doesn't mount any directory which contains source of symlinks

This commit adds implicit mount of the archive directory (ro) into
chroot
2026-03-03 15:50:21 +02:00
arcanis 49ebbc34fa fix: do not update package status if it is unchanged
In order to prevent timestamp bumps, filter by status is added
2026-02-24 15:33:06 +02:00
arcanis e376f1307f docs: remove required flag from email.template_full option 2026-02-22 02:57:34 +02:00
arcanis 415fcf58ce Release 2.20.0rc4 2026-02-21 12:52:51 +02:00
arcanis 17a2d6362c style: replace """ with " for single line strings 2026-02-21 12:51:58 +02:00
arcanis e6275de4ed fix: handle class overrides for retry polices correctly
Previous implementation didn't work as intended because there was still
override in init. Current implementation instead of playing with
guessing separates default and instance setttings. Also update test
cases to handle this scenario correctly
2026-02-21 12:40:11 +02:00
arcanis 4d009cba6d Release 2.20.0rc3 2026-02-20 20:56:05 +02:00
arcanis f6defbf90d fix: rollback samesite option to Lax, because of broken OAuth 2026-02-20 20:54:37 +02:00
arcanis c4fefa6071 Release 2.20.0rc2 2026-02-20 16:30:37 +02:00
arcanis b0f1828ae7 feat: add retry policy 2026-02-20 16:24:14 +02:00
arcanis dec025b45a feat: raise OptionError on missing OAuth provider class instead of generic AttributeError 2026-02-19 10:19:03 +02:00
arcanis 89008e5350 fix: use context manager for selector and smtp session 2026-02-19 10:19:03 +02:00
arcanis 422196d413 fix: force data filter for tar archive extraction
(python3.14 default anyway)
2026-02-19 10:19:03 +02:00
arcanis 6fe2eade26 feat: (more) secure cookies 2026-02-19 10:19:03 +02:00