1. 10 Jan, 2023 1 commit
  2. 19 Dec, 2022 8 commits
  3. 18 Dec, 2022 10 commits
  4. 10 Dec, 2022 1 commit
    • David Runge's avatar
      Improve gitlab-ci for speed and size · bd67251b
      David Runge authored
      .gitlab-ci.yml:
      Remove artifacts after two weeks to conserve space.
      Make all jobs interruptible, to not run jobs that would be superseded by
      newer ones (in follow-up commits or when force-pushing).
      bd67251b
  5. 07 Dec, 2022 4 commits
  6. 05 Dec, 2022 9 commits
    • David Runge's avatar
      Add fixtures for .SRCINFO files · 403726ce
      David Runge authored
      tests/conftest.py:
      Add fixtures for creating the contents and files using the .SRCINFO file
      format.
      403726ce
    • David Runge's avatar
      Simplify attribute documentation on some common models · ddfca1bb
      David Runge authored
      repod/common/models.py:
      Simplify attribute documentation on the common models `PkgBase`,
      `PkgName`, `Epoch`, `PkgRel` and `PkgVer`.
      ddfca1bb
    • David Runge's avatar
      Add regular expression to match PGP key IDs · 67fd2075
      David Runge authored
      repod/common/regex.py:
      Add regular expression `PGP_KEY_ID` to match PGP key ID strings.
      67fd2075
    • David Runge's avatar
      Add Error class for file parsers · 56e936f4
      David Runge authored
      repod/errors.py:
      Add `FileParserError` for errors occuring when parsing files.
      56e936f4
    • David Runge's avatar
      Add a PkgDesc model · b104f48d
      David Runge authored
      repod/common/models.py:
      Add a `PkgDesc` model to track package description using a `pkgdesc`
      attribute.
      b104f48d
    • David Runge's avatar
      Turn models for BUILDINFO files into common ones · 36da7d8a
      David Runge authored
      repod/common/models.py:
      Add `Options`, `PkgBase` and `PkgName` models from `repod.files.buildinfo`.
      Change the `Options` model to track an optional `options` attribute, as
      also in BUILDINFO files, the options list can be optional.
      
      repod/files/buildinfo.py:
      Remove `Options`, `PkgBase` and `PkgName` models and rely on those from
      `repod.common.models`.
      36da7d8a
    • David Runge's avatar
      Simplify common version related models · abb9f214
      David Runge authored
      repod/common/models.py:
      Remove unnecessary and unused `vercmp()` and `as_list()` methods from
      Epoch, PkgRel and PkgVer.
      
      tests/common/test_models.py:
      Remove tests for unused `as_list()` methods.
      Adapt `vercmp()` tests to rely on `repod.version.alpm.vercmp`  instead.
      abb9f214
    • David Runge's avatar
      Add regulare expressions further checksum algorithms · fee6c81a
      David Runge authored
      repod/common/regex.py:
      Add regular expressions to allow matching the data of blake2, crc-32,
      sha1, sha224, sha384 and sha512 checksum algorithms.
      fee6c81a
    • David Runge's avatar
      Add function to read text from file · 4122a4f1
      David Runge authored
      repod/files/common.py:
      Add `read_text_from_file()` to allow reading text from a file and return
      it in a StringIO.
      
      tests/files/test_common.py:
      Add parametrized tests for `read_text_from_file()`.
      4122a4f1
  7. 03 Dec, 2022 1 commit
  8. 01 Dec, 2022 6 commits
    • David Runge's avatar
      Add changelog entry for repository grouping feature · 4096b717
      David Runge authored
      docs/repod/changelog.rst:
      Add changelog entry explaining the new repository grouping feature and
      its implications.
      4096b717
    • David Runge's avatar
      Add documentation on group feature to man page · 6cbd9723
      David Runge authored
      docs/repod/man/repod_conf.rst:
      Add documentation on how the group feature for repositories works to the
      `repod.conf` man page.
      Add example for two grouped repositories.
      6cbd9723
    • David Runge's avatar
      Consider grouped repositories when adding packages · 30860593
      David Runge authored
      repod/action/workflow.py:
      Change `add_packages()` to also consider grouped repositories, using
      `RepoGroupTask`.
      Simplify `add_packages()` by retrieving the target repository once and
      using the needed attributes directly instead of retrieving it multiple
      times.
      
      tests/action/test_workflow.py:
      Change tests for `add_packages()` to also consider cases where
      repositories are in a group.
      30860593
    • David Runge's avatar
      Add Task to gather data on grouped repositories · a65007b2
      David Runge authored
      repod/action/task.py:
      Add `RepoGroupTask` to gather data (names and management repository
      directories) on grouped repositories, as well as pkgbases and packages
      of `OutputPackageBase` instances.
      
      tests/action/test_task.py:
      Add tests for `RepoGroupTask`.
      a65007b2
    • David Runge's avatar
      Add Check to ensure pkgbases/package uniqueness in repo group · 22993e12
      David Runge authored
      repod/action/check.py:
      Add `UniqueInRepoGroupCheck` to allow checking that lists of pkgbase and
      package names are unique in the management repository directories of
      repositories (in a group).
      
      tests/action/test_check.py:
      Add tests for `UniqueInRepoGroupCheck`.
      22993e12
    • David Runge's avatar
      Add group functionality for PackageRepo · c9640228
      David Runge authored
      repod/config/settings.py:
      * Add an optional group attribute to PackageRepo, which can be used to
        group PackageRepos together, which effectively implies that pkgbases
        and packages within a group have to be unique.
      * Add `PackageRepo.get_all_management_repo_dirs()` to retrieve all
        management repository directories, that a PackageRepo instance uses.
      * Add `PackageRepo.get_all_package_repo_dirs()` to allow retrieving all
        package repository directories, that a `PackageRepo` uses.
      * Add `Settings.get_repos_by_group()` to retrieve all PackageRepo
        instances of the same group, while allowing to exclude specific
        repositories.
      * Add `Settings.check_repository_groups_dirs()` to check that
        repositories in the same group use the same parent directory for their
        management repository directories, the same grandparent directory
        for their package repository directories, the same parent directory
        for their package pool directories and the same parent directory for
        their source pool directories.
      
      tests/config/test_settings.py:
      Add tests for `PackageRepo.get_all_management_repo_dirs()`,
      `PackageRepo.get_all_package_repo_dirs()`,
      `Settings.check_repository_groups_dirs()` and
      `Settings.get_repos_by_group()`.
      c9640228