Commit Graph

51 Commits

Author SHA1 Message Date
Mark Paluch
3ad17c3e83 #155 - Fix calver version bump after conclude. 2020-10-29 10:42:31 +01:00
Mark Paluch
6ddafa3a12 #151 - Adapt project metadata update to new Sagan API. 2020-10-27 11:30:50 +01:00
Christoph Strobl
4f91059766 #152 - Fix IoProperties.javaHome setter.
We now correctly set the javaHome variable instead of the workDir if the io.javaHome property is set.
Include the property in the template file and add the maven.parallelize=true flag as well.

Closes: #152
2020-10-15 09:47:32 +02:00
Mark Paluch
2c55e91562 #147 - Add means to create a ticket for each project.
We now have a command to create a ticket per module iteration using the summary as argument.

tracker create tickets <module iteration> -text "summary"
2020-06-10 15:43:57 +02:00
Mark Paluch
e7699fd273 #144 - Add support for Spring Data BOM. 2020-05-18 15:29:30 +02:00
Mark Paluch
a79ca69608 #144 - Adapt to new versioning scheme.
Remove Calver type as the version scheme can be already represented using the Version type. Adopt ticket/milestone creation, Sagan versioning and Git tags to new scheme.
2020-05-12 15:01:09 +02:00
Mark Paluch
61b8e499f8 #145 - Polishing.
Rewrite ticket references in tests from (at)see #nnn to (at)Test // #nnn.
2020-04-30 15:07:46 +02:00
Mark Paluch
ec6a5600cd #145 - Migrate unit tests to JUnit 5 and AssertJ. 2020-04-30 15:02:35 +02:00
Mark Paluch
7c65952eec #144 - Add Calver type. 2020-04-30 11:01:35 +02:00
Mark Paluch
49adb1da2d #310 - Polishing.
Add linebreak to commit message only if detail is present.
2020-04-29 17:11:14 +02:00
Jens Schauder
b3923fcbfa #139 - Updated expected release in integration test. 2020-03-11 08:34:00 +01:00
Mark Paluch
b408c06550 #137 - Update license headers to 2020. 2020-02-26 14:12:57 +01:00
Mark Paluch
d2bbaf77a4 #134 - Add fixture values for tests.
We now specify test properties for Jira and GitHub integrations to prevent a fallback to values from application-local.properties.
2019-12-04 10:52:41 +01:00
Mark Paluch
989e6dd150 #133 - Upgrade to Spring Boot 2.2. 2019-11-20 14:13:42 +01:00
Oliver Drotbohm
ea9c4f2130 #113 - Deployment promotion is now skipped for public artifacts.
As we publish public artifacts (i.e. GA and service releases) directly to Maven Central, there's no need for the promotion step and it currently produces error output (fortunately not breaking the build). With this commit in place, this is now changed to simply skip that step and print informative output.
2019-04-02 12:38:47 +02:00
Mark Paluch
1d729ac5f4 #107 - Polishing.
Remove failing integration test that requires external state from Jira/GitHub.
2019-03-25 09:36:26 +01:00
Spring Operator
60bf43794d #107 - URL Cleanup.
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 150 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).

Original Pull Request: #111
2019-03-22 18:33:00 +01:00
Mark Paluch
ea6625cfee #100 - Ignore Milestone.open property.
We now no longer render the open property of a GitHub Milestone as JSON.

