slachiewicz opened a new issue, #1057: URL: https://github.com/apache/maven-archetype/issues/1057
Plan to bring maven-archetype, the standard archetypes in apache/maven-archetypes, and their documentation up to the current estate baseline: Maven 3.9.0 minimum, JUnit 5, faster ITs, and docs that match the code. Each item lands as its own PR linked here. ## Baseline (master at 277afc1) The following baseline is already in place: - maven-parent 50, `mavenVersion` 3.9.16 and `resolverVersion` 1.9.27 are current. CI uses the shared workflow with Maven 4 enabled. - `archetype:generate` (quickstart 1.5) and `archetype:create-from-project` work on Maven 3.9.16 and 4.0.0-rc-7. - All unit tests are on JUnit 5; there is no Hamcrest, Wagon, maven-compat, artifact-transfer or dependency-tree in main code. - CI: 17 jobs, about 80 job-minutes per push, longest job about 8.5 minutes (last six master push runs). - The 33 plugin ITs run serially. Each create-from-project IT runs a nested `package` build of the archetype it creates. ## Tests and build - [ ] archetype-common tests: update incidental fixture versions, remove fixtures nothing reads, share the repository session setup, use `assertThrows` and `@TempDir`. Test counts per class unchanged (30). - [ ] Plugin ITs: run them in parallel (`invoker.parallelThreads` 0.75C) with cheaper forked JVMs; drop the incidental `maven-compiler-plugin` 3.7.0 pins; move `verify-script-beanshell-rejected` to a unit test; give `create-2` and `ARCHETYPE-531_ear-modules` real verify scripts; turn the remaining scripts into plain assertions. Local IT time 13:44 → 7:26 on 2 vCPUs. - [ ] Require Maven 3.9.0 (`<prerequisites>` is 3.6.3). - [ ] Dependabot: ignore `>= 3.10.0` for the Maven core artifacts the plugin uses. - [ ] CI matrix: every JDK on Linux, newest on macOS, oldest and newest on Windows. - [ ] Move the fileset logic ITs (`exclude-patterns*`, `include-*-no-extension`, `create-1`…`create-6`) to `FilesetArchetypeCreator` unit tests in archetype-common. - [ ] Measure lowering `archetype.postPhase` in the create-from-project ITs; it removes the nested build but tests less. - [ ] AGENTS.md: how to run one IT, the fixture pipeline in archetype-common (antrun copies `src/test/archetypes` into a repository layout at `process-test-resources`), and the network-dependent `InternalCatalogArchetypesVerificationTest`. ## Code - [ ] Accept `archetype.filteredExtensions`: `CreateArchetypeFromProjectMojo` reads `archetype.filteredExtentions`, while its own Javadoc and the site document the correct spelling, so the documented property does nothing. Keep the old spelling working. - [ ] Clear the 50 compiler deprecation warnings (36 are commons-lang3 `StringUtils.replace`). - [ ] Replace commons-io, commons-collections4 and commons-lang3 with the JDK; jdom2 is #277. - [ ] Retire `archetype-samples` (#1024, #1012). - [ ] Decide the Java floor (8 today). Groovy 5 and mrm 2.x updates are held back by it. Open contributor work that this plan should not overtake: #1049, #1055 and #1051 (archetype-common fixes with tests), #984 (preserveCData IT), #218 (Maven 4 prompter), #1023. ## Documentation The site sources on master are already Markdown, but the published site was built from 3.4.1, so most fixes below appear with the next release. - [ ] `specification/generate.md` says the `archetypeCatalog` default is `internal`; the mojo default is `remote,local`. - [ ] `examples/generate-alternative-catalog.md` says no remote catalog is provided; `specification/archetype-catalog.md` describes the Central one. - [ ] Replace the 2011–2013 transcripts (`archetype:create`, plugin 2.2, quickstart 1.1) in `usage`, `generate-batch`, `advanced-usage`, `create-multi-module-project` and `create-with-property-file`. - [ ] `index.md.vm` says four goals and lists three; `archetype-repository.md` has apt-conversion leftovers. - [ ] Add a page on testing an archetype with `archetype:integration-test` (`goal.txt`, `archetype.properties`, reference trees), and a short Maven 4 note. - [ ] maven-site: link `introduction-to-archetypes` to the archetypes list instead of repeating it; refresh `guide-creating-archetypes` (JUnit 4.12 prototype, no integration test). ## Standard archetypes (apache/maven-archetypes) All 11 built archetypes generate projects that build on Maven 3.9.16 and 4.0.0-rc-7. Nothing has been released since 1.5 (2024-08-25). - [ ] Quickstart cannot generate JUnit 6 (apache/maven-archetypes#128, #136). - [ ] Use `maven.compiler.release` in simple, archetype, plugin, webapp (apache/maven-archetypes#120); they use source/target 8, which JDK 21 reports as obsolete. - [ ] site and plugin-site: add `pluginManagement`; Maven 4 warns that the default-binding plugin versions are not locked. site-skin: pin the project-info-reports version. - [ ] webapp: Jakarta EE `web.xml` instead of Servlet 4.0. - [ ] Retire portlet (Portlet 1.0) and j2ee-simple, and remove or finish profiles (apache/maven-archetypes#95), after a dev@ vote. - [ ] Template plugin versions come only from the parent; Dependabot cannot see them. - [ ] Release 1.6. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
