Cookiecutter Cruft Poetry Tox Pre Commit Ci Cd Instance
Project description
cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance
Documentation: https://github.readthedocs.io
Source Code: https://github.com/TeoZosa/cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance
:teacher: Overview
- TODO
:sparkles: Features
- TODO
:information_source: Requirements
- TODO
Table of Contents
- :tada: Installation
- :rocket: Usage
- :clipboard: Summary
- :books: Further Reading
- :wrench: Development
- :judge: Legal
:tada: Installation
You can install Cookiecutter Cruft Poetry Tox Pre Commit Ci Cd Instance via pip:
pip install cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance
:rocket: Usage
- TODO
- High-level usage overview
- TODO
- Step 0 description
import cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance
# TODO
:fire: Tip
All following commands are relative to the project root directory and assumemake
is installed.
:children_crossing: Running The Project
:one: Docker Container Project Environment (recommended)
Run:
# Uncomment below to run with corresponding options.
# Note: *any* value other than `false` will trigger an option
#export IS_INTERACTIVE_SESSION=true
#export BIND_MOUNT_APPLICATION_DIR_ON_CONTAINER=true
make deploy-project-docker-container
which will fetch and run the project container image.
:fire: Tip
If you prefer to build and run the container locally, run:make deploy-project-docker-container-local
:two: Locally via Poetry (development workflow)
Run:
make provision-environment # Note: installs ALL dependencies!
poetry shell # Activate the project's virtual environment
:clipboard: Summary
- TODO
:books: Further Reading
- TODO
:wrench: Development
For convenience, implementation details of the below processes are abstracted away and encapsulated in single Make targets.
:fire: Tip
Invokingmake
without any arguments will display auto-generated documentation on available commands.
:building_construction: Package and Dependencies Installation
Make sure you have Python 3.8+ and poetry
installed and configured.
To install the package and all dev dependencies, run:
make provision-environment
:fire: Tip
Invoking the above withoutpoetry
installed will emit a helpful error message letting you know how you can install Poetry.
:package: Python Module to C-Extension Compilation
The projects's build.py file specifies which modules to package.
For manual per-module compilation, see: Mypyc Documentation: Getting started - Compiling and running
:whale: Docker Container Image Building/Deployment Orchestration
The following set of make
targets orchestrate the project's container image build and
deploy steps:
build-container Build cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance container
deploy-project-docker-container Deploy downloaded dockerized project environment with preloaded dependencies
deploy-project-docker-container-local Deploy locally-built dockerized project environment with preloaded dependencies
pull-container Pull cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance container
push-container Push cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance container
stop-container Stop container forcefully (i.e., when keyboard interrupts are disabled)
Note that the project's container image is insulated from the implementation details of
the application's top-level setup and execution logic, which falls under the purview of
the project's entrypoint script. As such, Dockerfile modifications will generally only
be necessary when updating non-Python environment dependencies (Python dependency
updates are automatically reflected in new image builds via the pyproject.toml
and poetry.lock
files).
:white_check_mark: Testing
We use tox
and pytest
for our test automation and testing
frameworks, respectively.
To invoke the tests, run:
make test
Run mutation tests to validate test suite robustness (Optional):
make test-mutations
:information_source: Technical Details
Test time scales with the complexity of the codebase. Results are cached in.mutmut-cache
, so once you get past the initial cold start problem, subsequent mutation test runs will be much faster; new mutations will only be applied to modified code paths.
:rotating_light: Code Quality
We use pre-commit
for our static analysis automation and
management framework.
To invoke the analyses and auto-formatting over all version-controlled files, run:
make lint
:rotating_light: Danger
CI will fail if either testing or code quality fail, so it is recommended to automatically run the above locally prior to every commit that is pushed.
:arrows_counterclockwise: Automate via Git Pre-Commit Hooks
To automatically run code quality validation on every commit (over to-be-committed files), run:
make install-pre-commit-hooks
:warning:️ Warning
This will prevent commits if any single pre-commit hook fails (unless it is allowed to fail) or a file is modified by an auto-formatting job; in the latter case, you may simply repeat the commit and it should pass.
:memo: Documentation
make docs-clean docs-html
:fire: Tip
For faster feedback loops, this will attempt to automatically open the newly built documentation static HTML in your browser.
:judge: Legal
:page_facing_up: License
cookiecutter-cruft-poetry-tox-pre-commit-ci-cd-instance is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
:busts_in_silhouette: Credits
This project was generated from
@TeoZosa
's
cookiecutter-cruft-poetry-tox-pre-commit-ci-cd
template.
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
Built Distributions
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 048401101a4a55d20fc92fc8bcab8add39358bfd67bea3c0b535495acd7cbfdb |
|
MD5 | cd907743e1b8df52dbd1582a57977b61 |
|
BLAKE2b-256 | 3973bf252bf9e95d828e563cad3930cb4eb0e41e171169eb987ffa3c4f15a604 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f47684555891f30f72ab1906cdc3dd3f942d89c92ff4faebe448384085eaf59c |
|
MD5 | 100523e650122995a5689789cb99060f |
|
BLAKE2b-256 | ad9c42247b0e362296610c1019e0b2def56840cc639ed728444b932b8ad28b52 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 005c9985fc3d843c38a0712ec0f761476173b2266f547eab9ed5762befd8cb6c |
|
MD5 | 8649d9e550c3b0015ecf88f861704652 |
|
BLAKE2b-256 | 9b08db8faf32b0141c28df8d1018da6f7680c5283f4de56bc2660d18bc1ffaf5 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 197b55d7b2b069fe6dfb526ab68b5d8c37171344294a3e83bba9562c54692bd8 |
|
MD5 | e662bf481934930e85f42cbe5ba69b6d |
|
BLAKE2b-256 | cf4ac8a3c7986730c24d081470409e76937cb74a8835da56485a20217fd951dc |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40d530cb73dd25a9acd292f2e5bd0d67a3e53e4f7ec2effa5aba75e1ff25f4e2 |
|
MD5 | d26c3a3a26487b376ec900d4f7872022 |
|
BLAKE2b-256 | e4dce263c852f3bf1f0ffc531d1a63063e57849b7fdf55714d308641fa8fe82c |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc679ce296c481b499b028acb74534922546bd3cf9d2e0b81c93b98578f3572 |
|
MD5 | f652c164071c0bf9f70c1a4edee21fb3 |
|
BLAKE2b-256 | f8471d56a2385ac77bdb9cae807847425881e53c6478073485664f242761150c |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp310-cp310-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0397e7fc4385c8edab2e2a3a0efe18de48c0c9809607c44d0f3d1444d70144e3 |
|
MD5 | 2bc4814eb971cec5c9f6cab8cda8a7a9 |
|
BLAKE2b-256 | 2213547a9267ec8a25693f08695475e4ef712b35990d934a180bf73a5e3e5d89 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 010b5744c08c859b208e4b11bb0b862be2375e8d4f94d3296851cfaf56ede1dc |
|
MD5 | d967d1aac605c07495bacc84c0715257 |
|
BLAKE2b-256 | 62730a35f5d6573a932a3ec643fda258db6bbf7d1820b25ede3feeac3e19273c |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp39-cp39-manylinux_2_31_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a82e62f38d4da20727b4d87cf74e0f8d8ee11e6fef42e601f5758ca95060ef51 |
|
MD5 | d02829bdd51e7eeb7071f55702f62e46 |
|
BLAKE2b-256 | a1b56fae30ba18d6fd7779e90a65da82f8a91f880356df7b42d8b9b2d94459b9 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00261036c9e7723e88fcfcc1d208973356c7fbe5de542db76ce4de1d38b2c7b1 |
|
MD5 | 997eb46c4804142058beacf01cf963a1 |
|
BLAKE2b-256 | c5c3600e57669856b4d7e2af3a0d73c8acb585a77ceba2b031cf9453a47b3503 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df4c3cab079908b7bdd6258b80b2351227825598ed60ffa69aa582710af6fe07 |
|
MD5 | 1169c946815fe9cdeb357f716dea82f5 |
|
BLAKE2b-256 | 882c7d6242b891d39c1e60856435b14847b3cb2056f1886192b32caa2b05d6cb |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp38-cp38-manylinux_2_31_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5801706bc0b2ec02c83dd020b7ae66f77a16590bf2a846da6db50878dc310971 |
|
MD5 | 7fc49ebb431d93ac8b53c199b117b190 |
|
BLAKE2b-256 | 63f975514db483e5b23c6ae7be9f0b9eab3108c71893e10c7083351d5e800db7 |
Hashes for cookiecutter_cruft_poetry_tox_pre_commit_ci_cd_instance-0.0.3-cp38-cp38-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79705e3adf329655fc58678b33d90c32264589cc928db84c4b55520a1a03a63c |
|
MD5 | bee71c96448d83fd215f4902342e6062 |
|
BLAKE2b-256 | 498d33234034567839afa76ea5c65a1352b02422b938a51f7bba767debe346a6 |