* Added api_url configuration to RemoteConfig
* Added api_url remote config parameter to the documentation
* Fmt
* Readded use statement erroneously removed
* chore: bring back https in gitlab link
* docs(website): add missing dot to remote docs
* refactor(remote): clean up constant handling
* fix: fix the behavior and add fixture test
* docs: add example of api_url
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* fix(remote): preserve first time contributors
* fix: update based on clippy feedback
* docs: add new-contributors back in
* refactor: switch to using time
- add test for timestamp method as well
* refactor: polish implementation
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* chore(docker): ignore rust toolchain in docker builds
This commit adds the known names of the rust-toolchain files to the
.dockerignore file. This has two reasons why it makes sense:
- The initial docker layer already has a set up rust toolchain that is
sufficient to build the project. Thus, by providing a toolchain file,
the toolchain would be installed again during docker build.
- Currently cargo-chef only copies the toolchain files during cooking
but it gets not used during the building of the dependencies in the
cook call, see
https://github.com/LukeMathWalker/cargo-chef/issues/271.
With this in mind, currently the dependencies were actually build
twice. Once with the installed toolchain from the image itself, and
then in the actual cargo build call with the toolchain speciefied in
the toolchain file. Building them twice resulted in timeouts when
building the arm64 images as they are emulated using qemu, which is
itself already slower than building natively.
Now one could argue, that as soon as the mentioned issue is solved using
the toolchain again would be fine. But then it would be still needed to
assemble the Dockerfile in a way that the toolchain is not build twice.
Because the current structure of the Dockerfile builds the toolchain
once in the cargo-chef prepare step and once during the cargo build step
(and would later build it during the cargo-chef cook instead of cargo
build).
With all this in mind using no toolchain file but instead just using
the sufficient rust installation from the base image makes sense.
* Revert "chore(docker): disable building arm64 docker images temporarily (#879)"
This reverts commit cde2a8e322.
Commit 73f75d5289 made it possible to
build the arm64 image again without running into timeouts.
* feat(commit): add `raw_message` to `Commit`
* test(fixtures): add test generate all fields in conventional commits
* test(fixtures): add test do not discard missing fields in conventional
commits when reading from context
* docs(website): add `raw_message` fields to `context.md`
* fix(bitbucket): pull requests release metadata not matched correctly
- update BitbucketPullRequest struct to use merge_commit
- update metadata matching to support short sha format
- add tests for Bitbucket remote
* test: update bitbucket fixture to include pr test
* chore(fixture): use link in bitbucket fixture
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat(git): latest with one tag should include root
* feat(git): test root commit with one tag
* feat(git): remove the include_root boolean flag
Use the fact that a range contains (or doesn't) contain
".." as a discriminant between the two cases:
- ".." means full (left-exclusive) range between two commits;
- no ".." means everything from the root commit (inclusive) to
the commit sha in the range
* fix: remove unnecessary reference
* nit: gentler English in comment
* fix: reorder execution to have context poplulated before parsing/pruning
* feat: allow field to read from context object
* fix: add tests
* fix: add legacy fix for body field
* test: add fixture
* docs: update documentation
* refactor: clean up implementation
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat: support bump a specific version type
* let --bump accept optional enum
* doc: update document for --bump
* test: add bump version fixtures tests
* refactor: polish implementation
* refactor: fix typo
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat: support performance profiling via pprof
This adds support for performance profiling that allows for finding the bottlenecks and performance optimizations.
It can be enabled via `profiler` feature and the `bench` build profile.
```shell
cargo build --profile=bench --features=profiler
```
* refactor(profiling): clean up implementation
* feat(ci): run profiler
* fix(ci): fetch all the history for profiler
* docs(website): add profiling docs
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat: add tag message to release context
- add to the release context the tag's message if it exists
- add message to the default config
* feat(args): add `--with-tag-message` argument
to allow setting the message of the last release in the context
* docs: update args
* docs: add adding-tag-messages
* refactor: polish implementation
* tests(test-tag-message): fix the template
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat(changelog): make changelog.header a template (#697)
* refactor: clean up implementation
* docs: update the description of header field
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat: Enable footer-based commit parsing
Enable defining parsers for a commit's footer, similar to the already-
present commit parsers for a commit's message or body.
For example:
```toml
commit_parsers = [
{ footer = "changelog: ignore", skip = true },
]
```
Due to an inconsistency between the conventional commits specification
and its reference parser, footers are currently interpreted as
`key:value` instead of the (correct) `key: value`. See
https://github.com/conventional-commits/parser/issues/47 for details.
As a future-proof workaround, you can use `key: ?value` in the regex.
* chore: fix typo
---------
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
* feat(gitlab): Add gitlab support
Signed-off-by: dark0dave <dark0dave@mykolab.com>
* refactor: simplify contains variable function
* refactor: move github and gitlab to remote module
* fix: fix gitlab API url
* refactor: move common constants and trait to remote module
* refactor: use common type for contributor and release metadata
* refactor: use generic types for remote commits and pull requests
* refactor: move template variables to designated module
* refactor: abstract away the remote
* docs: improve documentation of remote module
* fix: fix feature segregation related bugs
* fix: fix double print bug
* chore: update fixtures for remote integration
* fix: fix test case for non-default features
* chore(build): bump MSRV to 1.75.0
* docs: update the documentation of remote module
* fix: hide arguments if feature is not enabled
* docs: add documentation
* chore(github): update issue template
---------
Signed-off-by: dark0dave <dark0dave@mykolab.com>
Co-authored-by: dark0dave <dark0dave@mykolab.com>