-
docs(configuration): update
build_command
env table for windows to use all capital vars (0e8451c
) -
docs(github-actions): update version in examples to latest version (
3c894ea
)
-
fix(config): fix path traversal detection for windows compatibility (#1014)
The original implementation of the path traversal detection expected that
resolve()
works the same on windows as it does with Linux/Mac. Windows requires the folder paths to exist to be resolved and that is not the case when thetemplate_dir
is not being used.Resolves: #994 (
16e6daa
)
-
docs: use pinned version for GHA examples (#1004)
-
docs(github-actions): use pinned version for GHA examples
Fixes #1003
-
chore(scripts): add auto version bump to non dynamic docs text (i.e. code snippets)
-
docs(github-actions): adjust formatting & version warning in code snippets
-
style(docs-github-actions): adjust formatting for readability
Co-authored-by: codejedi365 <codejedi365@gmail.com> (5fdf761
)
-
docs(configuration): fix build_command_env table rendering (#996) (
a5eff0b
) -
docs(changelog): clarify description of the default changelog generation process (
399fa65
) -
docs(configuration): clarify
changelog_file
vstemplate_dir
option usage
Provided additional description that warns about the mutually-exclusive nature of
the changelog_file
option and the template_dir
option.
Resolves: #983 (a7199c8
)
-
fix: provide
context.history
global in release notes templates (#1005) -
fix(release-notes): provide
context.history
global in release note templatesTemporarily return the
context.history
variable to release notes generation as many users are using it in their release documentation. It was never intended to be provided and will be removed in the future.context was removed in
v9.8.3
during a refactor and condensing of changelog and release notes functionality.Resolves: #984
-
fix(release-notes): fix noop-changelog to print raw release notes
Some markdown sequences can be interpreted as ansi escape sequences which dilute debugging of release note templates by the user. This change ensures the raw content is displayed to the console as expected. (
5bd91b4
)
- docs(configuration): correct GHA parameter name for commit email (#981)
git_committer_name
was repeated; replace one instance of it with
git_committer_email
(ce9ffdb
)
- fix(version-cmd): resolve build command execution in powershell (#980)
Fixes the command line option for passing a shell command to Powershell. Also included a similar shell detection result for
pwsh (Powershell Core) (32c8e70
)
-
fix: enable
--print-last-released*
when in detached head or non-release branch (#926) -
test(version-cmd): add tests to print when detached or non-release branch
ref: #900
-
fix(version-cmd): drop branch restriction for
--print-last-released*
optsResolves: #900 (
782c0a6
)
-
perf: improve git history processing for changelog generation (#972)
-
perf(changelog): improve git history parser changelog generation
This converts the double for-loop (
O(n^2)
) down toO(n)
using a lookup table to match the current commit with a known tag rather than iterating through all the tags of the repository every time. -
fix(changelog): resolve commit ordering issue when dates are similar (
bfda159
)
- fix(changelog-cmd): remove usage strings when error occured
Resolves: #810 (348a51d
)
- fix(publish-cmd): remove usage strings when error occured
Resolves: #810 (afbb187
)
-
fix(config): prevent path traversal manipulation of target changelog location (
43e35d0
) -
fix(version-cmd): remove usage strings when error occurred
Resolves: #810 (a7c17c7
)
-
fix(publish-cmd): prevent error when provided tag does not exist locally (
16afbbb
) -
fix(config): prevent path traversal manipulation of target changelog location (
3eb3dba
) -
fix(changelog-cmd): render default changelog when user template directory exist but is empty (
bded8de
)
- fix(parser): strip DOS carriage-returns in commits (#956)
The default template can result in mixed (UNIX / DOS style) carriage returns in the generated changelog. Use a string replace in the commit parser to strip the DOS CRs ("\r"). This is only needed in the case when we are not byte decoding.
Fixes #955 (0b005df
)
-
fix(templates): suppress extra newlines in default changelog (#954)
Suppress extra newlines in default generated changelog output (
7b0079b
)
-
fix: improve build cmd env on windows (#942)
-
fix(version-cmd): pass windows specific env vars to build cmd when on windows
-
test(version-cmd): extend build cmd tests to include windows vars
-
docs(configuration): define windows specific env vars for build cmd
-
refactor(version-cmd): only add windows vars when windows is detected
Co-authored-by: Juan Cruz Mencia Naranjo <jcmencia@arsys.es> (d911fae
)
- docs(migration-v8): update version references in migration instructions (#938) (
d6ba16a
)
-
feat: extend gitlab to edit a previous release if exists (#934)
-
style(hvcs-github): update function docstrings for params
-
feat(hvcs-gitlab): enable gitlab to edit a previous release if found
-
fix(hvcs-gitlab): add tag message to release creation
-
fix(gitlab): adjust release name to mirror other hvcs release names
-
refactor(gitlab): consolidate & simplify usage of gitlab client
-
test(gitlab): neuter test cases that used the internet & add new tests
-
refactor(gitlab): handle errors in release retrieval gracefully
-
refactor(gitlab): update release notes editing implementation
Co-authored-by: bdorsey <brentadorsey@gmail.com> (23e02b9
)
- feat(gha): configure ssh signed tags in GitHub Action (#937)
Resolves: #936 (dfb76b9
)
-
feat(version-cmd): add toggle of
--no-verify
option togit commit
(#927) -
test(version-cmd): add test w/ failing pre-commit hook--preventing version commit
-
feat(version-cmd): add toggle of
--no-verify
option togit commit
This commit adds a configuration option that toggles the addition of
--no-verify
command line switch on git commit operations that are run with theversion
command. -
docs(configuration): add
no_git_verify
description to the configuration page
Co-authored-by: bdorsey <brentadorsey@gmail.com> (1de6f78
)
- fix: enabled
prelease-token
parameter in github action (#929) (1bb26b0
)
-
docs(configuration): clarify TOC & alphabetize configuration descriptions (
19add16
) -
docs(configuration): clarify TOC & standardize heading links (
3a41995
)
- fix: enable user configuration of
build_command
env vars (#925)
-
test(version): add test of user defined env variables in build command
ref: #922
-
fix(version): enable user config of
build_command
env variablesResolves: #922
-
docs(configuration): document
build_command_env
configuration option (6b5b271
)
-
fix(gha): fix missing
git_committer_*
definition in action (#919)Resolves: #918 (
ccef9d8
)
- docs(configuration): add description of build command available env variables (
c882dc6
)
- feat(version-cmd): pass
NEW_VERSION
& useful env vars to build command (ee6b246
)
-
fix(gha): add missing
tag
option to GitHub Action definition (#908)Resolves: #906 (
6b24288
)
-
feat: changelog filters are specialized per vcs type (#890)
-
test(github): sync pr url expectation with GitHub api documentation
-
fix(github): correct changelog filter for pull request urls
-
refactor(hvcs-base): change to an abstract class & simplify interface
-
refactor(remote-hvcs-base): extend the base abstract class with common remote base class
-
refactor(github): adapt to new abstract base class
-
refactor(gitea): adapt to new abstract base class
-
refactor(gitlab): adapt to new abstract base class
-
refactor(bitbucket): adapt to new abstract base class
-
refactor(cmds): prevent hvcs from executing if not remote hosted vcs
-
feat(changelog): changelog filters are hvcs focused
-
test(hvcs): add validation for issue_url generation
-
feat(changelog-github): add issue url filter to changelog context
-
feat(changelog-gitea): add issue url filter to changelog context
-
refactor(cmd-version): consolidate asset uploads with release creation
-
style: resolve ruff errors
-
feat(changelog-context): add flag to jinja env for which hvcs is available
-
test(changelog-context): demonstrate per hvcs filters upon render
-
docs(changelog-context): explain new hvcs specific context filters
-
refactor(config): adjust default token resolution w/ subclasses (
76ed593
)
-
fix(parser-custom): gracefully handle custom parser import errors (
67f6038
) -
fix: correct version
--prerelease
use & enable--as-prerelease
(#647) -
test(version): add validation of
--as-prerelease
and--prerelease opts
-
fix(version-cmd): correct
--prerelease
usePrior to this change,
--prerelease
performed the role of converting whichever forced version into a prerelease version declaration, which was an unintentional breaking change to the CLI compared to v7.--prerelease
now forces the next version to increment the prerelease revision, which makes it consistent with--patch
,--minor
and--major
. Temporarily disabled the ability to force a prerelease.Resolves: #639
-
feat(version-cmd): add
--as-prerelease
option to force the next version to be a prereleasePrior to this change,
--prerelease
performed the role that--as-prerelease
now does, which was an unintentional breaking change to the CLI compared to v7.--prerelease
is used to force the next version to increment the prerelease revision, which makes it consistent with--patch
,--minor
and--major
, while--as-prerelease
forces for the next version to be converted to a prerelease version type before it is applied to the project regardless of the bump level.Resolves: #639
-
docs(commands): update version command options definition about prereleases
Co-authored-by: codejedi365 <codejedi365@gmail.com> (2acb5ac
)
- build(deps): bump ruff from 0.3.5 to 0.3.7 (#894) (
6bf2849
)
-
feat: extend support to on-prem GitHub Enterprise Server (#896)
-
test(github): adjust init test to match the Enterprise Server api url
-
feat(github): extend support to on-prem GitHub Enterprise Server
Resolves: #895 (
4fcb737
)
- build(deps): update rich requirement from ~=12.5 to ~=13.0 (#877)
Updates the requirements on rich to permit the latest version.
Resolves: #888
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (4a22a8c
)
-
fix(hvcs): allow insecure http connections if configured (#886)
-
fix(gitlab): allow insecure http connections if configured
-
test(hvcs-gitlab): fix tests for clarity & insecure urls
-
test(conftest): refactor netrc generation into common fixture
-
refactor(hvcsbase): remove extrenous non-common functionality
-
fix(gitea): allow insecure http connections if configured
-
test(hvcs-gitea): fix tests for clarity & insecure urls
-
refactor(gitlab): adjust init function signature
-
fix(github): allow insecure http connections if configured
-
test(hvcs-github): fix tests for clarity & insecure urls
-
fix(bitbucket): allow insecure http connections if configured
-
test(hvcs-bitbucket): fix tests for clarity & insecure urls
-
fix(config): add flag to allow insecure connections
-
fix(version-cmd): handle HTTP exceptions more gracefully
-
style(hvcs): resolve typing issues & mimetype executions
-
test(cli-config): adapt default token test for env resolution
-
test(changelog-cmd): isolate env & correct the expected api url
-
test(fixtures): adapt repo builder for new hvcs init() signature
-
style: update syntax for 3.8 compatiblity & formatting
-
docs(configuration): update
remote
settings section with missing valuesResolves: #868
-
style(docs): improve configuration & api readability (
db13438
) -
fix(hvcs): prevent double url schemes urls in changelog (#676)
-
fix(hvcs): prevent double protocol scheme urls in changelogs
Due to a typo and conditional stripping of the url scheme the hvcs_domain and hvcs_api_domain values would contain protocol schemes when a user specified one but the defaults would not. It would cause the api_url and remote_url to end up as "https://https://domain.com"
-
fix(bitbucket): correct url parsing & prevent double url schemes
-
fix(gitea): correct url parsing & prevent double url schemes
-
fix(github): correct url parsing & prevent double url schemes
-
fix(gitlab): correct url parsing & prevent double url schemes
-
test(hvcs): ensure api domains are derived correctly
Co-authored-by: codejedi365 <codejedi365@gmail.com> (5cfdb24
)
-
fix(gh-actions-output): fixed trailing newline to match GITHUB_OUTPUT format (#885)
-
test(gh-actions-output): fix unit tests to manage proper whitespace
tests were adjusted for clarity and to replicate error detailed in #884.
-
fix(gh-actions-output): fixed trailing newline to match GITHUB_OUTPUT format
Resolves: #884 (
2c7b6ec
)
-
feat(gitea): derives gitea api domain from base domain when unspecified (#675)
-
test(gitea): add test of custom server path & custom api domain
-
feat(gitea): derives gitea api domain from base domain when unspecified
-
refactor(hvcs-gitea): uniformly handle protocol prefixes
Co-authored-by: codejedi365 <codejedi365@gmail.com> (2ee3f8a
)
- fix(cli-version): change implementation to only push the tag we generated
Restricts the git push command to only push the explicit tag we created which will eliminate the possibility of pushing another tag that could cause an error.
Resolves: #803 (8a9da4f
)
- fix(algorithm): handle merge-base errors gracefully
Merge-base errors generally occur from a shallow clone that is primarily used by CI environments and will cause PSR to explode prior to this change. Now it exits with an appropriate error.
Resolves: #724 (4c998b7
)
- perf(algorithm): simplify logs & use lookup when searching for commit & tag match (
3690b95
)
-
feat(cmd-version): changelog available to bundle (#779)
-
test(util): fix overlooked file differences in folder comparison
-
test(version): tracked changelog as changed file on version create
Removes the temporary release_notes hack to prevent CHANGELOG generation on execution of version command. Now that it is implemented we can remove the fixture to properly pass the tests.
- feat(cmd-version): create changelog prior to build enabling doc bundling (
37fdb28
)
- fix(cli): enable subcommand help even if config is invalid
Refactors configuration loading to use lazy loading by subcommands
triggered by the property access of the runtime_ctx object. Resolves
the issues when running --help
on subcommands when a configuration
is invalid
Resolves: #840 (91d221a
)
- fix(parse-git-url): handle urls with url-safe special characters (
27cd93a
)
- build(deps): add click-option-group for grouping exclusive flags (
bd892b8
)
-
docs(configuration): clarify the
major_on_zero
configuration option (f7753cd
) -
docs(configuration): add description of
allow-zero-version
configuration option (4028f83
)
-
feat(version-config): add option to disable 0.x.x versions (
dedb3b7
) -
feat(version): add new version print flags to display the last released version and tag (
814240c
)
-
fix(changelog-generation): fix incorrect release timezone determination (
f802446
) -
fix(changelog): make sure default templates render ending in 1 newline (
0b4a45e
)
- fix(parse_git_url): fix bad url with dash (
1c25b8e
)
- build(deps): bump minimum required
tomlkit
to>=0.11.0
TOMLDocument is missing the unwrap()
function in v0.10.2
which
causes an AttributeError to occur when attempting to read a the text
in pyproject.toml
as discovered with #834
Resolves: #834 (291aace
)
-
docs: add bitbucket to token table (
56f146d
) -
docs: add bitbucket authentication (
b78a387
) -
docs: fix typo (
b240e12
)
- feat: add bitbucket hvcs (
bbbbfeb
)
- fix: remove unofficial environment variables (
a5168e4
)
- fix(algorithm): correct bfs to not abort on previously visited node (
02df305
)
- perf(algorithm): refactor bfs search to use queue rather than recursion (
8b742d3
)
- docs: Remove duplicate note in configuration.rst (#807) (
fb6f243
)
- fix(util): properly parse windows line-endings in commit messages
Due to windows line-endings \r\n
, it would improperly split the commit
description (it failed to split at all) and cause detection of Breaking changes
to fail. The breaking changes regular expression looks to the start of the line
for the proper syntax.
Resolves: #820 (70193ba
)
- fix(config): set commit parser opt defaults based on parser choice (#782) (
9c594fb
)
- fix!: drop support for Python 3.7 (#828) (
ad086f5
)
- fix(lint): correct linter errors (
c9556b0
)
-
docs(contributing): add docs-build, testing conf, & build instructions (#787) (
011b072
) -
docs(configuration): change defaults definition of token default to table (#786) (
df1df0d
) -
docs: add note on default envvar behaviour (#780) (
0b07cae
)
- fix(cli-generate-config): ensure configuration types are always toml parsable (#785) (
758e649
)
- feat(config): enable default environment token per hvcs (#774) (
26528eb
)
- docs: minor correction to commit-parsing documentation (#777) (
245e878
)
- feat(utils): expand parsable valid git remote url formats (#771)
Git remote url parsing now supports additional formats (ssh, https, file, git) (cf75f23
)
-
fix(cli): gracefully output configuration validation errors (#772)
-
test(fixtures): update example project workflow & add config modifier
-
test(cli-main): add test for raw config validation error
-
fix(cli): gracefully output configuration validation errors (
e8c9d51
)
-
docs(configuration): adjust wording and improve clarity (#766)
-
docs(configuration): fix typo in text
-
docs(configuration): adjust wording and improve clarity (
6b2fc8c
)
-
fix(config): gracefully fail when repo is in a detached HEAD state (#765)
-
fix(config): cleanly handle repository in detached HEAD state
-
test(cli-main): add detached head cli test (
ac4f9aa
) -
fix(cmd-version): handle committing of git-ignored file gracefully (#764)
-
fix(version): only commit non git-ignored files during version commit
-
test(version): set version file as ignored file
Tweaks tests to use one committed change file and the version file
as an ignored change file. This allows us to verify that our commit
mechanism does not crash if a file that is changed is ignored by user (ea89fa7
)
- feat: allow template directories to contain a '.' at the top-level (#762) (
07b232a
)
- docs(migration): fix comments about publish command (#747) (
90380d7
)
-
feat(cmd-version): add
--tag/--no-tag
option to version command (#752) -
fix(version): separate push tags from commit push when not committing changes
-
feat(version): add
--no-tag
option to turn off tag creation -
test(version): add test for
--tag
option &--no-tag/commit
-
docs(commands): update
version
subcommand options (de6b9ad
)
- Revert "feat(action): use composite action for semantic release (#692)"
This reverts commit 4648d87bac8fb7e6cc361b765b4391b30a8caef8. (f145257
)
- feat(action): use composite action for semantic release (#692)
Co-authored-by: Bernard Cooke <bernard-cooke@hotmail.com> (4648d87
)
- docs: add PYTHONPATH mention for commit parser (
3284258
)
- feat: Allow user customization of release notes template (#736)
Signed-off-by: Bryant Finney <bryant.finney@outlook.com> (94a1311
)
- fix: correct lint errors
GitHub.upload_asset now raises ValueError instead of requests.HTTPError (a13a6c3
)
- fix: Error when running build command on windows systems (#732) (
2553657
)
- fix: attribute error when logging non-strings (#711) (
75e6e48
)
- feat: upgrade pydantic to v2 (#714) (
5a5c5d0
)
- fix: dynamic_import() import path split (#686) (
1007a06
)
- fix: use correct upload url for github (#661)
Co-authored-by: github-actions <action@github.com> (8a515ca
)
- fix(publish): improve error message when no tags found (#683) (
bdc06ea
)
- docs: fix typo missing 's' in version_variable[s] in configuration.rst (#668) (
879186a
)
-
fix: don't warn about vcs token if ignore_token_for_push is true. (#670)
-
fix: don't warn about vcs token if ignore_token_for_push is true.
-
docs:
password
should betoken
. (f1a54a6
)
-
docs: clarify usage of assets config option (#655) (
efa2b30
) -
docs: add Python 3.11 to classifiers in metadata (#651) (
5a32a24
)
- fix(changelog): use version as semver tag by default (#653) (
5984c77
)
- fix: skip unparseable versions when calculating next version (#649) (
88f25ea
)
-
docs: correct version_toml example in migrating_from_v7.rst (#641) (
325d5e0
) -
docs: clarify v8 breaking changes in GitHub action inputs (#643) (
cda050c
) -
docs: better description for tag_format usage (
2129b72
)
- fix: handle missing configuration (#644) (
f15753c
)
-
docs: reduce readthedocs formats and add entries to migration from v7 guide (
9b6ddfe
) -
docs(migration): fix hyperlink (#631) (
5fbd52d
)
- fix: invalid version in Git history should not cause a release failure (#632) (
254430b
)
-
feat!: v8 (#619)
-
feat!: 8.0.x (#538)
Co-authored-by: Johan <johanhmr@gmail.com> Co-authored-by: U-NEO\johan <johan.hammar@ombea.com>
-
fix: correct Dockerfile CLI command and GHA fetch
-
fix: resolve branch checkout logic in GHA
-
fix: remove commit amending behaviour
this was not working when there were no source code changes to be made, as it lead to attempting to amend a HEAD commit that wasn't produced by PSR
- 8.0.0-alpha.1
Automatically generated by python-semantic-release
-
fix: correct logic for generating release notes (#550)
-
fix: cleanup comments and unused logic
-
fix(action): mark container fs as safe for git to operate on
-
style: beautify 49080c510a68cccd2f6c7a8d540b483751901207
-
fix(action): quotation for git config command
-
8.0.0-alpha.2
Automatically generated by python-semantic-release
-
fix: resolve bug in changelog logic, enable upload to pypi
-
8.0.0-alpha.3
Automatically generated by python-semantic-release
-
test: add tests for ReleaseHistory.release
-
fix: resolve loss of tag_format configuration
-
8.0.0-alpha.4
Automatically generated by python-semantic-release
-
feat: various improvements
-
Added sorting to test parameterisation, so that pytest-xdist works again - dramatic speedup for testing
-
Reworked the CI verification code so it's a bit prettier
-
Added more testing for the version CLI command, and split some logic out of the command itself
-
Removed a redundant double-regex match in VersionTranslator and Version, for some speedup
-
chore(test): proper env patching for tests in CI
-
style: beautify bcb27a4a8ce4789d083226f088c1810f45cd4c77
-
refactor!: remove verify-ci command
-
8.0.0-alpha.5
Automatically generated by python-semantic-release
-
fix(docs): fixup docs and remove reference to dist publication
-
feat!: remove publication of dists to artefact repository
-
feat: rename 'upload' configuration section to 'publish'
-
feat!: removed build status checking
-
feat: add GitHub Actions output
-
fix(action): remove default for 'force'
-
fix(ci): different workflow for v8
-
fix(action): correct input parsing
-
fix: correct handling of build commands
-
feat: make it easier to access commit messages in ParsedCommits
-
fix: make additional attributes available for template authors
-
fix: add logging for token auth, use token for push
-
ci: add verbosity
-
fix: caching for repo owner and name
-
ci: contents permission for workflow
-
8.0.0-alpha.6
Automatically generated by python-semantic-release
-
docs: update docs with additional required permissions
-
feat: add option to specify tag to publish to in publish command
-
feat: add Strict Mode
-
docs: convert to Furo theme
-
feat: add --skip-build option
-
8.0.0-alpha.7
Automatically generated by python-semantic-release
-
test: separate command line tests by stdout and stderr
-
ci: pass tag output and conditionally execute publish steps
-
fix: correct assets type in configuration (#603)
-
change raw config assets type
-
fix: correct assets type-annotation for RuntimeContext
Co-authored-by: Bernard Cooke <bernard-cooke@hotmail.com>
- 8.0.0-alpha.8
Automatically generated by python-semantic-release
-
fix: pin Debian version in Dockerfile
-
feat: promote to rc
-
8.0.0-rc.1
Automatically generated by python-semantic-release
-
ci: fix conditionals in workflow and update documentation
-
ci: correct conditionals
-
fix: only call Github Action output callback once defaults are set
-
8.0.0-rc.2
Automatically generated by python-semantic-release
-
fix: create_or_update_release for Gitlab hvcs
-
ci: remove separate v8 workflow
-
chore: tweak issue templates
-
chore: bump docs dependencies
-
8.0.0-rc.3
Automatically generated by python-semantic-release
-
fix(deps): add types-click, and downgrade sphinx/furo for 3.7
-
8.0.0-rc.4
Automatically generated by python-semantic-release
-
docs: fix typo (#623)
-
docs: correct typo in docs/changelog_templates.rst
Co-authored-by: Micael Jarniac <micael@jarniac.com>
Co-authored-by: Johan <johanhmr@gmail.com>
Co-authored-by: U-NEO\johan <johan.hammar@ombea.com>
Co-authored-by: semantic-release <semantic-release>
Co-authored-by: github-actions <action@github.com>
Co-authored-by: smeng9 <38666763+smeng9@users.noreply.github.com>
Co-authored-by: Micael Jarniac <micael@jarniac.com> (ec30564
)
- fix: relax invoke dependency constraint (
18ea200
)
- fix: consider empty commits (#608) (
6f2e890
)
- fix: docker build fails installing git (#605)
git was installed from bullseye-backports, but base image is referencing latest python:3.10 since bookworm was recently released, this now points at bookworm and installing the backport of git is actually trying to downgrade, resulting in this error:
> E: Packages were downgraded and -y was used without --allow-downgrades.
> ERROR: failed to solve: process "/bin/sh -c echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list; apt-get update; apt-get install -y git/bullseye-backports" did not complete successfully: exit code: 100 (9e3eb97
)
- fix: generate markdown linter compliant changelog headers & lists (#597)
In #594, I missed that there are 2 places where the version header is formatted (cc87400
)
- fix: open all files with explicit utf-8 encoding (#596) (
cb71f35
)
- fix: generate markdown linter compliant changelog headers & lists (#594)
Add an extra new line after each header and between sections to fix 2 markdownlint errors
for changelogs generated by this package (9d9d403
)
- feat: add option to only parse commits for current working directory (#509)
When running the application from a sub-directory in the VCS, the option
use_only_cwd_commits will filter out commits that does not changes the
current working directory, similar to running commands like
git log -- .
in a sub-directory. (cdf8116
)
- docs: update broken badge and add links (#591)
The "Test Status" badge was updated to address a recent breaking change in the
GitHub actions API. All the badges updated to add links to the appropriate
resources for end-user convenience. (0c23447
)
-
fix: update docs and default config for gitmoji changes (#590)
-
fix: update docs and default config for gitmoji changes
PR #582 updated to the latest Gitmojis release however the documentation and default config options still referenced old and unsupported Gitmojis.
- fix: update sphinx dep
I could only build the documentation locally by updating Sphinx to the latest
1.x version. (192da6e
)
- fix: if prerelease, publish prerelease (#587)
Co-authored-by: Ondrej Winter <ondrej.winter@gmail.com> (927da9f
)
- docs: update repository name (#559)
In order to avoid 'Repository not found: relekang/python-semantic-release.' (5cdb05e
)
- docs: spelling and grammar in
travis.rst
(#556)
- spelling
- subject-verb agreement
- remove verbiage
Signed-off-by: Vladislav Doster <mvdoster@gmail.com> (3a76e9d
)
- docs: grammar in
docs/troubleshooting.rst
(#557)
- change contraction to a possessive pronoun
Signed-off-by: Vladislav Doster <mvdoster@gmail.com> (bbe754a
)
-
fix: update Gitmojis according to official node module (#582) (
806fcfa
) -
fix: trim emojis from config (#583) (
02902f7
)
- fix: inconsistent versioning between print-version and publish (#524) (
17d60e9
)
- fix(action): mark container fs as safe for git (#552)
See actions/runner-images#6775 (comment) and actions/runner-images#6775 (comment) (2a55f68
)
-
feat: add signing options to action (
31ad5eb
) -
feat(repository): add support for TWINE_CERT (#522)
Fixes #521 (d56e85d
)
- feat: Update action with configuration options (#518)
Co-authored-by: Kevin Watson <Kevmo92@users.noreply.github.com> (4664afe
)
-
fix: changelog release commit search logic (#530)
-
Fixes changelog release commit search logic
Running semantic-release changelog
currently fails to identify "the last commit in [a] release" because the compared commit messages have superfluous whitespace.
Likely related to the issue causing: python-semantic-release#490
-
Removes a couple of extra
strip()
s. (efb3410
) -
fix: bump Dockerfile to use Python 3.10 image (#536)
Fixes #533
Co-authored-by: Bernard Cooke <bernard.cooke@iotics.com> (8f2185d
)
-
fix: fix mypy errors for publish (
b40dd48
) -
fix: formatting in docs (
2e8227a
) -
fix: update documentaton (
5cbdad2
) -
fix(action): fix environment variable names (
3c66218
)
- docs: fix code blocks (#506)
Previously: https://i.imgur.com/XWFhG7a.png (24b7673
)
- fix: fix changelog generation in tag-mode (#171) (
482a62e
)
- docs: correct spelling mistakes (#504) (
3717e0d
)
- fix: corrections for deprecation warnings (#505) (
d47afb6
)
- docs: correct documented default behaviour for
commit_version_number
(#497) (ffae2dc
)
- feat: add setting for enforcing textual changelog sections (#502)
Resolves #498
Add the use_textual_changelog_sections
setting flag for enforcing that
changelog section headings will always be regular ASCII when using the Emoji
parser. (988437d
)
- fix: account for trailing newlines in commit messages (#495)
Fixes #490 (111b151
)
- fix: use
commit_subject
when searching for release commits (#488)
Co-authored-by: Dzmitry Ryzhykau <d.ryzhykau@onesoil.ai> (3849ed9
)
- docs: Add example for pyproject.toml (
2a4b8af
)
- fix: Add better handling of missing changelog placeholder
There is still one case where we don't add it, but in those corner cases it would be better to do it manually than to make it mangled.
Fixes #454 (e7a0e81
)
- fix: Add repo=None when not in git repo
Fixes #422 (40be804
)
- fix: Update git email in action
Fixes #473 (0ece6f2
)
-
feat: override repository_url w REPOSITORY_URL env var (#439) (
cb7578c
) -
feat: add prerelease-patch and no-prerelease-patch flags for whether to auto-bump prereleases (
b4e5b62
)
- fix: π fix get_current_release_version for tag_only version_source (
cad09be
)
- fix: declare additional_options as action inputs (#481) (
cb5d8c7
)
- fix: don't use commit_subject for tag pattern matching (#480) (
ac3f11e
)
- feat: add
additional_options
input for GitHub Action (#477) (aea60e3
)
- fix: allow empty additional options (#479) (
c9b2514
)
- fix: ignore dependency version bumps when parsing version from commit logs (#476) (
51bcb78
)
- fix: allow changing prerelease tag using CLI flags (#466)
Delay construction of version and release patterns until runtime. This will allow to use non-default prerelease tag.
Co-authored-by: Dzmitry Ryzhykau <d.ryzhykau@onesoil.ai> (395bf4f
)
- fix(publish): get version bump for current release (#467)
Replicate the behavior of "version" command in version calculation.
Co-authored-by: Dzmitry Ryzhykau <d.ryzhykau@onesoil.ai> (dd26888
)
- fix: add packaging module requirement (#469) (
b99c9fa
)
- fix: add text for empty ValueError (#461) (
733254a
)
- fix: Ensure that assets can be uploaded successfully on custom GitHub servers (#458)
Signed-off-by: Chris Butler <cbutler@australiacloud.com.au> (32b516d
)
- fix: ensure should_bump checks against release version if not prerelease (#457)
Co-authored-by: Sebastian Seith <sebastian@vermill.io> (da0606f
)
- fix: Capture correct release version when patch has more than one digit (#448) (
426cdc7
)
-
feat: allow using ssh-key to push version while using token to publish to hvcs (#419)
-
feat(config): add ignore_token_for_push param
Add ignore_token_for_push parameter that allows using the underlying git authentication mechanism for pushing a new version commit and tags while also using an specified token to upload dists
- test(config): add test for ignore_token_for_push
Test push_new_version with token while ignore_token_for_push is True and False
-
docs: add documentation for ignore_token_for_push
-
fix(test): override GITHUB_ACTOR env
push_new_version is using GITHUB_ACTOR env var but we did not contemplate in our new tests that actually Github actions running the tests will populate that var and change the test outcome
Now we control the value of that env var and test for it being present
or not (7b2dffa
)
- fix: fix and refactor prerelease (#435) (
94c9494
)
- fix: fix getting current version when
version_source=tag_only
(#437) (b247936
)
- feat: add
tag_only
option forversion_source
(#436)
Fixes #354 (cf74339
)
- fix(prerelase): pass prerelease option to get_current_version (#432)
The get_current_version
function accepts a prerelease
argument which
was never passed. (aabab0b
)
- feat: add git-lfs to docker container (#427) (
184e365
)
-
feat: add prerelease functionality (#413)
-
chore: add initial todos
-
feat: add prerelease tag option
-
feat: add prerelease cli flag
-
feat: omit_pattern for previouse and current version getters
-
feat: print_version with prerelease bump
-
feat: make print_version prerelease ready
-
feat: move prerelease determination to get_new_version
-
test: improve get_last_version test
-
docs: added basic infos about prereleases
-
feat: add prerelease flag to version and publish
-
feat: remove leftover todos
Co-authored-by: Mario JΓ€ckle <m.jaeckle@careerpartner.eu> (7064265
)
- fix(gitea): use form-data from asset upload (#421) (
e011944
)
-
fix(gitea): build status and asset upload (#420)
-
fix(gitea): handle list build status response
-
fix(gitea): use form-data for upload_asset (
57db81f
)
- docs: document tag_commit
Fixes #410 (b631ca0
)
- feat(hvcs): add gitea support (#412) (
b7e7936
)
- feat: include additional changes in release commits
Add new config keys, pre_commit_command
and commit_additional_files
,
to allow custom file changes alongside the release commits. (3e34f95
)
- feat: Support Github Enterprise server (
b4e01f1
)
- feat(parser_angular): allow customization in parser
parser_angular_allowed_types
controls allowed types- defaults stay the same: build, chore, ci, docs, feat, fix, perf, style, refactor, test
parser_angular_default_level_bump
controls the default level to bump the version by- default stays at 0
parser_angular_minor_types
controls which types trigger a minor version bump- default stays at only 'feat'
parser_angular_patch_types
controls which types trigger a patch version- default stays at 'fix' or 'perf' (
298eebb
)
- default stays at 'fix' or 'perf' (
- fix: address PR feedback for
parser_angular.py
angular_parser_default_level_bump
should have plain-english settings- rename
TYPES
variable toLONG_TYPE_NAMES
(f7bc458
)
- feat: use gitlab-ci or github actions env vars
return owner and project name from Gitlab/Github environment variables if available
Issue #363 (8ca8dd4
)
- fix: remove invalid repository exception (
746b62d
)
- docs: clean typos and add section for repository upload
Add more details and external links (1efa18a
)
- feat: rewrite Twine adapter for uploading to artifact repositories
Artifact upload generalised to fully support custom repositories like
GitLab. Rewritten to use twine python api instead of running the
executable. No-op mode now respected by artifact upload. (cfb20af
)
-
feat: allow custom environment variable names (#392)
-
GH_TOKEN can now be customized by setting github_token_var
-
GL_TOKEN can now be customized by setting gitlab_token_var
-
PYPI_PASSWORD can now be customized by setting pypi_pass_var
-
PYPI_TOKEN can now be customized by setting pypi_token_var
-
PYPI_USERNAME can now be customized by setting pypi_user_var (
372cda3
)
-
fix: mypy errors in vcs_helpers (
13ca0fe
) -
fix: skip removing the build folder if it doesn't exist
python-semantic-release#391 (comment) (8e79fdc
)
- fix: don't use linux commands on windows (#393) (
5bcccd2
)
- fix: Fixed ImproperConfig import error (#377) (
b011a95
)
- fix: add get_formatted_tag helper instead of hardcoded v-prefix in the git tags (
1a354c8
)
- docs(parser): documentation for scipy-parser (
45ee34a
)
-
feat: custom git tag format support (#373)
-
feat: custom git tag format support
-
test: add git tag format check
-
docs: add tag_format config option (
1d76632
)
- docs: clarify second argument of ParsedCommit (
086ddc2
)
- feat: Add support for non-prefixed tags (#366) (
0fee4dd
)
- feat(parser): add scipy style parser (#369) (
51a3921
)
- fix: correct rendering of gitlab issue references
resolves #358 (07429ec
)
- fix: print right info if token is not set (#360) (#361)
Co-authored-by: Laercio Barbosa <laercio.barbosa@scania.com> (a275a7a
)
-
docs: update trove classifiers to reflect supported versions (#344) (
7578004
) -
docs: recommend setting a concurrency group for GitHub Actions (
34b0735
)
- fix: use release-api for gitlab (
1ef5cab
)
- fix: tomlkit should stay at 0.7.0
See python-semantic-release#339 (comment) (769a5f3
)
- feat: add option to omit tagging (#341) (
20603e5
)
- fix: update click and tomlkit (#339) (
947ea3b
)
- fix: pin tomlkit to 0.7.0 (
2cd0db4
)
- fix: Change log level of failed toml loading
Fixes #235 (24bb079
)
- fix: Add venv to path in github action (
583c5a1
)
- docs: clarify that HVCS should be lowercase
Fixes #330 (da0ab0c
)
-
fix: Use absolute path for venv in github action (
d4823b3
) -
fix: Set correct path for venv in action script (
aac02b5
) -
fix: Run semantic-release in virtualenv in the github action
Fixes #331 (b508ea9
)
- docs: add common options to documentation
These can be found by running semantic-release --help
, but including them
in the documentation will be helpful for CI users who don't have the command
installed locally.
Related to #327. (20d79a5
)
- fix: Add support for setting build_command to "false"
Fixes #328 (520cf1e
)
- fix: Upgrade python-gitlab range
Keeping both 1.x and 2.x since only change that is breaking is dropping python 3.6 support. I hope that leaving the lower limit will make it still work with python 3.6.
Fixes #329 (abfacc4
)
- docs: add documentation for releasing on a Jenkins instance (#324) (
77ad988
)
- feat: allow the use of .pypirc for twine uploads (#325) (
6bc56b8
)
-
docs: correct casing on proper nouns (#320)
-
docs: correcting Semantic Versioning casing
Semantic Versioning is the name of the specification. Therefore it is a proper noun. This patch corrects the incorrect casing for Semantic Versioning.
- docs: correcting Python casing
This patch corrects the incorrect casing for Python. (d51b999
)
- feat(checks): add support for Jenkins CI (#322)
Includes a ci check handler to verify jenkins.
Unlike other ci systems jenkins doesn't generally prefix things with
JENKINS
or simply inject JENKINS=true
Really the only thing that is
immediately identifiable is JENKINS_URL
(3e99855
)
- docs: fix
version_toml
example for Poetry (#318) (39acb68
)
-
fix: fix crash when TOML has no PSR section (#319)
-
test: reproduce issue with TOML without PSR section
-
fix: crash when TOML has no PSR section
-
chore: remove unused imports (
5f8ab99
)
- fix: use multiline version_pattern match in replace (#315)
Fixes #306 (1a85af4
)
- feat: support toml files for version declaration (#307)
This introduce a new version_toml
configuration property that behaves
like version_pattern
and version_variable
.
For poetry support, user should now set version_toml = pyproject.toml:tool.poetry.version
.
This introduce an ABC class, VersionDeclaration
, that
can be implemented to add other version declarations with ease.
toml
dependency has been replaced by tomlkit
, as this is used
the library used by poetry to generate the pyproject.toml
file, and
is able to keep the ordering of data defined in the file.
Existing VersionPattern
class has been renamed to
PatternVersionDeclaration
and now implements VersionDeclaration
.
load_version_patterns()
function has been renamed to
load_version_declarations()
and now return a list of
VersionDeclaration
implementations.
Close #245
Close #275 (9b62a7e
)
- docs(actions): PAT must be passed to checkout step too
Fixes #311 (e2d8e47
)
-
feat(github): retry GitHub API requests on failure (#314)
-
refactor(github): use requests.Session to call raise_for_status
-
fix(github): add retries to github API requests (
ac241ed
)
- build: add main.py magic file
This file allow to run the package from sources properly with
python -m semantic_release
. (e93f36a
)
- feat(print-version): add print-version command to output version
This new command can be integrated in the build process before the effective release, ie. to rename some files with the version number.
Users may invoke VERSION=$(semantic-release print-version)
to retrieve the
version that will be generated during the release before it really occurs. (512e3d9
)
-
fix(actions): fix github actions with new main location (
6666672
) -
fix: avoid Unknown bump level 0 message
This issue occurs when some commits are available but are all to level 0. (8ab624c
)
- fix: add dot to --define option help (
eb4107d
)
- feat(build): allow falsy values for build_command to disable build step (
c07a440
)
- feat(hvcs): add hvcs_domain config option
While Gitlab already has an env var that should provide the vanity URL, this supports a generic 'hvcs_domain' parameter that makes the hostname configurable for both GHE and Gitlab.
This will also use the configured hostname (from either source) in the changelog links
Fixes: #277 (ab3061a
)
- fix(history): coerce version to string (#298)
The changes in #297 mistakenly omitted coercing the return value to a string. This resulted in errors like: "can only concatenate str (not "VersionInfo") to str"
Add test case asserting it's type str (d4cdc3d
)
- fix(history): require semver >= 2.10
This resolves deprecation warnings, and updates this to a more 3.x
compatible syntax (5087e54
)
- feat(repository): Add to settings artifact repository
- Add new config var to set repository (repository_url)
- Remove 'Pypi' word when it refers generically to an artifact repository system
- Depreciate 'PYPI_USERNAME' and 'PYPI_PASSWORD' and prefer 'REPOSITORY_USERNAME' and 'REPOSITORY_PASSWORD' env vars
- Depreciate every config key with 'pypi' and prefer repository
- Update doc in accordance with those changes (
f4ef373
)
- fix(cli): skip remove_dist where not needed
Skip removing dist files when upload_pypi or upload_release are not set (04817d4
)
- fix(logs): fix TypeError when enabling debug logs
Some logger invocation were raising the following error: TypeError: not all arguments converted during string formatting.
This also refactor some other parts to use f-strings as much as possible. (2591a94
)
- fix: filenames with unknown mimetype are now properly uploaded to github release
When mimetype can't be guessed, content-type header is set to None.
But it's mandatory for the file upload to work properly.
In this case, application/octect-stream is now used as a fallback. (f3ece78
)
- feat: add
upload_to_pypi_glob_patterns
option (42305ed
)
- fix(netrc): prefer using token defined in GH_TOKEN instead of .netrc file
.netrc file will only be used when available and no GH_TOKEN environment variable is defined.
This also add a test to make sure .netrc is used properly when no GH_TOKEN is defined. (3af32a7
)
- fix(changelog): use "issues" link vs "pull"
While, e.g., https://github.com/owner/repos/pull/123 will work,
https://github.com/owner/repos/issues/123 should be safer / more
consistent, and should avoid a failure if someone adds an issue link at
the end of a PR that is merged via rebase merge or merge commit. (93e48c9
)
- feat(changelog): add PR links in markdown (#282)
GitHub release notes automagically link to the PR, but changelog
markdown doesn't. Replace a PR number at the end of a message
with a markdown link. (0448f6c
)
- docs: add documentation for option
major_on_zero
(2e8b26e
)
- feat: add
major_on_zero
option
To control if bump major or not when current major version is zero. (d324154
)
- feat(logs): include scope in changelogs (#281)
When the scope is set, include it in changelogs, e.g. "feat(x): some description" becomes "x: some description". This is similar to how the Node semantic release (and conventional-changelog-generator) generates changelogs. If scope is not given, it's omitted.
Add a new config parameter changelog_scope to disable this behavior when
set to 'False' (21c96b6
)
- fix: add "changelog_capitalize" to flags (#279)
Fixes #278 (or so I hope). (37716df
)
-
docs: fix broken internal references (#270) (
da20b9b
) -
docs: update links to Github docs (#268) (
c53162e
)
- feat: add changelog_capitalize configuration
Fixes #260 (7cacca1
)
- docs: fix docstring
Stumbled upon this docstring which first line seems copy/pasted from
the method above. (5a5e2cf
)
- feat: Generate
changelog.md
file (#266) (2587dfe
)
- fix: add required to inputs in action metadata (#264)
According to the documentation, inputs.<input_id>.required
is a
required field. (e76b255
)
- fix: Use range for toml dependency
Fixes #241 (45707e1
)
-
docs: link to getting started guide in README (
f490e01
) -
docs: create 'getting started' instructions (#256) (
5f4d000
)
- fix: support multiline version_pattern matching by default (
82f7849
)
- docs: add quotation marks to the pip commands in CONTRIBUTING.rst (#253) (
e20fa43
)
- fix(changelog): send changelog to stdout
Fixes #250 (87e2bb8
)
- docs: give example of multiple build commands (#248)
I had a little trouble figuring out how to use a non-setup.py build
command, so I thought it would be helpful to update the docs with an
example of how to do this. (65f1ffc
)
- fix: commit all files with bumped versions (#249) (
b3a1766
)
- feat: bump versions in multiple files (#246)
- Add the
version_pattern
setting, which allows version numbers to be identified using arbitrary regular expressions. - Refactor the config system to allow non-string data types to be
specified in
pyproject.toml
. - Multiple files can now be specified by setting
version_variable
orversion_pattern
to a list inpyproject.toml
.
Fixes #175 (0ba2c47
)
- fix(changelog): swap sha and message in table changelog (
6741370
)
- feat(changelog): add changelog_table component (#242)
Add an alternative changelog component which displays each section as a row in a table.
Fixes #237 (fe6a7e7
)
-
feat(changelog): add changelog components (#240)
-
feat(changelog): add changelog components
Add the ability to configure sections of the changelog using a
changelog_components
option. Component outputs are separated by a blank
line and appear in the same order as they were configured.
It is possible to create your own custom components. Each component is a function which returns either some text to be added, or None in which case it will be skipped.
BREAKING CHANGE: The compare_url
option has been removed in favor of using
changelog_components
. This functionality is now available as the
semantic_release.changelog.compare_url
component.
-
docs: add documentation for changelog_components
-
feat: pass changelog_sections to components
Changelog components may now receive the value of changelog_sections
,
split and ready to use. (3e17a98
)
- docs: add conda-forge badge (
e9536bb
)
- fix: convert \r\n to \n in commit messages
Fixes #239 (34acbbc
)
- feat(history): create emoji parser (#238)
Add a commit parser which uses emojis from https://gitmoji.carloscuesta.me/ to determine the type of change.
-
fix: add emojis to default changelog_sections
-
fix: include all parsed types in changelog
This allows emojis to appear in the changelog, as well as configuring other types to appear with the Angular parser (I remember someone asking for that feature a while ago). All filtering is now done in the markdown_changelog function.
- refactor(history): get breaking changes in parser
Move the task of detecting breaking change descriptions into the commit parser function, instead of during changelog generation.
This has allowed the emoji parser to also return the regular descriptions as breaking change descriptions for commits with π₯.
BREAKING CHANGE: Custom commit parser functions are now required to pass
a fifth argument to ParsedCommit
, which is a list of breaking change
descriptions.
- docs: add documentation for emoji parser (
2e1c50a
)
- fix: use getboolean for commit_version_number
Fixes #186 (a60e0b4
)
- feat(history): support linking compare page in changelog
Fixes #218 (79a8e02
)
- docs: add = to verbosity option
Fixes #227 (a0f4c9c
)
- docs: use references where possible
Fixes #221 (f38e5d4
)
- feat(history): check all paragraphs for breaking changes
Check each paragraph of the commit's description for breaking changes, instead of only a body and footer. This ensures that breaking changes are detected when squashing commits together.
Fixes #200 (fec08f0
)
- docs: add documentation for PYPI_TOKEN (
a8263a0
)
- feat(actions): support PYPI_TOKEN on GitHub Actions
Add support for the new PYPI_TOKEN environment variable to be used on GitHub Actions. (df2c080
)
- feat(pypi): support easier use of API tokens
Allow setting the environment variable PYPI_TOKEN to automatically fill the username as token.
Fixes #213 (bac135c
)
- fix(hvcs): convert get_hvcs to use LoggedFunction
This was missed in 213530fb0c914e274b81d1dacf38ea7322b5b91f (3084249
)
-
docs: create Read the Docs config file (
aa5a1b7
) -
docs: include README.rst in index.rst
These files were very similar so it makes sense to simply include one
inside the other. (8673a9d
)
-
docs: rewrite README.rst (
e049772
) -
docs: move action.rst into main documentation (
509ccaf
) -
docs: rewrite troubleshooting page (
0285de2
)
- doc: updated doc with new ParsedCommit object instead of nested Tuple (
ac565dc
)
- docs: automate API docs
Automatically create pages in the API docs section using sphinx-autodoc. This is added as an event handler in conf.py. (7d4fea2
)
- feat(github): add tag as default release name (
2997908
)
-
docs: update index.rst (
b27c26c
) -
docs: improve formatting of envvars page (
b376a56
) -
docs: improve formatting of configuration page (
9a8e22e
)
- feat(history): allow customizing changelog_sections (#207) (
d5803d5
)
-
fix: Bump dependencies and fix Windows issues on Development (#173)
-
Bump dependencies and fix windows issues
-
Correctly pass temp dir to test settings
-
Remove print call on test settings
-
chore: remove py34 and py35 classifiers
-
chore: bump twine, requests and python-gitlab
-
chore: update tox config to be more granular
-
fix: missing mime types on Windows
-
chore: bump circleCI and tox python to 3.8
-
chore: remove py36 from tox envlist
-
chore: isort errors (
0a6f8c3
)
- fix(history): leave case of other characters unchanged
Previously, use of str.capitalize() would capitalize the first letter as expected, but all subsequent letters became lowercase. Now, the other letters remain unchanged. (96ba94c
)
- fix: Make action use current version of semantic-release
This gives two benefits:
- In this repo it will work as a smoketest
- In other repos when they specify version int the github workflow they
will get the version they specify. (
123984d
)
-
feat(build): allow config setting for build command (#195)
-
feat(build): allow config setting for build command
BREAKING CHANGE: Previously the build_commands configuration variable set the types of bundles sent to python setup.py
. It has been replaced by the configuration variable build_command
which takes the full command e.g. python setup.py sdist
or poetry build
.
Closes #188 (740f4bd
)
- docs(pypi): update docstings in pypi.py (
6502d44
)
- fix: Rename default of build_command config (
d5db22f
)
- feat(actions): create GitHub Action (
350245d
)
- feat: make commit message configurable (#184) (
eb0762c
)
- feat(pypi): add build_commands config
Add a config option to set the commands passed to setup.py when building distributions. This allows for things like adding custom commands to the build process. (22146ea
)
- fix(pypi): change bdist_wheels to bdist_wheel
Change the incorrect command bdist_wheels to bdist_wheel. (c4db509
)
- feat(git): Add a new config for commit author (
aa2c22c
)
- fix: repair parsing of remotes in the gitlab ci format
Format is: "https://gitlab-ci-token:MySuperToken@gitlab.example.com/group/project.git"
Problem was due to the regex modification for #179
Fixes #181 (0fddbe2
)
-
feat: Upload distribution files to GitHub Releases (#177)
-
refactor(github): create upload_asset function
Create a function to call the asset upload API. This will soon be used to upload assets specified by the user.
- refactor(github): infer Content-Type from file extension
Infer the Content-Type header based on the file extension instead of setting it manually.
- refactor(pypi): move building of dists to cli.py
Refactor to have the building/removal of distributions in cli.py instead of within the upload_to_pypi function. This makes way for uploading to other locations, such as GitHub Releases, too.
- feat(github): upload dists to release
Upload Python wheels to the GitHub release. Configured with the option upload_to_release, on by default if using GitHub.
-
docs: document upload_to_release config option
-
test(github): add tests for Github.upload_dists
-
fix(github): fix upload of .whl files
Fix uploading of .whl files due to a missing MIME type (defined custom type as application/x-wheel+zip). Additionally, continue with other uploads even if one fails.
- refactor(cli): additional output during publish
Add some additional output during the publish command.
- refactor(github): move api calls to separate methods
Move each type of GitHub API request into its own method to improve readability.
Re-implementation of #172
- fix: post changelog after PyPI upload
Post the changelog in-between uploading to PyPI and uploading to GitHub Releases. This is so that if the PyPI upload fails, GitHub users will not be notified. GitHub uploads still need to be processed after creating the changelog as the release notes must be published to upload assets to them. (e427658
)
- fix: support repository owner names containing dots
Fixes #179 (a6c4da4
)
- fix(github): use application/octet-stream for .whl files
application/octet-stream is more generic, but it is better than using a non-official MIME type. (90a7e47
)
- feat(history): capitalize changelog messages
Capitalize the first letter of messages in the changelog regardless of
whether they are capitalized in the commit itself. (1a8e306
)
- fix: Only overwrite with patch if bump is None
Fixes #159 (1daa4e2
)
- fix: Add more debug statements in logs (
bc931ec
)
- docs: fix broken list in readme
Fix the syntax of a broken bullet-point list in README.rst. (7aa572b
)
-
docs: Add note about automatic releases in readme (
e606e75
) -
docs: Update readme and getting started docs (
07b3208
)
- fix(github): send token in request header
Use an Authorization header instead of deprecated query parameter authorization.
Fixes python-semantic-release#167 (be9972a
)
- feat(history): enable colon defined version
The get_current_version_by_config_file and the replace_version_string methods now check for both variables defined as "variable= version" and "variable: version" This allows for using a yaml file to store the version.
Closes #165 (7837f50
)
-
fix: Remove erroneous submodule (
762bfda
) -
fix(cli): --noop flag works when before command
The entry point of the app is changed from main() to entry(). Entry takes any arguments before commands and moves them to after commands, then calls main()
Closes #73 (4fcc781
)
- fix: Add quotes around twine arguments
Fixes #163 (46a83a9
)
- feat(parser): make BREAKING-CHANGE synonymous with BREAKING CHANGE
According to point 16 in the conventional commit specification, this
should be implemented. They especially mention the footer, but I kept
the body for backwards compatibility. This should probably be removed
one day. The regex is in the helpers to make it easier to re-use, but I
didn't updated parser_tag since it looks like a legacy parser. (beedccf
)
- feat(parser): add support for exclamation point for breaking changes
According to the documentation for conventional commits, breaking changes can be described using exclamation points, just before the colon between type/scope and subject. In that case, the breaking change footer is optional, and the subject is used as description of the breaking change. If the footer exists, it is used for the description.
Fixes #156 (a4f8a10
)
- fix(github): add check for GITHUB_ACTOR for git push (#162) (
c41e9bb
)
- fix: fallback to whole log if correct tag is not available (#157)
The method getting all commits to consider for the release will now test whether the version in input is a valid reference. If it is not, it will consider the whole log for the repository.
evaluate_version_bump will still consider a message starting with the version number as a breaking condition to stop analyzing.
Fixes #51 (252bffd
)
-
fix: Set version of click to >=2.0,<8.0. (#155)
-
fix: Upgrade to click 7.0.
Fixes #117
-
fix: Instead of requiring click 7.0, looks like all tests will pass with at least 2.0.
-
Upstream is at ~=7.0, so let's set the range to less than 8.0.
-
The string template has no variables, so remove the call to .format() (
f07c7f6
)
- fix: update regex to get repository owner and name for project with dots
Remove the dot from the second capture group to allow project names containing dots to be matched. Instead of a greedy '+' operator, use '*?' to allow the second group to give back the '.git' (to avoid including it in the project name)
Fixes #151 (2778e31
)
- fix: support repo urls without git terminator (
700e9f1
)
- feat: allow users to get version from tag and write/commit bump to file
Before this commit, version was bumped in the file, but only committed
if version was obtained from version_variable
(version_source == commit
).
Also added a relevant test and a description for this new option.
Fixes #104 (1f9fe1c
)
- feat: make the vcs functionalities work with gitlab
Adds python-gitlab as requirement. Refactored github specific methods while keeping default behavior. Also removed an unused return value for post_release_changelog. Also refactored the secret filtering method. Updated the related tests.
Fixes #121 (82d555d
)
- feat: allow the override of configuration options from cli
config can now be overriden with the "-D" flag. Also adds the related tests and documentation.
Also introduces a fixture in tests/init.py that reloads module using config. It is necessary since all tests run in the same environment. A better way would be to box the execution of tests (using the --forked option of pytest for example) but it does not work in non-unix systems. Also some tests should not break if config is changed, but it is outside of the scope of this issue.
Fixes #119 (f0ac82f
)
- feat: add the possibility to load configuration from pyproject.toml
Adds the toml library to base requirements. Also adds the related tests and documentation. Also adds the description of the version_source configuration option
Relates to #119 (35f8bfe
)
- fix: update list of commit types to include build, ci and perf
Also added perf to the types that trigger a patch update
Fixes #145 (41ea12f
)
- fix: manage subgroups in git remote url
This is a necessary fix for gitlab integration. For an illustration of the need and use for this fix, test was edited.
Fixes #139
Fixes #140 (4b11875
)
- feat: Add support for showing unreleased changelog
Fixes #134 (41ef794
)
- feat: Add support for configuring branch
Fixes #43 (14abb05
)
- feat: Add configuration to customize handling of dists
Relates to #115 (2af6f41
)
- fix: Remove deletion of build folder
Fixes #115 (b45703d
)
-
fix: updated the tag tests (
3303eef
) -
fix: kept setting new version for tag source (
0e24a56
) -
fix: Add commit hash when generating breaking changes
Fixes #120 (0c74faf
)
- fix: Upgrade click to 7.0 (
2c5dd80
)
- docs(circleci): point badge to master branch (
9c7302e
)
- fix: Make sure the history only breaks loop for version commit
Fixes #135 (5dc6cfc
)
- fix: correct isort build fail
build fail: https://circleci.com/gh/relekang/python-semantic-release/379 (0037210
)
- fix(vcs): allow cli to be run from subdirectory (
fb7bb14
)
- Fix minor sematic typo (
76123f4
)
- docs: DEBUG usage and related
Debug functionality lack documentation.
Thoubleshooting is helped by documenting other
environment variables as well. (f08e594
)
-
docs: correct usage of changelog (
f4f59b0
) -
docs: describing the commands
The commands is lacking from the documentation. (b6fa04d
)
- docs: update url for commit guidelinesThe guidelines can now be found in theDEVELOPERS.md in angular. (
90c1b21
)
-
docs(readme): add testing instructions (
bb352f5
) -
docs: Add installation instructions for development (#106) (
9168d0e
)
- feat(ci_checks): add support for bitbucket (
9fc120d
)
- fix: Maintain version variable formatting on bump (#103)
Small change to the way the version is written to the config file it is read from. This allows the formatting to be the same as before semantic-release changed it.
Prior behavior
my_version_var="1.2.3"
=> my_version_var = '1.2.4'
New behavior
my_version_var="1.2.3"
=> my_version_var="1.2.4"
I am using python-semantic-release with a Julia project and this change will allow for consistent formatting in my Project.toml file where the version is maintained (bf63156
)
- fix: initialize git Repo from current folder
This allows to run the program also from inner repository folders (c7415e6
)
- fix: Use same changelog code for command as post
See #27 for background. (248f622
)
- docs: Remove reference to gitter
Fixes #90 (896e37b
)
- fix: Use correct syntax to exclude tests in package
This implements #92 without deleting init.py files. (3e41e91
)
- fix: Filter out pypi secrets from exceptions
Fixes #41 (5918371
)
- fix: Clean out dist and build before building
This should fix the problem with uploading old versions.
Fixes #86 (b628e46
)
- fix: Add better error message when pypi credentials are empty
Fixes #96 (c4e5dcb
)
- fix: Unfreeze dependencies
This uses ~= for most dependencies instead of pinning them.
Fixes #100 (847833b
)
- fix(parser_angular): Fix non-match when special chars in scope (
8a33123
)
- fix: Remove support for python 2
BREAKING CHANGE: This will only work with python 3 after this commit. (85fe638
)
- feat: Add support for commit_message config variable
This variable can allow you to skip CI pipelines in CI tools like GitLab CI by adding [CI skip] in the body. There are likely many uses for this beyond that particular example...
BREAKING CHANGE: If you rely on the commit message to be the version number only, this will break your code
re #88 #32 (4de5400
)
- docs: Add type hints and more complete docstrings
Includes a few style changes suggested by pylint and type safety checks suggested by mypy
re #81 (a6d5e9b
)
- docs: Fix typo in documentation index
The word role -- 'an actor's part in a play, movie, etc.' does not fit
in this context. "ready to roll" is a phrase meaning "fully prepared to
start functioning or moving" or simply "ready". I believe this is what
was meant to be written. (da6844b
)
- feat(CI checks): Add support for GitLab CI checks
Check GITLAB_CI
environment variable and then verify
CI_COMMIT_REF_NAME
matches the given branch.
Includes tests
Closes #88 re #32 (8df5e2b
)
-
fix: Add credentials check (
0694604
) -
fix: Add check of credentials (
7d945d4
) -
fix: Add dists to twine call (
1cec2df
) -
fix: Re-add skip-existing (
366e9c1
) -
fix: Use twine through cli call (
ab84beb
) -
fix: Use new interface for twine (
c04872d
) -
fix: Remove repository argument in twine (
e24543b
) -
fix: Update twine (
c4ae7b8
) -
fix: Remove universal from setup config (
18b2402
) -
fix: Change requests from fixed version to version range (#93)
-
Change requests version to be more flexible to aid in using this with dev requirements for a release.
-
revert changes to vcs helpers (
af3ad59
)
- Typo, link broken
Change .. _angular commit guidelins:
to .. _angular commit guidelines:
(721a6dd
)
- fix: Upgrade twine (
9722313
)
- docs: Add retry option to cli docs (
021da50
)
- fix: change Gitpython version number
Change the Gitpython version number to fix a bug described in #80. (23c9d4b
)
-
feat: Add support to finding previous version from tags if not using commit messages (#68)
-
feat: Be a bit more forgiving to find previous tags
Now grabs the previous version from tag names if it can't find it in the commit
-
quantifiedcode and flake8 fixes
-
Update cli.py
-
Switch to ImproperConfigurationError (
6786487
) -
feat: Add --retry cli option (#78)
-
Add --retry cli option
-
Post changelog correctly
-
Add comments
-
Add --retry to the docs (
3e312c0
)
- fix: Make repo non if it is not a git repository
Fixes #74 (1dc306b
)
- fix: Add pytest cache to gitignore (
b8efd5a
)
- fix: error when not in git repository (#75)
Fix an error when the program was run in a non-git repository. It would not allow the help options to be run.
issue #74 (251b190
)
- fix: update call to upload to work with twine 1.9.1 (#72) (
8f47643
)
- fix: Update Twine (#69)
The publishing API is under development and older versions of Twine have problems to deal with newer versions of the API. Namely the logic of register/upload has changed (it was simplified). (9f268c3
)
- revert: "chore: Remove travis"
This reverts commit 93e5507da6d53ecf63405507390633ef480c52fb. (195ed8d
)
- docs: Fix typo in cli.py docstring (#64) (
0d13985
)
-
feat: Add git hash to the changelog (#65)
-
feat(*): add git hash to the changelog
Add git hash to the changelog to ease finding the specific commit. The hash now is also easily viewable in Github's tag. see #63 for more information.
- chore(test_history): fix test errors
Fix the test errors that would happen after the modification of get_commit_log. (628170e
)
- fix: Make changelog problems not fail whole publish
Can be fixed with changelog command later. (b5a68cf
)
- feat: add option for choosing between versioning by commit or tag
default versioning behaviour is commiting (c0cd1f5
)
-
feat: don't use file to track version, only tag to commit for versioning (
cd25862
) -
feat: get repo version from historical tags instead of config file
repo version will get from historical tags. init 0.0.0 if fail of find any version tag (a45a9bf
)
- fix: can't get the proper last tag from commit history
repo.tags returns a list sorted by the name rather than date, fix it by sorting them before iteration (5a0e681
)
- fix: Add search_parent_directories option to gitpython (#62) (
8bf9ce1
)
-
docs: Add info about trello board in readme (
5229557
) -
docs: Update info about releases in contributing.md (
466f046
) -
docs: Add info about correct commit guidelines (
af35413
) -
docs: Fix badges in readme (
7f4e549
)
- feat: Add ci checks for circle ci (
151d849
)
-
fix: Refactoring cli.py to improve --help and error messages (
c79fc34
) -
fix: Add git fetch to frigg after success (
74a6cae
) -
fix: Make tag parser work correctly with breaking changes
The tag parser did not work correctly, this went undiscovered for a
while because the tests was not ran by pytest. (9496f6a
)
- fix: move code around a bit to make flake8 happy (
41463b4
)
- docs(configuration): Fix typo in setup.cfg section (
725d87d
)
- documentation typo (
b77d484
)
- feat: Add ci_checks for Frigg CI (
577c374
)
- fix: Add requests as dependency (
4525a70
)
-
docs: Add step by step guide for configuring travis ci (
6f23414
) -
docs: Remove duplicate readme
It was created by pandoc earlier when the original readme was written in
markdown. (42a9421
)
-
docs: Add note about node semantic release (
0d2866c
) -
docs: Move automatic-releases to subfolder (
ed68e5b
) -
docs: Add documentation for configuring on CI (
7806940
)
- feat: Add checks for semaphore
Fixes #44 (2d7ef15
)
- docs: Convert readme to rst (
e8a8d26
)
- feat: Checkout master before publishing
Related to #39 (dc4077a
)
- feat: Add author in commit
Fixes #40 (020efaa
)
- fix: Remove " from git push command (
031318b
)
- feat: Add travis environment checks
These checks will ensure that semantic release only runs against master
and not in a pull-request. (f386db7
)
- fix: Do git push and git push --tags instead of --follow-tags (
8bc70a1
)
- docs: Update docstrings for generate_changelog (
987c6a9
)
- fix: Change build badge (
0dc068f
)
- fix: Only list commits from the last version tag
Fixes #28 (191369e
)
- fix: Add pandoc to travis settings (
17d40a7
)
- Upgrade dependency click to ==6.2 (
1c5f3cd
)
- feat: Add support for environment variables for pypi credentials (
3b383b9
)
-
fix: Downgrade twine to version 1.5.0 (
66df378
) -
fix: Add missing parameters to twine.upload (
4bae22b
) -
fix: Push to master by default (
a0bb023
) -
fix: Better filtering of github token in push error (
9b31da4
) -
fix: Make sure the github token is not in the output (
55356b7
)
-
fix: Add requirements to manifest (
ed25ecb
) -
fix(pypi): Add sdist as default in addition to bdist_wheel
There are a lot of outdated pip installations around which leads to
confusions if a package have had an sdist release at some point and
then suddenly is only available as wheel packages, because old pip
clients will then download the latest sdist package available. (a1a35f4
)
-
feat(git): Add push to GH_TOKEN@github-url (
546b5bf
) -
feat(angular-parser): Remove scope requirement (
90c9d8d
)
- fix(deps): Use one file for requirements (
4868543
)
-
Upgrade dependency twine to ==1.6.3 (
f96e9b2
) -
Upgrade dependency semver to ==2.2.1 (
63b4b99
) -
Upgrade dependency invoke to ==0.11.1 (
b9fe5eb
) -
Upgrade dependency click to ==5.1 (
662bc2d
) -
Upgrade dependency twine to ==1.6.3 (
571dd43
) -
Upgrade dependency semver to ==2.2.1 (
e656bea
) -
Upgrade dependency invoke to ==0.11.1 (
31a2051
) -
Upgrade dependency click to ==5.1 (
d0b6c7d
) -
Upgrade dependency responses to ==0.5.0 (
fcf9e1a
) -
Add links to the node project (
3567952
)
- feat(pypi): Add option to disable pypi upload (
f5cd079
)
- feat(parser): Add tag parser
This parser is based on the same commit style as 1.x.x of
python-semantic-release. However, it requires "BREAKING CHANGE:
<explanation> for a breaking change (a7f392f
)
-
fix(errors): Add exposing of errors in package (
3662d76
) -
fix(version): Parse file instead for version
This makes it possible to use the version command without a setup.py
file. (005dba0
)
- fix(github): Fix property calls
Properties can only be used from instances. (7ecdeb2
)
-
docs(readme): Update readme with information about the changelog command (
56a745e
) -
docs(parsers): Add documentation about commit parsers (
9b55422
) -
docs(api): Update apidocs (
6185380
)
- fix(hvcs): Make Github.token an property (
37d5e31
)
- fix(cli): Fix call to generate_changelog in publish (
5f8bce4
)
- fix(history): Fix issue in get_previous_version (
f961786
)
- feat(cli): Add the possibility to repost the changelog (
4d028e2
)
-
fix(cli): Fix check of token in changelog command (
cc6e6ab
) -
fix(github): Fix the github releases integration (
f0c3c1d
) -
fix(history): Fix changelog generation
This enables regeneration of a given versions changelog. (f010272
)
- feat(history): Set angular parser as the default
BREAKING CHANGE: This changes the default parser. Thus, the default
behaviour of the commit log evaluator will change. From now on it will
use the angular commit message spec to determine the new version. (c2cf537
)
-
feat(publish): Add publishing of changelog to github (
74324ba
) -
feat(github): Add github release changelog helper (
da18795
) -
feat(history): Add markdown changelog formatter (
d77b58d
) -
feat(cli): Add command for printing the changelog
Usage: semantic_release changelog
(336b8bc
)
- feat(history): Add generate_changelog function
It generates a dict with changelog information to each of the given
section types. (347f21a
)
-
feat(settings): Add loading of current parser (
7bd0916
) -
feat(history): Add angular parser
This adds a parser that follows the angular specification. The parser is not hooked into the history evaluation yet. However, it will become the default parser of commit messages when the evaluator starts using exchangeable parsers.
Related to #17 (91e4f0f
)
-
fix(cli): Change output indentation on changelog (
2ca41d3
) -
fix(history): Support unexpected types in changelog generator (
13deacf
) -
fix(history): Fix regex in angular parser
This fixes a problem where multiline commit messages where not correctly
parsed. (974ccda
)
- fix(history): Fix level id's in angular parser (
2918d75
)
-
Add badges in readme (
ad7c9c6
) -
Add cumulative coverage (
15c5ea0
) -
Update api-docs (
4654655
) -
Fix #19, add config documentation (
354b2ca
)
-
π₯ Restructure helpers into history and pypi (
00f64e6
) -
Rename git_helpers to vcs_helpers (
77d701b
) -
Make authors file a list (
31b0f3a
) -
Fix #18, add docs for automatic publishing (
58076e6
) -
Set alabaster as sphinx theme (
1f698fe
) -
Add @jezdez to AUTHORS.rst (
985df2d
) -
Add pytest-xdist as requirements (
35961d7
) -
Fix current head hash test (
ed9a879
)
- π Fix get_current_head_hash, ensure it only returns the hash (
7c28832
)
-
Add Python 2.7 support. Fix #10. (
c05e13f
) -
Fixed cli tests to use correct params for call assertion. (
456b26b
) -
Fixed name of assertion function. (
9b16098
)
-
Fix version test, add missing mock (
71842d4
) -
Set check_build_status in semantic-release config (
00f1a4e
) -
π Fix test_defaults in settings test (
b269d27
) -
Add release schedule note (
8bc8fba
) -
Add output when running check_build_status (
8bdda5a
) -
Add default value in check_build_status docs (
eb0c46d
) -
β¨ Fix #5, Add check_build_status option (
310bb93
) -
β¨ Add get_current_head_hash in git helpers (
d864282
) -
β¨ Add git helper to get owner and name of repo (
f940b43
)
-
β¨ Add patch_without_tag option, fixes #6 (
3734a88
) -
Move defaults to cfg file (
cb1257a
) -
Add contributing.rst (
a27e282
) -
Fix docstring in setup_hook() (
1e47f1c
) -
Fix #1, Add basic setup of sphinx based docs (
41fba78
) -
Add docstrings to all functions (
6555d5a
)
-
β¨ Fix #13, Add twine for uploads to pypi (
eec2561
) -
Add tests for the setup.py hook (
ecd9e9a
) -
Add test for git helpers (
8354cfd
) -
Fix typo (
9585217
) -
Add link to blogpost in readme (
1966e52
)
-
Add tests for upload_to_pypi (
778923f
) -
π Add python2 not supported warning
Related: #9, #10 (e84c4d8
)
- Add note about python 3 only
related to #9 (a71b536
)
- Add wheel as a dependency (
971e479
)
- π Fix python wheel tag (
f9ac163
)
- π Fix push commands (
8374ef6
)
- β¨ Add setup.py hook for the cli interface (
c363bc5
)
- β¨ Add publish command (
d8116c9
)
- π Fix wheel settings (
1e860e8
)
-
Add info about tagging in readme (
914c78f
) -
β¨ Add support for tagging releases (
5f4736f
) -
π Fix issue with committing the same version # (
441798a
) -
Remove patch as default for untagged history (
e44e2a1
) -
Restructure and add tests (
4546e1e
)
-
Remove apt dependencies from frigg settings (
d942a32
) -
Fix get_commit_log (
9af798a
) -
Remove pygit2 and add gitpython (
8165a2e
) -
Add test to check which parts of the git log is considered (
bb384b1
) -
β¨ Add noop mode
Fixes #4 (44c2039
)
-
Add docstrings in cli (
315f6d2
) -
Add installation of python3-cffi to frigg settings (
aa38ca8
) -
Add installation of libgit2-dev in frigg settings (
ff1d72b
) -
Remove the this is not usable yet warning from readme (
b14b468
) -
Update usage docs in readme (
1f753e6
) -
Remove note about β¬οΈ in readme (
1554051
) -
Update config docs in readme (
06a261f
)
-
Fix libgit install in frigg settings (
bd991c3
) -
π Fix entry point (
bd7ce7f
) -
Fix badges (
1e5df79
) -
Add libgit2 to frigg settings (
d55f25c
) -
Update readme (
e8a6dd9
)
-
Add commiting of new version (
6865d4b
) -
Add detection of change level (
06c5ac4
) -
Fix coverage settings (
4b80fab
) -
β¨ Implement setting of new version (
a2ad75b
) -
β¨ Add loading of config (
51c5e93
) -
Fix readme badges (
a3cc59b
) -
Update readme (
2b64782
) -
Fix isort (
11feb93
) -
β¨ Add better force options (
c6b4fe9
) -
Remove print usage (
5ca8957
) -
β¨ Implement get_new_version with semver (
4bb1f10
) -
β¨ Implement get_current_version (
49de531
) -
β¨ Add basic cli interface (
ff03d6e
) -
β¨ Add project structure (
57f4c2b
) -
Add a plan to the readme (
6f87d66
) -
Initial commit (
94abb4e
)