- 05 Sep, 2021 10 commits
-
-
David Runge authored
pyproject.toml: Extend tool.poetry.scripts table to add an entrypoint for `arch-release-sync`.
-
David Runge authored
arch_release_promotion/cli.py: Add `arch_release_sync()` as entrypoint for arch-release-sync, using `files.ProjectFiles.sync()` to synchronize any configured releases for a given project.
-
David Runge authored
arch_release_promotion/files.py: Add `load_release_from_json_payload()` to read a JSON payload and return it as a Release instance. Add the `ProjectFiles` class to aid in the synchronization of promoted release types of a project by bundling all necessary functionality. The special factory method `ProjectFiles.sync()` allows the creation of a `ProjectFiles` instance and direct synchronization of the configured amount of release versions of the project. tests/test_files.py: Add tests for `load_release_from_json_payload()`. Add tests for `ProjectFiles` and all of its classmethods and instance methods.
-
David Runge authored
arch_release_promotion/gitlab.py: Change `Upstream.download_release()` to also print the name of the project.
-
David Runge authored
arch_release_promotion/gitlab.py: Add `download_promotion_artifact()` to allow download of a project release's promotion artifact to a directory. tests/test_gitlab.py: Add tests for `download_promotion_artifact()`.
-
David Runge authored
arch_release_promotion/argparse.py: Add `ArgParseFactory.synchronize()` classmethod to add a simple entrypoint for `arch-release-sync`, that supports the `-p`/`--project` optional parameters and display of version information. tests/test_argparse.py: Add tests for `ArgParseFactory.synchronize()`.
-
David Runge authored
arch_release_promotion/gitlab.py: Change the `Upstream` constructor to accept private_token to be an optional string.
-
David Runge authored
arch_release_promotion/gitlab.py: Add `Upstream.get_releases()` to allow retrieval of promoted or unpromoted releases of an arbitrary upper limit. Change `Upstream.select_release()` to use `Upstream.get_releases()`. tests/test_gitlab.py: Add parametrized test for `Upstream.get_releases()`.
-
David Runge authored
arch_release_promotion/config.py: Change `Settings.PRIVATE_TOKEN` to become an optional attribute, as it is not required for readonly scenarios. Order all `Settings` attributes alphabetically and add documentation for them and their respective default values. Change `Settings.validate_private_token()` to reflect the change in type for `Settings.PRIVATE_TOKEN`. tests/test_config.py: Extend tests to also check for cases where `Settings.PRIVATE_TOKEN` is None.
-
David Runge authored
arch_release_promotion/config.py: Add a `SyncConfig` pydantic model to track a global or per project `backlog` (amount of versions synced), `directory` (with which to synchronize), `last_updated_file` (to which to write a timestamp upon changes in the synchronization directory) and `temp_in_sync_dir` (a bool to set whether temporary data is downloaded to the synchronization directory). Add an optional instance of SyncConfig to both `ProjectConfig` and `Projects`. Add a root_validator to `Projects` to allow overriding the `SyncConfig` of each project with implicit or global defaults if no `SyncConfig` is provided. Add validator for `Projects.projects` to ensure, that all `ReleaseConfig` names of each `ProjectConfig` instances are unique. tests/test_config.py: Extend tests for `Projects` in accordance with changes to models.
-
- 14 Aug, 2021 1 commit
-
-
David Runge authored
* nl6720/gpg-options: signature.py: enforce sane gpg options
-
- 13 Aug, 2021 1 commit
-
-
nl6720 authored
* Add --batch since gpg is not run manually. * Add --no-armor to ensure that a .sig file is created instead of .asc in case gpg.conf sets the armor option. * Add --no-include-key-block to skip including the public key in the signature and force the user who verifies the signature to acquire the public key from elsewhere. Fixes #15.
-
- 09 Aug, 2021 18 commits
-
-
David Runge authored
* origin/issues/14: Increase project version to 0.1.1 pyproject.toml: Add examples to sdist tarball
-
David Runge authored
pyproject.toml: Set project version to 0.1.1
-
David Runge authored
pyproject.toml: Add example files to sdist tarball.
-
David Runge authored
* origin/issues/13: Update poetry lock file pyproject.toml: Update dependency versions pyproject.toml: Add metadata .gitignore: Add dist directory
-
David Runge authored
poetry.lock: Update the poetry lock file by updating all dependencies to their respective latest versions.
-
David Runge authored
pyproject.toml: Update python-dotenv, python-gitlab and orjson to their respective current version.
-
David Runge authored
pyproject.toml: Add project metadata via `readme`, `homepage`, `repository`, `documentation`, `keywords`, `classifiers` and additional links in a `[tool.poetry.urls]` section.
-
David Runge authored
.gitignore: Add the dist directory to the ignore file.
-
David Runge authored
* origin/issues/10: README: Point to example configuration Add an example file for projects configuration README: Change openmetrics section into configuration subsection README: Move "Use" section below "Requirements" section README: Update JSON payload section README: Fix typo in Configuration section README: Add section about promotion artifact Fix releng example configuration
-
David Runge authored
README.rst: Point to the example.toml for documentation purposes.
-
David Runge authored
examples/example.toml: Add a generic example file for project configuration that explains all options.
-
David Runge authored
README.rst: As the openmetrics section is about how to configure openmetrics and projects.toml to retrieve data from a build, it is best kept as a subsection of the configuration section.
-
David Runge authored
README.rst: Move the "Use" section below "Requirements" section, as it was located between sections that are dealing with configuration.
-
David Runge authored
README.rst: Update the JSON payload section to reflect the current settings around metrics and how they are reflected in a JSON payload and update all respective documentation around the payload's attributes. Change the JSON payload section to become a subsection of the "Promotion artifact" section.
-
David Runge authored
README.rst: Fix a typo in the Configuration section explaining that some of the configuration options can also be passed in as environment variables.
-
David Runge authored
README.rst: Add section that explains the common files in a promotion artifact.
-
David Runge authored
examples/projects.toml: Change the releng example configuration to use all relevant metrics, created by the releng releases and to create detached signatures for relevant files per release type.
-
David Runge authored
* origin/issues/4: gitlab-ci: Publish to pypi.org on tag
-
- 08 Aug, 2021 2 commits
-
-
David Runge authored
.gitlab-ci.yml: Add a publish stage, that uses `poetry publish` on a secure runner to push a release to pypi.org upon tagging. For this we make use of an access token configured for the project via the environment variable `POETRY_PYPI_TOKEN_PYPI`.
-
David Runge authored
* origin/issues/5: cli: Change default program behavior to iterate over all projects argparse: Extend to show version and making project optional gitlab: Be explicit during release selection Remove hardcoded version string config: Raise when there are no project configurations
-
- 07 Aug, 2021 5 commits
-
-
David Runge authored
arch_release_promotion/cli.py: Add `promote_project_release()` to promote releases of projects generically. If no `release_version` is provided, user input is requested to select a release that is not yet promoted. Change `main()` to rely on `promote_project_release()` by either promoting a specific release of a project (if the project or the project and the release version are provided) or iterating over all available projects in the configuration to allow the user to promote releases for them.
-
David Runge authored
arch_release_promotion/argparse.py: Change `ArgParseFactory.__init__()` to allow overriding the program name add a `-V`/`--version` argument which may be used to trigger showing the version of the program. Change `ArgParseFactory.promote()` to replace the required `name` argument with the optional `-p`/`--project` argument and adding an optional `-r`/`--release` argument which may be used to override the release version to promote. Print program name and version information and exit early if version information is requested. tests/test_argparse.py: Change tests to accomodate for the new optional arguments. arch_release_promotion/cli.py: Replace the use of `args.name` with `args.project`.
-
David Runge authored
arch_release_promotion/gitlab.py: Change `Upstream.select_release()` to also show the name of the project for which the selection of the release is done.
-
David Runge authored
arch_release_promotion/__init__.py: Remove the hardcoded `__version__` string. We want to rely on importlib metadata in the future.
-
David Runge authored
arch_release_promotion/config.py: Raise RuntimeError if there are no configuration files to be read. tests/test_config.py: Adapt tests for the case where there are no configuration files supplied.
-
- 02 Aug, 2021 1 commit
-
-
David Runge authored
* issues/11: Add documentation on openmetrics examples: Change according to new metrics behavior Read openmetrics of different types
-
- 01 Aug, 2021 2 commits
-
-
David Runge authored
README.rst: Add a section on how and which types of openmetrics are considered to collect version, size, or amount information from a metrics file. Change the JSON payload according to the more diverse set of understood openmetrics.
-
David Runge authored
examples/projects.toml: Change the example configuration to make use of `version_metrics` instead of `info_metrics`.
-