mirror of https://github.com/ansible/ansible.git
Mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
a84b3a4e72
This change fixes bugs in the manpage generator that existed since it was first added. It exposes CLI `ARGUMENTS` value to manpage templates. Before this change, the code contained a typo, causing the `for`-loop iterate over individual characters of the `'ARGUMENTS'` string rather than iterating over a tuple. A missing comma was at fault. The updated code gets rid of the `for`-loop and conditionals since it seems to have been a premature complexity increase and no other things than `'ARGUMENTS'` were ever added into the broken iterable. The functional change is that `arguments` is now always present in the Jinja2 context, unlike being missing sometimes because of the previous design (not that it was ever present, because of the bug! sigh...) The Jinja2 templates perform an `{% if arguments %}` check, letting the template engine silently ignore the missing variable. The clause was always falsy, meaning that the arguments section was not included in the manpages for at least the last 6 years. With this fix, it will be. This patch also deduplicates calling `opt_doc_list` @ generate_man. It was called late in the execution, more times than necessary. This patch makes sure it happens once by putting it at the top of the scope. It fixes rendering library and inventory in manpages. The corresponding Jinja2 templates have blocks wrapped with conditionals like `{% if inventory %}` and `{% if library %}` but said variables were never injected into the context, nor were they even deduced on the Python side of the generator. This means that the conditional clauses were always falsy, never showing the portions of the manpages. The Python script has hints for how the `inventory` variable was to be calculated, which is confirmed through the Git paleontology efforts. The block of code that references to the `inventory` bit was incorrectly checking a variable with a list of nested objects for the presence of a string which was never going to work. This patch fixes this check by verifying the CLI flag against the correct variable containing a list of options and exposes it to the Jinja2 templates. It also exposes the `library` variable in a similar way. The block displaying other binaries in Sphinx CLI docs has been synchronized with the manpage template. Previously, the current binary was displayed also. This patch gets rid of the unwanted trailing comma there too. Finally, the CLI executables list in the manpage template now reuses the same variable as the RST template that doesn't need any post-processing in Jinja2. Before, it was already used in the RST template so this patch aligns both templates to use the same logic as they got out-of-sync over time. PR #80450. |
2 years ago | |
---|---|---|
.azure-pipelines | 2 years ago | |
.github | 2 years ago | |
bin | ||
changelogs | 2 years ago | |
docs | 2 years ago | |
examples | ||
hacking | 2 years ago | |
lib/ansible | 2 years ago | |
licenses | ||
packaging | 2 years ago | |
test | 2 years ago | |
.cherry_picker.toml | ||
.git-blame-ignore-revs | 2 years ago | |
.gitattributes | ||
.gitignore | ||
.mailmap | ||
COPYING | 2 years ago | |
MANIFEST.in | 2 years ago | |
README.rst | ||
pyproject.toml | 2 years ago | |
requirements.txt | 2 years ago | |
setup.cfg | 2 years ago | |
setup.py |
README.rst
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License| |CII Best Practices| ******* Ansible ******* Ansible is a radically simple IT automation system. It handles configuration management, application deployment, cloud provisioning, ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible `website <https://ansible.com/>`_. Design Principles ================= * Have an extremely simple setup process with a minimal learning curve. * Manage machines quickly and in parallel. * Avoid custom-agents and additional open ports, be agentless by leveraging the existing SSH daemon. * Describe infrastructure in a language that is both machine and human friendly. * Focus on security and easy auditability/review/rewriting of content. * Manage new remote machines instantly, without bootstrapping any software. * Allow module development in any dynamic language, not just Python. * Be usable as non-root. * Be the easiest IT automation system to use, ever. Use Ansible =========== You can install a released version of Ansible with ``pip`` or a package manager. See our `installation guide <https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html>`_ for details on installing Ansible on a variety of platforms. Power users and developers can run the ``devel`` branch, which has the latest features and fixes, directly. Although it is reasonably stable, you are more likely to encounter breaking changes when running the ``devel`` branch. We recommend getting involved in the Ansible community if you want to run the ``devel`` branch. Get Involved ============ * Read `Community Information <https://docs.ansible.com/ansible/latest/community>`_ for all kinds of ways to contribute to and interact with the project, including mailing list information and how to submit bug reports and code to Ansible. * Join a `Working Group <https://github.com/ansible/community/wiki>`_, an organized community devoted to a specific technology domain or platform. * Submit a proposed code update through a pull request to the ``devel`` branch. * Talk to us before making larger changes to avoid duplicate efforts. This not only helps everyone know what is going on, but it also helps save time and effort if we decide some changes are needed. * For a list of email lists, IRC channels and Working Groups, see the `Communication page <https://docs.ansible.com/ansible/latest/community/communication.html>`_ Coding Guidelines ================= We document our Coding Guidelines in the `Developer Guide <https://docs.ansible.com/ansible/devel/dev_guide/>`_. We particularly suggest you review: * `Contributing your module to Ansible <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html>`_ * `Conventions, tips, and pitfalls <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html>`_ Branch Info =========== * The ``devel`` branch corresponds to the release actively under development. * The ``stable-2.X`` branches correspond to stable releases. * Create a branch based on ``devel`` and set up a `dev environment <https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup>`_ if you want to open a PR. * See the `Ansible release and maintenance <https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html>`_ page for information about active branches. Roadmap ======= Based on team and community feedback, an initial roadmap will be published for a major or minor version (ex: 2.7, 2.8). The `Ansible Roadmap page <https://docs.ansible.com/ansible/devel/roadmap/>`_ details what is planned and how to influence the roadmap. Authors ======= Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_ and has contributions from over 5000 users (and growing). Thanks everyone! `Ansible <https://www.ansible.com>`_ is sponsored by `Red Hat, Inc. <https://www.redhat.com>`_ License ======= GNU General Public License v3.0 or later See `COPYING <COPYING>`_ to see the full text. .. |PyPI version| image:: https://img.shields.io/pypi/v/ansible-core.svg :target: https://pypi.org/project/ansible-core .. |Docs badge| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg :target: https://docs.ansible.com/ansible/latest/ .. |Build Status| image:: https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel :target: https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel .. |Chat badge| image:: https://img.shields.io/badge/chat-IRC-brightgreen.svg :target: https://docs.ansible.com/ansible/latest/community/communication.html .. |Code Of Conduct| image:: https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg :target: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html :alt: Ansible Code of Conduct .. |Mailing Lists| image:: https://img.shields.io/badge/mailing%20lists-Ansible-orange.svg :target: https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information :alt: Ansible mailing lists .. |License| image:: https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg :target: COPYING :alt: Repository License .. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/2372/badge :target: https://bestpractices.coreinfrastructure.org/projects/2372 :alt: Ansible CII Best Practices certification