Switched to Apache Maven Invoker for running Maven on the projects.
Added JGraphT to correctly sort dependencies in topological order.
Upgraded to Spring Boot 1.3.2, Lombok 1.16.6, jGit 4.2.0. Upgraded to Spring Plugin 1.3 to benefit from lazy exception creation using lambdas. Added Lombok configuration to throw IllegalArgumentException on null checks.
Moved to Spring Boot 1.3 and leverage the new configuration properties mechanism (see GitProperties and IoProperties). Improved ArtifactVersion to be a better value object.
Introduced usage of Java 8's CompletableFuture to execute most of the Git operations in parallel. Started to use Lambdas where possible.
Git configuration is now supposed to be done using a application-local.properties (Git ignored) file containing the relevant properties (see readme). The test configuration now uses a separate workspace location and a Sample release train to make sure the integration tests run without interfering a local workspace.
Added train declaration for Hopper. Integrated BootShim (see [0], [1]) to run the shell on top of Spring Boot.
[0] https://github.com/jeffellin/springshellwithboot
[1] https://github.com/spring-projects/spring-shell/issues/34
Added functionality to reset a release train which actively resets to the latest state of the remote branch. Added functionality to push changes to the remote server and push tags individually. Added functionality to create commits for modules.
Release operations now create two commits for the changelog update and the pom modifications. Release conclude does so for the preparation of the next development iteration.
Added git.author infrastructure property to make sure we use a real user for the git commits.
Previously, ModuleIteration always returned the custom first iteration on every call to getIteration(). We now only do so for the very first iteration.
- Dockbook references to Spring Data Commons files get updated.
- Updating of notice.txt.
- Gradle projects get Spring Data Commons version and repositories updated.
- Added release commit detection and tagging for cleanup.
Upgraded to Spring Boot 1.0.2.RELEASE.
Added support for creating changelogs from GitHub (for Spring Data Build project). A lot of internal refactorings, strengthening the domain model. Moved project declarations into Projects class. Made types package protected where possible.
Added dedicated TrainIteration type as well as a Shell Converter implementation to allow this type to be handed into the command implementations.
Unified logging into separate component to make sure we have consistent output.
Added functionality to prepare a release:
- Update the Spring Data Commons version a project relies on to the one included in the train iteration.
- Switch to the correct Maven repository matching the current release iteration (milestone, release).
- Update the BOM pom.xml in Spring Build project.
Upgraded to XmlBeam 1.1.4 get the XML manipulation working properly. Fixed XmlBeam configuration to write XML headers to XML files. Fixed the AnnouncementOperations to render the appropriate version number for service releases. Added further Git commands to be able to reset the repositories in the workspace. Let the changelog render the full artifact version.
Ignored integration tests for now.
Added a changelog command to render a changelog for a given module from the JIRA tickets. Some internal refactorings and enhancements to the model to be able to work with artifact versions, branches, tags.