Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
85afdd3
Add core semantic versioning models and POM updating logic
bsels Jan 3, 2026
85538ec
Refactor the project structure: replace `Main` with modular utilities…
bsels Jan 4, 2026
3bab935
Enhance `POMUtils` documentation for clarity on usage, responsibiliti…
bsels Jan 4, 2026
1684ebe
Introduce Markdown processing with CommonMark, YAML front matter hand…
bsels Jan 4, 2026
8bccb67
Add comprehensive Markdown-based versioning support, including `Markd…
bsels Jan 4, 2026
1bf4b2a
Add changelog support and enhance Markdown utils with changelog mergi…
bsels Jan 4, 2026
7a5f7c4
Refactor `Utils` into a standalone utility class, centralizing file b…
bsels Jan 4, 2026
8d44652
Refactor `Modus` to consolidate versioning modes, update `BaseMojo` t…
bsels Jan 5, 2026
b50a473
Introduce the ` TestLog ` utility for test logging with customizable …
bsels Jan 5, 2026
d3ab3d8
Enhance `POMUtils` with constants for Maven artifact structure, strea…
bsels Jan 7, 2026
9cb71f4
Refactor `Utils`, `POMUtils`, and `MarkdownUtils` for immutability an…
bsels Jan 7, 2026
d7cca96
Add the ` VersionChange ` record and update related logic for enhance…
bsels Jan 8, 2026
958c862
Enhance `POMUtils` JavaDoc formatting for parameter descriptions.
bsels Jan 8, 2026
366ddb7
Refactor `Utils` for improved null handling and immutability; add com…
bsels Jan 8, 2026
d80b2e4
Add unit tests for `YamlFrontMatterBlock` and `YamlFrontMatterExtensi…
bsels Jan 9, 2026
8ff458a
Add comprehensive unit tests for `SemanticVersion`, `SemanticVersionB…
bsels Jan 10, 2026
e517a34
Add unit tests for `MavenArtifact` and `SemanticVersion` to validate …
bsels Jan 10, 2026
c3006bd
Refactor `SemanticVersion` to enhance suffix validation with improved…
bsels Jan 10, 2026
dd274e2
Add unit tests for `YamlFrontMatterBlockParser`, covering scenarios w…
bsels Jan 10, 2026
90587f0
Add YAML front matter rendering support to `MarkdownUtils` with `Mark…
bsels Jan 10, 2026
e5bf5b2
Add unit tests for `MarkdownYamFrontMatterBlockRenderer` and `Markdow…
bsels Jan 10, 2026
1ba2497
Add `MarkdownDocumentAsserter` utility and comprehensive unit tests f…
bsels Jan 10, 2026
7ea2d24
Refactor `MarkdownUtilsTest` to replace `Utils.backupFile` with `File…
bsels Jan 10, 2026
2138d73
Refactor `POMUtils` for improved exception handling using `MojoExecut…
bsels Jan 11, 2026
4c5dab7
Add the `asImmutableSet` utility to `Utils` with unit tests. Enhance …
bsels Jan 11, 2026
967f922
Enhance `UpdatePomMojo` JavaDoc with a detailed class and functionali…
bsels Jan 11, 2026
a8adf88
Add example integration test projects for various revision, module, a…
bsels Jan 11, 2026
718d5a3
Refactor `BaseMojo` to simplify root project retrieval logic. Add the…
bsels Jan 11, 2026
3e0f2e2
Add `package-info.java` for `io.github.bsels.semantic.version` packag…
bsels Jan 11, 2026
40b8c0e
Refactor `ReadMockedMavenSession` to replace `Mockito` with concrete …
bsels Jan 11, 2026
4433881
Enhance `BaseMojo` with folder existence validation and warning log w…
bsels Jan 11, 2026
968ec69
Refactor `MarkdownUtils` and `UpdatePomMojo` to improve handling for …
bsels Jan 12, 2026
9359442
Refactor `ReadMockedMavenSession` to support non-topologically sorted…
bsels Jan 12, 2026
e750809
Add semantic versioning integration tests for single projects and sim…
bsels Jan 13, 2026
e528719
Add integration tests for multi-project semantic versioning and enhan…
bsels Jan 15, 2026
cf42403
Add integration tests for single-project revision versioning and enha…
bsels Jan 15, 2026
1656544
Add integration tests for multi-project revision versioning to `Updat…
bsels Jan 15, 2026
f8c3bb2
Add file deletion utilities to `Utils` and update `UpdatePomMojo` to …
bsels Jan 17, 2026
1e9cb79
Add file deletion assertions to `UpdatePomMojoTest` and update `Updat…
bsels Jan 17, 2026
b0cb024
Add unit tests for `deleteFileIfExists` and `deleteFilesIfExists` met…
bsels Jan 17, 2026
119ff8e
Add integration tests for multi-project semantic versioning with depe…
bsels Jan 17, 2026
536a789
Add tests for excluded multi-project versioning with changelog and fi…
bsels Jan 17, 2026
e0ae76a
Add integration tests for multi-recursive projects with changelog and…
bsels Jan 17, 2026
1b34af6
Add the ` createTemporaryMarkdownFile ` utility in `Utils` and corres…
bsels Jan 17, 2026
571bde5
Update PR template to revise versioning checklist
bsels Jan 17, 2026
faacc26
Add `ProcessUtils` utility class with methods to determine the defaul…
bsels Jan 17, 2026
896ede3
Add `CreateVersionMarkdownMojo` and `TerminalHelper` for interactive …
bsels Jan 18, 2026
4ad9eba
Add YAML header generation and changelog handling to `CreateVersionMa…
bsels Jan 18, 2026
c3e21bf
Update `DATE_TIME_FORMATTER` to drop millisecond precision in `Utils`
bsels Jan 18, 2026
0aa97bf
Add unit tests for `MarkdownUtils.createVersionBumpsHeader` and `Util…
bsels Jan 18, 2026
ae20104
Add comprehensive unit tests for `TerminalHelper` and fix multi-choic…
bsels Jan 18, 2026
75e6938
Add unit tests for `MavenArtifact.compareTo`
bsels Jan 18, 2026
7e372e1
Add unit tests for `CreateVersionMarkdownMojo` and refactor handling …
bsels Jan 18, 2026
03dd800
Refactor directory creation logic and improve input handling
bsels Jan 18, 2026
04cd3c4
Improve an exception message and extend test coverage in `CreateVersi…
bsels Jan 18, 2026
c90fed5
Extend test coverage for `CreateVersionMarkdownMojo` with additional …
bsels Jan 19, 2026
282c01f
Add `StandardOpenOption.WRITE` to `Files.newBufferedWriter` in `POMUt…
bsels Jan 19, 2026
5d98c4d
Add `StandardOpenOption.TRUNCATE_EXISTING` to `Files.newBufferedWrite…
bsels Jan 19, 2026
c60a886
Update version to `0.0.1` in `pom.xml`
bsels Jan 19, 2026
87c7fb0
Update `README.md` with detailed plugin usage, configuration, and exa…
bsels Jan 19, 2026
1de6ac8
Update project description in `pom.xml` to reflect plugin functionality
bsels Jan 19, 2026
de258a3
Make maven wrapper executable in Git
bsels Jan 20, 2026
a370fb9
Update log record validations to use `satisfiesExactlyInAnyOrder` in …
bsels Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/vulnerability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Vulnerability report
about: Report a vulnerability
title: ''
labels: bug
assignees: ''

