Package: antsibull
antsibull -- Ansible Build ScriptsTooling for building various things related to AnsibleScripts that are here:antsibull-build - Builds Ansible-2.10+ from component collections (docs)Related projects areantsibull-changelogandantsibull-docs, which are in their own repositories (antsibull-changelog repository,antsibull-docs repository). Currently antsibull-changelog is a dependency of antsibull. Therefore, the scripts contained in it will be available as well when installing antsibull.You can find a list of changes inthe Antsibull changelog.antsibull is covered by theAnsible Code of Conduct.LicensingThis repository abides by theREUSE specification.
See the copyright headers in each file for the exact license and copyright.
Summarily:The default license is the GNU Public License v3+
(GPL-3.0-or-later).src/antsibull/_vendor/shutil.pyincludes code derived from CPython, licensed
under the Python 2.0 License (Python-2.0.1).Versioning and compatibilityFrom version 0.1.0 on, antsibull sticks to semantic versioning and aims at providing no backwards compatibility breaking changesto the command line API (antsibull)during a major release cycle. We might make exceptions from this in case of security fixes for vulnerabilities that are severe enough.We explicitly exclude code compatibility.antsibull is not supposed to be used as a library.The only exception are potential dependencies with other antsibull projects (currently, none). If you want to use a certain part of antsibull as a library, please create an issue so we can discuss whether we add a stable interface forpartsof the Python code. We do not promise that this will actually happen though.DevelopmentInstall and runnoxto run all tests. That's it for simple contributions!noxwill create virtual environments in.noxinside the checked out project
and install the requirements needed to run the tests there.antsibull depends on the sister antsibull-core and antsibull-changelog projects.
By default,noxwill install development versions of these projects from
Github.
If you're hacking on antsibull-core or antsibull-changelog alongside antsibull,
nox will automatically install the projects from../antsibull-coreand../antsibull-changelogwhen running tests if those paths exist.
You can change this behavior through theOTHER_ANTSIBULL_MODEenv var:OTHER_ANTSIBULL_MODE=auto— the default behavior described aboveOTHER_ANTSIBULL_MODE=local— install the projects from../antsibull-coreand../antsibull-changelog. Fail if those paths don't exist.OTHER_ANTSIBULL_MODE=git— install the projects from the Github main branchOTHER_ANTSIBULL_MODE=pypi— install the latest version from PyPITo run specific tests:nox -e testto only run unit tests;nox -e lintto run all linters;nox -e formattersto runisortandblack;nox -e codeqato runflake8,pylint,reuse lint, andantsibull-changelog lint;nox -e typingto runmypyandpyre.nox -e coverage_releaseto build a test ansible release.
This is expensive, so it's not run by default.nox -e check_package_filesto run the generate-package-files integration tests.
This is somewhat expensive and thus not run by default.nox -e coverageto display combined coverage results after runningnox -e test coverage_release check_package_files;Runnox -lto list all test sessions.To create a more complete local development env:git clone https://github.com/ansible-community/antsibull-changelog.gitgit clone https://github.com/ansible-community/antsibull-core.gitgit clone https://github.com/ansible-community/antsibull.gitcd antsibullpython3 -m venv venv. ./venv/bin/activatepip install -e '.[dev]' -e ../antsibull-changelog -e ../antsibull-core[...]noxCreating a new release:Runnox -e bump -- <version> <release_summary_message>. This:Bumps the package version inpyproject.toml.Createschangelogs/fragments/<version>.ymlwith arelease_summarysection.Runsantsibull-changelog releaseand adds the changed files to git.Commits with messageRelease <version>.and runsgit tag -a -m 'antsibull <version>' <version>.Runshatch build --cleanto build an sdist and wheel indist/and
clean up any old artifacts in that directory.Rungit pushto the appropriate remotes.Once CI passes on GitHub, runnox -e publish. This:Runshatch publishto publish the sdist and wheel generated during step 1 to PyPI;Bumps the version to<version>.post0;Adds the changed file to git and runsgit commit -m 'Post-release version bump.';Rungit push --follow-tagsto the appropriate remotes and create a GitHub release.