No project description provided
Project description
Python package to manage k3d instances
IDE
Visual Studio Code
is the recommended IDE for this project. It was chosen for the Remote - Containers
extension that guarantees the same development environment for every developer. The project is configured so that everything works out of the box.
Architecture
File system organization
src
: the source code of the application, and nothing more.tools
: anything else that's required to make the project work but is not a part of the application. This may include source code, shell scripts, configuration files, etc.tools/tooling
is used to explicitely link the various configuration files to the software that requires it.tests
: holds tests that can be run withpytest
.
Quality Assurance
Formatting
Linting
- python: pylint.
- shell scripts: shellcheck.
Testing
- python: pytest, with pytest-cov to handle coverage and pytest-xdist to handle parallelization.
Type checking
- python: mypy
CI/CD
Whenever pull request is opened against the fork or a new changeset is pushed on the fork (including when a pull request is merged), the CI/CD will run. This is controlled by .github/workflows/ci-cd.yml
. The content of the file is kept to a minimum, to keep it both readable and clean.
The CI/CD is split into two jobs. CI
ensures that the tests pass with supported python versions, except the one used for releasing. CI-CD
ensures that the tests pass with the version of python used for releasing, and uploads the corresponding package without any action from the user. This guarantees that all uploaded packages have been tested with the expected python version.
The version and the upload destination of the package depend on the action that triggered the CI/CD as well as the branch on which this action was triggered. All branches will upload to test.pypi.org
, but release/X.Y
branches will also upload to pypi.org
.
Versioning
Versioning for major and minor numbers is handled by creating release/X.Y
branches. The patch number is automatically generated based on existing releases. See tools/releasing/version.py
for more details.
Makefile
The project uses a Makefile
as a way to provide quick access to common commands. It should not be used to write complex scripts. It was chosen over poetry
scripts because make
is shorter to type than poetry run
. Despite the shortfalls of make
it is everywhere and many developers are used to make target
commands. Finally the Makefile
syntax should be awful enough that one would want to write a shell
or python
script and call it from the Makefile
if something complicated needed to be done.
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 Distribution
File details
Details for the file pyk3d-0.0.1.tar.gz
.
File metadata
- Download URL: pyk3d-0.0.1.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.7 Linux/5.4.0-1039-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf6624d99cb868932c11e1be916304ef580dfa44072b340f796b3dcb2aa7ddc |
|
MD5 | c1c41abc47cd59f1c9c13818da9f6407 |
|
BLAKE2b-256 | 01a84e185d870b73df79a546d1bbd42c59e1fc2443fe9d094d25788660965745 |
File details
Details for the file pyk3d-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: pyk3d-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.7 Linux/5.4.0-1039-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fcced8e998e7b6b09fc63597adb85988e74e0fe574c420fbcefe8a7bfab1bb7 |
|
MD5 | 8c504f205027cb62a0aed49b74440ebf |
|
BLAKE2b-256 | 60978350107934bc2f318949ddbfbea89ce5f246b8b4d64b191420c0bc1a8871 |