- Jul 01, 2022
-
-
David Runge authored
pyproject.toml: Set project version to 0.1.0-alpha1 for a release.
-
David Runge authored
docs/repod/changelog.rst: Add changelog entry for 0.1.0-alpha1 with date.
-
David Runge authored
tox.ini: Add building of man pages to documentation target.
-
David Runge authored
docs/repod/man/index.rst: Add main include file for all manuals and include the sphinx-argparse rendered manual of repod-file directly. docs/index.rst: Add main include file for manuals to TOC. docs/repod/tooling.rst: Link to the manuals section for further information.
-
David Runge authored
docs/conf.py: Add sphinx-argparse to the list of extensions. Add a man page setup for repod-file.
-
David Runge authored
docs/repod/man/repod_file.rst: Add sphinx-argparse integration for repod-file's ArgumentParser.
-
David Runge authored
repod/cli/argparse.py: Add `sphinx_repod_file()` to return `ArgumentParser.repod_file()` as sphinx-argparse can not call it. tests/cli/test_argparse.py: Add test for `sphinx_repod_file()`.
-
David Runge authored
poetry.lock: Update poetry lock file to include sphinx-argparse.
-
David Runge authored
pyproject.toml: Add sphinx-argparse to development dependencies, so that it can be used when rendering documentation.
-
David Runge authored
docs/packages/contents.rst, docs/repositories/management_repository.rst: Include all JSON schema files from docs/schema. tox.ini: Export all JSON schema files to docs/schema.
-
David Runge authored
.gitignore: Replace `docs/package/schema` and `docs/repositories/schema` with `docs/schema`.
-
David Runge authored
repod/cli/argparse.py: Add flag (`-s`/ `--with-signature`) for signature collection to `repod-file package inspect` and `repod-file package import`. repod/cli/cli.py: Change `repod_file_package()` to more easily collect package signatures by using `args.with_signature`. tests/cli/test_cli.py: Adapt tests to changes in `repod_file_package()` behavior. repod/files/package.py: Change `Package.from_file()` to fail if a signature file does not exist or does not match the package name. tests/files/test_package.py: Adapt tests to changes in `Package.from_file()` behavior. docs/repod/tooling.rst: Adapt documentation to the changes in the CLI options of `repod-file package inspect` and `repod-file package import`.
-
- Jun 30, 2022
-
-
David Runge authored
docs/index.rst: Turn the note about repod being in a pre-release state to a warning about it being alpha grade software.
-
David Runge authored
docs/repod/installation.rst: Mention `repod-file` instead of `db2json`/ `json2db` as the latter are removed. docs/repod/tooling.rst: Replace the documentation for `db2json`/ `json2db` with new documentation on the various subcommands of `repod-file`.
-
David Runge authored
Remove the `db2json` and `json2db` scripts as they have been superseded by `repod-file`.
-
David Runge authored
tests/cli/test_cli.py: Call repod-file instead of db2json and json2db in integration tests.
-
David Runge authored
tox.ini: Use a call to `repod-file schema export` to export the JSON schemas in one command.
-
David Runge authored
repod/cli/argparse.py: Add `ArgParseFactory.repod_file()` to provide an ArgumentParser for the `repod-file` script which provides various functionalities (package, management repository, repository sync database and schemas). Add default argument for indicating the need for debug output. repod/cli/cli.py: Add the `repod_file()`, `repod_file_management()`, `repod_file_package()`, `repod_file_syncdb()` and `repod_file_schema()` functions to provide the calls for functionalities exposed by the `repod-file` script. tests/cli/test_argparse.py: Add tests for `ArgParseFactory.repod_file()`. tests/cli/test_cli.py: Add tests for `repod_file()`, `repod_file_management()`, `repod_file_package()`, `repod_file_syncdb()` and `repod_file_schema()`. repod/cli/__init__.py: Expose `repod.cli.cli.repod_file`. pyproject.toml: Add script repod-file pointing at `repod.cli.cli.repod_file`.
-
David Runge authored
repod/config/defaults.py: Add `DEFAULT_DATABASE_COMPRESSION` to provide a default `CompressionTypeEnum` member.
-
David Runge authored
repod/files/package.py: Lower info call to debug call when logging for checksum creation.
-
David Runge authored
repod/__init__.py: Add a top-level `export_schemas()` function to export the JSON schemas of all repod packages. repod/files/__init__.py: Add a top-level `export_schemas()` function to export the JSON schemas of `repod.files`. repod/repo/__init__.py: Add a top-level `export_schemas()` function to export the JSON schemas of `repod.repo`. repod/repo/management/__init__.py: Expose `repo.repo.management.export_schemas`. repod/repo/package/__init__.py: Expose `repo.repo.package.export_schemas`. tests/*: Add tests for all `export_schemas()` calls.
-
David Runge authored
repod/common/enums.py: Add `CompressionTypeEnum.from_string()` to return a CompressionTypeEnum member by providing a string. Add `CompressionTypeEnum.as_db_file_suffixes()` to return a list of strings representing valid default repository sync database suffixes. Add `CompressionTypeEnum.as_files_file_suffixes()` to return a list of strings representing valid files repository sync database suffixes. tests/common/test_enums.py: Add tests for `CompressionTypeEnum.from_string()`, `CompressionTypeEnum.as_db_file_suffixes()` and `CompressionTypeEnum.as_files_file_suffixes()`.
-
David Runge authored
repod/repo/package/syncdb.py: Return a `List` instead of an `AsyncIterator` over the names and OutputPackageBase tuples, as that is easier to use with `asyncio.run()`. repod/operations.py: Adapt calls to `SyncDatabase.outputpackagebases()` to expect a List and not an AsyncIterator. tests/repo/package/test_syncdb.py: Adapt tests for `SyncDatabase.outputpackagebases()` to reflect the changed return type.
-
David Runge authored
repod/cli/__init__.py: Export repod.cli.cli.db2json and repod.cli.cli.json2db. repod/cli/argparse.py: Change the argparse imports for ArgumentParser and ArgumentTypeError to be top-level, so that they may be reused more easily when importing from repod.cli.argparse. repod/cli/cli.py: Import ArgumentTypeError from repod.cli.argparse instead of argparse to reduce direct imports. tests/cli/test_argparse.py: Use ArgumentTypeError imports from repod.cli.argparse instead of argparse to reduce direct imports. Adapt patch calls to use the correct repod module locations. tests/cli/test_cli.py: Adapt patch calls to use the correct repod module locations.
-
David Runge authored
Move repod/{argparse,cli}.py to repod.cli. Move tests/test_{argparse,cli}.py to tests.cli.
-
David Runge authored
pyproject.toml: Change the project's documentation link to point at https://archlinux.page.
-
David Runge authored
README.md: Fix the markdown link for the published documentation. Make note about the project being alpha grade software more clear and visible.
-
David Runge authored
CONTRIBUTING.md: Add information on how and where to add changelog entries.
-
David Runge authored
Expose docs/repod/changelog.rst as CHANGELOG.rst.
-
David Runge authored
docs/repod/changelog.rst: Add a changelog based on https://keepachangelog.com which tracks the added features of the first released (currently unreleased). docs/repod/changelog.rst: Integrate changelog in the "Using repod" section.
-
- Jun 26, 2022
-
-
David Runge authored
repod/repo/package/syncdb.py: Remove the obsolete `RepoDbMemberType` and `RepoDbMemberData`. Add instance method `SyncDatabase.outputpackagebases()` to be able to return the names of pkgbases and their accompanying OutputPackageBase instances. tests/repo/package/test_syncdb.py: Add test for `SyncDatabase.outputpackagebases()`. repod/files/__init__.py: Remove `_extract_db_member_package_name()` and `_db_file_member_as_model()` as they are superseded by `SyncDatabase.outputpackagebases()`. Remove obsolete imports. Add imports for `BuildInfo`, `MTree`, `MTreeEntry` and `PkgInfo`. repod/operations.py: Remove `db_file_as_models()` as it is superseded by `SyncDatabase.outputpackagebases()`. Replace the use of `db_file_as_models()` with `SyncDatabase.outputpackagebases()`. repod/repo/__init__.py, repod/repo/package/__init__.py: Remove import of removed classes. tests/test_files.py: Remove tests for removed file. tests/test_operations.py: Remove test for removed function.
-
David Runge authored
repod/repo/package/syncdb.py: Add `DB_USER`, `DB_GROUP`, `DB_FILE_MODE` and `DB_DIR_MODE` as they are too specific for repod.config.defaults. Add `SyncDatabase` model that exposes instance and class methods for writing JSON files and `OutputPackageBase` instances to repository sync databases. repod/repo/package/__init__.py: Expose `SyncDatabase`. repod/config/defaults.py: Remove obsolete `DB_USER`, `DB_GROUP`, `DB_FILE_MODE` and `DB_DIR_MODE` defaults. repod/files/__init__.py: Remove the obsolete `_json_files_in_directory()`, `_write_db_file()` and `_stream_package_base_to_db()` functions. repod/operations.py: Replace use of `_json_files_in_directory()`, `_write_db_file()`, `_stream_package_base_to_db()` and `open_tarfile()` with `SyncDatabase` and its instance methods. tests/conftest.py: Replace use of `_json_files_in_directory()`, `_write_db_file()` and `_stream_package_base_to_db()` with `SyncDatabase` and its instance methods. tests/repo/package/test_syncdb.py: Add tests for `SyncDatabase.outputpackagebase_to_tarfile()`, `SyncDatabase.add()` and `SyncDatabase.stream_management_repo()`. tests/test_files.py: Remove tests for removed functions.
-
David Runge authored
repod/repo/management/outputpackage.py: Add the `OutputPackageBase.from_file()` class method to initialize an instance from a JSON file. tests/repo/management/test_outputpackage.py: Add tests for `OutputPackageBase.from_file()`. repod/operations.py: Replace the use of `_read_pkgbase_json_file()` with `OutputPackageBase.from_file()`. repod/files/__init__.py: Remove the obsolete `_read_pkgbase_json_file()`. tests/test_files.py: Remove tests for obsolete `_read_pkgbase_json_file()`.
-
David Runge authored
repod/repo/package/syncdb.py: Add the `Files.from_stream()` and `PackageDesc.from_stream()` class methods to allow creating Files and PackageDesc instances from an I/O stream. tests/repo/package/test_syncdb.py: Add tests for `Files.from_stream()` and `PackageDesc.from_stream()`. repod/operations.py: Change `db_file_as_models()` to use `Files.from_stream()` and `PackageDesc.from_stream()` instead of `convert.file_data_to_model()`. repod/convert.py, tests/test_convert.py: Remove obsolete files.
-
David Runge authored
repod/repo/package/syncdb.py: Add `render()` methods to `PackageDesc` and `Files` to allow instances of them to render their contents to an output stream using a jinja template. tests/repo/package/test_syncdb.py: Add tests for `PackageDesc.render()` and `Files.render()`. repod/convert.py: Remove obsolete `RepoDbFile` class. tests/test_convert.py: Remove `RepoDbFile` related tests. repod/files/__init__.py, tests/conftest.py, tests/test_files.py: Remove the use of `RepoDbFile`. repod/operations.py: Replace use of `RepoDbFile` rendering methods with `PackageDesc` and `Files` instance `render()` methods.
-
David Runge authored
* klausenbusk/pages: Publish documentation to our own documentation domain
-
Kristian Klausen authored
We finally got our own domain (archlinux.page)[1] for project documentation, so let's publish the documentation there. [1] infrastructure!594
-
- Jun 24, 2022
-
-
David Runge authored
repod/files/__init__.py: Do not import top-level from repod.repo.management and repod.convert to circumvent circular import. repod/files/package.py: Change `PackageV1` to also derive from the common models `CSize`, `FileName`, `Md5Sum`, `PgpSig` and `Sha256Sum`, as these fields are required in the context of the management repository. Change `Package.from_file()` to accept a signature file as second argument and to also populate the `csize`, `filename`, `md5sum`, `pgpsig` and `sha256sum` fields. repod/repo/management/outputpackage.py: Add `OUTPUT_PACKAGE_VERSIONS` to track required and optional fields for the derivates of OutputPackage. Add the `OutputPackage.from_package()` classmethod to create a derivate of OutputPackage from a `Package`. Add the `OutputPackageBase.from_package()` classmethod to create a derivate of OutputPackage from a list of `Package` instances. tests/conftest.py: Add session scoped `BuildinfoV1`, `BuildInfoV2`, `PkgInfoV1`, `PkgInfoV2` and `PackageV1` fixtures. Change `default_package_file` fixture to also return a dummy signature file alongside the package file. tests/files/test_common.py: Adapt tests to changed `default_package_file` fixture. tests/files/test_package.py: Adapt tests to changes in `PackageV1` and `Package.from_file()` behavior. tests/repo/management/test_outputpackage.py: Add tests for `OutputPackage.from_package()` and `OutputPackageBase.from_package()`.
-
- Jun 21, 2022
-
-
David Runge authored
repod/common/models.py: Change pgpgsig to Optional[str], as desc files may be created without the %PGPSIG% field. repod/repo/package/syncdb.py: Move pgpsig in PACKAGE_DESC_VERSIONS from required to optional. repod/templates/desc_v1.j2: Change template to only create and populate the %PGPSIG% field if pgpsig is not None. tests/repo/package/test_syncdb.py: Add test case to test_package_desc_from_dict_derive_file_versions() to test the scenario in which no pgpsig is provided. tests/test_convert.py: Change `test_file_data_to_model()` to include a test case in which only the required fields are present (and no pgpsig). Change `test_repodbfile_render_desc_template()` to also include a case in which pgpsig is not used.
-
- Jun 19, 2022
-
-
David Runge authored
repod/repo/package/syncdb.py: Add `FILES_VERSIONS`, `DEFAULT_FILES_VERSION`, `DEFAULT_PACKAGE_DESC_VERSION`, `PACKAGE_DESC_VERSIONS`, `PackageDesc`, `PackageDescV1`, `Files` and `FilesV1`. Import from `repod.repo.management.outputpackage` instead of importing its models top-level to circumenvent circular import. repod/repo/management/outputpackage.py: Remove `FILES_VERSIONS`, `DEFAULT_FILES_VERSION`, `DEFAULT_PACKAGE_DESC_VERSION`, `PACKAGE_DESC_VERSIONS`, `PackageDesc`, `PackageDescV1`, `Files` and `FilesV1`. repod/cli.py: Import RepoDbTypeEnum top-level. repod/convert.py: Import functions and classes from `repod.repo.package` top-level. repod/files/__init__.py: Import functions and classes from `repod.repo.package` and `repod.repo.management` top-level. repod/operations.py: Import functions and classes from `repod.convert`, `repod.repo.package` and `repod.repo.management` top-level. repod/repo/__init__.py: Import from `repod.repo.package` and `repod.repo.management` to expose them top level in the `repod.repo` package. repod/repo/management/__init__.py: Import from `repod.repo.management.outputpackage` to expose them top level in the `repod.repo.management` package. repod/repo/package/__init__.py: Import from `repod.repo.management.syncdb` to expose them top level in the `repod.repo.package` package. tests/common/test_models.py: Add tests for `BuildDate`, `CSize`, `FileList`, `Name` and `Packager` from the removed tests/test_models.py. tests/conftest.py: Import repo related classes top-level from their respective new locations. tests/test_cli.py: Import `RepoDbTypeEnum` top-level from its new location. tests/test_convert.py: Import `repod.repo.package` and `repod.repo.package.syncdb` classes top-level. tests/test_files.py: Import `repod.repo.management.outputpackage` and `repod.repo.package` classes top-level. tests/test_models.py: Remove obsolete tests. They have been distributed in the tests for the split repo functionality and the common models. tests/test_operations.py: Import `OutputPackageBaseV1` top-level from its new location. tests/repo/management/test_outputpackage.py: Add tests for all classes and functions in `repod.repo.management.outputpackage`. tests/repo/package/test_syncdb.py; Add tests for all classes and functions in `repod.repo.package.syncdb`. tox.ini: Export the JSON schema for repod.repo subpackages for the docs.
-