Skip to content

Fix skin cannot be null by declaring the fluido skin in site.xml - #310

Merged
ascheman merged 1 commit into
apache:masterfrom
aschemaven:bugfix/site-skin-not-null
Jul 21, 2026
Merged

Fix skin cannot be null by declaring the fluido skin in site.xml#310
ascheman merged 1 commit into
apache:masterfrom
aschemaven:bugfix/site-skin-not-null

Conversation

@ascheman

Copy link
Copy Markdown

Problem

The master Verify build has been red since late June: every run fails at the site step with

Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.22.0:site (default-site):
skin cannot be null

The site 2.0.0 descriptor (SITE/2.0.0) no longer supplies a default skin, so maven-site-plugin 3.22.0 requires an explicit <skin> element, and src/site/site.xml doesn't declare one. (The parent's skin is declared only in maven-parent's own site.xml; it is not published as an inheritable site-descriptor artifact — -X shows No parent level 1/2/3 site descriptor — so it never reaches this project.)

This single failure blocks the whole repo: since master is red, every open PR inherits a red CI and nothing can be merged.

Fix

Declare maven-fluido-skin explicitly in site.xml — five lines, no source or dependency changes.

Why this is the minimal change

The -P run-its verify build itself (including the reproducible IT that deploys via file://) is already green on 4.0.0-beta-3 — the site skin is the only thing failing. I verified the skin-only change on a fork: the full Verify matrix passes 8/8 (ubuntu/macos/windows x JDK 17/21/25) against 4.0.0-beta-3https://github.com/aschemaven/maven-source-plugin/actions/runs/29831325551.

This is intentionally the minimal subset needed to unblock CI. It overlaps with the site-skin part of #309, but without that PR's IT-plumbing/transport changes, which aren't needed to make the build green on beta-3.

Testing

mvn clean site and the full -P run-its verify matrix pass on 4.0.0-beta-3 (fork run linked above).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR unblocks the repository CI by fixing Maven Site generation failures caused by the SITE/2.0.0 descriptor no longer providing a default skin, which makes maven-site-plugin:3.22.0 require an explicit <skin> in src/site/site.xml.

Changes:

  • Declare org.apache.maven.skins:maven-fluido-skin:2.1.0 explicitly in the project site descriptor (src/site/site.xml).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ascheman

Copy link
Copy Markdown
Author

For the record: the underlying cause — that a missing <skin> in a site 2.0.0 descriptor produces a cryptic NullPointerException: skin cannot be null rather than an actionable error — is now filed upstream as apache/maven-site-plugin#1286 (asking for a clear message, or a restored default). This PR is the local fix (declare the skin explicitly).

@slawekjaranowski slawekjaranowski left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be as workaround, please add a comment that should be check with next Maven version

We have it in parent site descriptor ... but here parent is not resolved

It was fixed in Maven core ... I don't remember exactly which issue ...

…ound)

The site 2.0.0 descriptor no longer defaults a skin, so maven-site-plugin
3.22.0 fails the site build with 'skin cannot be null', which currently
blocks the whole repo's CI.

This is really a Maven 4.0.0-beta-3 core issue: beta-3 doesn't resolve the
parent site descriptor, so the skin declared in the Maven parent isn't
inherited. Parent resolution works again on 4.0.0-rc-5+, where this <skin>
becomes redundant. Declare it explicitly to unblock CI on beta-3; a comment
in site.xml documents that it should be dropped once the build moves off
beta-3.

Addresses review feedback from @slawekjaranowski. See apache/maven-site-plugin#1286.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ascheman
ascheman force-pushed the bugfix/site-skin-not-null branch from e59a30c to ce2634b Compare July 21, 2026 14:51
@ascheman

Copy link
Copy Markdown
Author

Thanks @slawekjaranowski! Verified your point: on 4.0.0-rc-5 / 4.0.x-SNAPSHOT / 4.1.0-SNAPSHOT the parent site descriptor is resolved and the parent's skin is inherited — mvn site is green with no local <skin>. It only fails on 4.0.0-beta-3 (which this plugin still builds against), where the parent descriptor isn't resolved (-X: No parent level N site descriptor).

I've added a comment in site.xml marking this as a beta-3 workaround, to be dropped once the build moves to a newer Maven (the #268 / RC-6 track). I couldn't pin the exact core fix issue — if you recall it, happy to reference it.

@ascheman
ascheman merged commit dfbd925 into apache:master Jul 21, 2026
8 checks passed
@github-actions

Copy link
Copy Markdown

@ascheman Please assign appropriate label to PR according to the type of change.

@github-actions github-actions Bot added this to the 4.0.0 milestone Jul 21, 2026
@slawekjaranowski

Copy link
Copy Markdown
Member

Probably it was:

@ascheman ascheman added the bug Something isn't working label Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants