Skip to main content

Conventional With Data

A branch of conventionalish with an added data prefix.

Patch Commitizen's Conventional Commits implementation with additional prefixes.

QUESTIONS = [
    ("fix", "A bug fix", "x", PATCH),
    ("feat", "A new feature", "f", MINOR),
    ("data", "Changes to non-code input (data, blog content, models, etc.)", "a", PATCH),
    ("docs", "Documentation only changes", "d", None),
    ("style", "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)", "s", None),
    ("refactor", "A code change that neither fixes a bug nor adds a feature", "r", PATCH),
    ("perf", "A code change that improves performance", "p", PATCH),
    ("test", "Adding missing or correcting existing tests", "t", None),
    ("build", "Changes that affect the build system or external dependencies (example scopes: pip, docker, npm)", "b", None),
    ("ci", "Changes to our CI configuration files and scripts (example scopes: GitLabCI)", "c", None)
]

By default, Commitizen will use its Conventional Commits implementation, so when you run cz commit, you will get a choice of

  • fix:
  • feat:
  • docs:
  • style:
  • refactor:
  • perf:
  • test:
  • build:
  • ci:

Commitizen has a robust system for building your own commit patterns, and it's great if you want to start from scratch. But if you want to make a small change to the defaults and keep the nice prompts, commit-message linting, and changelog-building provided by Commitizen, you will have to create or update six patterns or regexps. This script inherits from ConventionalCommitsCz and patches in new choices and associated properties. FWIW, despite the ish in the name conventionalish, these changes will still meet the Conventional Commits standard (at least as much as Commitizen does) as long as the feat: and fix: prefixes remain.

Should you want to accomplish this by hand:

  1. inherit from ConventionalCommitsCz
  2. overload .questions() # for commit prompts
  3. overload .schema_pattern() # for commit-message linting

Will your addition affect versioning?

  1. overload .bump_pattern # for commitizen bump
  2. overload .bump_map # for commitizen bump
  3. overload .commit_parser # for commitizen changelog
  4. overload .change_type_map # for commitizen changelog
  5. overload .changelog_pattern # for commitizen changelog

Usage

To make these changes using a script:

  1. clone this project into your project root
  2. edit the QUESTIONS value at the top of questions.py. The default value will give near-identical behavior to the Commitizen default.
  3. install conventionalish in your project venv (poetry add .\conventionalish; pip install .\conventionalish; ...) or upload to PyPi with a new name.
  4. run with cz -n cz_conventionalish or add the following to pyproject.toml
[tool.commitizen]
name = "cz_conventionalish"

Troubleshooting, Q&A

I updated the file, but Commitizen doesn't recognize the changes.

This is an installed package, depending how you installed it, you may need to:

  1. delete any commitizenish/build or commitizenish/egg-info directories
  2. uninstall
  3. reinstall

How can I change the project name (conventionalish)?

  1. change the name of this folder after you clone it
  2. update the line name="conventionalish" in conventionalish/pyproject.toml to name="new_folder_name"

How can I change the commit-rule name (cz_conventionalish)?

  1. change the filename conventionalish/cz_conventionalish.py to conventionalish/cz_new_name.py
  2. change the line { include = "cz_conventionalish.py" } in conventionalish/pyproject.toml to { include = "cz_new_name.py" }

Author

Shay Hill (shay_public@hotmail.com)

Metadata

Release files for conventional-with-data 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for conventional-with-data 0.1.1
File Size Uploaded
conventional_with_data-0.1.1.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for conventional-with-data 0.1.1
File Interpreter ABI Platform
conventional_with_data-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.4 kB

Release files / conventional_with_data-0.1.1.tar.gz

Download URL conventional_with_data-0.1.1.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d67e28a980d1cda98ebc46ec86571e146e1f212e0be0f45fa0f54a88b672289b
BLAKE2b-256 checksum
How to use checksums
4ee3d7977b29ba78a993ded941b9d297fe0c81de0beb2035ef0703600709e633
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.11.0 Windows/10

Release files / conventional_with_data-0.1.1-py3-none-any.whl

Download URL conventional_with_data-0.1.1-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
927488f05e9ecd554370124d56d006a2b1c97419fd0ba7bb6cd7697deb152c4d
BLAKE2b-256 checksum
How to use checksums
f799c35397a77479d4ddbe83c9a10ad436e7f6f7414a47b3063300c3fc07b466
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.11.0 Windows/10

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page