- avoid raising an exception when a change_type is not defined (#1879)
- config: fix contains_commitizen_section failing for completely empty files
- provider: use encoding settings in config (#1857)
- bump: preserve existing changelog header when
changelog_merge_prereleaseis used withcz bump --changelog(#1850)
- changelog: add incremental parameter to changelog generation (#1808)
- pre-commit-hooks: correct rev-range syntax in commitizen-branch (#1841)
- version_schemes: shorten generate_prerelease (#1838)
- simplify code with pathlib Path object (#1840)
- tags: extract version resolution method (#1839)
- config: replace is_empty_config with contains_commitizen_section, improve multi config resolution algorithm (#1842)
- bump: add --version-files-only and deprecate --files-only (#1802)
- version: add --tag tag to version command (#1819)
- cli: add description when choosing a commit rule (#1825)
- tags: enable version schemes with less than 3 components (#1705)
- config: include pyproject.toml in multi config file warning (#1803)
- add pytest ruff rule PT and fix missing deprecation warning (#1826)
- message_length_limit: align the behavior of message_length_limit (#1813)
- cli: capitalize the first characters of help texts and fix minor grammar errors
- replace hard-coded string "cz_conventional_commits" with DEFAULT_SETTINGS (#1830)
- bump: fix unbounded variable type issue
- pre-commit-hooks: remove magic constants on pre-push hook (#1815)
- prek: supporting prek as an alternative to pre-commit and switching to prek (#1799)
- git: commit bodies with carriage returns are correctly split by … (#1780)
- config: ensure the actually used config file is correct, better test coverage (#1784)
- cli: move sys.excepthook override to correct line, rename 'type' parameter, fix no argv test (#1791)
- bump: fix the issue that changelog_merge_prerelease not working on cz bump
- config: add warning for multiple configuration files and update documentation (#1773)
- providers: normalize package names in uv provider for uv.lock matching
- Drop support for Python 3.9 as EOL reached and add Python 3.14 support
- add custom validation
- version: fix the behavior of cz version --major
- cli: debug and no_raise can be used together in sys.excepthook
- git: replace lstrip with strip for compatibility issue
- bump: remove NotAllowed related to --get-next option, other related refactoring
- version: rename class member to align with other classes
- cargo_provider: cleanup and get rid of potential type errors
- bump: extract option validation and new version resolution to new functions
- changelog: raise NotAllow when file_name not passed instead of using assert
- bump: rename parameter and variables
- ruff: enable ruff rules TC001~TC006
- add TYPE_CHECKING to CzQuestion imports
- add config option for line length warning
- conventional_commits: allow exclamation in title on BC
- version: add the ability to just print major or minor version
- allow
amend!prefix as created bygit --fixup=reword:<commit>
- commands/version: add missing return
- test: set terminal width for cli tests
- Init: raise InitFailedError on keyboard interrupt on pre-commit hook question, simplify logic, remove unreachable code path
- bump: cleanup related to update_version_file
- RestructuredTest: rename variable, fix typo and remove unnecessary string copy
- TomlConfig: minor cleanups for DX
- Commit: refactor _prompt_commit_questions and fix some type hint
- hooks: refactor to improve readability
- Init: make project_info a module and remove self.project_info
- BaseConfig: update docstring, extract factory method and remove unnecessary variable assignment
- remove self.encoding for better maintainability
- utils: make get_backup_file_path to return a path for semantic correctness
- remove unnecessary class member tag_format
- Bump: remove use of getattr
- ConventionalCommitsCz: rewrite message method to make the pattern more clear
- cmd: unnest try except
- BaseCommitizen: remove NotImplementedError and make them abstract method
- BaseCommitizen: construct Style object directly to get rid of potential type error
- dependency: move deprecated to project.dependencies
- check: add check against default branch
- changelog: mark get_smart_tag_range as deprecated
- init: use pre-push as pre-commit stage
- init: use pre-push as pre-commit stage
- init: make welcome message easier to read
- Init: fix a typo in _ask_version_provider options and remove unnecessary filter, use named tuple for options
- ExitCode: add from_str in ExitCode and replace parse_no_raise with it
- raise NoVersionSpecifiedError if version is None, and adjust call sites of get_version
- Changelog: fix _export_template variable type
- Bump: rewrite --get-next NotAllowed error message for consistency
- changelog: add get_next_tag_name_after_version and test, mark unused for get_smart_tag_range
- changelog: simplify logic for get_oldest_and_newest_rev
- changelog: shorten generate_tree_from_commits
- Init: remove the variable values_to_add and the update_config function for readability
- Init: remove unnecessary methods from ProjectInfo and refactor _ask_tag
- Init: fix unbounded variable in _ask_tag_format
- init: remote extra words
- process_commit_message: better type and early return
- Init: extract _get_config_data for readability
- changelog: shorten condition expression and early return
- Changelog: remove unnecessary intermediate variables for better readability
- bump: use a loop to shorten a series of similar NotAllowed exceptions
- Init: use ternary operator
- TagRules: extract tag_formats property and simplify list comprehension
- git: remove redundant if branch
- ScmProvider: replace sorted with max
- ExpectedExit: make the constructor more compact
- ParseArgs: simplify call function body
- members in workspace, use exclude
- cargo workspaces
- reduce code indentation
- cli: update description for deprecate warning
- commit: emit deprecated warning of cz commit -s
- Check: make parameters backward compatible
- BaseConfig: mypy error
- deprecated: mark deprecate in v5
- defaults: add non-capitalized default constants back and deprecated warning
- jira: refactor message
- conventional_commits: use TypedDict for answers
- conventional_commits: make schema_pattern more readable
- do not guess if changelog format is provided
- check: compile once and rename variable
- questions: type questions with TypedDict
- bump: simplify nested if
- git: retype get_commits parameter to make it more friendly to call sites
- git: simplify tag logic
- bump: eliminate similar patterns in code
- bump: use any to replace 'or' chain
- remove unnecessary bool() and remove Any type from TypedDict get
- bump: improve readability and still bypass mypy check
- commands: remove unused args, type version command args
- commit: type commit args
- check: type CheckArgs arguments
- check: remove unused argument
- changelog: type untyped arguments
- bump: TypedDict for bump argument
- make methods protected, better type
- conventional_commits: remove unnecessary checks
- fix mypy output and better type
- BaseCommitizen: remove unused process_commit
- remove
TypeErrorhandling sincePython >=3.9is required - add comment clarifying
no_raiseparsing tolist[int] - cli.py: add type hints
- mypy: remove
unused-ignore - changelog: better typing, yield
- cli: early return and improve test coverage
- git: extract _create_commit_cmd_string
- misc cleanup
- bump: clean up
- bump: add type for out, replace function with re escape
- BaseConfig: use setter
- changelog: minor cleanup
- git: refactor get_tag_names
- EOLType: add eol enum back and reorganize methods
- git: code cleanup and better test coverage
- commit: simplify call
- version_scheme: cleanup
- improve readability and fix typos
- bump: avoid unnecessary list construction and rename variable to avoid confusion
- tags: use set
- check: simplify code
- check: remove unnecessary variable
- customize: improve code readability
- cli: add --tag-format argument to changelog command
- default: capitalize all constants and remove unnecessary variable
- bump: don't fail if an invalid version tag is present (fix #1410) (#1418)
- providers: add support for
Cargo.lock
- tests: increase verbosity of variables
- changelog.py: cross-platform path handling using os.path.join and modify the path linter and test parameter
- changelog.py: modify the CHANGELOG.md generated by cz bump --changelog to the right place
- docs: fix url link and table formatting in the customization docs (#1399)
- commit: use os.unlink to remove temp file
- changelog: expose commit parents' digests when processing commits
- git: add parents' digests in commit information
- print which tag is invalid
- init: set uv to default value if both pyproject.toml and uv.lock present
- commands/init: add missing uv provider to "cz init"
- tags: fixes ImportError on Python >=3.11 (#1363) (#1364)
- tags: adds
legacy_tag_formatsandignored_tag_formatssettings
- get_tag_regexes: dedup tag regexes definition
- providers: add uv_provider
- bump: manual version bump if prerelease offset is configured
- bump: add debugging to bump
- draft of the --empty parameter
- bump: rename --empty as --allow-no-commit
- get-next-bump: add a test case
- get-next-bump: fix to permit usage of --get-next options even when update_changelog_on_bump is set to true
- commit: allow '-- --allow-empty' to create empty commits
- commitizen: document '--' double dash in '--help'
- commit: avoid warnings with 'always_signoff' configuration
- commit: resolve 'always_signoff' configuration and '-s' CLI issues
- cli: replace magic number 0 with ExitCode.EXPECTED_EXIT
- defaults: disallow style as None
- cz_customize: return empty string for info, example, schema and schema_pattern if not provided
- commands/commit: add force-edit functionality after answering questions
- remove redundant return None
- changelog: Factorized TAG_FORMAT_REGEXES
- changelog: Handle tag format without version pattern
- changelog: handle custom tag_format in changelog generation
- Use format strings
- bump: add functionality to write the next version to stdout
- add argument to limit length of commit message in checks
- config_files: add support for "cz.toml" config file
- base.py: add encoding when open changlelog_file
- cli/commands: add description for subcommands
- KNOWN_SCHEMES: replace set comprehension for list comprehension
- tests/commands: move "other" tests for the correspondent file
- ci/cd: automates the generation of CLI screenshots
- strip possessive from note about ci option
- add an argument to limit the length of commit message
- strip the commit message for calculating length
- resolve test error by removing defaults
- commands/commit: replace comparison with chained comparison
- check the length in Commit instead of Commitizen
- schemes: adds support for SemVer 2.0 (dot in pre-releases) (fix #1025) (#1072)
- bump:
version_filesnow support glob patterns (fix #1067) (#1070)
- cli: add config option to specify config file path
- defaults: move cz_conventional_commit defaults out of defaults.py
- commitizen/git.py,-tests/test_git.py: Resolve tempfile path spaces issue in git commit function
- command-init: "cz init" should list existing tag in reverse order
- commit: add retry_after_failure config option and --no-retry flag
- utils: convert git project root to posix path for backup file name
- commit: use Optional[str] instead of str | None
- commit: remove unused tempfile import
- git-hooks: make git hooks use get_backup_file_path
- utils: move backup path creation to utils
- changelog: expose commits
sha1,authorandauthor_emailin changelog tree (fix #987) (#1013)
- changelog: adds a
changelog_release_hookcalled for each release in the changelog (#1018)
- changelog: include latest change when dry run and incremental
- warnings: all warnings should go to
stdout
- git: force the default git locale on methods relying on parsing the output (#1012)
- changelog: changelog hook was not called on dry run
- changelog:
changelog_message_build_hookcan now generate multiple changelog entries from a single commit (#1003)
- changelog: ensure
changelog_message_builder_hookcan access and modifychange_type(#1002)
- bump: pre and post bump hooks were failing when an increment was provided (fix #1004)
- changelog:
changelog_message_build_hookcan remove message by returning a falsy value
- commands: add bump --exact
- bump: change --exact-increment to --increment-mode
- bump: only get and validate commits if increment is not provided
- Improve type annotations
- bump: functionality to add build-metadata to version string
- bump: remove unused method
- scm: only search tags that are reachable by the current commit
- properly bump versions between prereleases (#799)
- commands-bump: automatically create annotated tag if message is given
- add tag message argument to cli
- git: add get tag message function
- add custom message to annotated git tag
- test-bump-command: typo in --annotated-tag option inside test
- commitizen-git: add quotes for tag message
- commands-bump: make changelog variable in 1 line
- commands-bump: cast str to bool
- formats: expose some new customizable changelog formats on the
commitizen.changelog_formatendpoint (Textile, AsciiDoc and RestructuredText) - template: add
changelog --export-templatecommand - template: allow to override the template from cli, configuration and plugins
- cli.py: Added support for extra git CLI args after -- separator for
cz commitcommand
- filename: ensure
file_namecan be passed tochangelogfrombumpcommand
- git.py: Removed 'extra_args' from git.commit
- extra_args: Fixed broken code due to rebase and finalized tests
- Code Review - round 1 changes
- Commit: Added deprecation on git signoff mechanic
- bump: add bump support with custom type + scope + exclamation mark
- bump: version bumping
- Drop support for Python 3.7 (#858)
- conf: handle parse error when init (#856)
- commands: add arg of cz commit to execute git add
- tests: modify the arg of commit from add to all
- commitizen: Modify the function of the arg a of commit from git add all to git add update
- commitizen: add return type hint of git add function
- provider: split provider code and related tests into individual files for maintainability (#830)
- add sponsors to README
- defaults.py: add always_signoff config option for commits
- empty error on bump failure
- provider: add npm2 provider to update package.json, package-lock.json, and npm-shrinkwrap.json
- provider: fix npm version provider to update package-lock.json and npm-shrinkwrap.json if they exist
- provider: fix npm provider to update package-lock.json and npm-shrinkwrap.json if they exist
- test: pass correct type to get_package_version tests
- tests: completed test coverage for npm2
- changelog.py: add encoding to get_metadata
- unicode: add unicode support
- add missing
encodingparameter - out.py:
TextIOWrapper.reconfiguretyping - correct type hinting
- use base config for encoding
- defaults.py: use variables in
DEFAULT_SETTINGS
- replace SemVer type literals by respective constants
- Treat $version the same as unset tag_format in ScmProvider
- Make tag_format properly default to $version
- typing: no_raise is declared as optional
- only use version tags when generating a changelog
- Add option in bump command to redirect git output to stderr
- veresion_schemes: import missing Self for python 3.11
- version-schemes: expose
version_schemesas acommitizen.schemeendpoint.
- add support for cargo workspaces
- init: fix is_pre_commit_installed method
- add support for importlib_metadata 6
- hooks: add prepare-commit-msg and post-commit hooks
- commit: add --write-message-to-file option
- bump: better match for change_type when finding increment
- changelog: breaking change on additional types for conventional commits
- bump: breaking changes on additional types for conventional commits
- improve errors message when empty .cz.json found
- init: poetry detection
- bump decli which is type hinted
- commit: change type of write_message_to_file to path
- bump changelog for prerelease without commits
- make
major_version_zerocustomizable by third parties
- typo in hook
- set default_install_hook_types
- Plugins are now exposed as
commitizen.pluginentrypoints - Python 3.6 is not officially supported anymore. Please migrate from 3.6 to 3.7 or greater.
- init: add new settings
- add semver support through version provider new api (#686)
- changelog: add merge_prereleases flag
- providers: add a
scmversion provider - providers: add support for some JSON-based version providers (NPM, Composer)
- providers: add support for some TOML-based versions (PEP621, Poetry, Cargo)
- providers: add a
commitizen.providerendpoint for alternative versions providers - plugins: Switch to an importlib.metadata.EntryPoint-based plugin loading
- init: welcome message
- small corrections and clean up
- major version zero message
- update dependencies
- commands/changelog: use topological order for commit ordering
- excepthook: ensure traceback can only be a
TracebackTypeorNone
- bump: fixed environment variables in bump hooks
- bump: support prereleases with start offset
- bump: added support for running arbitrary hooks during bump
- yaml_config: add explicit_start for yaml output
- filter git diff from commit message
- init: allow user to select which type of pre commit hooks to install
- init: space between
--hook-typeoptions - init: report error when hook installation failed
- init:
_install_pre_commit_hookraise error when failed
- poetry: relax packaging version
- changelog: allow rev range lookups without a tag format
- add major-version-zero option to support initial package development
- scripts: remove
venv/bin/ - scripts: add error message to
test
- scripts/test: MinGW64 workaround
- scripts/test: use double-quotes
- scripts: pydocstyle and cz
- bump.py: use
sys.stdin.isatty() - scripts: use cross-platform POSIX
- scripts: use portable shebang
- pythonpackage.yml: undo indent reformatting
- pythonpackage.yml: use
bash
- allow fixup! and squash! in commit messages
- bump: support optional manual version argument
- bump: fix type hint
- bump: fix typos
- bump.py:
CHANGELOG.mdgets git added and committed correctly
- add functionality for dev-releases
- README.md: fix pre-commit install command
- bump: log git commit stderr and stdout during bump
- command_changelog: Fixed issue #561 cz bump could not find the latest version tag with custom tag_format
- bump: Remove a redundant join call
- bump: Search for version number line by line
- bump: Support regexes containing colons
- git: Improves error checking in get_tags
- git: improves git error checking in get_commits
- git: test the git log parser behaves properly when the repository has no commits
- changelog: fixes logic issue made evident by latest fix(git) commit
- pre-commit: Add commitizen-branch hook
- new file
- pyproject.toml: remove test added configurations
- changelog: use defaults.change_type_order in conventional commit
- capitalize types in default change_type_order
- Determine newline to write with Git
- cmd: improve character encoding detection for sub-commands
- git: use "git tag -v" return_code to check whether a tag is signed
- tool: use charset_normalizer instead of chardet
- changelog: removes unused code. duplicates are found in changelog_parser
- bump: send changelog to stdout when
dry-runis paired withchangelog-to-stdout
- Check: process empty commit message
- ConventionalCommitsCz: cz's schema validates the whole commit message now
- Check: remove the extra preprocessing of commit message file
- use chardet to get correct encoding
- bump: add signed tag support for bump command
- avoid that pytest overrides existing gpg config
- test: set git to work with gpg
- changelog: skip non-compliant commit subjects when building changelog
- bump: make increment option case insensitive
- pre-commit: Use new --allow-abort option
- pre-commit: Confine hook to commit-msg stage
- pre-commit: Set min pre-commit to v1.4.3
- pre-commit: Don't require serial execution
- bump: let it respect pre-commit reformats when bumping
- check: Add --allow-abort option
- changelog: Improve whitespace in changelog
- changelog: Simplify incremental_build
- add --no-raise to avoid raising error codes
- change error code for NoneIncrementExit
- customize.py: adding support for commit_parser, changelog_pattern, change_type_map
- changelog: add support for single version and version range
- speed up testing and wait for tags
- git: use date as a function in GitTag to easily patch
- remove type ignore
- Switch to issue forms
- Switch to issue forms
- Switch to issue forms
- skip merge messages that start with Pull request
- Ignore packages that are not plugins
- iter_modules only accepts str
- bump: raise non zero error code when there's no eligible commit to bump
- check: filter out comment message when checking
- poetry: add typing-exteions to dev
- import TypedDict from type_extensions for backward compatibility
- conventional_commits: remove duplicate patterns and import from defaults
- config: add CzSettings and Questions TypedDict
- defaults: add Settings typeddict
- defaults: move bump_map, bump_pattern, commit_parser from defaults to ConventionalCommitsCz
- cli.py: add shortcut for signoff command
- add signoff parameter to commit command
- utility for showing system information
- cli: handle argparse different behavior after python 3.9
- commit: correct the stage checker before committing
- prompt: add keyboard shortcuts with config option
- shortcuts: move check for shortcut config setting to apply to any list select
- git.py: ensure signed commits in changelog when git config log.showsignature=true
- correct indentation for json config for better readability
- add support for jinja2 v3
- changelog: generating changelog after a pre-release
- changelog: annotated tags not generating proper changelog
- bump: fix error due to bumping version file without eol through regex
- bump: fix offset error due to partially match
- cz/conventional_commits: optionally expect '!' right before ':' in schema_pattern
- version update in a docker-compose.yaml file
- fix multiple versions bumps when version changes the string size
- bump: replace all occurrences that match regex
- wip: add test for current breaking change
- commands/init: fix toml config format error
- Support versions on random positions
- bump: send incremental changelog to stdout and bump output to stderr
- add utf-8 encode when write toml file
- git: fix get_commits deliminator
- config: change read mode from
rtorb
- changelog: add support for multiline BREAKING paragraph
- git: handle the empty commit and empty email cases
- remove yaml warnings when using '.cz.yaml'
- #271: enable creation of annotated tags when bumping
- #319: add optional change_type_order
- raise an InvalidConfigurationError
- #323: address PR feedback
- move expected COMMITS_TREE to global
- read commit_msg_file with utf-8
- deps: Update and relax tomlkit version requirement
- commit: attach user info to backup for permission denied issue
- add yaml as a config option
- config: add support for the new class YAMLConfig at the root of the confi internal package
- init: add support for yaml config file at init
- YAMLConfig: add a TypeError exception to handle in _parse_settings method
- commitizen/cli: add the integration with argcomplete
- Init: add the json config support as an option at Init
- commitizen/config/json_config: add json support for configuration
- json_config: fix the emtpy_config_content method
- support
!in cz check command
- prevent prerelease from creating a bump when there are no commits
- allow files-only to set config version and create changelog
- bump: add flag
--local-versionthat supports bumping only the local version instead of the public
- commands/bump: add config option to create changelog on bump
- commands/changelog: add config file options for start_rev and incremental
- init.py: mypy error (types)
- commands/bump: Add NoneIncrementExit to fix git fatal error when creating existing tag
- commands/bump: Remove comment and changed ... for pass
- cz_customize: make schema_pattern customiziable through config for cz_customize
- cz_check: cz check can read commit message from pipe
- conventional commit schema
- cli: rewrite cli instructions to be more succinct about what they require
- cli: add guideline for subject input
- cli: wrap the word enter with brackets
- cz_check: cz check can read from a string input
- cz_check: Add rev to all displayed ill-formatted commits
- cz_check: Update to show all ill-formatted commits
- cz_check: Refactor _get_commits to return GitCommit instead of dict
- git: use double quotation mark in get_tags
- commands/changelog: add exception message when failing to find an incremental revision
- commands/bump: display message variable properly
- setup.cfg, .cz and .cz.cfg are no longer supported
- Use "cz version" instead
- "cz --debug" will no longer work #47
- init: enable setting up pre-commit hook through "cz init"
- add missing
pyyamldependency - cli: make command required for commitizen
- config: drop "files" configure support. Please use "version_files" instead
- config: remove ini configuration support
- cli: remove "--version" argument
- conventional_commits: use and proper support for conventional commits v1.0.0
- add author and author_email to git commit
- changelog: remove pkg_resources dependency
- commands/bump: use
return_codein commands used by bump - commands/commit: use return_code to raise commit error, not stderr
- cmd: add return code to Command
- bump: add changelog file into stage when running
cz bump --changelog
- Raise NotAGitProjectError only in git related command
- cli: enable displaying all traceback for CommitizenException when --debug flag is used
- exception: rename MissingConfigError as MissingCzCustomizeConfigError
- exception: Rename CommitFailedError and TagFailedError with Bump prefix
- commands/init: add test case and remove unaccessible code
- exception: move output message related to exception into exception
- exception: implement message handling mechanism for CommitizenException
- cli: do not show traceback if the raised exception is CommitizenException
- introduce DryRunExit, ExpectedExit, NoCommandFoundError, InvalidCommandArgumentError
- use custom exception for error handling
- error_codes: remove unused NO_COMMIT_MSG error code
- changelog: empty lines at the beginning of the CHANGELOG
- templates: remove trailing space in keep_a_changelog
- changelog: add support for
changelog_hookwhen changelog finishes the generation - changelog: add support for
message_hookmethod - changelog: add support for modifying the change_type in the title of the changelog
- changelog: rename
message_hook->changelog_message_builder_hook
- commands/bump: add "--check-consistency" optional
- bump: add optional --no-verify argument for bump command
- docs: change old url woile.github.io to commitizen-tools.github.io
- changelog: generate today's date when using an unreleased_version
- changelog: sort the commits properly to their version
- commands/check: Show warning if no commit to check when running
cz check --rev-range
- cli: add explicit category for deprecation warnings
- changelog: add support for any commit rule system
- changelog: add incremental flag
- commands/changelog: make changelog_file an option in config
- commands/changelog: exit when there is no commit exists
- commands/changelog: add --start-rev argument to
cz changelog - changelog: generate changelog based on git log
- commands/changelog: generate changelog_tree from all past commits
- cz/conventinal_commits: add changelog_map, changelog_pattern and implement process_commit
- cz/base: add default process_commit for processing commit message
- changelog: changelog tree generation from markdown
- git: missing dependency removed
- changelog: check get_metadata for existing changelog file
- cz/conventional_commits: fix schema_pattern break due to rebase
- changelog_template: fix list format
- commitizen/cz: set changelog_map, changelog_pattern to none as default
- commands/changelog: remove --skip-merge argument
- cli: add changelog arguments
- changelog: use functions from changelog.py
- changelog: rename category to change_type to fit 'keep a changelog'
- templates: rename as "keep_a_changelog_template.j2"
- templates: remove unneeded init file
- cli: reorder commands
- templates: move changelog_template from cz to templates
- tests/utils: move create_file_and_commit to tests/utils
- commands/changelog: remove redundant if statement
- commands/changelog: use jinja2 template instead of string concatenation to build changelog
- commands/init: fix typo
- git: fix returned value for GitCommit.message when body is empty
- git: replace GitCommit.message code with one-liner
- config: display ini config deprecation warning only when commitizen config is inside
- bump: support for ! as BREAKING change in commit message
- cz/customize: add error handling when customize detail is not set
- cz/customize: remove unused mypy ignore
- mypy: fix mypy check by checking version.pre exists
- cz: add type annotation to registry
- commands/check: fix type annotation
- config/base: use Dict to replace dict in base_config
- cz/base: fix config type used in base cz
- cz: add type annotation for each function in cz
- config: fix mypy warning for _conf
- commands/check: add help text for check command without argument
- cli: fix typo
- commands/check: add --rev-range argument for checking commits within some range
- bump: fix bump find_increment error
- cz/connventional_commit: use \S to check scope
- git: remove unnecessary dot between git range
- tests/bump: use parameterize to group similliar tests
- commands/init: fix clean up file when initialize commitizen config
- defaults: split config files into long term support and deprecated ones
- replace README.rst with docs/README.md in config files
- docs: remove README.rst and use docs/README.md
- commands/check: add bump into valid commit message of convention commit pattern
- pre-commit: set pre-commit check stage to commit-msg
- git: get_commits default from first_commit
- commands/bump: rename parameter into bump_setting to distinguish bump_setting and argument
- git: rename get tag function to distinguish return str and GitTag
- cmd: reimplement how cmd is run
- git: Use GitCommit, GitTag object to store commit and git information
- git: make arguments other then start and end in get_commit keyword arguments
- git: Change get_commits into returning commits instead of lines of messages
- cli: fix --version not functional
- tests/commands/bump: use tmp_dir to replace self implemented tmp dir behavior
- test_bump_command: rename camel case variables
- tests/commands/check: use pytest fixture tmpdir replace self implemented contextmanager
- test/commands/other: replace unit test style mock with mocker fixture
- tests/commands: separate command unit tests into modules
- tests/commands: make commands related tests a module
- config: look up configuration in git project root
- git: add find_git_project_root
- git: remove breakline in the return value of find_git_project_root
- git: make find_git_project_root return None if it's not a git project
- config/base_config: make set_key not implemented
- error_codes: move all the error_codes to a module
- config: replace string type path with pathlib.Path
- github_workflow/pythonpublish: use peaceiris/actions-gh-pages@v2 to publish docs
- cli: fix the way default handled for name argument
- cli: fix name cannot be overwritten through config in newly refactored config design
- pre-commit-hooks: add pre-commit hook
- pre-commit-hooks: add metadata for the check hook
- github_workflow/pythonpackage: set git config for unit testing
- scripts/test: ensure the script fails once the first failure happens
- add project version to command init
- new init command
- commands/bump: use "version_files" internally
- config: set "files" to alias of "version_files"
- config: handle empty config file
- config: fix load global_conf even if it doesn't exist
- config/ini_config: replace outdated _parse_ini_settings with _parse_settings
- new config system where each config type has its own class
- config: add type annotation to config property
- config: fix wrongly type annotated functions
- config/ini_config: move deprecation warning into class initialization
- config: use add_path instead of directly assigning _path
- all: replace all the _settings invoke with settings.update
- cz/customize: remove unnecessary statement "raise NotImplementedError("Not Implemented yet")"
- config: move default settings back to defaults
- config: Make config a class and each type of config (e.g., toml, ini) a child class
- cli: overwrite "name" only when it's not given
- config: fix typo
- support for different commitizens in
cz check - bump: new argument --files-only
- commands/check.py: --commit-msg-file is now a required argument
- cz/exceptions: exception AnswerRequiredException not caught (#89)
- Commands/check: enforce the project to always use conventional commits
- config: add deprecation warning for loading config from ini files
- cz/customize: add jinja support to enhance template flexibility
- cz/filters: add required_validator and multiple_line_breaker
- Commands/commit: add ´--dry-run´ flag to the Commit command
- cz/cz_customize: implement info to support info and info_path
- cz/cz_customize: enable bump_pattern bump_map customization
- cz/cz_customize: implement customizable cz
- new 'git-cz' entrypoint
- commit dry-run doesn't require staging to be clean
- scripts: add back the delete poetry prefix
- correct typo to spell "convention"
- removing folder in windows throwing a PermissionError
- test_cli: testing the version command
- config: remove has_pyproject which is no longer used
- cz/customize: make jinja2 a custom requirement. if not installed use string.Template instead
- cz/utils: rename filters as utils
- cli: add back --version and remove subcommand required constraint
- cz: add a base exception for cz customization
- commands/commit: abort commit if there is nothing to commit
- git: add is_staging_clean to check if there is any file in git staging
- commands/commit: catch exception raised by customization cz
- cli: handle the exception that command is not given
- cli: enforce subcommand as required
- cz/conventional_commit: make NoSubjectException inherit CzException and add error message
- command/version: use out.write instead of out.line
- command: make version a command instead of an argument
- config: update style instead of overwrite
- config: parse style in config
- commit: make style configurable for commit command
- cz: fix bug in BaseCommitizen.style
- cz: fix merge_style usage error
- cz: remove breakpoint
- cz: change the color of default style
- commit: new retry argument to execute previous commit again
- #28 allows poetry add on py36 envs
- bump: it is now possible to specify a pattern in the files attr to replace the version
- added argument yes to bump in order to accept questions
- bump: handle commit and create tag failure
- bump: new commit message template
- bump: prefixes like docs, build, etc no longer generate a PATCH
- custom cz plugins now support bumping version
- bump: commit message now fits better with semver
- conventional commit 'breaking change' in body instead of title
- changed stdout statements
- schema: command logic removed from commitizen base
- info: command logic removed from commitizen base
- example: command logic removed from commitizen base
- commit: moved most of the commit logic to the commit command
- new working bump command
- create version tag
- update given files with new version
- config: new set key, used to set version to cfg
- support for pyproject.toml
- first semantic version bump implementation
- removed all from commit
- fix config file not working
- added commands folder, better integration with decli
- removed delegator, added decli and many tests
- py3 only, tests and conventional commits 1.0
- config: load config reads in order without failing if there is no commitizen section
- parse scope (this is my punishment for not having tests)
- parse scope empty
- scope: parse correctly again
- scope: parse correctly
- manifest: included missing files
- conventionalCommit: moved filters to questions instead of message
- config: home path for python versions between 3.0 and 3.5
- cli: added version
- committer: conventional commit is a bit more intelligent now
- setup.py: future is now required for every python version
- python 2 support
- cz: jira smart commits
- cli: renamed all to ls command
- cz: renamed angular cz to conventional changelog cz
- info command for angular
- config: new loads from ~/.cz and working project .cz .cz.cfg and setup.cfg
- package discovery
- cz_angular: improved messages