- 18 Jun, 2022 2 commits
-
-
Leonidas Spyropoulos authored
Signed-off-by:
Leonidas Spyropoulos <artafinde@archlinux.org>
-
David Runge authored
repod/config/settings.py: Add the top-level validator function `validate_directory()` instead of relying on a Directory model and a pydantic validator. This way it is possible to set a default for ManagementRepo.directory. Remove unneeded Directory model. tests/config/test_settings.py: Adapt tests for `Directory.validate_directory()` for `validate_directory()`.
-
- 17 Jun, 2022 8 commits
-
-
Levente Polyak authored
There were multiple shortcomings with the current implementation compared to the behavior of the official libalpm implementation. One of the primary differences requires a version segment to be handled chunk by chunk whether its numeric or none numeric. Furthermore differences in segment separators (none alpha-numeric characters) requires special handling to get the same results as libalpm. As there are just too many edge cases this changes implements the original libalpm vercmp algorithm as is. Furthermore move everything out of `models.py` into an own version module which is included. This will make it tremendously easier to potentially support multiple version schemas for different consumers in the future. Fixes #63 Signed-off-by:
Levente Polyak <anthraxx@archlinux.org>
-
David Runge authored
tests/common/test_regex.py: Test against valid/invalid compression type fixtures in regular expression tests.
-
David Runge authored
tests/conftest.py: Add session wide fixtures for valid/ invalid compression types.
-
David Runge authored
repod/common/enums.py: Change return value of `tar_compression_types_for_filename_regex()` to properly match dot prefixed file endings (e.g. `.gz`) and not any other prefix character.
-
David Runge authored
tox.ini: Increase the verbosity of integration test runs again.
-
David Runge authored
tests/files/test_{buildinfo,mtree}.py: Lookup local packages for tests in a compression type agnostic fashion (using all supported compression types).
-
It's nice to support both modules that stand in conflict with each other. Instead of forcing a specific implementation, we instead provide a tiny compatibility check and act differently while loading the string representation of the file type. Signed-off-by:
Levente Polyak <anthraxx@archlinux.org>
-
-
- 16 Jun, 2022 2 commits
-
-
David Runge authored
repod/common/enums.py: Improve the documentation for CompressionTypeEnum to reflect that it is now a string based enum with values representing possible file suffixes.
-
David Runge authored
repod/config/settings.py: Remove the leading underscore from all config helper functions. It serves no purpose and they are not exposed when importing from repod.config.
-
- 15 Jun, 2022 6 commits
-
-
David Runge authored
repod/config/settings.py: Use `repod.config.defaults.MANAGEMENT_REPO` as default directory for the `ManagementRepo` model.
-
David Runge authored
repod/models/config.py: Remove config models, as they are now part of repod.config.settings. repod/models/__init__.py: Remove exposure of (now non-existent) config models. tests/test_models.py: Remove tests for config models.
-
David Runge authored
repod/config/settings.py: Copy `Architecture`, `Directory`, `ManagementRepo`, `PackagePool`, `PackageRepo`, `SourcePool` to repod.config.settings as they are only used in that context. tests/config/test_settings.py: Copy tests for added models.
-
David Runge authored
-
David Runge authored
repod/config/__init__.py: Add init file to expose the `repod.config.settings.Settings`. repod/config/settings.py: Turn imports from `repod.config.defaults` and `repod.models` into top-level imports. repod/files/__init__.py: Turn imports from `repod.config.defaults` into top-level imports. tests/config/test_config.py: Adapt import location for `repod.config.settings`.
-
David Runge authored
Move the configuration related files config.py and defaults.py to a dedicated config module to be able to expose only parts of the functionality when importing it. Move tests to dedicated location for config.
-
- 14 Jun, 2022 12 commits
-
-
David Runge authored
docs/packages/contents.rst: Add documentation about .PKGINFO files, including JSON schema for PkgInfo.
-
David Runge authored
tox.ini: Also export the PkgInfo JSON schema when creating documentation.
-
David Runge authored
repod/files/pkginfo.py: Add a .PKGINFO parser, which fully validates files of version 1 and of version 2 (with pkgtype). tests/files/test_pkginfo.py: Add unit and integration tests for .PKGINFO parser.
-
David Runge authored
repod/common/enums.py: Add `PkgTypeEnum` to distinguish different types of pkgtype values. Add `pkg_types_for_pkgtype_regex()` to provide a string for the PKGTYPE regular expression. repod/common/regex.py: Add the `PKGTYPE` regular expression, which makes use of `repod.common.enums.pkg_types_for_pkgtype_regex`. tests/common/test_regex.py: Add tests for PKGTYPE regular expression. tests/conftest.py: Add defaults and specific fixtures for pkgtype. Add fixtures for default version. Add fixtures for creating .PKGINFO strings and files of version one and two.
-
David Runge authored
repod/common/models.py: Add the pydantic model `SchemaVersionV2` to track a schema version two in composite models.
-
David Runge authored
.readthedocs.yaml: Also install poetry so that all required packages can be installed using tox and poetry.
-
David Runge authored
repod/common/models.py: Attempt to import pyalpm's `vercmp()` and use it in `PkgVer.vercmp()` and `Version.vercmp()` instead of the builtin implementation if it is available. tests/common/test_models.py: Parametrize tests for `PkgVer.vercmp()` and `Version.vercmp()` further so that they can run against pyalpm's `vercmp()` and the builtin implementation.
-
David Runge authored
tox.ini: Call poetry in tox.ini again, as this way we can ensure to install all packages based on the lock file. Additionally, this allows to properly and selectively install extras, required e.g. by the coverage target (as to not install pyalpm for all targets). .gitlab-ci.yml: Install python-poetry to test environment. pyproject.toml: Add setuptools to build requirements because of bug in pip: https://github.com/pypa/pip/issues/6100
-
David Runge authored
pyproject.toml: Add pyalpm as optional extra feature. poetry.lock: Update poetry lock file.
-
David Runge authored
pyproject.toml: Remove pyalpm from project requirements poetry.lock: Update poetry lock file to not include pyalpm anymore.
-
David Runge authored
repod/common/models.py: Replace the use pyalpm's `vercmp()` with the internal one. tests/common/test_models.py: Add tests for `Version.is_{newer,older}_than()`. tests/test_models.py: Remove redundant/ superseded tests for `Version` and `Version.is_{newer,older}_than()`.
-
David Runge authored
repod/common/models.py: Add the `Epoch`, `PkgRel` and `PkgVer` models, which implement epoch, pkgrel and pkgver (respectively) and allow comparision via a `vercmp()` instance method. Add helper methods `get_epoch()`, `get_pkgrel()` and `get_pkgver()` to the `Version` model to be able to retrieve the respective subsets. Add native `vercmp()` method to `Version` model to allow comparison amongst instances of the model. tests/common/test_models.py: Add tests for the `Epoch`, `PkgRel`, `PkgVer` and `Version` models.
-
- 13 Jun, 2022 2 commits
-
-
David Runge authored
* artafinde/cleanup-self-cls: Use `cls` argument for class methods
-
Leonidas Spyropoulos authored
-
- 12 Jun, 2022 5 commits
-
-
David Runge authored
.gitlab-ci.yml: On pushes to master trigger a call to the readthedocs API using a token and a project ID.
-
David Runge authored
.readthedocs.yaml: Add configuration file for integration with https://readthedocs.org.
-
David Runge authored
tests/test_cli.py: Add helper function `list_databases()` to list packages and files contained in a temporary sync database called `tmp`. Extend `test_transform_{core,extra,community,multilib}_databases()` to call `list_databases()` for testing the temporarily created sync dbs with pacman. Remove the superseded `test_transform_databases_and_use_with_pacman()`.
-
David Runge authored
tests/conftest.py: Add fixture `empty_syncdbs` to create empty files to be used as sync databases in an appropriate `pacman/sync/` subdirectory of a temporary dir.
-
David Runge authored
.gitlab-ci.yml: Add the [multilib] repository to the CI environment so that it can be used in integration tests.
-
- 09 Jun, 2022 3 commits
-
-
David Runge authored
* artafinde/eliminate-legacy-tmpdir: Replace legacy tmpdir with tmp_path Ignore jetbrains family IDE files and junit report
-
Leonidas Spyropoulos authored
Fixes: #56
-
Leonidas Spyropoulos authored
-