---

**Describe the vulnerability**
In which part of the project is it?
Which dependency is it?
What is the impact?

**Suggested fix**
Describe the potential fix.
To which version should the impacted dependency be upgraded?
3 changes: 1 addition & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# PR Checklist
- [ ] Added tests for the changes
- [ ] Updated docs (root README.md, if necessary)
- [ ] PR title starts with a semantic version bump: (patch, minor or major)
- Example: `patch: Update dependencies`
- [ ] Contains at least one versioning Markdown in `.versioning`

# Problem or reason
What problem does this PR solve?
Expand Down
48 changes: 13 additions & 35 deletions .github/workflows/push-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,51 +25,29 @@ jobs:
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
- name: Get current project version
id: projectVersion
run: |
echo "version=$(./mvnw help:evaluate --no-transfer-progress -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT
- name: Bump version
- name: Build project and run versioning
id: bumpVersion
uses: actions/github-script@v8
env:
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
CURRENT_VERSION: ${{ steps.projectVersion.outputs.version }}
with:
result-encoding: string
script: |
const commitMessage = process.env.COMMIT_MESSAGE.trim().toLowerCase();
const [major, minor, patch] = process.env.CURRENT_VERSION.trim().split('.');
if (commitMessage.startsWith('major')) {
return `${parseInt(major) + 1}.0.0`;
}
if (commitMessage.startsWith('minor')) {
return `${major}.${parseInt(minor) + 1}.0`;
}
if (commitMessage.startsWith('patch')) {
return `${major}.${minor}.${parseInt(patch) + 1}`;
}
return process.env.CURRENT_VERSION;
- name: Set new project version
if: ${{ steps.bumpVersion.outputs.result != steps.projectVersion.outputs.version }}
run: |
./mvnw versions:set --no-transfer-progress -DnewVersion=${{ steps.bumpVersion.outputs.result }}
set -e
./mvnw --no-transfer-progress --batch-mode install -Dgpg.skip
CURRENT_VERSION=$(./mvnw --no-transfer-progress --batch-mode help:evaluate -Dexpression=project.version -q -DforceStdout)
./mvnw --no-transfer-progress --batch-mode io.github.bsels:semantic-version-maven-plugin:$CURRENT_VERSION:update
VERSION=$(./mvnw --no-transfer-progress --batch-mode help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Update version in README
if: ${{ steps.bumpVersion.outputs.result != steps.projectVersion.outputs.version }}
run: |
sed -i 's/<version>[0-9]\+[.][0-9]\+[.][0-9]\+<\/version>/<version>${{ steps.bumpVersion.outputs.result }}<\/version>/g' README.md
sed -i 's/<version>[0-9]\+[.][0-9]\+[.][0-9]\+<\/version>/<version>${{ steps.bumpVersion.outputs.version }}<\/version>/g' README.md
- name: Commit changes
if: ${{ steps.bumpVersion.outputs.result != steps.projectVersion.outputs.version }}
run: |
git commit -am "Released ${{ steps.bumpVersion.outputs.result }} [skip ci]"
git tag "v${{ steps.bumpVersion.outputs.result }}"
git add .versioning CHANGELOG.md pom.xml
git commit -am "Released ${{ steps.bumpVersion.outputs.version }} [skip ci]"
git tag "v${{ steps.bumpVersion.outputs.version }}"
git push
git push origin tag "v${{ steps.bumpVersion.outputs.result }}"
git push origin tag "v${{ steps.bumpVersion.outputs.version }}"
- name: Create release
if: ${{ steps.bumpVersion.outputs.result != steps.projectVersion.outputs.version }}
env:
GH_TOKEN: ${{ secrets.RELEASE_PAT_TOKEN }}
tag: ${{ format('v{0}', steps.bumpVersion.outputs.result) }}
tag: ${{ format('v{0}', steps.bumpVersion.outputs.version) }}
run: |
gh release create "$tag" \
--repo="$GITHUB_REPOSITORY" \
Expand Down
5 changes: 5 additions & 0 deletions .versioning/20250104-132200.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'io.github.bsels:semantic-version-maven-plugin': major
---

Initial version of the **semantic-version-maven-plugin**.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Changelog
Loading