-
Notifications
You must be signed in to change notification settings - Fork 2.8k
[MNG-7129] - Changes in maven core required to support incremental mave… #610
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
[MNG-7129] - Changes in maven core required to support incremental mave… #610
Conversation
maven-core/src/main/java/org/apache/maven/plugin/MojoExecutionStrategy.java
Outdated
Show resolved
Hide resolved
maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
Outdated
Show resolved
Hide resolved
maven-core/src/main/java/org/apache/maven/plugin/DefaultMojosExecutionStrategy.java
Show resolved
Hide resolved
…n build - maven 4 port [MNG-7129] Changes in maven core required to support incremental maven build - master [MNG-7129] Changes in maven core required to support incremental maven build - master [MNG-7129] Changes in maven core required to support incremental maven build - master
0fc7097 to
1723cfd
Compare
|
This looks roughly similar to 0a6f1d3 |
@gnodet our plan is the following:
|
|
@maximilian-novikov-db Since you are using Java 8 features here, it cannot be merged to 3.8.x for sure. I need to go through these changes and try to understand them. |
@michael-o We can raise PR to 3.8 with similar changes, initial changes here were made against 3.8 branch (Used java 1.7 features only, used annotations from plexus: org.codehaus.plexus.component.annotations.Component, org.codehaus.plexus.component.annotations.Requirement) |
Let's stick with Java 8 and 3.9. The code should not diverge. This will make life for us and you easier. |
Ok but is there a separate branch for 3.9 |
Just to clarify: we don't have a problem with a version itself. It does not matter 3.9 or 4.0. The problem with compatibility.
|
Not yet. There is this which is the tentative 3.9.x branch. I will branch off a couple of weeks after 3.8.4 release. Something around 2021-12-10 or so. |
My understanding was that the goal was to focus on 4.0.x. The work has already stalled a bit and I'm not sure creating additional branches will help in any way. |
It would be nice to have reports of things that fail so that we can actually fix those. |
Yes, it's similar to the commit I pointed at but done in a different way (i.e. introducing a I guess you're referring to https://github.com/apache/maven/tree/MNG-7129-master in your two links ... ? |
not quite All of the above is my opinion of course
yes |
Fair point, I think you're right that your proposal requires a lower coupling and thus is better.
It would be nice to have a first PR to merge this change into https://github.com/apache/maven/tree/MNG-7129-master, so that we'll have a better understanding on how this new interface will be used. |
I see two options:
From my point of view changes from your branch should be taken anyway so the order of merge does not make much sense |
I'd rather squash and merge into master the whole feature at once when it's ready, and let others review the full set of changes, so I'd rather go for #2. |
Hi. My understanding from previous communication with Herve and Robert that minimal isolated change in master will be better perceived than one massive drop. It could be done today and will be a step forward already. Having that merged the following work will be focused solely on extension and likely will be easier to change after decoupling from the maven-core. As i understand the concern is integration itself - is this change enough or not. The answer to that is yes, it is enough. Andrey has integrated the change already in upcoming PR, so he likely can create preview branch to demonstrate it if necessary In short, i think we should merge it and move forward Thank you! |
It's quite hard to actually review this PR without any real usage for it. As this is kind of a backport, I think we'd need the PR for the caching system in order to understand how those new interfaces will be used. |
|
If this is ultimately going to be an extension, which I agree it should, can one commit be of the interfaces created that will allow the incremental capabilities in the core, and create a separate repository outside of Maven core with the extension? This is historically how extensions are made available: as separate artifacts. From past experience I can tell you that the implementation will change at a much higher rate than the core. I don't think it makes sense for an a new, experimental feature to be bound to the core where a change in said feature necessitates a release of the core. |
Actually that was our plan, small as possible changes in core and then raise separate PR to extension repository |
I propose the following plan:
|
|
I've merge this branch to |
|
I've changed this PR to a draft until we can get #607 in a more mature state. |
|
Superseded by #607 |
Changes in maven core to inject caching extension
CC @ansip
Following this checklist to help us incorporate your
contribution quickly and easily:
for the change (usually before you start working on it). Trivial changes like typos do not
require a JIRA issue. Your pull request should address just this issue, without
pulling in other changes.
[MNG-XXX] - Fixes bug in ApproximateQuantiles,where you replace
MNG-XXXwith the appropriate JIRA issue. Best practiceis to use the JIRA issue title in the pull request title and in the first line of the
commit message.
mvn clean verifyto make sure basic checks pass. A more thorough check willbe performed on your pull request automatically.
If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.
To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.
I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004
In any other case, please file an Apache Individual Contributor License Agreement.