Previously, the open property was rejected by the GitHub API validator.
2019-02-13 12:13:51 +01:00
Mark Paluch
e4bf393e80 #96 - Polishing.
Fix ReleaseCommandsIntegrationTests. Guard TrainIterationConverter against invalid input.
2018-12-12 14:53:10 +01:00
Mark Paluch
2360aa3612 #94 - Extend IssueTracker.closeIteration(…) to resolve release tickets.
closeIteration() now resolves release tickets within its release version to simplify post-release tasks.
2018-12-12 14:50:25 +01:00
Mark Paluch
36b5bbfd8a #92 - Adapt parent pom update to after Spring Doc Resources inclusion.
Include artifactId of spring-data-build-resources in update XPath to update the appropriate dependency.
2018-12-10 14:53:00 +01:00
Mark Paluch
aeea4eacae #91 - Polishing.
Guard tests requiring connectivity to GitHub with assumptions.
2018-12-10 14:10:59 +01:00
Mark Paluch
cd1f1c038e #91 - Disable unsafe integration tests. 2018-12-10 14:06:05 +01:00
Oliver Gierke
ed0bbe3efd #61 - Make sure Project.getDependencies() includes transitive dependencies. 2017-07-27 18:21:25 +02:00
Oliver Gierke
93cd2b73ea #63 - Additional guards against snapshots in release train BOM.
We now inspect the BOM pom.xml for references to -SNAPSHOT in declared dependencies. This is to work around the limitation of the Maven Enforcer plugin which only verifies actual project dependencies, not ones declared in a <dependencyManagement /> block.

#63 - Additional guards against snapshots in release train BOM.

We now inspect the BOM pom.xml for references to -SNAPSHOT in declared dependencies. This is to work around the limitation of the Maven Enforcer plugin which only verifies actual project dependencies, not ones declared in a <dependencyManagement /> block.
2017-07-27 18:21:23 +02:00
Oliver Gierke
dbd69ec502 #7 - Added support to update project information on spring.io.
This commit introduces a command "sagan update …" to take a comma-separated list of release train names that are supported. The implementation will find the latest releases by inspecting the Git tags and the creating the necessary project metadata information. The code will then wipe the existing metadata and PUT the current information to the server.
2017-07-26 17:25:00 +02:00
Oliver Gierke
ab64b68245 #61 - Re-added spring-cql as additional artifact for the Cassandra module.
API polishing in Project and ArtifactCoordinates.
2017-07-26 07:58:15 +02:00
Mark Paluch
3735d0aaf4 #56 - Add support to archive (retire) release versions.
Added support for Jira. There's no such concept for GitHub.
2017-06-07 15:06:47 +02:00
Mark Paluch
14167e4eeb #55 - Add support to assign Github release issues.
Support self-assignment of Github release issues. Added Apache httpclient to support HTTP PATCH as Java's HttpUrlConnection does not accept PATCH as HTTP method.
2017-06-07 14:25:48 +02:00
Mark Paluch
fb187e407c #54 - Polishing.
Extend test assertion to accept released flag of Jira release versions.
2017-06-07 13:58:43 +02:00
Mark Paluch
7e4265a594 #54 - Switch to verb-based issue update of Jira tickets.
Use PUT using update verbs instead of PUT'ing the whole Jira issue value object to prevent accidental update of unwanted but set fields.
2017-06-07 13:57:02 +02:00
Mark Paluch
658bdd2836 #53 - Skip Jira ticket assignment if ticket is already assigned.
Jira tickets are no longer self-assigned if they are assigned already.
2017-05-09 14:55:31 +02:00
Oliver Gierke
8504c605f7 #49 - Upgraded to Spring Boot 2.0 snapshots. 2017-05-04 15:38:55 +02:00
Oliver Gierke
0e4f194e81 #44 - Added infrastructure to prevent passwords from being printed to the console.
Introduced value objects to properly abstract command line arguments and introduced an interface Masked that allows masking a String value when printed to the console.
2017-04-03 17:02:38 +02:00
Oliver Gierke
05ae394fad #33 - Projects can now have an explicit full name.
Project has a withFullName(…) to be able to define it manually. Projects makes use of that to explicitly define the name for Apache backed ones.

Introduced a skipTests property to make explicit, which projects should not have their test run during a build.

Introduced overloads to allow the optional lookup of a Project by name.
2016-11-24 15:28:53 +01:00
Oliver Gierke
ac1273856c #32 - Allow enforcing to build milestone releases on a branch.
Train has now a method withAlwaysUseBranch(…) to define that milestone releases are supposed to be build from a branch, too.

