Skip to content

Latest commit

 

History

History
710 lines (477 loc) · 38.5 KB

CHANGELOG.rst

File metadata and controls

710 lines (477 loc) · 38.5 KB

antsibull-docs -- Ansible Documentation Build Scripts Release Notes

Topics

v2.11.0

Release Summary

Feature and bugfix release.

Minor Changes

  • Support examples for role entrypoints (#244).

Bugfixes

  • Fix handling of choices that are dictionaries for type=list (#276).
  • Fix handling of default for type=list if choices is present (#276).

v2.10.0

Release Summary

Bugfix and feature release.

Minor Changes

  • It is now possible to render the collection changelog as part of the collection docsite by using the changelog option in docs/docsite/config.yml (#31, #267).

Bugfixes

  • Fix internal links to options and return values in simplified RST output (#269).
  • Include role in role attribute references (#269).

v2.9.0

Release Summary

Maintenance release.

Minor Changes

  • Add support for the antsibull-core v3 (#261).

v2.8.0

Release Summary

Bugfix and feature release.

Minor Changes

  • Add support for "dark mode" to the option table styling (#253, #258).
  • Add support for the latest antsibull-core v3 pre-release, 3.0.0a1 (#250).
  • Declare support for Python 3.12 (#255).
  • The colors used by the CSS provided by the Antsibull Sphinx extension can now be overridden (#254).

Bugfixes

  • Fix duplicate docs detection (for aliases) for latest ansible-core devel (#257).

v2.7.0

Release Summary

Bugfix and refactoring release.

Minor Changes

  • Explicitly set up Galaxy context instead of relying on deprecated functionality (#234).

Bugfixes

  • Fix schema for seealso in role entrypoints. Plugin references now work (#237, #240).
  • Make error reporting for invalid references in plugin seealso entries more precise (#240).
  • Support new ansible-doc --json output field plugin_name (#242).
  • Use certain fields from library context instead of app context that are deprecated in the app context and will be removed from antsibull-core 3.0.0 (#233).

v2.6.1

Release Summary

Bugfix release.

Bugfixes

  • For role argument specs, allow author, description, and todo to be a string instead of a list of strings, similarly as with ansible-doc and with modules and plugins (#227).
  • Make sure that title underlines have the correct width for wide Unicode characters (#228, #229).

v2.6.0

Release Summary

Fix parsing of EXAMPLES and improve error message

Minor Changes

  • Improve error messages when calls to ansible-doc fail (#223).

Bugfixes

  • When EXAMPLES has the format specified by # fmt: <format>, this value is used to determine the code block type (#225).

v2.5.0

Release Summary

Release to support the updated Ansible Galaxy codebase.

Minor Changes

  • The default collection URL template has been changed from https://galaxy.ansible.com/{namespace}/{name} to https://galaxy.ansible.com/ui/repo/published/{namespace}/{name}/ to adjust for the Galaxy codebase change on September 30th, 2023 (#147, #220).

v2.4.0

Release Summary

Bugfix and feature release. Improves support for other builders than html.

There will be a follow-up release after Ansible Galaxy switched to the new galaxy_ng codebase, which is scheduled for September 30th. That release will only adjust the URLs to Galaxy, except potentially bugfixes.

Minor Changes

  • Add basic support for other HTML based Sphinx builders such as epub and singlehtml (#201).
  • Adjust default RST output to work better with Spinx's LaTeX builder (#195).
  • Allow specifying wildcards for the collection names for the collections subcommand if --use-current is specified (#219).
  • Antsibull-docs now depends on antsibull-core >= 2.1.0 (#209).
  • Create collection links with a custom directive. This makes them compatible with builders other than the HTML builder (#200).
  • Fix indent for nested options and return values with Spinx's LaTeX builder (#198).
  • Improve linting of option and return value names in semantic markup with respect to array stubs: forbid array stubs for dictionaries if the dictionary is not the last part of the option (#208).
  • Improve the info box for ansible.builtin plugins and modules to explain FQCN and link to the collection keyword docs (#218).
  • Improve the info box for modules, plugins, and roles in collections to show note that they are not included in ansible-core and show instructions on how to check whether the collection is installed (#218).
  • Insert the antsibull-docs version as a comment or metadata into the generated files (#205).
  • Make sure that the antsibull Sphinx extension contains the correct version (same as antsibull-docs itself) and licensing information (GPL-3.0-or-later), and that the version is kept up-to-date for new releases (#202).
  • Move roles from templates and structural styling from stylesheet to antsibull Sphinx extension. This makes sure that HTML tags such as <strong> and <em> are used for bold and italic texts, and that the same formattings are used for the LaTeX builder (#199).
  • Support multiple filters in ansible-doc of ansible-core 2.16 and later. This makes building docsites and linting more efficient when documentation for more than one and less than all installed collections needs to be queried (#193, #213).
  • The current subcommand now has a --skip-ansible-builtin option which skips building documentation for ansible.builtin (#215).
  • Use same colors for LaTeX builder's output as for HTML builder's output (#199).

Deprecated Features

  • The --use-html-blobs feature that inserts HTML blobs for the options and return value tables for the ansible-docsite output format is deprecated and will be removed soon. The HTML tables cause several features to break, such as references to options and return values. If you think this feature needs to stay, please create an issue in the antsibull-docs repository and provide good reasons for it (#217).

Bugfixes

  • Document and ensure that the collection subcommand with --use-current can only be used with collection names (#214).
  • Fix FQCN detection (#214).
  • The collection subcommand claimed to support paths to directories, which was never supported. Removed the mention of paths from the help, and added validation (#214).
  • The plugin subcommand claimed to support paths to plugin files, which was never supported. Removed the mention of paths from the help (#214).
  • When running antsibull-docs --help, the correct program name is now shown for the --version option (#209).
  • When running antsibull-docs --version, the correct version is now shown also for editable installs and other installs that do not allow importlib.metadata to show the correct version (#209).
  • When using the action_group or platform attributes in a role, a RST symbol was used that was not defined (#206).

Known Issues

  • When using Sphinx builders other than HTML and LaTeX, the indentation for nested options and return values is missing (#195).

v2.3.1

Release Summary

Bugfix release with a CSS fix for the Sphinx extension.

Bugfixes

  • Fix antsibull Sphinx extension CSS so that the option/return value anchors for module/plugin/role documentation can also be used on WebKit-based browsers such as Gnome Web and Safari (#188, #189).

v2.3.0

Release Summary

Bugfix and feature release.

Minor Changes

  • Add a :ansplugin: role to the Sphinx extension. This allows to reference a module, plugin, or role with the fqcn#type syntax from semantic markup instead of having to manually compose a ansible_collections.{fqcn}_{type} label. An explicit reference title can also be provided with the title <fqcn#type> syntax similar to the :ref: role (#180).
  • Add a new subcommand lint-core-docs which lints the ansible-core documentation (#182).
  • Add a new subcommand, collection-plugins, for rendering files for all plugins and roles in a collection without any indexes (#177).
  • Add support for different output formats. Next to the default format, ansible-docsite, a new experimental format simplified-rst is supported. Experimental means that it will likely change considerably in the next few releases until it stabilizes. Such changes will not be considered breaking changes, and could potentially even be bugfixes (#177).
  • Use Dart sass compiler instead of sassc to compile CSS for Sphinx extension (#185, #186).
  • When parsing errors happen in the Sphinx extension, the extension now emits error messages during the build process in addition to error markup (#187).

Bugfixes

  • Consider module/plugin aliases when linting references to other modules and plugins (#184).
  • Make sure that all aliases are actually listed for plugins (#183).
  • When looking for redirects, the aliases field and filesystem redirects in ansible-core were not properly considered. This ensures that all redirect stubs are created, and that no duplicates show up, not depending on whether ansible-core is installed in editable mode or not (#183).

v2.2.0

Release Summary

Bugfix and feature release improving rendering and linting.

Minor Changes

  • Collection docs linter - also validate seealso module and plugin destinations (#168, #171).
  • When linting collection plugin docs, make sure that array stubs [...] are used when referencing sub-options or sub-return values inside lists, and are not used outside lists and dictionaries (#173).

Bugfixes

  • Fix the way the Sphinx extension creates nodes for options and return values so they look identical for internal references, external (intersphinx) references, and unresolved references (#175).
  • Make sure that :ansopt: and :ansretval: create the same references as the labels created in the RST files (#167, #172).
  • Make sure that broken :ansopt: and :ansretval: parameters result in correctly rendered error messages (#175).
  • When trying to copying descriptions of non-existing plugins to seealso, references to these non-existing plugins were added in some cases, crashing the docs augmentation process (#169).

v2.1.0

Release Summary

Feature and bugfix release with many improvements related to semantic markup and validation.

Minor Changes

  • Add option --disallow-unknown-collection-refs to disallow references to other collections than the one covered by --validate-collection-refs (#157).
  • Add option --validate-collection-refs to the lint-collection-docs subcommand to also control which references to plugin/module/role names in (other) collections and their options and return values should be validated (#157).
  • Add the new collection config field envvar_directives which allows to declare which environment variables are declared with an .. envvar:: directive in the collection's extra docsite documentation. This is used, next to the plugin configuration information and the ansible-core configuration information, to determine whether an environment variable is referencable or not (#166).
  • Add the roles :ansenvvar: and :ansenvvarref: to the antsibull-docs Sphinx extension (#166).
  • Render E(...) markup with :ansenvvarref: or :ansenvvar: depending on whether the environment variable is known to be referencable or not (#166).
  • When linting markup in collection docs, validate plugin/module/role names, and also option/return value names for other plugins/modules/roles in the same collection, (transitively) dependent collections, and ansible.builtin (#157).
  • When linting semantic markup in collection docs, also accept aliases when checking O() values (#155).
  • When refering to markup in multi-paragraph texts, like description, now includes the paragraph number in error messages (#163).

Bugfixes

  • Allow role entrypoint deprecations without having to specify the collection the role is removed from (#156).
  • Indent module/plugin and role entrypoint deprecations correctly if 'Why' or 'Alternative' texts need more than one line (#156).
  • When collecting collection dependencies for the lint-collection-docs subcommand, a bug prevented the duplicate detection to work (#160).

v2.0.0

Release Summary

Major new release that drops support for older Python and Ansible/ansible-base/ansible-core versions.

Major Changes

  • Change pyproject build backend from poetry-core to hatchling. pip install antsibull-docs works exactly the same as before, but some users may be affected depending on how they build/install the project (#115).

Minor Changes

  • Allow to use the currently installed ansible-core version for the devel and stable subcommands (#121).
  • Ansibull-docs now no longer depends directly on sh (#122).
  • Bump version range of antsibull-docs requirement written by sphinx-init subcommand to >= 2.0.0, < 3.0.0. Previously, this was set to >=2.0.0a2, <3.0.0 (#151).
  • Now depends antsibull-core 2.0.0 or newer; antsibull-core 1.x.y is no longer supported (#122).
  • Remove residual compatability code for Python 3.6 and 3.7 (https://github.com/ansible-community/antsibull-docs/pulls/70).
  • Support a per-collection docs config file docs/docsite/config.yml. It is also linted by the lint-collection-docs subcommand (#134).
  • The antsibull-docs requirement in the requirements.txt file created by the sphinx-init subcommand now has version range >= 2.0.0, < 3.0.0 (#126).
  • The dependency antsibull-docs-parser has been added and is used for processing Ansible markup (#124).

Breaking Changes / Porting Guide

  • Disable flatmapping for all collections except community.general < 6.0.0 and community.network < 5.0.0. You can enable flatmapping for your collection by setting flatmap: true in docs/docsite/config.yml (#134).
  • Drop support for Python 3.6, 3.7, and 3.8 (#115)."
  • No longer removes PYTHONPATH from the environment when calling ansible, ansible-galaxy, or ansible-doc outside a self-created venv (#121).
  • No longer supports Ansible 2.9, ansible-base 2.10, and ansible-core 2.11 and 2.12. The minimum required ansible-core version is 2.13. This allows for simpler and more efficient docs parsing and information retrieval (#120).
  • The ansible-doc and ansible-internal values for doc_parsing_backend in the configuration file have been removed. Change the value to auto for best compatibility (#120).

Bugfixes

  • Bump version range of antsibull-docs requirement written by sphinx-init subcommand to >= 2.0.0a2, < 3.0.0. Previously, this was set to >=2.0.0, <3.0.0 which could not be satisfied (#149).
  • Use doc_parsing_backend from the application context instead of the library context. This prevents removal of doc_parsing_backend from the antsibull-core library context (#125).

v1.11.0

Release Summary

Feature release.

Minor Changes

  • Add support for semantic markup in roles (#113).
  • Internal refactoring of markup code (#108).
  • The lint-collection-docs subcommand can be told not to run rstcheck when --plugin-docs is used by passing --skip-rstcheck. This speeds up testing for large collections (#112).
  • The lint-collection-docs subcommand will now also validate Ansible markup when --plugin-docs is passed. It can also ensure that no semantic markup is used with the new --disallow-semantic-markup option. This can for example be used by collections to avoid semantic markup being backported to older stable branches (#112).

v1.10.0

Release Summary

Bugfix and feature release.

Major Changes

  • Support new semantic markup in documentation (#4).

Minor Changes

  • Add a note about the ordering of positional and named parameter to the plugin page. Also mention positional and keyword parameters for lookups (#101).
  • Update schema for roles argument spec to allow specifying attributes on the entrypoint level. These are now also rendered when present (#103).

Bugfixes

  • Explicitly declare the sh dependency and limit it to before 2.0.0. Also explicitly declare the dependencies on pydantic, semantic_version, aiohttp, twiggy, and PyYAML (#99).
  • Restrict the pydantic dependency to major version 1 (#102).

v1.9.0

Release Summary

Feature release.

Minor Changes

  • Improve build script generated by antsibull-docs sphinx-init to change to the directory where the script is located, instead of hardcoding the script's path. This also fixed the existing bug that the path was not quoted (#91, #92).
  • Show callback plugin type on callback plugin pages. Also write callback indexes by callback plugin type (#89, #90).

v1.8.2

Release Summary

Bugfix release.

Bugfixes

  • Fix the new options --extra-html-context and --extra-html-theme-options of the sphinx-init subcommand (#86).

v1.8.1

Release Summary

Bugfix release.

Bugfixes

  • When creating toctrees for breadcrumbs, place subtree for a plugin type in the plugin type's section (#83).

v1.8.0

Release Summary

Feature and bugfix release.

Minor Changes

  • Add new options --project, --copyright, --title, --html-short-title, --extra-conf, --extra-html-context, and --extra-html-theme-options to the sphinx-init subcommand to allow to customize the generated conf.py Sphinx configuration (#77).
  • Automatically use a module's or plugin's short description as the "See also" description if no description is provided (#64, #74).
  • It is now possible to provide a path to an existing file to be used as rst/index.rst for antsibull-docs sphinx-init (#68).
  • Make compatible with antsibull-core 2.x.y (#78).
  • Remove support for forced_action_plugin, a module attribute that was removed during the development phase of attributes (#63).
  • Stop mentioning the version features were added for Ansible if the Ansible version is before 2.7 (#76).
  • The default index.rst created by antsibull-docs sphinx-init includes the new environment variable index (#80).
  • Use correct markup (envvar role) for environment variables. Compile an index of all environment variables used by plugins (#73).

Bugfixes

  • Make sure that build.sh created by the sphinx-init subcommand sets proper permissions for antsibull-docs on the temp-rst directory it creates (#79).

v1.7.4

Release Summary

Bugfix release.

Bugfixes

  • Removed sphinx restriction in requirements.txt file created by antsibull-docs sphinx-init since the bug in sphinx-rtd-theme has been fixed (#69).
  • The license header for the template for the rst/index.rst file created by antsibull-docs sphinx-init was commented incorrectly and thus showed up in the templated file (#67).
  • When using --squash-hierarchy, do not mention the list of collections on the collection's index page (#72).

v1.7.3

Release Summary

Bugfix release.

Bugfixes

  • Fix rendering of the action_group attribute (#62).

v1.7.2

Release Summary

Bugfix release.

Bugfixes

  • Fix version_added processing for ansible.builtin 0.x to represent this as Ansible 0.x instead of ansible-core 0.x (#61).

v1.7.1

Release Summary

Bugfix release.

Bugfixes

  • Prevent crash during stable docsite build when _python entry is present in deps file (#57).

v1.7.0

Release Summary

Bugfix and feature release.

Minor Changes

  • Add --intersphinx option to the sphinx-init subcommand to allow adding additional intersphinx_mapping entries to conf.py (#35, #44).
  • Allow the toctree entries for in a collection's docs/docsite/extra-docs.yml to be a dictionary with ref and title keys instead of just a reference as a string (#45).
  • Antsibull-docs now depends on packaging (#49).
  • The collection index pages now contain the supported versions of ansible-core of the collection in case collection's meta/runtime.yml specifies requires_ansible (#48, #49).
  • The output of the lint-collection-docs command has been improved; in particular multi-line messages are now indented (#52).
  • Use ansible --version to figure out ansible-core version when ansible-core is not installed for the same Python interpreter / venv that is used for antsibull-docs (#50).
  • Use code formatting for all values, such as choice entries, defaults, and samples (#38, #42).

Bugfixes

v1.6.1

Release Summary

Bugfix release for ansible-core 2.14.

Bugfixes

  • Fix formulation of top-level version_added (#43).

v1.6.0

Release Summary

Bugfix and feature release.

Minor Changes

  • Allow to specify choices as dictionary instead of list (#36).
  • Use JSON serializer to format choices (#37).
  • Use special serializer to format INI values in examples (#37).

Bugfixes

  • Avoid collection names with _ in them appear wrongly escaped in the HTML output (#41).
  • For INI examples which have no default, write VALUE as intended instead of None (#37).
  • Format lists correctly for INI examples (#37).
  • The sphinx-init subcommand's requirement.txt file avoids Sphinx 5.2.0.post0, which triggers a bug in sphinx-rtd-theme which happens to be the parent theme of the default theme sphinx_ansible_theme used by sphinx-init (#39, #40).

v1.5.0

Release Summary

Feature and bugfix release.

Minor Changes

  • Detect filter and test plugin aliases and avoid them being emitted multiple times. Instead insert redirects so that stub pages will be created (#33).
  • Replace ansible.builtin with ansible-core, ansible-base, or Ansible in version added collection names. Also write <collection_name> <version> instead of <version> of <collection_name> (#34).

Bugfixes

  • Fix escaping of collection names in version added statements, and fix collection names for roles options (#34).

v1.4.0

Release Summary

Feature and bugfix release.

Minor Changes

  • The sphinx-init subcommand now also creates an antsibull-docs.cfg file and moves configuration settings from CLI flags in build.sh to this configuration file (#26).
  • There are two new options for explicitly specified configuration files named collection_url and collection_install. These allow to override the URLs pointing to collections (default link to galaxy.ansible.com), and the commands to install collections (use ansible-galaxy collection install by default). This can be useful when documenting (internal) collections that are not available on Ansible Galaxy. The default antsibull-docs.cfg generated by the sphinx-init subcommand shows how this can be configured (#15, #26).
  • When generating plugin error pages, or showing non-fatal errors in plugins or roles, link to the collection's issue tracker instead of the collection's URL if available (#29).

Bugfixes

  • Make handling of bad documentation more robust when certain values are None while the keys are present (#32).

v1.3.0

Release Summary

Feature and bugfix release.

Minor Changes

  • Ensure that values for default, choices, and sample use the types specified for the option / return value (#19).
  • If a plugin or module has requirements listed, add a disclaimer next to the installation line at the top that further requirements are needed (#23, #24).
  • Show the 'you might already have this collection installed if you are using the ansible package' disclaimer for plugins only for official docsite builds (subcommands devel and stable). Also include this disclaimer for roles on official docsite builds (#25).
  • Use true and false for booleans instead of yes and no (ansible-community/community-topics#116, #19).
  • When processing formatting directives, make sure to properly escape all other text for RST respectively HTML instead of including it verbatim (#21, #22).

Bugfixes

  • Improve indentation of HTML blocks for tables to avoid edge cases which generate invalid RST (#22).

v1.2.2

Release Summary

Bugfix release.

Bugfixes

  • Fix rstcheck-core support (#20).

v1.2.1

Release Summary

Bugfix release.

Bugfixes

  • Do not escape <, >, &, and ' in JSONified defaults and examples as the Jinja2 tojson filter does. Also improve formatting by making sure , is followed by a space (#18).
  • The collection filter was ignored when parsing the ansible-galaxy collection list output for the docs build (#16, #17).

v1.2.0

Release Summary

Feature and bugfix release.

Minor Changes

  • Support plugin seealso from the semantic markup specification (#8).
  • The lint-collection-docs subcommand has a new boolean flag --plugin-docs which renders the plugin docs to RST and validates them with rstcheck. This can be used as a lighter version of rendering the docsite in CI (#12).
  • The files in the source repository now follow the REUSE Specification. The only exceptions are changelog fragments in changelogs/fragments/ (#14).

Bugfixes

  • Make sure that _input does not show up twice for test or filter arguments when the plugin mentions it in positional (#10).
  • Mark rstcheck 4.x and 5.x as compatible. Support rstcheck 6.x as well (#13).

v1.1.0

Release Summary

Feature release with support for ansible-core 2.14's sidecar docs feature.

Minor Changes

  • If lookup plugins have a single return value starting with _, that return value is now labelled Return value (#6).
  • If lookup plugins have an option called _terms, it is now shown in its own section Terms, and not in the regular Parameters section (#6).
  • More robust handling of parsing errors when ansible-doc was unable to extract documentation (#6).
  • Support parameter type any, and show raw as any (#6).
  • Support test and filter plugins when ansible-core 2.14+ is used. This works with the current devel branch of ansible-core (#6).

v1.0.1

Release Summary

Bugfix release.

Bugfixes

  • Make sure that aliases of module/plugin options and return values that result in identical RST labels under docutil's normalization are only emitted once (#7).
  • Properly escape module/plugin option and return value slugs in generated HTML (#7).

v1.0.0

Release Summary

First stable release.

Major Changes

  • From version 1.0.0 on, antsibull-docs is sticking to semantic versioning and aims at providing no backwards compatibility breaking changes to the command line API (antsibull-docs) during a major release cycle. We explicitly exclude code compatibility. antsibull-docs is not supposed to be used as a library, and when used as a library it might not conform to semantic versioning (#2).

Minor Changes

  • Only mention 'These are the collections with docs hosted on docs.ansible.com' for stable and devel subcommands (#3).
  • Stop using some API from antsibull-core that is being removed (#1).

v0.1.0

Release Summary

Initial release. The antsibull-docs tool is compatible to the one from antsibull 0.43.0.