Commit Graph
100 Commits
Author SHA1 Message Date
arcanis a1281989f3 split packages 2024-10-24 01:22:37 +03:00
arcanis 440d7785d2 replace simplify walk method 2024-10-24 01:22:37 +03:00
arcanis 3d97490c11 add package-splitt script 2024-10-24 01:22:37 +03:00
arcanis 89d8227ba6 Revert "use hatchling instead of flit"
This reverts commit d18d146d796bef01f7bba9003bc634946649f9aa.
2024-10-24 01:22:37 +03:00
arcanis fca9239cd2 use hatchling instead of flit 2024-10-24 01:22:37 +03:00
arcanis be57045972 move argument parsers to handlers themselves 2024-10-24 01:22:37 +03:00
arcanis 6fe77eb465 test: remove duplicated descriptions from tests 2024-10-24 01:22:16 +03:00
arcanis 7c6c24a46d feat: allow append list options 2024-10-24 01:22:16 +03:00
arcanis f48993ccd5 build: update aur packages list for docker image build 2024-10-07 16:03:23 +03:00
arcanis 22600a9eac chore: contributing guide update 2024-10-06 15:06:22 +03:00
arcanis b167df904b build: use tool.flit.external-data to distribute data 2024-10-05 17:17:16 +03:00
arcanis cd0ac7a7bd chore: replace passlib with bcrypt
passlib uses deprecated crypt module which is deprecated and scheduled
for removal in 3.13. Unfortunately, this module seems to be
unmaintained, so this commit replaces passlib with bcrypt, unfortunately
breaking current passwords
2024-10-05 16:35:27 +03:00
arcanis 910d178c71 docs: replace svg with dot 2024-09-30 14:48:21 +03:00
arcanis 1e7d4daf18 feat: add package copy subcommand 2024-09-27 17:23:04 +03:00
arcanis 7bc4810377 fix: change category for dependencies api docs 2024-09-27 14:43:05 +03:00
arcanis aa66e76db7 feat: show implicit dependencies for packages 2024-09-27 14:41:45 +03:00
arcanis e0f9e38f44 Release 2.15.2 2024-09-26 16:58:19 +03:00
arcanis d6cdb5bea5 fix: fix pkgbuild parsing in some cases
It has been found that there are two cases in which pkgbuild was not
parsed correctly

1. Major case in which there is quotation mark inside comment line,
   which would cause ValueError: No closing quotation error
2. Minor case, if there are utf symbols in pkgbuild file (e.g.
   hieroglyphs, see ttf-google-fonts-git), it will case incorrect
   reading in `_is_escaped` method
