1. 29 Sep, 2022 2 commits
    • David Runge's avatar
      Changelog entry for symlink from package name to pkgbase · a99a02df
      David Runge authored
      docs/repod/changelog.rst:
      Add changelog entry for symlink from package name to pkgbase in
      management repository.
      a99a02df
    • David Runge's avatar
      Symlinks from pkgnames to pkgbases in management repo · 3b5d86b1
      David Runge authored
      repod/action/task.py:
      Change `WriteOutputPackageBasesToTmpFileInDirTask` to create a
      subdirectory named "pkgname" in the management repository directory of a
      repository and to add symlinks from the names of the packages of an
      `OutputPackageBase` to its pkgbase into it.
      Change `WriteOutputPackageBasesToTmpFileInDirTask` to expose the created
      temporary files as absolute Paths in its filename attribute.
      Change `MoveTmpFilesTask.do()` to use filenames of
      `WriteOutputPackageBasesToTmpFileInDirTask` instances directly, as they
      are now absolute Paths.
      
      tests/action/test_task.py:
      Change `test_movetmpfilestask_do()` to correctly work with the fact that
      `WriteOutputPackageBasesToTmpFileInDirTask.filenames` now represent
      absolute Paths.
      Change `test_writeoutputpackagebasestotmpfileindirtask_do()` to
      correctly work with the fact that
      `WriteOutputPackageBasesToTmpFileInDirTask.filenames` now represent
      absolute Paths.
      Change `test_printoutputpackagebasestask()` to ignroe
      comparison-overlap.
      3b5d86b1
  2. 28 Sep, 2022 8 commits
    • David Runge's avatar
      Change integration test setup for architecture check · 1c99582c
      David Runge authored
      tests/cli/test_cli.py:
      Change integration test `test_import_into_default_repo()` to use a fixed
      CPU architecture of `x86_64` for the test target repository, as the
      default (`any`) would break in the test (CPU architecture specific
      packages can not be added to a repository of type `any`).
      1c99582c
    • David Runge's avatar
      Add changelog entry for adding check against target CPU architecture · e40c63f7
      David Runge authored
      docs/repod/changelog.rst:
      Add changelog entry for adding check against target CPU architecture
      e40c63f7
    • David Runge's avatar
      Change CLI to validate package target architecture · 64346ead
      David Runge authored
      repod/cli/cli.py:
      Change instantiation of `CreateOutputPackageBasesTask` to include the
      new `architecture` parameter by setting it with the help of
      `Settings.get_repo_architecture()`.
      
      tests/cli/test_cli.py:
      Change tests to accomodate additional requirements in regards to the
      Namespace object used in the tests.
      64346ead
    • David Runge's avatar
      Add architecture check to CreateOutputPackageBasesTask · 63b5450f
      David Runge authored
      repod/action/task.py:
      Change `CreateOutputPackageBasesTask` by adding
      `MatchingArchitectureCheck` to its list of post_checks, which will test
      whether all consumed packages match a given target architecture (that of
      a repository).
      
      tests/action/test_task.py:
      Change tests for `CreateOutputPackageBasesTask` to accomodate the
      additional `architecture` parameter.
      63b5450f
    • David Runge's avatar
      Add check for verifying that packages match a target architecture · a1388381
      David Runge authored
      repod/action/check.py:
      Add `MatchingArchitectureCheck` to test whether a set of Package
      instances matches a target CPU architecture and fail otherwise.
      
      tests/action/test_check.py:
      Add tests for `MatchingArchitectureCheck`.
      a1388381
    • David Runge's avatar
      Add settings method to retrieve architecture of repo · afe52342
      David Runge authored
      repod/config/settings.py:
      Add `Settings.get_repo_architecture()` to retrieve a repository's
      architecture. This method is mostly useful if the architecture is not
      provided externally.
      
      tests/config/test_settings.py:
      Add tests for `Settings.get_repo_architecture()`.
      afe52342
    • David Runge's avatar
      Rename RepoTypeEnum to RepoDirTypeEnum · 4b2914ec
      David Runge authored
      As the Enum is used to describe types of directories and not types of
      repositories, it is renamed to reflect its use.
      4b2914ec
    • David Runge's avatar
      Add more strict mypy rules, sort alphabetically · df8a8782
      David Runge authored
      pyproject.toml:
      Sort mypy configuration options alphabetically.
      Add `allow_redefinition = false` to not allo redefinitions of variables.
      Add `ignore_errors = false` to explicitly not ignore errors.
      Add `local_partial_types = false` to explicitly disallows inferring
      variable type for `None` from two assignments in different scopes.
      Add `strict_equality = true` to prohibit equality checks, identity
      checks, and container checks between non-overlapping types.
      Add `strict_optional = true` for explicit strict optional checks.
      df8a8782
  3. 27 Sep, 2022 11 commits
  4. 14 Sep, 2022 3 commits
  5. 13 Sep, 2022 5 commits
    • David Runge's avatar
      Add Checks and Tasks to describe transactions · 3bb5cd2d
      David Runge authored
      repod/action/check.py:
      Add the abstract base class `Check` to describe checks generically.
      Add `PacmanKeyPackagesSignatureVerificationCheck`, which implements the
      verification of packages using pacman-key.
      Add `DebugPackagesCheck`, to implement a check for default or debug
      packages in a list of packages.
      
      repod/action/task.py:
      Add `SourceDestination` as model to validate a set of source and
      destination Paths.
      Add the abstract base class `Task` to describe transactional tasks
      generically. Tasks may have pre and post checks.
      Add `CreateOutputPackageBasesTask`, to implement the creation of
      `OutputPackageBase` instances from file.
      Add `PrintOutputPackageBasesTask`, to implement the printing of the JSON
      representation of `OutputPackageBase` instances to stdout.
      Add `WriteOutputPackageBasesToTmpFileInDirTask`, which allows writing
      `OutputPackageBase` instances to a temporary JSON file in a directory.
      Add `MoveTmpFilesTask`, which allows for moving a temporary file to a
      destination, while potentially preserving a backup copy of the
      destination.
      Add `FilesToRepoDirTask`, which allows for copying package repository
      related files to a package pool directory and creating symlinks in the
      targeted package repository directory.
      Add `AddToRepoTask` as a wrapper Task to move package files to a
      repository, while only relying on dependency Tasks.
      
      tests/action/test_{check,task}.py:
      Add tests for all checks, except the ABC, as those can not be directly
      instantiated.
      3bb5cd2d
    • David Runge's avatar
      Add default orjson options for management repository · 979282a5
      David Runge authored
      repod/repo/management/__init__.py:
      Add default orjson options `ORJSON_OPTION` for JSON files in the
      management repository.
      979282a5
    • David Runge's avatar
      Add ActionTypeEnum for Checks and Tasks · 60d36282
      David Runge authored
      repod/common/enums.py:
       Add ActionTypeEnum to describe the states for Checks and Tasks.
      60d36282
    • David Runge's avatar
      Add function to return filename based metadata · 52e361e5
      David Runge authored
      repod/repo/package/repofile.py:
      Add `filename_parts()` to return a dict of metadata based on the
      filename of a package.
      
      tests/repo/package/test_repofile.py:
      Add tests for `filename_parts()`.
      52e361e5
    • David Runge's avatar
      Fix lists in documentation · 25078535
      David Runge authored
      docs/{contributing,repod/usage}.rst:
      Fix lists in documentation by adding a trailing empty line.
      25078535
  6. 12 Sep, 2022 6 commits
  7. 11 Sep, 2022 5 commits