-
Notifications
You must be signed in to change notification settings - Fork 464
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automate _ext project version bumps #1054
Conversation
- Fix _ext project build problems introduced with JUnit5 - Store dependency locks for releases - Provide helper task to create lib-extra lock files - Provide documentation
@nedtwigg , I need your help...
|
Very cool!
I assume you mean tests in They are not run on CI. My understanding is that we can't really run them until the published artifact is available on mavenCentral, and there's a delay from when we do the publish to when the artifact is actually available. If we want the CI tests to run before we publish (reasonable), then I think we'd need to figure out some way to generate the fat jar, make the |
You can already trigger the tests.
It is possible that you experienced build problems before. When I introduced the locking files, we used a gradle version which was not supporting that beta feature. We use the locking files in the first place, since our Eclipse glue-code uses internal interfaces of Eclipse, meaning that each Eclipse version change can break our code. Since the _ext project build process did not use locked dependencies, the build was able to break any time a new version of a Eclipse dependency was released on Maven Central. This PR fixes that problem as well. To summarize: This PR makes the _ext project builds deterministic and fixes the test tasks. TODO: The goal is to build&test simple Eclipse version bumps on the CI, so that the developer is not forced to checkout the P2 repos all the time, build the _ext project locally, .... |
I think we want a new Gradle plugin like this. // settings.gradle
if (getStartProperty('com.diffplug.spotless.include.ext') == 'ifgitdiff') {
file('_ext').eachDirMatch(~/^(?!(\.|gradle)).*/) { dir ->
ifGitDiff {
folder dir, {
include dir.name
project(":${dir.name}").projectDir = dir
}
}
}
} Then we can get rid of the We can change
Does this sound okay to you @fvgh? I really like your idea to get the CI running on the _ext projects to improve quality and reduce dev time. |
- com.diffplug.spotless.include.ext.nop2 is gone - com.diffplug.spotless.include.ext=ifgitdiff means configure ext projects which changed since origin/ifgitdiff - changelogPrint, changelogPush, and test all have `ext_` prefixed tasks for just the ext projects
I implemented the idea above, with a few tweaks:
This means that:
You can see that CI is currently failing, but locally I get the same failure before my commits, so I think that means it's working :) |
I think all builds are working now, with easy publishing, except for the WTP, where the failures in |
I think this will be solved by |
The original idea was to update _ext projects seldomly, assuming that more Eclipse plugins will be published via M2.
The aim of this PR is:
Note: The new
generateLibExtraLockFile
uses a unifiedlib-extra
resource structure. Unfortunately the current structure has a few flaws, hence the generated files are not stored in the "correct" location. The problem will be solved by alib-extra
resource structure clean-up in a future PR.