2024-09-26 16:48:38 +03:00
arcanis 6d157ca809 fix: do not copy own database during pyalpm initialization
Previous implementation lead to warning in logs in case if the
repository itself wasn't configured on the host
2024-09-25 14:31:32 +03:00
arcanis 5486ae4a19 fix: suppress info logging during version check 2024-09-25 14:23:53 +03:00
arcanis 8bdf420cdc feat: suppress info log during vcs version calculation 2024-09-25 07:15:51 +03:00
arcanis 2deca6d715 refactor: even further improvements for Handler.check_status method 2024-09-25 07:15:51 +03:00
arcanis 180adf3f33 type: remove unused ignore comment 2024-09-25 07:15:51 +03:00
arcanis 634054926d docs: improve application help messages 2024-09-24 17:58:08 +03:00
arcanis 53baaac61e Release 2.15.1 2024-09-24 11:18:38 +03:00
arcanis d2a93a94e3 feat: enable changes calculation in unit 2024-09-24 11:01:37 +03:00
arcanis 7134aea125 refactor: rename Handler.check_if_empty to check_status 2024-09-24 01:36:33 +03:00
arcanis 740d537618 fix: bump pkgrel if the local version is newer than remote
In case of VCS packages, if PKGBUILD contains older version, the pkgrel
remains the same during the rebuild process. This fix bumps pkgrel in
any case if the local version is newer than the remote
2024-09-23 16:30:33 +03:00
arcanis 9f78e79f1f build: reduce docker image size 2024-09-23 14:37:36 +03:00
arcanis 09456141f5 docs: update web preview picture 2024-09-23 14:03:12 +03:00
arcanis 9e30e98e90 fix: allow colon in options interpolation 2024-09-23 13:52:49 +03:00
arcanis df2e98a1d3 Release 2.15.0 2024-09-23 03:32:01 +03:00
arcanis 24993047c6 build: speedup pacman 2024-09-23 03:30:17 +03:00
arcanis b20e844cc9 website: add logo to api docs 2024-09-23 02:39:54 +03:00
arcanis ce75ccb405 docs: update configuration references in docs 2024-09-22 15:16:34 +03:00
arcanis 1acff852d0 docs: add logo 2024-09-22 14:21:01 +03:00
arcanis 62320e8ec6 feat: drop explicit makepkg usage (#134)
* generate filenames without using makepkg

* pkgbuild parser impl

* completely remove makepkg calls

* simplify typed get

* try to improve parser

* docs and recipes updatte

* never raise keyerror instead return empty string

* udpate tests

* add support of array expansion

* docs update

* tests update

* handle quoted control sequences correctly

* expand bash

* allow packages without package function

* docs update

* add moroe tests

* small improovements

* support escaped arrays and functions
2024-09-21 03:57:22 +03:00
arcanis 1089bab526 type: ignore too-many-positional-arguments 2024-09-20 23:22:33 +03:00
arcanis 0e0012a6e0 chore: refresh icons 2024-09-20 03:29:18 +03:00
arcanis fbbb80d091 Revert "fix: update Repo.init to the latest pacman release"
This reverts commit 99ca0cb2fd.
2024-09-20 01:48:09 +03:00
arcanis 5316427371 fix: limit amount of fetches used for changes
The issue appears in case if - somehow - unknown commit sha has been
stored. In this scenario it would try to fetch infinitely
2024-09-20 01:48:03 +03:00
arcanis 0fa748f302 feat: calculate changes on package addition as well 2024-09-20 01:48:03 +03:00
arcanis 7a3d32dcfa fix: do not treat cached vcs packages as local 2024-09-20 01:47:58 +03:00
arcanis a396126a79 feat: calculate and store changes for each update 2024-09-17 15:01:45 +03:00
arcanis 9785835c0e docs: improve class init docs 2024-09-15 15:13:54 +03:00
arcanisandGitHub c4f4e37731 feat: get rid of jquery (#133) 2024-09-05 02:26:52 +03:00
arcanis f43ee2fd1d build: make cerberus dependency optional 2024-09-04 22:28:25 +03:00
arcanis f7a50e5294 feat: implement stats subcommand (#132) 2024-09-04 22:28:25 +03:00
arcanis ddd3c3f06f feat: allow filter events by timestamp 2024-09-04 22:28:25 +03:00
arcanis 242f3d4d34 chore: add rss generation to samples 2024-09-04 22:28:25 +03:00
arcanis 303f9ff03c feat: add event log and update chart to package info modal 2024-09-04 22:28:25 +03:00
arcanis 65fac09d8d feat: remove duplicates from the toast 2024-09-04 22:28:25 +03:00
arcanis aaf7adbac1 refactor: simplify Validator class 2024-09-04 22:28:25 +03:00
arcanis 9e011990ee feat: allow cross reference in the configuration (#131) 2024-09-04 22:28:25 +03:00
arcanis 529d4caa0e feat: implement rss generation (#130) 2024-09-04 22:28:25 +03:00
arcanis d7c4fccf98 feat: add ability to log sql statements 2024-09-04 22:28:25 +03:00
arcanis 1e30838be4 feat: serve logs and events from the newest to oldest, but keep the
ordering

So basically initial implementation, with limit=1, would emit the oldest
record in series. New implementation will return the most recent one
instead

The response is still sorted by ascension
2024-09-04 22:28:25 +03:00
arcanis d57276f214 feat: log package update events 2024-09-04 22:28:25 +03:00
arcanis 31e59df2c8 refactor: allow event to receive keyword arguments
This change also replaces the dataclass implementation of the class to
custom one
2024-09-04 22:28:25 +03:00
arcanis 23cd843e44 feat: add timer for metrics purposes 2024-09-04 22:28:25 +03:00
arcanis c08a292070 docs: update booleans in docs 2024-09-04 22:28:25 +03:00
arcanis 5163aa4dca feat: implement audit log tables and methods (#129) 2024-09-04 22:28:25 +03:00
arcanis 69f0966ff1 feat: replace scan paths options to single one
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
2024-09-04 22:25:54 +03:00
arcanis 16308dc3ae Release 2.14.1 2024-09-04 22:01:04 +03:00
arcanis 962599e937 bug: fix removal of the packages
It has been broken since reporter improvements, because it effectivelly
1) didn't call remove functions in database
2) used empty repository identifier for web service

With those changes it also raises exception when you try to call id on
empty identifier
2024-09-04 21:50:33 +03:00
arcanis 758a81e3db chore: small contributing guide update 2024-09-04 21:49:31 +03:00
arcanis 84942e3c98 refactor: fix some IDE warnings 2024-09-04 21:49:31 +03:00
arcanis 6f8b1509d7 build: update pytest configuration to suppress deprecation warnings 2024-09-04 21:49:31 +03:00
arcanis b4372ff583 Release 2.14.0 2024-08-23 14:37:05 +03:00
arcanis 41fc7bffbb docs: improve waiter classes docs 2024-08-23 14:33:07 +03:00
arcanis 300f5026c4 feat: add ability to suppress git hints
It can be done by setting options in command. The commit author/email is
also now using this logic
2024-08-23 14:33:07 +03:00
arcanis 10aa91a033 feat: add blacklisted paths to implicit dependencies processing
It has been found that in some cases additional packages have been added
as dependencies, like usr/share/applications, usr/lib/cmake, etc

This commit adds an ability to blacklist specific paths from processing
2024-08-23 14:33:07 +03:00
arcanis 4169851eaa docs: split faq into multiple files 2024-08-20 16:44:40 +03:00
arcanis 4d9e06156d feat: add support of pam authentication
Add naive implementation of user password check by calling su command.
Also change some authentication method to require username to be string
instead of optional string
2024-08-20 16:44:40 +03:00
arcanis af2269c64a fix: print current and updated version correctly
The issue appears in case if versions ar the same (e.g. rebuild); in
this case printer doesn't increment version as builder does.

Also util has been renamed to utils, keeping backward compatibiltiy
2024-08-16 16:24:11 +03:00
arcanis f44fa19c42 feat: optimize archive reading
Instead of trying to load every database and look for files, this commit
introduces the optimization in which, the service loads packages first,
groups them by database and load files later.

In some cases it significantly descreases times for loading files
2024-08-14 17:07:10 +03:00
arcanis fd3c6343f1 fix: explicitly process list of packages
Small workaround to remove debug packages from being processed
2024-08-14 17:07:10 +03:00
arcanis 9edff2826f fix: remove trailit slash when loading packages files from a database 2024-08-14 17:07:10 +03:00
arcanis b38ecfb35c fix: skip debug packages as well 2024-08-14 17:07:10 +03:00
arcanis 3c7c748b4a docs: update documentation for implicit dependencies resolution 2024-08-14 17:07:10 +03:00
arcanis 434057ec49 feat: remove excess dependencies leaves (#128)
This mr improves implicit dependencies processing by reducing tree leaves by using the following algorithm:

* remove paths which belong to any base package
* remove packages which are (opt)dependencies of one of the package which provides same path. It also tries to handle circular dependencies by excluding them from being "satisfied"
* remove packages which are already satisfied by any children path
2024-08-14 17:07:10 +03:00
arcanis a01b090c2b feat: improve lock mechanisms
* improve lock mechanisms

* use /run/ahriman for sockett

* better water
2024-08-14 17:07:10 +03:00
arcanis 8ffc1299f0 feat: implement local reporter mode (#126)
* implement local reporter mode

* simplify watcher class

* review changes

* do not update unknown status

* allow empty key patches via api

* fix some pylint warnings in tests
2024-08-14 17:07:10 +03:00
arcanis 02b13de7f4 feat: allow to use simplified keys for context
Initial implementation requires explicit context key name to be set.
Though it is still useful sometimes (e.g. if there should be two
variables with the same type), in the most used scenarios internally
only type is required. This commit extends set and get methods to allow
to construct ContextKey from type directly

Also it breaks old keys, since - in order to reduce amount of possible
mistakes - internal classes uses this generation method
2024-08-14 17:07:10 +03:00
arcanis 50a045434d feat: add abillity to check broken dependencies (#122)
* implement elf dynamic linking check

* load local database too in pacman wrapper
2024-08-14 17:07:10 +03:00
arcanis 7bbe3242d4 type: drop MiddlewareType in favour of Middleware builtin 2024-08-14 17:07:10 +03:00
arcanis a9cb357182 type: fix mypy warn for fresh unixsocket release 2024-08-14 17:07:10 +03:00
arcanis feec9141b2 type: remove another unused mypy directive 2024-08-14 17:07:10 +03:00
arcanis 148ef09e70 build: use requests-unixsocket2 fork
Since requests-2.32.0, the http+unix url scheme is brokek, check
https://github.com/msabramo/requests-unixsocket/issues/73 for more
details
2024-08-14 17:07:10 +03:00
arcanis 5ff635db70 Release 2.13.8 2024-05-12 11:53:19 +03:00
arcanis 9df5820bce fix: drop integrity check for javascript
It has been added to improve security, however, it changes over time for
no reason ¯\_(ツ)_/¯ I guess either cdn was hacked or fuck js
2024-05-12 11:49:12 +03:00
arcanis b7d3493ae3 Release 2.13.7 2024-05-09 13:26:40 +03:00
arcanis f8b725d175 fix: parse array variable from command 2024-05-09 13:21:42 +03:00
arcanis 46b3c82aca Release 2.13.6 2024-05-05 21:59:30 +03:00
arcanis 0d34432c9a fix: update integrity checksums for momentjs and daterangepicker 2024-05-05 21:17:30 +03:00
arcanis 3cd9cff4ee refactor: update code to the latest python (3.12+) 2024-05-05 21:17:30 +03:00
arcanis 9e02d7a38f fix: remove debug packages together with normal ones (#124) 2024-05-05 21:17:30 +03:00
arcanis 9819ed761e Release 2.13.5 2024-04-04 13:33:03 +03:00
arcanis 99ca0cb2fd fix: update Repo.init to the latest pacman release 2024-04-04 13:16:05 +03:00
arcanis ea3cb6e766 build: install base-devel package 2024-04-04 13:16:03 +03:00