Introduced Kay release train using that new flag and setting up a customized Iteration chain including a second milestone.
2016-11-24 15:28:03 +01:00
Oliver Gierke
7ee134c777 #28 - Project lookup by String now also considers keys. 2016-06-19 09:29:15 +02:00
Oliver Gierke
3e0e742378 #26 - Upgraded to Spring 4.3 and Spring Shell 1.2 RC1.
Removed @Autowired from constructors. Tweaked class setup with Lombok in a variety of places (using @FieldDefaults, @NonNull etc.).
2016-06-19 09:25:22 +02:00
Oliver Gierke
c9f12b1c70 #22 - UpdateInformation now produces correct version for release train BOM on GA releases. 2016-04-06 17:28:20 +02:00
Oliver Gierke
8282a901a9 #20 - Turned DeploymentInformation into an interface. 2016-04-06 13:42:56 +02:00
Oliver Gierke
a044322b31 #19 - Made command classes package protected.
Introduced customized execution strategy that makes methods on command classes accessible before executing them. This allows to make command classes package protected.

Introduced TimedCommand base class to output the time a command execution takes.
2016-04-05 19:38:34 +02:00
Oliver Gierke
30bec2701a #5 - Polishing.
Refactored issue tracker implementation into dedicated packages. Removed package tangles by moving some types around. Extracted GitHub specific properties into its own properties type reusing the Git credentials as we're talking to GitHub anyway.

Added Jackson parameter name module and enabled Java 8 parameter names to be able to get rid of the manually declared constructors for payload classes. Turned them into value objects where possible.

Original pull request: #14.
2016-04-05 18:43:46 +02:00
Mark Paluch
9944848d81 #5 - Create release tickets and release versions for Jira-tracked projects.
Creates jira release version for a train iteration if not present. Creates release tickets in Jira and GitHub if not present. Added pre-release verification that the release ticket is present and all other tickets are closed. Allow singular ticket and release version creation. Add integration tests using WireMock. Add command to self-assign release tickets.

Added CLI commands:
* jira releasetickets
* jira create releasetickets
* jira self-assign releasetickets
* jira create releaseversions
* github tickets
* github releasetickets
* github create releaseversions
* github create releasetickets

Original pull request: #14.
2016-04-05 18:43:37 +02:00
Oliver Gierke
7181e33e3f #2 - Polishing
Moved more logic into value objects to ease testability. Branches now know whether they're an issue branch for a given tracker. TicketBranches now implements Streamable and allows obtaining a new instance with only resolved tickets in it an inspect whether a it contains a ticket for a given Branch.

Cleaned up GitOperations and GitCommands to make use of the new functionality. "git issuebranches" command was tweaked to default resolvable to true in case the option is set.

Renamed GitHubConnector to correct case. Fixed imports in GitHubIssueTracker.

Formatting.
2016-02-15 18:54:17 +01:00
Mark Paluch
a94f109ae7 #2 - Provide command to list all issue branches alongside their state in the issue tracker 2016-02-15 18:53:09 +01:00
Oliver Gierke
6f62556ed3 #11 - Added command to backport changelog entries.
We now support a git backport changelog $trainIteration --target $targetTrain,$targetTrain to backport the changelog commit for the given source iteration into the given release trains. If the source iteration is not corresponding to the master branch (i.e. for service iterations), the master branch is becoming an additional target for the port.
2016-02-15 18:53:06 +01:00
Oliver Gierke
a5daf60f8c #8 - The execution of the versions plugin now cleans up after itself.
Tweaked the expansion of the Maven plugins to only map the plugin so that e.g. versions:set gets expanded to the fully qualified version of the versions plugin as registered in application.properties.

Tweaked the expansion to inspect all arguments given but ignore properties not containing a colon or staring with a dash.
2016-02-12 14:50:04 +01:00
Oliver Gierke
5d330e2573 Tweaked ordering of modules within trains and train iterations.
We're now using the global sorting of the projects defined by the topological graph analysis run at startup to implement Comparable and exposing this comparability on more upper levels like modules.
2016-02-10 14:26:25 +01:00
Oliver Gierke
f7476dd64c A way too big commit.
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.
2016-02-10 12:01:06 +01:00
Oliver Gierke
6b2fea839a Significant Java 8 updates and Spring Boot integration.
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
2015-11-21 12:32:57 +01:00