This is intended to be used in a project that uses the diagrams (diagrams as code) python package as an extention of the icons.
Project description
ExtendedDiagramIcons
This repo contains the python library used to create the pip package ExtendedDiagramIcons.
Usage
This is intended to be used in a project that uses the diagrams python pip package as an extention of the available icons. To import the latest build of this library into your project use pip install ExtendedDiagramIcons
Testing
To run the unit tests use this command in the ExtendedDiagramIcons directory python3 -m unittest discover tests.
Publish
To publish the latest version of this project use the following:
- Install Twine:
pip install twine - Build your package:
python setup.py sdist bdist_wheel - To Upload your package, you will need your PyPI credentials (not avilable via CICD for security reasons):
twine upload dist/* -u __token__ -p pypi-AgEIcHlwaS5vcmcCJDAzZGE0ODNkLWY3NmYtNDhlNy1iMzgwLWRkZmMxM2QzYzBiYQACKlszLCJjYjI0YjE5ZC1lYmJmLTQyNzYtYjFmMS0zNjIxMjZlM2Q0YmMiXQAABiCJxarhN-DxG5fVMdPgrphuh7Uko5L1kyzi5upnwyzZaQ
Semantic Release
Continuous Integration (CI)
GitHub Actions
We use GitHub Actions to automate our release workflows. The badge above indicates the status of our latest build.
Semantic Versioning in Our Project
In our project, we adhere to Semantic Versioning to standardize version numbers and to convey meaning about the underlying code with each release. Below is an explanation of the prefixes we use in our commit messages and how they relate to our release strategy:
Commit Prefixes
1. feat:
Description: A new feature for the user or a particular improvement to existing functionalities.
Example: feat: add new login button
Effect: Increments the minor version.
Branches: Typically used on both dev and release branches.
2. fix:
Description: A bug fix that resolves an issue affecting the user.
Example: fix: resolve issue with login button not responding
Effect: Increments the patch version.
Branches: Typically used on both dev and release branches.
3. chore:
Description: Simple changes that are not part of application logic or business features.
Example: chore: update dependencies
Effect: No version increment unless combined with other prefixes.
Branches: Typically used on dev branch.
4. docs:
Description: Changes to documentation.
Example: docs: update API documentation
Effect: No version increment.
Branches: Can be used on any branch.
5. style:
Description: Code changes that do not modify the logic or business features (e.g., formatting).
Example: style: reformat code
Effect: No version increment.
Branches: Can be used on any branch.
6. refactor:
Description: Code changes that neither fix a bug nor add a feature.
Example: refactor: optimize code for performance
Effect: No version increment unless there is a significant change.
Branches: Can be used on any branch.
7. perf:
Description: Changes that improve performance.
Example: perf: enhance query performance
Effect: May increment the patch version if significant.
Branches: Typically used on both dev and release branches.
8. test:
Description: Adding or modifying tests.
Example: test: add unit tests for login functionality
Effect: No version increment.
Branches: Can be used on any branch.
9. BREAKING CHANGE:
Description: A change that is not backward compatible and requires the user to change something about their setup.
Example: BREAKING CHANGE: migrate to new login system
Effect: Increments the major version.
Branches: Typically used on release branch.
Branches
1. dev
Purpose: Regular dev and feature additions happen here.
Versioning: Automated version increments happen for minor and patch changes using the feat: and fix: prefixes.
2. release/main
Purpose: Stable and production-ready features are merged here.
Versioning: Major version increments happen here using the BREAKING CHANGE: prefix.
main Branch
On the main branch, commits with prefixes test, perf, refactor, style, docs, or chore will not trigger a deployment. This ensures that only substantial changes, which either fix a bug or introduce a new feature, cause a deployment in the main environment.
By adhering to this strategy, we ensure consistency, predictability, and ease of understanding in our versioning and deployment process.
Semantic Versioning Workflow
dev (Pre-release) Branch
Steps:
-
Start:
- [No Commits]
-
Commit:
feat: add new feature- [Generates Version & Tag: 1.1.0-dev.0]
-
Commit:
fix: resolve minor bug- [Generates Version & Tag: 1.1.0-dev.1]
-
Commit:
chore: update dependencies- [No Version Change: Remains 1.1.0-dev.1]
-
Merge into main:
- [Commits are merged, triggers a check for release in main branch]
main (Release) Branch
Steps:
-
Start:
- [Current Version: 1.0.0]
-
Merge from dev (with
feat&fixcommits):- [Checks Commits: Finds
feat:&fix:, hence eligible for release] - [Generates Version & Tag: 1.1.0]
- [Checks Commits: Finds
Explanation
-
dev Branch (Pre-release):
- New features (
feat:) and bug fixes (fix:) increment the pre-release version. - Commits like
chore:,docs:, etc. do not change the version. - Each commit or PR that changes the version generates a new pre-release tag like
1.1.0-dev.0,1.1.0-dev.1, etc.
- New features (
-
main Branch (Release):
- When changes are merged from
devtomain, it checks for commits withfeat:orfix:prefixes. - If found, it increments the appropriate version number (minor for
feat:and patch forfix)
- When changes are merged from
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ExtendedDiagramIcons-1.1.dev123.tar.gz.
File metadata
- Download URL: ExtendedDiagramIcons-1.1.dev123.tar.gz
- Upload date:
- Size: 588.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d8517d93888dd3bdabb60c522edd8c73d449bd1699969d4aed7caf49440791c
|
|
| MD5 |
8ee9d46b919137f4c475ffafb35772f2
|
|
| BLAKE2b-256 |
d57591d983301c06f412e9de1713aac631803d60452e35a3f26252e830228abb
|
File details
Details for the file ExtendedDiagramIcons-1.1.dev123-py3-none-any.whl.
File metadata
- Download URL: ExtendedDiagramIcons-1.1.dev123-py3-none-any.whl
- Upload date:
- Size: 599.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0881d983156662d36826eec30cdad90196be279522ae3ba72284644b0dc5bc13
|
|
| MD5 |
47dd4a56e3e8efdd0ae18b95841cbd97
|
|
| BLAKE2b-256 |
b08f1e5f818b7a92aebdf0fba6fa29c66a5c9a06189bea98e82625d1d0f42153
|