Skip to content

Rewrite README with usage, status and version guidance - #332

Merged
slachiewicz merged 2 commits into
masterfrom
docs/readme
Aug 8, 2026
Merged

Rewrite README with usage, status and version guidance#332
slachiewicz merged 2 commits into
masterfrom
docs/readme

Conversation

@slachiewicz

Copy link
Copy Markdown
Member

Part of codehaus-plexus/.github#58. Same skeleton as the approved pilots (codehaus-plexus/plexus-archiver#438, codehaus-plexus/plexus-i18n#37).

This is the repo where the version guidance section earns its keep, so it's worth more than a mechanical pass.

The upgrade story wasn't written down

The old README said the XML classes had moved to plexus-xml — but not what to do about it. In practice the first thing someone hits upgrading 3 → 4 is NoClassDefFoundError on Xpp3Dom, and nothing told them the fix. The README now gives the exact dependency to add, and, more importantly, how to choose:

  • plexus-xml 3.x — straight extraction, same classes and packages, works under Maven 3
  • plexus-xml 4.x — rebuilt on Maven 4's maven-xml-api, needs Java 17, Maven 4 only

Picking the wrong one of those is a bad afternoon, and we documented it nowhere.

It also records that 3.x is still an active release line (3.6.1 shipped from the plexus-utils-3.x branch), which wasn't stated anywhere. Someone looking only at master would reasonably conclude 3.x was dead.

Status section

Says plainly that this is conservatively maintained, that it's on the classpath of nearly every Maven build, and that for new code the JDK equivalent is usually the better choice where one exists. That last point is honest rather than promotional, but it's what I'd tell someone who asked.

Corrections I made while writing this

Worth flagging, since I nearly shipped both:

  1. I first wrote that 3.x requires Java 7. It doesn't — the plexus-utils-3.x branch inherits parent POM 25, so javaVersion is 8, same as 4.x. The two lines don't differ by Java baseline at all, so I dropped that column rather than have the table imply they do.
  2. I first wrote plexus-xml 3.0.1 in the snippet. Central's latest 3.x is 3.0.2 (3.0.3 is tagged on GitHub but not synced). Checked against maven-metadata.xml rather than the Central search index, which is stale — it was reporting plexus-archiver 4.10.0 while 4.12.0 was published.

Removed

The "The current master is now at https://github.com/codehaus-plexus/plexus-utils" line — shown to a reader already on that page — and the site-publishing recipe, which contradicted this repo's own POM. The POM binds scm-publish to site-deploy and comments "mono-module doesn't require site:stage", while the README told you to run site site:stage scm-publish:publish-scm. That procedure now lives once in RELEASING.md (codehaus-plexus/.github#60).

Adds what the library is, the two current release lines, a dependency
snippet, the Java baseline and documentation links.

The substantial addition is upgrade guidance for 3.x to 4.x. The XML
classes moved to plexus-xml in 4, and the first sign most people get is
NoClassDefFoundError on Xpp3Dom. The README mentioned the split but did
not say what to add to fix it, or how to choose between plexus-xml 3
and 4 - the latter needs Java 17 and only works under Maven 4.

Also notes that 3.x is still released, from the plexus-utils-3.x
branch, which was not documented anywhere.

Part of codehaus-plexus/.github#58
CI runs spotless:check and the Markdown table was not in the format
flexmark produces.
@slachiewicz slachiewicz added the maintenance Cleanup, refactoring, internal change label Aug 8, 2026
@slachiewicz
slachiewicz merged commit 9eb5fc6 into master Aug 8, 2026
14 checks passed
@slachiewicz
slachiewicz deleted the docs/readme branch August 8, 2026 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Cleanup, refactoring, internal change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant