• Stars
    star
    114
  • Rank 306,277 (Top 7 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated 25 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Holds generated but persistent results from building the ansible community package

ansible-build-data

Discuss on Matrix at #community:ansible.com

Holds generated but persistent results from building the ansible community package. This information may be referred to by other projects and scripts.

Issue tracker

This repository's issue tracker handles various aspects of the ansible build, including:

  1. Tracking release dates,
  2. Tracking blockers for a release,
  3. Tracking adding, renaming, and removing collections,
  4. Tracking problems with a release related to the build process:
    • This includes problems that prevent the package to be installed or system packages to be built from the PyPI release;
  5. Tracking and discussing other problems with the ansible community package:
    • This includes important problems with the included collections that are not acted on by the collection maintainers, for example largescale incompatibilities with the current ansible-core version, violations of semantic versioning, and general violations of the Ansible inclusion requirements;
    • This includes major or security bugs in collections with wide-reaching consequences that are not addressed by the collection maintainers, or cannot be addressed on the collection level for some reason.

This issue tracker is not for tracking regular bugs or feature requests for ansible-core or the collections included in the ansible package or for user support. Such issues will be closed. Instead, check out the ansible-core issue tracker, issue trackers of the respective collections, or consider asking for help in the Ansible forum.

Milestones

Release engineers check the milestones for corresponding releases some time before releasing the package sufficient to solve all related issues.

Blockers

In the context of the Ansible Community package release workflow, a release blocker is a situation which does not allow the package to be released. It might come with a new ansible-core release and affect many of the included collections or in any other way might severely affect consistent work with the ansible package. Severity of the impact is determined by the Steering Committee in each particular case. The release blocker must be resolved before the release can proceed.

In case of a potential release blocker, the following actions need to be done:

Structure of data

::

ansible-build-data
└── 3
    β”œβ”€β”€ ansible-3.0.0.deps
    β”œβ”€β”€ ansible-3.1.0.deps
    β”œβ”€β”€ ansible-3.build
    └── ansible.in
  • Each major release of Ansible gets a subdirectory of the repository named according to the X.Y version number of Ansible. (ex: 3)

  • Within each version directory, there is an ansible.in file which lists the collections that are in this release of Ansible. The file consists of one namespace.collection per line. This file is constructed by the person building Ansible for that release.

  • There will also be a file, ansible-X.build. This file contains lines which consist of namespace.collection followed by a version range like::

    awx.awx: >=11.0.0,<12.0.0
    

    The version range specifies potential versions of the collection that are backwards compatible with what was available when the initial Ansible-X.Y.0 release was frozen. Only versions of the collections within those ranges will be considered for Ansible minor releases. This file will be created by the antsibull-build new-ansible command.

  • Lastly, there will be multiple, ansible-X.Y.Z.deps files. Those files contain lines which consist of namespace.collection followed by a single version like::

    awx.awx: 11.2.5
    

    The version specifies the exact version of the collection that appeared in that release of Ansible. This file will be created by the antsibull-build single command.

Adding a new collection

Next Ansible major release

To add a collection to the next Ansible major release that has not reached feature freeze:

  • Add the collection to the ansible.in file in a sub-directory named with a corresponding number.
  • In the same sub-directory, add the collection to the collection-meta.yaml file, as shown below.
    • maintainers (list): The Github usernames of the collection's maintainers.
    • repository (string): The URL of the collection's git repository.
    • collection-directory (string): The collection's top level directory relative to the Git repository root. The top level directory is where galaxy.yml is located. For most collections, this should be set to .. However, some collections, such as awx.awx, store the collection in a subdirectory. In that case, collection-directory should be set to ./SUBDIRECTORY (SUBDIRECTORY is a placeholder for the actual directory).
    • changelog-url (string): If the collection does not provide a changelog in changelogs/changelog.yaml, the URL to the actual changelog needs to be added. Otherwise, this field should be omitted.
collections:
  # NAMESPACE.NAME
  community.example:
    # The Github usernames of this collection's maintainers
    maintainers:
      - person1
      - person2
    # The URL to the collection's SCM repository.
    repository: https://github.com/ansible-collections/community.example
    # This is the directory where galaxy.yml is stored relative to the
    # repository root.
    #
    # For collections stored in the repository root:
    collection-directory: "."
    # For collections stored in a subdirectory:
    collection-directory: "./SUBDIRECTORY"
    # This is an optional field that should only be populated if the collection
    # doesn't include a changelogs/changelog.yaml file.
    # changelog-url: ...

The current Ansible major release

To add a collection to the next minor release of the current Ansible major version:

  • Add the collection to the ansible.in file in a sub-directory named with a corresponding number.
  • In the same sub-directory, add the collection and its version range to the ansible-X.build file.
  • In the same sub-directory, add the collection to the collection-meta.yaml file.
    • The maintainer's GitHub user names need to be listed there.
    • If the collection does not provide a changelog in changelogs/changelog.yaml, the URL to the actual changelog needs to be added.

Renaming a collection

In some situations, a collection included in Ansible is renamed with its content basically unchanged (up to renaming, adjusting documentation, and potentially other very small changes). In that case, the new collection can be included and the old collection removed if the following procedure is followed.

For simplicity, assume that the next minor Ansible release is X.Y.0, and that collection foo.bar with latest release a.b.c has been renamed to baz.bam with latest release A.B.C.

  1. baz.bam A.B.C must be compatible to foo.bar a.b.c up to renaming plugins. No options must be renamed without backwards compatible aliases, and no defaults or semantics changed.
  2. baz.bam A.B.C can be added to Ansible X.Y.0.
  3. A deprecation warning is added to Ansible X.Y.0's changelog (deprecated_features) that foo.bar has been renamed to baz.bam, that Ansible (X+1).0.0 will start having deprecated redirects from foo.bar to baz.bam, and that foo.bar will be removed from a later major release of Ansible.
  4. A new release foo.bar (a+1).0.0 is made which contains no more content, but only deprecated redirects to baz.bam. Ideally it will have a dependency on baz.bam so that users that install foo.bar will have working deprecated redirects.
  5. Ansible (X+1).0.0 contains both foo.bar (a+1).0.0, and either a baz.bam A.B'.C' release or a later major release that is still compatible with foo.bar a.b.c as specified in 1.
  6. foo.bar will be dropped from Ansible (X+2).0.0 (needs to be announced in its changelog as removed_features).

More Repositories

1

ara

ARA Records Ansible and makes it easier to understand and troubleshoot.
Python
1,785
star
2

awesome-ansible

Awesome Ansible List
1,324
star
3

ansible-bender

ansible-playbook + buildah = a sweet container image
Python
665
star
4

ansible-consul

πŸ“‘ Ansible role for Hashicorp Consul clusters
Jinja
433
star
5

ansible-vault

πŸ”‘ Ansible role for Hashicorp Vault
Jinja
346
star
6

ansible-nomad

⌚ Ansible role for Nomad
Jinja
283
star
7

molecule-vagrant

🚧 Moved to molecule-plugins
Python
143
star
8

toolset

❌ Deprecated, superseded by creator-ee container.
Dockerfile
106
star
9

molecule-plugins

Collection on molecule plugins
Python
88
star
10

molecule-docker

🚧 Assimilated into molecule-plugins
Python
77
star
11

antsibull

Tooling for building various things related to ansible
Python
59
star
12

molecule-podman

❗️Moved into molecule-plugins
Python
53
star
13

molecule-ec2

🚧 Migrated inside molecule-plugins
Python
51
star
14

ara-web

Stateless web client for the ARA Records Ansible API.
JavaScript
38
star
15

contrib-scripts

(archived) Old Ansible inventory & vault scripts
Python
37
star
16

antsibull-changelog

Changelog generator for ansible, ansible-base, and collections.
Python
36
star
17

molecule-libvirt

Molecule LibVirt Provider
Python
35
star
18

community-topics

Discussions for Ansible Meetings
Shell
34
star
19

ansible.content_builder

A collection to scaffold Ansible plugins.
Python
31
star
20

ansible-london-meetup

Ansible Meetup for London, UK
30
star
21

ara-collection

Collection of Ansible roles for ARA Records Ansible.
Jinja
28
star
22

molecule-hetznercloud

A molecule driver for Hetzner Cloud
Python
27
star
23

pytest-molecule

Please switch to pytest-ansible
Python
24
star
24

protogen

(Archived) Protogen :: Sample on how to write maintainable Ansible content
Makefile
22
star
25

antsibull-docs

Tooling for building Ansible documentation
Python
22
star
26

ansible-test-gh-action

A composite GitHub Action encapsulating the GitHub Actions CI/CD workflows setup necessary for testing Ansible collection repositories on GitHub
Python
20
star
27

collection_migration

DONE AND DONE: Was scripts and scenarios for migration from core code to collections
Python
19
star
28

molecule-lxd

❗️Archived due to lack of maintenance, see molecule-plugins discussions
Python
19
star
29

molecule-openstack

Molecule OpenStack Driver
Python
15
star
30

sphinx_ansible_theme

A reusable Ansible Sphinx Theme
CSS
14
star
31

molecule-vmware

Molecule VMware Driver
Python
14
star
32

community-website

Ansible Community website (WIP)
Python
14
star
33

molecule-inspec

Molecule Inspec Verifier Plugin
Python
13
star
34

molecule-kubevirt

Molecule Kubevirt Driver
Python
13
star
35

ppa

Python
12
star
36

molecule-goss

Molecule Goss Verifier
Python
12
star
37

molecule-containers

❗️Migrated into molecule-plugins
Python
12
star
38

images

Ansible container image definitions meant for ansible-test and Execution Environments
Shell
12
star
39

role2collection

Tooling to assist in migrating to collections
Python
11
star
40

pytest-ansible-units

A pytest plugin to run an ansible collection's unit tests with pytest.
Python
11
star
41

molecule-gce

🚧 Assimilated into molecule-plugins
Python
10
star
42

ansible-dresden-meetup

Ansible Dresden Meetup, located in Dresden, Germany.
CSS
10
star
43

github-docs-build

GitHub actions and workflows for building Ansible collection documentation.
Jinja
8
star
44

operator-sdk-performance-testing

Performance testing for the Kubernetes Operator SDK.
HTML
8
star
45

molecule-azure

🚧 Assimilated into molecule-plugins
Python
7
star
46

antsibull-core

Library for tooling for building various things related to ansible
Python
6
star
47

ansible-benelux-meetup

Content of the Ansible Benelux Meetup Group
Ruby
6
star
48

antsibull-docs-parser

Python library for processing Ansible documentation markup
Python
6
star
49

collection-explorer

TypeScript
5
star
50

ansible-badges

Ansible Badges will recognize contributors to the Ansible Project.
5
star
51

collection_bot

Fork of Ansibullbot for collections
Python
5
star
52

ansible-pygments

Provides Pygments highlighter for Ansible output for use in Sphinx
Python
5
star
53

molecule-digitalocean

molecule-digitalocean
Python
5
star
54

antsichaut

Antsichaut aims to automate the filling of a changelog.yaml used by antsibull-changelog
Python
4
star
55

sphinx-ansible

Python
4
star
56

ara-infra

Infrastructure management for the ARA Records Ansible project.
HTML
4
star
57

community-examples

Repository for community examples
4
star
58

stats-crawler

Primary indexer for the raw data used in the other stats reports and dashboards
R
4
star
59

project-template

A GitHub repository template for new Ansible projects
3
star
60

rss-feed-aggregator

Jinja
3
star
61

ansible-zurich-meetup

Ansible Zurich Meetup
3
star
62

katacoda-scenarios

Ansible Community training
Shell
3
star
63

galaxy-doc-builder

TypeScript
2
star
64

ansible-minneapolis-meetup

2
star
65

ansible-munich-meetup

A repository to share content for the Ansible MΓΌnchen Meetup group.
2
star
66

antsibull-docs-ts

TypeScript library for processing Ansible documentation markup
TypeScript
2
star
67

meetup

The regular Ansible Community Meetup
1
star
68

nightly-builds

Nightly builds of ansible package. Usage: `pip install ansible ansible-base --index-url=https://ansible-community.github.io/nightly-builds/simple/ --extra-index-url=https://pypi.org/simple`
HTML
1
star
69

stats-collections

RShiny app to display statistics for the Ansible Collections
R
1
star
70

ansible-seattle-meetup

Seattle Ansible Meetup content and ideas
1
star
71

github-action-build-collection

GitHub Action for building Ansible collections
1
star
72

ansible.im

Hacking on HTML for ansible.im
HTML
1
star
73

presentations

Repository for community presentations on Ansible projects
1
star
74

ansible-montreal-meetup

Things for the Ansible Montreal meetups
1
star
75

ansible-stl-meetup

Ansible St. Louis Meetup content.
1
star
76

ansible-kolkata-meetup

A repository to share content for the Ansible Kolkata Meetup group.
HTML
1
star
77

package-test-results

Coordination for Ansible package-wide testing
Python
1
star