A pip-like ansible collection installer.
Project description
pip4a
A pip-like install for ansible collections.
Features
- Promotes an "ephemeral" development approach
- Ensures the current development environment is isolated
- Install all collection python requirements
- Install all collection test requirements
- Checks for missing system packages
- Symlinks the current collection into the current python interpreter's site-packages
- Install all collection collection dependencies into the current python interpreter's site-packages
By placing collections into the python site-packages directory they are discoverable by ansible as well as python and pytest.
Usage
Setting up a development environment
$ git clone <collection_repo>
$ cd collection_repo
$ python -m venv venv
$ source venv/bin/activate
$ pip install pip4a
$ pip4a install -e .[test]
INFO Found collection name: ansible.scm from /home/bthornto/github/ansible.scm/galaxy.yml.
INFO Requirements file /home/bthornto/github/ansible.scm/requirements.txt is empty, skipping
INFO Installing python requirements from /home/bthornto/github/ansible.scm/test-requirements.txt
INFO Initializing build directory: /home/bthornto/github/ansible.scm/build
INFO Running ansible-galaxy to build collection.
INFO Running ansible-galaxy to install collection and it's dependencies.
INFO Removing installed /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm
INFO Symlinking /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm to /home/bthornto/github/ansible.scm
Tearing down the development environment
$ pip4a uninstall ansible.scm
INFO Found collection name: ansible.scm from /home/bthornto/github/ansible.scm/galaxy.yml.
INFO Requirements file /home/bthornto/github/ansible.scm/requirements.txt is empty, skipping
INFO Uninstalling python requirements from /home/bthornto/github/ansible.scm/test-requirements.txt
INFO Removed ansible.utils: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/utils
INFO Removed ansible.utils*.info: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible.utils-2.10.3.info
INFO Removed ansible.scm: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm
INFO Removed collection namespace root: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible
INFO Removed collection root: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections
Help
$ pip4a --help
usage: pip4a [-h] [--verbose] {install,uninstall} ...
A pip-like ansible collection installer.
options:
-h, --help show this help message and exit
--verbose Increase output verbosity.
subcommands:
valid subcommands
{install,uninstall} additional help
$ pip4a install --help
usage: pip4a install [-h] [-e] collection_specifier
positional arguments:
collection_specifier Collection to install.
options:
-h, --help show this help message and exit
-e, --editable Install editable.
Usage:
pip4a install .
pip4a install -e .
pip4a install -e .[test]
python -m pip4a install ansible.utils
$ pip4a uninstall --help
usage: pip4a uninstall [-h] collection_specifier
positional arguments:
collection_specifier Collection to uninstall.
options:
-h, --help show this help message and exit
Usage:
pip4a install .
pip4a install -e .
pip4a install -e .[test]
python -m pip4a install ansible.utils```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pip4a-0.1.2.dev0.tar.gz
(30.7 kB
view details)
Built Distribution
File details
Details for the file pip4a-0.1.2.dev0.tar.gz
.
File metadata
- Download URL: pip4a-0.1.2.dev0.tar.gz
- Upload date:
- Size: 30.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a13343928c16e673c2efdbe0719c061b2d7b56a4ef6b003a9effdbcee79cde83 |
|
MD5 | 5de9d99b099b7c18bba7b0e550c30c23 |
|
BLAKE2b-256 | 2d71e0fbc12f0bd925e1a8a334d363f1c04ca1a38049b6f6ac32ebbd74b45110 |
File details
Details for the file pip4a-0.1.2.dev0-py3-none-any.whl
.
File metadata
- Download URL: pip4a-0.1.2.dev0-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9bcb3bde5130046877d46516bb7cfe856cc822ba3625f145432c00ed0385c5c |
|
MD5 | fcfd62732606a1102d0b99462728f02e |
|
BLAKE2b-256 | c63d72219362e364ab3ac3a294cca820e259e370869902d584e063c2934ebd88 |