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
Diagram Icons Extention
This repo contains the python library used to create the pip package ExtendedDiagramIcons to extend the Diagrams package: Diagrams GitHub Repository.
Current Builds
- Install latest stable build:
pip install ExtendedDiagramIcons==1.1.0.dev15
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
.
Requirement
- Python
3.9+
- Requires the pip package `Diagrams``
Testing
To run the unit tests use this command in the 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 <your-api-token>
Documentation
Use the references below to extend your diagrams. Example import: from ExtendedDiagramIcons.diagrams.octopusdeploy.octopusdeploy import Octopus_Server_Node, Pipeline
.
digitalocean.digitalocean
ExtendedDiagramIcons.digitalocean.digitalocean.Project
generic.generic
ExtendedDiagramIcons.generic.generic.Github
ExtendedDiagramIcons.generic.generic.Jira
ExtendedDiagramIcons.generic.generic.Report_Portal
ExtendedDiagramIcons.generic.generic.Software_Engineer
dnsproviders.namecheap
ExtendedDiagramIcons.dnsproviders.namecheap.Namecheap_Api
ExtendedDiagramIcons.dnsproviders.namecheap.Namecheap_Domain
ExtendedDiagramIcons.dnsproviders.namecheap.Provider
octopusdeploy.octopusdeploy
ExtendedDiagramIcons.octopusdeploy.octopusdeploy.Octopus_Deploy
ExtendedDiagramIcons.octopusdeploy.octopusdeploy.Octopus_Server_Node
ExtendedDiagramIcons.octopusdeploy.octopusdeploy.Octopus_Worker_Node
ExtendedDiagramIcons.octopusdeploy.octopusdeploy.Octopus_Worker_Pool
ExtendedDiagramIcons.octopusdeploy.octopusdeploy.Pipeline
ExtendedDiagramIcons.octopusdeploy.octopusdeploy.Release
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
&fix
commits):- [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
dev
tomain
, 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
Hashes for ExtendedDiagramIcons-1.1.0.dev19.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f305a49048d2fa38c1e0be441a2b88d1207dd9fc9d93c75d82067dd88af8233f |
|
MD5 | cbc43c8c152adf28e782291166fe8439 |
|
BLAKE2b-256 | f9aa0de1cdefd569018541e9294a6f4e280fbf33c2988bb8278680dc794e7427 |
Hashes for ExtendedDiagramIcons-1.1.0.dev19-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4d0f4e0a98d1664813100b19ca48780d25e170e7bc5483a3361feab3b40bef3 |
|
MD5 | c2c633a7fb33318667ea8a70dfd69459 |
|
BLAKE2b-256 | 92b3cd8580613ad1609f904958900e1935442f5af567cbda4929336e791bf807 |