Skip to content

Commit 47d1943

Browse files
authored
Add contribution information (#164)
* Add basic contributing guidelines. * Add hint to README.
1 parent 43a5fb9 commit 47d1943

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed

CONTRIBUTING.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
<!--
2+
Copyright (c) Ansible Project
3+
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
4+
SPDX-License-Identifier: GPL-3.0-or-later
5+
-->
6+
7+
# Contributing
8+
9+
We follow [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html) in all our contributions and interactions within this repository.
10+
11+
## Test pull requests
12+
13+
If you want to test a PR locally, refer to [our testing guide](https://github.com/ansible/community-docs/blob/main/test_pr_locally_guide.rst) for instructions on how do it quickly.
14+
15+
If you find any inconsistencies or places in this document which can be improved, feel free to raise an issue or pull request to fix it.
16+
17+
## Run sanity or unit locally (with antsibull-nox)
18+
19+
The easiest way to run sanity and unit tests locally is to use [antsibull-nox](https://ansible.readthedocs.io/projects/antsibull-nox/).
20+
(If you have [nox](https://nox.thea.codes/en/stable/) installed, it will automatically install antsibull-nox in a virtual environment for you.)
21+
22+
### Sanity tests
23+
24+
The following commands show how to run ansible-test sanity tests:
25+
26+
```.bash
27+
# Run basic sanity tests for all files in the collection:
28+
nox -Re ansible-test-sanity-devel
29+
30+
# Run basic sanity tests for the given files and directories:
31+
nox -Re ansible-test-sanity-devel -- plugins/modules/boot.py tests/unit/plugins/module_utils/
32+
33+
# Run all other sanity tests for all files in the collection:
34+
nox -R
35+
```
36+
37+
If you replace `-Re` with `-e`, respectively.
38+
If you leave `-R` away, then the virtual environments will be re-created.
39+
The `-R` re-uses them (if they already exist).
40+
41+
### Unit tests
42+
43+
The following commands show how to run unit tests:
44+
45+
```.bash
46+
# Run all unit tests:
47+
nox -Re ansible-test-units-devel
48+
49+
# Run all unit tests for one Python version (a lot faster):
50+
nox -Re ansible-test-units-devel -- --python 3.13
51+
52+
# Run a specific unit test (for the community.hrobot.boot module) for one Python version:
53+
nox -Re ansible-test-units-devel -- --python 3.13 tests/unit/plugins/modules/test_boot.py
54+
```
55+
56+
If you replace `-Re` with `-e`, then the virtual environments will be re-created.
57+
The `-R` re-uses them (if they already exist).
58+
59+
## Run basic sanity, unit or integration tests locally (with ansible-test)
60+
61+
Instead of using antsibull-nox,
62+
you can also run sanity and unit tests with ansible-test directly.
63+
64+
You have to check out the repository into a specific path structure to be able to run `ansible-test`.
65+
The path to the git checkout must end with `.../ansible_collections/community/hrobot`.
66+
Please see [our testing guide](https://github.com/ansible/community-docs/blob/main/test_pr_locally_guide.rst) for instructions on how to check out the repository into a correct path structure.
67+
The short version of these instructions is:
68+
69+
```.bash
70+
mkdir -p ~/dev/ansible_collections/community
71+
git clone https://github.com/ansible-collections/community.hrobot.git ~/dev/ansible_collections/community/hrobot
72+
cd ~/dev/ansible_collections/community/hrobot
73+
```
74+
75+
Then you can run `ansible-test` (which is a part of [ansible-core](https://pypi.org/project/ansible-core/)) inside the checkout.
76+
The following example commands expect that you have installed Docker or Podman.
77+
78+
### Basic sanity tests
79+
80+
The following commands show how to run basic sanity tests:
81+
82+
```.bash
83+
# Run basic sanity tests for all files in the collection:
84+
ansible-test sanity --docker -v
85+
86+
# Run basic sanity tests for the given files and directories:
87+
ansible-test sanity --docker -v plugins/modules/boot.py tests/unit/plugins/module_utils/
88+
```
89+
90+
### Unit tests
91+
92+
Note that for running unit tests,
93+
you need to install required collections in the same folder structure that `community.hrobot` is checked out in.
94+
Right now, you need to install [`community.internal_test_tools`](https://github.com/ansible-collections/community.internal_test_tools).
95+
If you want to use the latest version from GitHub,
96+
you can run:
97+
```
98+
git clone https://github.com/ansible-collections/community.internal_test_tools.git ~/dev/ansible_collections/community/internal_test_tools
99+
```
100+
101+
The following commands show how to run unit tests:
102+
103+
```.bash
104+
# Run all unit tests:
105+
ansible-test units --docker -v
106+
107+
# Run all unit tests for one Python version (a lot faster):
108+
ansible-test units --docker -v --python 3.8
109+
110+
# Run a specific unit test (for the community.hrobot.boot module) for one Python version:
111+
ansible-test units --docker -v --python 3.8 tests/unit/plugins/modules/test_boot.py
112+
```

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_gui
9696
9797
If you want to develop new content for this collection or improve what is already here, the easiest way to work on the collection is to clone it into one of the configured [`COLLECTIONS_PATH`](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#collections-paths), and work on it there.
9898

99+
Refer to our [contribution guide](https://github.com/ansible-collections/community.general/blob/main/CONTRIBUTING.md) for information on testing!
100+
99101
You can find more information in the [developer guide for collections](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections), and in the [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html).
100102

101103
## Release notes

0 commit comments

Comments
 (0)