Skip to main content

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:

  1. Install Twine: pip install twine
  2. Build your package: python setup.py sdist bdist_wheel
  3. 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

GitHub Actions GitHub Actions

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:

  1. Start:

    • [No Commits]
  2. Commit: feat: add new feature

    • [Generates Version & Tag: 1.1.0-dev.0]
  3. Commit: fix: resolve minor bug

    • [Generates Version & Tag: 1.1.0-dev.1]
  4. Commit: chore: update dependencies

    • [No Version Change: Remains 1.1.0-dev.1]
  5. Merge into main:

    • [Commits are merged, triggers a check for release in main branch]

main (Release) Branch

Steps:

  1. Start:

    • [Current Version: 1.0.0]
  2. Merge from dev (with feat & fix commits):

    • [Checks Commits: Finds feat: & fix:, hence eligible for release]
    • [Generates Version & Tag: 1.1.0]

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.
  • main Branch (Release):

    • When changes are merged from dev to main, it checks for commits with feat: or fix: prefixes.
    • If found, it increments the appropriate version number (minor for feat: and patch for fix)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ExtendedDiagramIcons-1.1.dev122.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ExtendedDiagramIcons-1.1.dev122-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file ExtendedDiagramIcons-1.1.dev122.tar.gz.

File metadata

File hashes

Hashes for ExtendedDiagramIcons-1.1.dev122.tar.gz
Algorithm Hash digest
SHA256 9e4f0c3e7b8f4ffdda33a87698073e99b7560501950314c4e6a26e3169b3dca9
MD5 b385d69e251b78dff72cbd793e8173db
BLAKE2b-256 d368c43a4ffb077d84549db7b507e8030cf0882adc5c83e457f8a2c0c591f0e3

See more details on using hashes here.

File details

Details for the file ExtendedDiagramIcons-1.1.dev122-py3-none-any.whl.

File metadata

File hashes

Hashes for ExtendedDiagramIcons-1.1.dev122-py3-none-any.whl
Algorithm Hash digest
SHA256 e0cb7baf164b19cd37778b84f449e5a18644f4f931c73e22f8fa5651157539c9
MD5 7f1b81a66589095ad1a513cddbf0f0cd
BLAKE2b-256 6c70ab11c72f447bd5009a49780f27823e4e90015e81499a45fe9d7dc409d0b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page