Thanks for the feedback so far.

One PR was already merged, kudos also.

Regarding ’studies’ I have added a profile (with that name) to the reactor 
build and set the PR to ready
as well as the remaining draft PRs:

Maven Sources (Reactor): https://github.com/apache/maven-sources/pull/13
Maven Mapping: https://github.com/apache/maven-mapping/pull/8
Maven Stage Plugin: https://github.com/apache/maven-stage-plugin/pull/15
Maven Shared IO: https://github.com/apache/maven-shared-io/pull/27

Thanks for merging!

I will soon 
try to get the reactor working with M4,
add a profile to run the ITs,
add a GH action.

What else would you consider necessary?
I wonder, for example, if there should be a trigger to build the reactor 
whenever one of the modules is updated (or even with a PR of the modules 
including the module in it’s particular branch).
Perhaps all of these points are a different story and should be discussed in 
new branches?

> On 14. Jan 2025, at 07:55, Hervé Boutemy <herve.bout...@free.fr> wrote:
> 
> +1 to the profile approach for building these studies only when interested
> 
> and keep in mind flexibility about sharing one general studies branch vs 
> taking 
> extra structure of a dedicated Git orphan branch
> 
> Le lundi 13 janvier 2025, 22:23:26 CET Gerd Aschemann a écrit :
>>> On 13. Jan 2025, at 08:01, Hervé Boutemy <herve.bout...@free.fr> wrote:
>>> 
>>> oh, someone who seriously tries to maintain Maven Source Aggregator: nice!
>>> https://github.com/apache/maven-sources/tree/master/aggregator
>> 
>> Let’s see if I can manage this endeavour in the long run ;-).
>> 
>>> I'm not really surprised that Maven Studies in that reactor may cause
>>> issues https://github.com/apache/maven-studies
>>> https://maven.apache.org/studies/
>>> As said in the master readme, they replace Maven Sandbox from svn time, to
>>> avoid creating a separate Git repo that has limited interest, or not yet
>>> proven
>> 
>> I do not object to still have them in the overall code base (`repo` tool
>> based Maven Source), but would like to remove them from the reactor build
>> or at least ban them to a profile.
>> 
>> What would be the most important goal of a reactor build? In my opinion it
>> should allow for a simple embracement of all (production) relevant modules.
>> Therefore it should IMHO only contain the respective (self-maintained)
>> tools and libraries, underlying (former separate) libraries (like Plexus
>> and Sisu), the Maven core itself and the plugins. All components which
>> qualify to be part of the reactor should be maintained and kept up to date.
>> 
>> I wouldn’t treat studies as equal citizens, in particular as they seem not
>> to be well maintained. They perhaps were working at the time the respective
>> study was necessary. But then either the idea was given up or it was
>> incorporated into some other components. Aren’t both good reasons to drop
>> them from the major reactor builds in this moment. Hey, we have an SCM, we
>> can reactivate them anytime, but no reason to keep the burden with every
>> build, right?
>> 
>> Additionally, I wonder about the technical implementation. Keeping them in
>> one repo on separate branches makes using `repo` real hard. Could we at
>> least combine them on a single branch? They could have separate
>> subdirectories, or even a common reactor if it helps. New studies could
>> still be developed on separate branches. But they should then be merged to
>> the common `main` (`master` seems to be politically incorrect these days)
>> if they mature.
>>> This permits to avoid empty GH repos like maven-metric-extension, created
>>> but never used: if code had been initiated as a study, it's only after a
>>> sufficient tested codebase that Git repo would have been created.
>> 
>> Sure, I am a big fan of cleaning up outdated and non-maintained (or even
>> empty) stuff.
>>> I feel that recently quite a few maven-* Git repositories were created
>>> that
>>> may quickly become unmaintained: creating a separate orphan branch in
>>> maven- studies is a way to stress test an idea
>>> 
>>> 
>>> Studies are not meant to be components for release, but "studies":
>>> - either with a limited time value, like the first studies for consumer
>>> POM
>>> - or with complex compatibility tests in mind, like the extensions study
>>> 
>>> Some past studies (= Git orphan branches) may completely be deleted;
>>> Some studies may be removed from the full source code aggregator build, or
>>> moved to specific pom.xml profiles to document the specifics
>>> 
>>> This pom.xml profile approach seems relevant for extensions study: not
>>> fully dropped, but not part of normal full source code of Maven
>> 
>> Thats the last resort, exclude them by a profile if not completely.
>> 
>>> Regards,
>>> 
>>> Hervé
>>> 
>>> Le lundi 13 janvier 2025, 03:53:28 CET Gerd Aschemann a écrit :
>>>> Hello Maven committers,
>>>> 
>>>> some of you already noticed that our Maven Support-and-Care
>>>> <https://github.com/support-and-care/maven-support-and-care> initiative
>>>> started working in the last weeks. Sandra has prepared and supported
>>>> migration of Jira issues to GitHub.
>>>> 
>>>> Now it’s my turn to start contributing to successful individual project
>>>> builds and in particular reactor build. This does not only improve the
>>>> Maven project but also enables further analysis of code quality and
>>>> enforcement of unique standards to all Maven projects. We expect to send
>>>> in
>>>> first formal analysis results soon, e.g., based on jQAssistant
>>>> <https://jqassistant.org/>.
>>>> 
>>>> Therefore I have run a due diligence
>>>> <https://github.com/support-and-care/maven-support-and-care/issues/77>
>>>> process to make at least all 133 current Maven projects including the
>>>> reactor build with Maven 3.9.9 and JDK 21. After reaching this state by
>>>> the
>>>> end of 2024 I meanwhile could refactor the results, some of my insights,
>>>> and also a lot of my tooling. Additionally, I started to work on Maven 4
>>>> with it (and will also try to cover M3.6.3 as soon as possible). I will
>>>> try
>>>> to report more about this to you in the next weeks. You may already look
>>>> into my complete epic report
>>>> <https://github.com/support-and-care/maven-support-and-care/blob/wip/77-m
>>>> av
>>>> en-due-diligence/src/docs/epics/77-maven-due-diligence/index.adoc> (I am
>>>> happy to discuss anything with you).
>>>> 
>>>> For now I would like to focus on the most important changes, the
>>>> so-called
>>>> quick wins
>>>> <https://github.com/support-and-care/maven-support-and-care/blob/wip/77-m
>>>> av
>>>> en-due-diligence/src/docs/epics/77-maven-due-diligence/index.adoc#quick-w
>>>> ins>>
>>>>> . Therefore, I kindly propose to make some (rather small) changes to
>>>> 
>>>> incorporate my work into the Apache Maven codebase (which you will also
>>>> find as appendix below). This would make further changes easier, and - as
>>>> I
>>>> said - enables further code analysis. The longer and more complex our
>>>> forks
>>>> get and stay, the harder it is to work seamlessly on them. I have already
>>>> prepared some Draft PRs covering most of my changes.
>>>> 
>>>> But let me start with a brief summary of my changes.
>>>> I would like to drop certain components, at least from the reactor build,
>>>> if not completely from the Maven Source. They are either archived or
>>>> announced to become archived and sometimes cause some trouble to the
>>>> build. If possible I am happy if we can even archive/drop more
>>>> components in the future. Studies (at least the three from the report,
>>>> causing trouble) Project Utilties (soon to be archived)
>>>> Artifact Transfer (deprecated)
>>>> Repository Tools (aka. Meeper; ~15 years old; doesn’t build for various
>>>> reasons, is not used somewhere in the other projects) Maven 3: The
>>>> required
>>>> changes are very small (one duplicate file removal, three times setting
>>>> the
>>>> Java Version from 7 to 8 as JDK 21 no longer builds with source/target
>>>> set
>>>> to 7). Maven 4: Requires some more changes (Upgrade of Parent POM version
>>>> in 4 cases; Adding some dependency versions; dropping parent.
>>>> relativePath
>>>> here and there; Refactoring a method to less than 150 lines; Applying
>>>> Spotless).
>>>> 
>>>> To show the problems and successful application of the changes I have
>>>> added
>>>> GH Actions (copied from project with existing GH Action) to the
>>>> respective
>>>> repositories (links below). As the Maven 3 changes are almost trivial, I
>>>> spared the PRs but could raise separate PRs for M3 if desired. For the M4
>>>> changes they were mostly small, except for the spotless application which
>>>> reformatted several files (In fact, for the new format there were no
>>>> semantical changes as far as I could see). Would you in general accept
>>>> the
>>>> respective PRs? Then I would make them final and we could perhaps discuss
>>>> details during the PR process.
>>>> 
>>>> I understand that it is common to raise a Jira first when working on some
>>>> open issue. If desired, I could create Jira tickets (or GH issues) in the
>>>> respective components. Or I could just raise one (where)? Then I would
>>>> refer to the ticket(s) in the PRs when making them final.
>>>> 
>>>> As outlined above there are some more improvements in my pipeline, but I
>>>> wanted to get the ball rolling and rather push changes in small portions.
>>>> 
>>>> Looking forward to get some feedback from you.
>>>> 
>>>> Have a good start into the week,
>>>> 
>>>> Gerd
>>>> 
>>>> P.S.: Sorry for the inconvenience I caused to some of you by creating
>>>> draft
>>>> PRs (and reworking or even closing them). I promise to get used to the
>>>> project standards. --
>>>> Gerd Aschemann --- Veröffentlichen heißt Verändern (Carmen Thomas)
>>>> +49/173/3264070 -- g...@aschemann.net -- http://www.aschemann.net
>>>> 
>>>> 
>>>> Quick wins
>>>> 
>>>> To visualize the problems and the results of below discussed quick wins,
>>>> we
>>>> added a build to the Maven projects. Both currently make use of JDK 21
>>>> and
>>>> Maven 3.9.9, as well as Maven 4.0.0-RC-2. We can show the initial results
>>>> of the builds (without changes), and the results for both Maven versions.
>>>> 
>>>> It is clear, that this does not yet cover all remaining (and to be
>>>> detected) open problems of the Maven build. For instance, it does not
>>>> yet cover full integration tests, or documentation checks. Nevertheless,
>>>> it is a starting point which allows for step-by-step improvements. In
>>>> particular, it allows to build the projects (and execute at least their
>>>> unit tests) with the required JDK and currently two out of three
>>>> supported Maven versions.
>>>> 
>>>> For each of the single repositories below (running mvn verify), the build
>>>> (on the respective PRs) is successful (both M3 and M4). See the build
>>>> links
>>>> in the discussion below. For the reactor build (running mvn install
>>>> site.[1
>>>> <x-msg://54/#_footnotedef_1>]), it is a bit more complicated. For Maven
>>>> 3.9.9, the build is successful, but with some errors (resulting from site
>>>> building). For Maven 4.0.0-RC-2, the build still has some problems, and
>>>> it
>>>> will take us some time to resolve them (→ Work-in-Progress). We derived
>>>> following tasks from the current state above. They make sure that we can
>>>> at
>>>> least execute the Maven build with the required JDK and Maven versions
>>>> without running into basic build problems.
>>>> 
>>>> Triage
>>>> Check with the Maven committers if we could thin out the reactor build
>>>> and
>>>> the overall Maven Source and Reactor Build
>>>> <x-msg://54/#box:maven-source>.
>>>> 
>>>> Archive unnecessary components.
>>>> Drop them from the Maven Source (or at least from the reactor build;
>>>> Draft
>>>> PR for both M3 and M4 <https://github.com/apache/maven-sources/pull/13>).
>>>> The reactor build would become easier if the following components would
>>>> be
>>>> dropped from the reactor build The so-called Maven Studies (as they are
>>>> causing trouble, cf. our forks), Consumer POM
>>>> <https://github.com/apache/maven-studies/tree/consumer-pom> (Sac: fork
>>>> <https://github.com/support-and-care/maven-studies/tree/consumer-pom>,
>>>> bugfix
>>>> <https://github.com/support-and-care/maven-studies/tree/bugfix/77-make-pr
>>>> oj
>>>> ect-build-again-consumer-pom>, Successful GH Action with M3
>>>> <https://github.com/support-and-care/maven-studies/actions/runs/127334566
>>>> 92
>>>> 
>>>>> ), Extension Demo Study
>>>> 
>>>> <https://github.com/apache/maven-studies/tree/maven-extension-demo> (SaC:
>>>> fork
>>>> <https://github.com/support-and-care/maven-studies/tree/maven-extension-d
>>>> em
>>>> o>, bugfix
>>>> <https://github.com/support-and-care/maven-studies/tree/bugfix/77-add-mav
>>>> en
>>>> -verify-maven-extension-demo>, Successful GH Action with M3
>>>> <https://github.com/support-and-care/maven-studies/actions/runs/127340235
>>>> 31
>>>> 
>>>>> ), Eventsound Extension Demo
>>>> 
>>>> <https://github.com/apache/maven-studies/tree/maven-eventsound-extension>
>>>> (SaC: fork
>>>> <https://github.com/support-and-care/maven-studies/tree/maven-eventsound-> 
>>>> >> ex
>>>> tension>, bugfix
>>>> <https://github.com/support-and-care/maven-studies/tree/bugfix/77-make-pr
>>>> oj
>>>> ect-build-again-maven-extension-demo>, Successful GH Action with M3
>>>> <https://github.com/support-and-care/maven-studies/actions/runs/127340235
>>>> 31
>>>> 
>>>>> ), The Maven Project Utils
>>>>> <https://github.com/apache/maven-project-utils>
>>>> 
>>>> as they are soon to be archived, The Maven Artifact Transfer
>>>> <https://github.com/apache/maven-artifact-transfer> as it is deprecated
>>>> and
>>>> should be archived soon, and The Maven Repository Tools
>>>> <https://github.com/apache/maven-repository-tools> (aka. Maven Meeper)
>>>> from
>>>> the reactor build (Draft PR for M3
>>>> <https://github.com/apache/maven-sources/pull/13> will be withdrawn) as
>>>> It
>>>> is archived (so no further development is expected),
>>>> It has many non-straightforward problems (see below).
>>>> For the next steps below we assume that the components mentioned above,
>>>> will not survive the triage <x-msg://54/#desc-item:triage> and
>>>> concentrate on the remaining components. Maven 3 (.9.9) Updates
>>>> To enable successful build with Maven 3 (.9.9) the following changes are
>>>> necessary.
>>>> 
>>>> Maven Verifier Plugin <https://github.com/apache/maven-verifier-plugin>
>>>> Update the Java version to at least Java 8, and
>>>> Drop duplicate license from VerifierMojo.java
>>>> <https://github.com/apache/maven-verifier-plugin/blob/1330656e1945dfe7ef1
>>>> a1
>>>> f3e8034b64138887f10/src/main/java/org/apache/maven/plugins/verifier/Verif
>>>> ier Mojo.java#L29> as it leads to a checkstyle error due to splitting the
>>>> import statements. Maven Stage Plugin
>>>> <https://github.com/apache/maven-stage-plugin>: Update the Java version
>>>> to
>>>> at least Java 8 Maven Mapping <https://github.com/apache/maven-mapping>:
>>>> Update the Java version to at least Java 8 Maven 4 (.0.0-RC-2) updates
>>>> To enable successful build with Maven 4 (.0.0-RC-2) the following changes
>>>> are necessary.
>>>> 
>>>> Maven Shared IO <https://github.com/apache/maven-shared-io> (Draft PR for
>>>> M3 <https://github.com/apache/maven-shared-io/pull/27>, also works with
>>>> M4;
>>>> Successful GH Action
>>>> <https://github.com/support-and-care/maven-shared-io/actions/runs/1273404
>>>> 21
>>>> 42>): Upgrade to Parent version 43,
>>>> and add Plexus-XML dependency (in test scope).
>>>> Maven Verifier Plugin (Draft PR
>>>> <https://github.com/apache/maven-verifier-plugin/pull/6>, Successful GH
>>>> Action
>>>> <https://github.com/support-and-care/maven-verifier-plugin/actions/runs/1
>>>> 27
>>>> 38839164>): Upgrade to Parent version 43.
>>>> Apply Spotless to the codebase.
>>>> Maven Stage Plugin (Draft PR
>>>> <https://github.com/apache/maven-stage-plugin/pull/15>, Successful GH
>>>> Action
>>>> <https://github.com/support-and-care/maven-stage-plugin/actions/runs/1273
>>>> 88
>>>> 68925>): Drop parent.relativePath.
>>>> Refactor DefaultRepositoryCopier::copy to use less than 150 lines of
>>>> code.
>>>> Upgrade to Parent version 43.
>>>> Apply Spotless to the codebase.
>>>> Maven Mapping (Draft PR <https://github.com/apache/maven-mapping/pull/8>,
>>>> Successful GH Action
>>>> <https://github.com/support-and-care/maven-mapping/actions/runs/127341506
>>>> 20
>>>> 
>>>>> ): Drop parent.relativePath.
>>>> 
>>>> Upgrade to Parent version 43.
>>>> Apply Spotless to the codebase.
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Gerd Aschemann --- Veröffentlichen heißt Verändern (Carmen Thomas)
>>>> +49/173/3264070 -- g...@aschemann.net -- http://www.aschemann.net
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: dev-h...@maven.apache.org
>> 
>> --
>> Gerd Aschemann --- Veröffentlichen heißt Verändern (Carmen Thomas)
>> +49/173/3264070 -- g...@aschemann.net -- http://www.aschemann.net
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 

--
Gerd Aschemann --- Veröffentlichen heißt Verändern (Carmen Thomas)
+49/173/3264070 -- g...@aschemann.net -- http://www.aschemann.net

Reply via email to