hboutemy/todo
My Maven TODO list
- shading discussion
- MSHARED-1466 target/release JDK in MANIFEST
- PR 573 site drop of most apt
- bytebuddy JDK 1.8.0_362 vs previous
felix maven-bundle-plugin 5.1.9 including FELIX-6602moditect waiting for 1.0.0 releaseupgrade moditect to 1.0.0.Final in Jackson OSS parentmoditect issue 199 modified timepure RBassembly umask 022plexus-utils + plexus-xml codehaus-plexus/plexus-utils#236- MNG-7991 fix aggregator CLI limmitation: current workarounds = atEnd strategy, profile with
defaultGoal, target TBD- MNG-8337 n+1/n
- at end phase https://maven.apache.org/ref/3.9.1/maven-core/apidocs/org/apache/maven/lifecycle/LifecycleExecutor.html
MAVEN_OPTS="-Dorg.slf4j.simpleLogger.showLogName=true" mvn clean verify
past
Core 3.5.x
details
jansi 1.7.1 releaseMNG-6411 readability of available modulesMNG-6410 multiple modules with same artifactId
Core 3.6
3.6.0
MNG-5951 add an option to avoid path addition to inherited URLs- more flexible idea would be to have multiple strategies with a Plexus role and multiple hints:
by default, appends artifactId (or project.directory) like currently, another would not add anything (hint id to be found),
another hint could work with git specific url rules. Interface =String getInheritedUrl( String parentUrl, MavenProject parent, MavenProject child )
issue: this would create a dependency on Plexus container/Sisu
- more flexible idea would be to have multiple strategies with a Plexus role and multiple hints:
MNG-4508 No way to avoid adding artifactId to site urls
3.6.1
MNG-6059 Important use cases not covered, as child.inherit.append.path affects all childrenMNG-6505 inheritance- OSSRH & others Nexus staging controls for new attributes from MNG-6059
- MVNCENTRAL-4841 update central sync requirements
NEXUS-19912 Nexus Repo Pro update for POM format
MNG-6538 MRESOLVER-64 Maven 3.6.0 regression in IntelliJIDEA-201282 caused by MRESOLVER-36merge Mickael Istria's MNG-6529 PR 193 for Eclipse m2e performancemerge Mickael Istria's MNG-6533 PR 197 for Eclipse m2e performancereview Mickael Istria's MNG-6530 PR 194 for Model cacherevert MNG-6548MNG-6571 memory consumptionMNG-6572 int or long instead of BigIntegerMNG-6374 infinite loop for invalid XML contentinput location tracking improvement: MNG-6597 MNG-6599 MNG-6600 MNG-6601
3.6.2
MNG-6636 NPE on reporting convertion (DefaultReportingConverter) when inheritance of with no reportsMNG-6668 Modello PR#31 Make location handling more memory efficientMNG-6629 PR Make ID validation fasterMNG-6630 PR Make ComparableVersion fasterMNG-6631 PR Make DefaultArtifactVersion fasterMNG-6632 PR Remember artifact handlers after they've been used onceMNG-6633 PR Reduce memory usage of excludesMNG-6638 PR Prevent reparsing POMs in MavenMetadataSourceMNG-6681 dependency type documentationMNG-6549 Remove unused transitive dependencies of Guava
3.8.0
MNG-7118 Block HTTP repositories by default
3.9
MNG-7438 add execution id to "Configuring mojo xxx with basic configurator" debug messageMNG-7353 add support for "mvn plugin:version:goal"MNG-7501 display relative path to pom.xml
3.9.1
MNG-5185 Improve "missing dependency" error message when _maven.repositories/_remote.repositories contains other repository ids than requested: if artifact not found, display which repositories were searched, with info on where the repository was defined (settings, pom) and how settings' mirrorOf affected the result)
3.9.5
MNG-7875 Downloading/downloaded messages: darker ANSI display- MNG-8300 broken in 4.0.0-alpha-11 to 4.0.0-beta-4
- MPH-183 / MNG-7344 Effective-pom + verbose should show import path to BOM dependencyManagement import
- MNG-7001 more...
3.9.10
- MNG-8712 POM dependency version is a requirement
Core 4
4.0.0-alpha-2
MNG-6562 WARN if plugins injected by default lifecycle bindings don't have their version locked in pom.xml or parentMNG-6656 Build vs Consumer POMMNG-5222 warn when using deprecated plugin parameter
-
MNG-4645 define central in settings.xml -
MNG-6772 dependencyManagement import and repositories defined in pom.xml
-
MNG-6795 define a replacement for ReasonPhrase to display details about transfert failures
- MRESOLVER-600 maven-resolver PR 576
-
MNG-6763 Restrict repositories to specific groupIds: see https://github.com/cstamas/rrf-demo
-
MNG-5588 provide easy way to define default plugins versions (after MNG-6562): pluginManagement import like dependencyManagement
-
MNG-6682 source-release dependency type
-
MNG-5697 remove LifecycleMapping (/) and ArtifactHandler (x) from maven-core: move to target packaging plugin
-
MNG-8283 Tamasz's CLI ng
Core future
- relocation (poi:poi becomes officially org.apache.poi:poi)
vs unofficial release (someone publishes a release in my.personal.group:poi, independently from original project and with same java package names)
vs fork with classes conflict (a wanted fork but keeping same package names for compatibility)
vs fork with package names rework (to avoid any conflict) - MNG-5814 check signature of plugins against trusted list
- ascii progress bar, probably using ansi escape codes
- check artifact magic numbers, at least for zips, to detect download failures without downloading sha1 files (see test case)
- MNG-5689 define strict checksum per repository
- MNG-6679/MRESOLVER-90 HTML content in POM: Maven should validate content before storing in local repo
- provide CLI test demo program to do artifact resolution then easily debug in an IDE
- provide CLI test demo program to launch a Maven build then easily debug in an IDE
- import mvnsh
mvnd daemon and multi-threaded displayMNG-7129 Deutsche Bank incremental build and cache- MVNCENTRAL-1365 Olaf ApacheCon BigData Sevilla 2016 talk slides and ApacheCon Berlin 2018 IoT update
Reproducible/Verifiable Builds
done
MRELEASE-1029 maven-release-plugin update outputTimestampPR 522 versions-maven-plugin/issues/453 add an option to update Reproducible Build project.build.outputTimestamp while updating versionASF 22 parent POM release, with RB activatedASF 23 parent POM release, with RB fixMaven parent POM 34, with RB activated- Artifact plugin
ability to generate buildinfo fileability to check local build output against reference buildability to detect JDK+OS from reference build, display (from reference buildinfo or manifest) and add to generated minimal buildinfo when no reference availableMARTIFACT-20 refactor to add separate check mojo in addition to check during buildinfoadd explanations on how to test locally reproducibility (deploy reference to local dir)save comparison result of local build vs reference artifactdetect that a Maven module is not installed or deployed, then should not be part of buildinfomove code from studies buildinfo:buildinfo to maven-artifact-plugin:buildinfoartifact:check-buildplan detect used plugins/goals and display if known non-reproducible- add a goal to report on dependencies reproducibility (against a trusted list...)
- effective reproducibility tracking:
track Maven Central for (effective) pom with reproducible timestamptrack Maven Central for projects built with Maven, that could be enhanced to have reproducible buildtest reproducibility of these, manually or with containersGit repo to track and share rebuild recipes:reproducible-centralstatistics on reproduced builds in reproducible-central- buildpsec for GuicedEE (daily) releases
statistics on Maven-owned projects reproducibilityreproducible-maven-HEAD- statistics on Plexus-owned projects reproducibility reproducible-plexus-HEAD
- statistics on MojoHaus-owned projects reproducibility reproducible-mojohaus-HEAD
- dist-tool-plugin report on reproducibility for Maven projects
- (DREAM) provide a GitHub badge showing that a project has Reproducible Build with link to reproducible central proof
add Maven to RB's "who is involved"- provide PRs to make projects builds reproducible:
AWS java SDK PR #2223to be mergedAWS SDK for Java v2 PR #1759to be mergedLogback PR#484to be mergedArthas PR#1128CycloneDX core java PR #63CycloneDX Maven Plugin PR #78XStream PR#256Package URL Java PR #23- Quarkus
Jackson *: oss-parent PR #31, jackson-parent, jackson-bom- Jenkins
- Jakarta EE APIs and RIs
ee4j parent PR #71to be mergedServlet API PR #384to be mergedJakartaEE API PR #96to be mergedstarter PR #143to be merged
- Drools
- Vaadin
- Apache CXF
- Apache Directory
Apache Dubbo- Apache Felix
- https://github.com/apache/felix-dev/blob/master/configurator/pom.xml
Maven Bundle Plugin PR #116- https://github.com/apache/felix-dev/blob/master/webconsole/pom.xml
- https://github.com/apache/felix-dev/blob/master/http/parent/pom.xml
- https://github.com/apache/felix-dev/blob/master/inventory/pom.xml
- https://github.com/apache/felix-dev/blob/master/configadmin-plugins/interpolation/pom.xml
Apache WSS4J https://github.com/apache/ws-wss4jApache Johnzon PR 96- Apache OpenWebBeans
- Apache ServiceMix
- org.apache.hbase
- org.apache.qpid
- Apache Pulsar PR 18376 need Nifi-nar-maven-plugin de.ntcomputer:executable-packer-maven-plugin
- Apache Pinot PR 9750
- Hibernate
- JBPM
- Neo4j
OWASP Dependency CheckWebjarsWSO2 Carbon PR #50to be merged- XWiki
- Airbus Cybersecurity Graylog plugins
Guiced EE PR#3- Liferay
Cucumber PR 2641- Vertx PR 4537
- Vertx SQL Client PR 1256
- Google Cloud Java client libraries
Micronaut Maven plugin PR#11merged for 1.0.0.RC4Swagger PR #3841to be merged- Eclipse RDF4J
- Societe Generale ci-droid*
com.vladsch.flexmark:flexmark PR#507to be mergedorg.jline3 PR #628to be mergedJFlex PR#765to be mergedFabric8 Kubernetes Client PR#2604hazendaz/base-parent PR#332spotbug-maven-plugin PR 491- git-commit-id-maven-plugin
- PR 599
- disable non-reproducible entries when Reproducible Builds is activated
- antlr3 PR 210
antlr4 PR 3809merged in branch dev for 4.11.2
- fix plugins issues to produce reproducible output:
maven-remote-resources-plugin 1.7.0 with MRRESOURCES-114MSHADE-352 fix m-shade-p when using transorfmerspringboot-maven-plugin:repackage PR#20176- JFlex Maven Plugin generates .java files containing current timestamp
org.jboss.jandex:jandex-maven-plugin PR#26.idx, merged in 1.1.1Felix Maven Bundle Plugin PR #115ServiceMix SM-5021- XBean Spring
- Checkstyle
- Provisio mvnd 0.8.1 release show that output is not reproducible
- Moditect Maven Plugin jackson release
- antlr3 timestamp + order PR 213
- antlr4
- check if plugins are able to produce reproducible output:
- Quarkus
- Jenkins hpi plugin
- provide process/tooling to check dependencies (projects dependencies, but also build dependencies, ie parent+plugins+their deps)
- interesting cases in the wild:
- https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/com/flowlogix/flowlogix-7.0.2.diffoscope
- OS details https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/dubbo/dubbo-parent-3.1.9.diffoscope
- non-reference dependencies detected by CycloneDX https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/maven/parent/maven-parent-40.diffoscope
- JDK patch version in module-info.class https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/io/smallrye/jandex/jandex-parent-3.1.2.diffoscope
- release build polluted by Eclipse m2e output https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/spdx/spdx-maven-plugin/README.md
- 1 non-reproducible tests.jar https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/jspwiki/README.md
- specific way to build from git checkout https://github.com/jvm-repo-rebuild/reproducible-central/tree/master/content/io/jstach/jstachio/README.md
- require timezone specification
- semantically reproducible
CycloneDX SBOM
- ActiveMQ
- Apache Directory Server
- Camel
- JSPWiki
- Hadoop
- Accumulo
Doxia/site/pdf
- DOXIA-569 Markdown Sink
MPDF-8 pdf multi-modules, merge m-pdf-p PR1- MPDF-89 missing "Project Information" and "Project Reports" pages
- MPDF-10 Support menu sub-items in table of contents
DOXIA-570 links escape- m-site-p classloader provide Doxia
Doxia Book Git repo from renderer and maven-plugin- DOXIASITETOOLS-174 rename site.xml's "project" root tag
- add live reload to site when run with
mvn site:run DOXIA-575 Add support for (X)HTML5MSITE-836 show report plugin when it fails with RuntimeException- MSHARED-650 Fire ExecutionEvent from DefaultMavenReportExecutor
DOXIA-614 source reference in Doxia Parser- MSCMPUB-48 confusing message when content == checkout
Misc
- MJAR-62 Created-By MANIFEST.MF value contains Maven runtime JDK, not build JDK (for example when toolchain used)
- dist-tool create report on maven-shared-utils vs plexus-utils usage
- dist-tool create report on plexus-container-default/components.xml vs JSR 330/Sisu
- MPLUGIN-400 document previous system requirements
- MNGSITE-471 Repository metadata mirror list outdated
- MVNCENTRAL-7190 metadata
maven-remote-resources-plugin release version 1.6.0MPIR-373 warnings in 3.0.0MPIR-375 add plugin excludes feature for plugin-management reportMPLUGIN-339 maven-plugin-tools-javadoc broken by com.sun.tools.doclets removal in Java 10- MPLUGIN-308 plugin-tools complex types
- maven-release-plugin conf phases
- Classworlds
doc+ dump + graph - doc new packaging in Plugin Developers Centre
- tutorial new default lifecycle phases
- extension demo
- extensions list like plugins
- MASFRES-20 resource bundles to Git as single multi-module build and removal of parent POM from Maven parent POMs
INFRA-16467 move components out of CMS space- Vestige
- replace plexus-default-container with sisu in tests and anywhere else
MPH-160 help:effective-pom with source location displayhelp:build-planMojoHaus buildplan-maven-pluginrebuild GCEMARCHETYPES-63 archetypes should work with Java 11- Package url refinements: type vs extension, meaning of no type nor classifier
MDEP-653 add info message to purge-local-repository goal- MDEP-644 Re-Add Dependency Tree Verbose
archive old Maven Git repositories- contribute Maven Plugin to Uno-Jar
add repository format intro to repositories documentationlayoutMWAR-433 war oudated feature deletes generated content- profile builds:
Conf
2018
12/6/2018 Paris JUG20/9/2018 Bordeaux JUG25/9/2018 Orleans JUG13/11/2018 Devoxx Belgium BOF15/11/2018 Lyon JUG5-6/12/2018 Paris Open Source Summit11/12/2018 Reproducible Builds Summit 2018 in Paris
2019
2-3/2/2019 FOSDEM15/6/2019 Hack Commit Push contributions expected:- site content fixes and improvement
- README.md améliorations et généralisation
- low hanging fruits: see up-for-grabs issues
- Jansi (console color) performance measure and improvement (particularly on Windows)
- Reproducible Builds: archive entries timestamp configuration
- depending on contributor knowledge or interest (web design <== WANTED!!!, performance, some specific plugins), oriented contribution
- looking for help on scripting Google Storage work...
15/6/2019 Hack Commit Push actual contributions:MSKINS-107 up-for-grabs generator meta tag, done by Antoine- DOXIATOOLS-59 up-for-grabs linkcheck issue, wip by Chris
- MNGSITE-353 up-for-grabs Document maven.repo.local system property, wip by Elmehdi
- how to get full Maven sources on Windows, given Google Repo does not work here? wip by Joseph
- MSKINS-97 upgrade Fluido Skins Bootstrap version from 2.3 to 4, wip by Vasile
- check of pgp signatures for plugins, wip by Andrei and Charles
Reproducible Builds force archive entries timestamp in plexus-archiver: explain/review/improve PR #113 in light of pre-existing PR #49, wip by Arnaud- Jansi improvements explanations/review (see PR 146 to 153), wip by Arnaud
22-24/10/2019 ApacheCon Europe 2019
2020
- 25/2/2020 Hackergarten
- 31/03/2020 Hackergarten
- 14/4/2020 Hackergarten
MKSINS-167 add anchors to headers (Bakary Djiba)
11-15/3/2020 JChateau27/6/2020 Hack Commit Push
- 11/2021 Open Source Experience
- 30/3/2021 comité programme
- 29/5/2021 Hack Commit Push 2021
- 2021 Hackergarten
projects.apache.org
- index.html fast display (no need for every .json)
- INFRA-16355 Git mirror
Other
scope of dependencies: Maven (scope), Gradle (configuration), NPM (development), Composer (isDevRequirement), Poetry (group) and Pipenv (category)
n the SBOM via property (because every ecosystem has an own name, own well-known values, ...)
- Attic