Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document DevTools project changes #152

Merged
merged 1 commit into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ repos:
hooks:
- id: prettier
always_run: true
- repo: https://github.com/PyCQA/doc8
rev: "v1.1.1"
hooks:
- id: doc8
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
hooks:
Expand Down
116 changes: 89 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

This repository is used to share practices, workflows and decisions affecting projects maintained by Ansible DevTools team.

## Main devtools project dependencies
## Python DevTools project dependencies

It should be noted that our vscode extension would either depend on `ansible-dev-tools` python package or directly use the `creator-ee` container (execution environment).

```mermaid
graph LR;
Expand All @@ -12,51 +14,111 @@ graph LR;
classDef thirdpartyclass fill:#9f6,stroke:#9f6,color:#333;
classDef collectionclass fill:#c00,stroke:#c00,color:#fff;
classDef pyclass fill:#09f,stroke:#09f,color:#fff;
classDef ghaclass fill:#ee0,stroke:#ee0,color:#000;


ansible-lint-action --> creator-ee;
creator-ee --> ansible-lint;
subgraph supported
ansible-lint
ansible-navigator
end

subgraph tech-preview
ansible-development-environment
ansible-creator
pytest-ansible
tox-ansible
molecule
end

creator-ee:::containerclass --> ansible-dev-tools;

ansible-dev-tools --> ansible-lint;
ansible-dev-tools --> ansible-navigator;
ansible-dev-tools --> molecule;

ansible-lint --> ansible-compat;
ansible-compat -.-> community.molecule;
molecule --> ansible-compat;
molecule -.-> community.molecule:::collectionclass;
creator-ee:::containerclass --> molecule;
vscode-ansible:::tsclass --> ansible-language-server;
vscode-ansible:::tsclass --> vscode-yaml;
ansible-language-server -.-> creator-ee;

molecule-podman --> molecule;
ansible-navigator -.-> ansible-lint;
ansible-navigator -.-> creator-ee;

ansible-lint:::pyclass;
ansible-compat:::pyclass;
molecule:::pyclass;
molecule-podman:::pyclass;
ansible-navigator:::pyclass;
ansible-language-server:::tsclass;
vscode-yaml:::tsclass;
ansible-lint-action:::ghaclass;
click ansible-lint-action href "https://github.com/ansible-community/ansible-lint-action"

ansible-dev-tools --> ansible-development-environment;
ansible-dev-tools --> ansible-creator;
ansible-dev-tools --> pytest-ansible;
ansible-dev-tools --> tox-ansible;

ansible-compat:::pyclass;
ansible-creator:::pyclass;
ansible-dev-tools:::pyclass;
ansible-development-environment:::pyclass;
ansible-lint:::pyclass;
ansible-navigator:::pyclass;
molecule:::pyclass;
tox-ansible:::pyclass;
pytest-ansible:::pyclass;

click ansible-development-environment "https://github.com/ansible/ansible-development-environment"
click community.molecule "https://github.com/ansible-collections/community.molecule"
click molecule href "https://github.com/ansible/molecule"
click creator-ee href "https://github.com/ansible/creator-ee"
click ansible-lint href "https://github.com/ansible/ansible-lint"
click ansible-compat href "https://github.com/ansible/ansible-compat"
click ansible-navigator href "https://github.com/ansible/ansible-navigator"
click ansible-creator href "https://github.com/ansible/ansible-creator"
click tox-ansible href "https://github.com/ansible/tox-ansible"
click pytest-ansible href "https://github.com/ansible/pytest-ansible"
```

Note:

1. [vscode-yaml](https://github.com/redhat-developer/vscode-yaml) project is not directly supported by Ansible devtools team.
2. dotted lines are either test, build or optional requirements
3. 📘 python, 📕 ansible collection, 📗 container
4. `community.molecule` is only a test dependency of molecule core.

## TypeScript Dependencies (extension)

```mermaid
graph LR;

classDef tsclass fill:#f90,stroke:#f90,color:#333;
classDef containerclass fill:#060,stroke:#060,color:#fff;
classDef thirdpartyclass fill:#9f6,stroke:#9f6,color:#333;

vscode-ansible:::tsclass --> ansible-language-server;
vscode-ansible:::tsclass --> vscode-yaml;
vscode-yaml:::tsclass;
ansible-language-server:::tsclass;

click ansible-development-environment "https://github.com/ansible/ansible-development-environment"
click community.molecule "https://github.com/ansible-collections/community.molecule"
click molecule href "https://github.com/ansible-community/molecule"
click molecule-podman href "https://github.com/ansible-community/molecule-podman"
click creator-ee href "https://github.com/ansible/creator-ee"
click ansible-lint href "https://github.com/ansible/ansible-lint"
click ansible-compat href "https://github.com/ansible/ansible-compat"
click ansible-navigator href "https://github.com/ansible/ansible-navigator"
click ansible-language-server href "https://github.com/ansible/ansible-language-server"
click vscode-ansible href "https://github.com/ansible/vscode-ansible"
click vscode-yaml href "https://github.com/redhat-developer/vscode-yaml"
```

Note:
## Collections included in creator-ee

1. [vscode-yaml](https://github.com/redhat-developer/vscode-yaml) project is not directly supported by Ansible devtools team.
2. dotted lines are either test, build or optional requirements
3. 📘 python, 📙 typescript, 📕 ansible collection, 📗 container 📒 github action
`creator-ee` execution environment is a development container that contains
most of the most important tools used in the development and testing of collections. Still,
while we bundle several collections in it, you need to be warned that **we might
remove any included collection without notice** if that prevents us from
building the container.

```mermaid
graph LR;

creator-ee --> ansible.posix;
creator-ee --> ansible.windows;
creator-ee --> awx.awx;
creator-ee --> containers.podman;
creator-ee --> kubernetes.core;
creator-ee --> redhatinsights.insights;
creator-ee --> theforeman.foreman;
```

## Molecule ecosystem

Expand Down
35 changes: 22 additions & 13 deletions config/devtools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,31 @@
# Not all these repos are fully managed or maintained by the team.
# We aim to use this file when performing maintenance and audit.
repos:
- ansible-community/ansible-cdk
- ansible-community/molecule
- ansible-community/molecule-plugins # nurtured
- ansible-community/protogen # deprecated?
- ansible-community/pytest-ansible
- ansible-community/role2collection
- ansible/ansible-compat
# primary projects
- ansible/ansible-dev-tools # former cdk/sdk, the devtools 'bundle'
- ansible/ansible-language-server
- ansible/ansible-lint
- ansible/ansible-lint-action
- ansible/ansible-navigator
- ansible/creator-ee
- ansible/devtools
- ansible/mkdocs-ansible
- ansible/creator-ee # our execution environment
- ansible/molecule
- ansible/vscode-ansible
# experimental / tech-preview
- ansible/ansible-creator # scaffolding (templating) for new content
- ansible/ansible-development-environment # former pip4a (venv installer)
- ansible/pytest-ansible
- ansible/tox-ansible
# auxiliary (usually dependencies)
- ansible/ansible-compat
- ansible/mkdocs-ansible
- ansible/team-devtools
- pycontribs/enrich
- pycontribs/selinux
- pycontribs/subprocess-tee
- tox-dev/tox-ansible
- ansible-collections/community.molecule
# nurtured (helped)

- ansible-community/molecule-plugins
# experimental, unmaintained or obsoleted:
# - ansible/ansible-lint-action
# - pycontribs/selinux
# - ansible-community/protogen # deprecated?
# - ansible-community/role2collection