Skip to content

Comments

Initial implementation#1

Merged
bsels merged 63 commits intomainfrom
initial
Jan 20, 2026
Merged

Initial implementation#1
bsels merged 63 commits intomainfrom
initial

Conversation

@bsels
Copy link
Owner

@bsels bsels commented Jan 20, 2026

PR Checklist

  • Added tests for the changes
  • Updated docs (root README.md, if necessary)
  • PR contains versioning file

Problem or reason

Create Maven plugin for file based versioning of projects.

Implementation

Initial implementation

bsels added 30 commits January 3, 2026 18:12
… and extend versioning capabilities. Add enums for version bump strategies and execution modes. Updates include new `BaseMojo` abstraction and XML POM handling utilities.
…es, and design intent of constants, methods, and fields.
…ling, `VersionMarkdown`, and improve `UpdatePomMojo`. Add `MavenArtifact` model and `.versioning` metadata support. Update `pom.xml` dependencies.
…ownMapping`, `getVersionMarkdowns`, YAML parsing with Jackson, and updates to `UpdatePomMojo` for artifact-specific semantic version handling. Refactor related utilities and dependencies in the `pom.xml`.
…ng, node handling, and structured processing methods. Refactor Markdown reading logic.
…ackup logic. Update `POMUtils` and `MarkdownUtils` to use the new `Utils.backupFile` method. Extend `MarkdownUtils` with enhanced rendering, Markdown writing, and changelog processing features. Revise `UpdatePomMojo` to support changelog updates and configurable backup handling for both POM and Markdown files.
…o handle unified `PROJECT_VERSION` defaults, and enhance changelog handling with defaults and structured updates.
…mlined XML traversal, and comprehensive artifact extraction logic. Introduce `StreamWalk` for efficient node processing.
…d enhanced changelog handling. Streamline grouping logic with new utility methods in `Utils`, consolidate version bump and dependency update logic in `UpdatePomMojo`, and improve Markdown and POM integration.
…d version tracking and dependency updates. Rework `UpdatePomMojo` and `POMUtils` to use `VersionChange`, enabling precise old-to-new version transitions. Streamline multi-project version bump handling.
…prehensive unit tests for utility methods.
…on` to ensure proper validation, construction, and extension behavior.
…ump`, `VersionMarkdown`, and related classes. Improve null and immutability handling, rework version bump logic, and enhance JavaDoc for accuracy and clarity.
…constructors, parsing logic, and behavior. Refactor `SemanticVersion` suffix validation and improve null handling with utility methods. Enhance JavaDoc for clarity.
…ith and without YAML front matter, to validate parsing and tree structure.
…downYamFrontMatterBlockRenderer`. Enhance `Utils` JavaDoc references for clarity.
…nYamFrontMatterBlockRendererFactory`. Refactor `createSimpleVersionBumpDocument` in `MarkdownUtils` to ensure proper paragraph handling. Enhance null-checks and JavaDoc clarity.
…or `MarkdownUtils`. Enhance markdown handling with additional null checks and improved error messaging.
…s.copy` for changelog backups. Adjust related mocks and validations.
…ionException` and enhanced JavaDoc clarity. Add comprehensive unit tests to validate new behaviors.
…`BaseMojo` with new methods for Markdown mapping, validation, and project scope handling. Refactor and streamline the project version update logic in `UpdatePomMojo`.
… `ReadMockedMavenSession` utility with a comprehensive implementation for mocking Maven sessions.
…implementations for improved test reliability. Add `UpdatePomMojoTest` with a new unit test validating subproject execution skipping.
bsels added 28 commits January 15, 2026 20:24
…nce `UpdatePomMojoTest` with parameterized test cases for version bump validation. Include test scenarios for dry run, backup, and invalid project handling.
…ePomMojoTest` with scenarios for version bump validation, backups, dry-run, and invalid files. Extend test coverage for multiple semantic version bump files.
…clean Markdown files after version updates. Extend related test coverage and refactor `VersionMarkdown` for path support.
…ePomMojo` to respect `dryRun` during Markdown file cleanup.
…hods in `Utils` to validate file deletion behavior and exception handling.
…ndency-specific version bumps and changelog validation
…ponding unit tests

Extend `Utils` with a method to create temporary Markdown files, ensuring proper exception handling. Added comprehensive tests to validate success and failure scenarios. Simplified GitHub Actions workflow by replacing version bump script with semantic version plugin.
…t editor and execute it, along with comprehensive unit tests
…semantic versioning and markdown generation

Introduce `CreateVersionMarkdownMojo` to enable semantic versioning with user interaction through terminal prompts. Add `TerminalHelper` utility for handling multi-line input and choice selections. Extend `MavenArtifact` with comparable logic and update `BaseMojo` to include `CreateVersionMarkdownMojo`.
…rkdownMojo`

Implement YAML front matter block creation for semantic version bumps. Enhance changelog generation with user interaction and external editor support. Add utilities for Markdown parsing, versioning file resolution, and dry-run simulation. Refactor `BaseMojo` for file path handling and logging improvements.
…s.resolveVersioningFile`

Extend test coverage with comprehensive scenarios for YAML generation and versioning file resolution. Include null checks, multiple entries handling, and path validation based on timestamped files.
…e and trailing whitespace handling

Introduce extensive tests for `TerminalHelper` methods, including validation scenarios for multi-line input, single-choice, and multi-choice selections. Fixes include trimming trailing whitespace from multi-line inputs and handling blank entries in multi-choice responses.
Introduce tests to validate comparison logic for `MavenArtifact`, covering scenarios for identical artifacts, differing group IDs, and differing artifact IDs.
…of selected projects

Introduce tests validating `CreateVersionMarkdownMojo` functionality, including edge cases for project selection and execution. Refactor to replace `null` checks with safe collection operations and improve code readability. Add abstract base class to consolidate shared test utility methods. Introduce security policy and GitHub issue template for vulnerability reporting.
Replace inline directory creation with `Utils.createDirectoryIfNotExists` to improve code reuse and readability. Enhance `TerminalHelper` methods with utility functions for input handling and introduce additional tests for `Utils` and `CreateVersionMarkdownMojo`. Modify log levels for clearer debugging.
…onMarkdownMojo`

Clarify an error message for external editor failure to improve user feedback. Add unit tests for `CreateVersionMarkdownMojo` to validate the handling of external editor failures and log output validation. Extend test scenarios for semantic version bumps and markdown generation.
…scenarios for project selection, version bumps, and markdown validation. Fix formatting issues in mocked input handling.
…ils`

Ensure explicit write mode for `Files.newBufferedWriter` to address potential file handling issues. Update tests in `POMUtilsTest` to reflect the change and validate proper error handling.
…r` for file overwrite safety

Ensure files are truncated before writing to prevent unintended data retention. Update related tests across `POMUtilsTest` and `MarkdownUtilsTest` to reflect and validate the new behavior.
…mples

Add comprehensive documentation, covering installation, goals, configuration properties, and usage examples for the Semantic Version Maven Plugin. Improve structure with a table of contents and clarifications for both `create` and `update` goals.
Replace the placeholder description with a detailed summary of the plugin's purpose, features, and goals, including semantic versioning automation and changelog management.
…`UpdatePomMojoTest`

Refactor assertions to allow log records to match in any order, ensuring flexibility in test validations.
@bsels bsels merged commit 73a60ba into main Jan 20, 2026
1 check passed
@bsels bsels deleted the initial branch January 20, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant