Commit Graph
100 Commits
Author SHA1 Message Date
arcanis 6664a2e656 remove empty conftest 2026-07-17 09:09:10 +03:00
arcanis 6c0fdcda6e simplify configuration fixture 2026-07-17 09:05:32 +03:00
arcanis a8888aa106 disable pylint warning 2026-07-17 08:58:48 +03:00
arcanis 5d4502aaed remove duplicate fixtures 2026-07-17 08:54:32 +03:00
arcanis 198b9d4f5d move fixtures to __init__.py 2026-07-17 00:53:38 +03:00
arcanis da1ded5c0e fix setup script 2026-07-16 23:29:59 +03:00
arcanis 7f7e5da2d5 move root conftest into pytest plugins 2026-07-16 23:07:33 +03:00
arcanis 7c7b4a86af some play with renaming 2026-07-16 23:07:33 +03:00
arcanis ce985e6a7c cleanup pyproject 2026-07-16 23:07:33 +03:00
arcanis 6b21516f9d reformat tomls 2026-07-16 23:07:33 +03:00
arcanis 48511bc3f2 fix tox environments 2026-07-16 23:07:33 +03:00
arcanis 2233002ad3 fix docs generation 2026-07-16 23:07:33 +03:00
arcanis 11ed790ff2 straight forward conftest 2026-07-16 23:07:33 +03:00
arcanis 2be82611bf generic fixtures 2026-07-16 23:07:33 +03:00
arcanis a9767c3583 reorder tests 2026-07-16 23:07:33 +03:00
arcanis d02ed8627d migrate to hatch 2026-07-16 23:07:33 +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
arcanisandGitHub 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
arcanisandGitHub 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
arcanisandGitHub 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
arcanisandGitHub 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
arcanis 5266f54257 fix: speedup table reload by updating only changed statuses
it has been found that on big (>100) repos it starts lagging on reload.
This commit adds guard to avoid updating rows whose package statuses
were not changed
2026-02-19 10:19:03 +02:00
arcanis bbf9e38fda Release 2.20.0rc1 2026-02-18 13:34:08 +02:00
arcanis ba80a91d95 feat: implement CSRF protection 2026-02-18 13:34:08 +02:00
arcanis 536d040a6a feat: handle only unknownpackageerror on aur load 2026-02-18 13:34:08 +02:00
arcanis bed8752f3a fix: filter logs by repository (twice) before rotation 2026-02-18 13:34:05 +02:00
arcanis 4093ca8986 fix: do not clear queue on queue fetch failures 2026-02-18 13:34:03 +02:00
arcanis f027155885 docs: correct docstring for list_flatmap method 2026-02-18 13:34:03 +02:00
arcanis 443d4ae667 fix: correct vcs definition for cvs packages 2026-02-18 13:34:00 +02:00
arcanis c8f7fa8c51 fix: load gitremote triggers configuration schema from non-standard
paths
2026-02-18 13:33:57 +02:00
arcanis 93c36fb429 docs: update documentation for the lasts archive feature 2026-02-16 22:07:34 +02:00
arcanisandGitHub 2d6d42f969 feat: archive package tree implementation (#153)
* 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
2026-02-16 00:12:51 +02:00
arcanis 6a2454548d refactor: drop some methods from package class into separated wrappers 2026-02-11 03:05:49 +02:00
arcanis 389bad6725 fix: use effective uid instead of uid 2026-02-03 16:38:13 +02:00
arcanis 5738b8b911 fix: rewrite preserver_owner method complitely
Previous implementation was somewhat working in the most) scenarios, but
was super slow to handle permissions. However, it is actually very
limited operations in which the application can do anything, so it is
much easier to just drop privileged user to normal one
2026-02-03 15:27:19 +02:00
arcanis 5ac2e3de19 fix: handle permissionerror during walking over tree
Previously it tried to look into 700 directories (e.g. .gnupg) which
breaks running as non-ahriman user
2026-02-02 22:16:15 +02:00
arcanis 799dc73d8a feat: update package status to success in case if package is up-to-date 2026-01-26 01:56:30 +02:00
arcanis 4e79cbf71a fix: fallback to package name for missing bases in archive
package zoom is being generated without base, leading to None there

Closes #155
2026-01-22 16:34:19 +02:00