Skip to content

fix(build): rename source dirs to match package declarations#3

Merged
swcurran merged 3 commits into
mainfrom
fix/javadoc-package-rename
May 27, 2026
Merged

fix(build): rename source dirs to match package declarations#3
swcurran merged 3 commits into
mainfrom
fix/javadoc-package-rename

Conversation

@IVIR3zaM

Copy link
Copy Markdown
Collaborator

Javadoc generation failed during the release build with:

javadoc: error - Illegal package name:
"io.github.decentralized-identity.didwebvh.core"

The namespace migration (1505276) renamed the source directories to io/github/decentralized-identity/... but left the package statements as io.github.decentralizedidentity.didwebvh.* (matching the Maven groupId). Hyphens are not legal in Java package identifiers, so javac tolerated the mismatch but the javadoc tool — which infers packages from the directory tree — rejected it and aborted the release profile build before publishing to Maven Central.

Rename the six affected directories (main + test for core, signing-local, and wizard) so the on-disk layout matches the package declarations. No source code changes; verified locally with ./mvnw -P release -DskipTests -Dgpg.skip clean install — all four modules now build, including the javadoc jars.

IVIR3zaM added 3 commits May 27, 2026 10:33
Javadoc generation failed during the release build with:

  javadoc: error - Illegal package name:
  "io.github.decentralized-identity.didwebvh.core"

The namespace migration (1505276) renamed the source directories to
`io/github/decentralized-identity/...` but left the `package` statements
as `io.github.decentralizedidentity.didwebvh.*` (matching the Maven
groupId). Hyphens are not legal in Java package identifiers, so
javac tolerated the mismatch but the javadoc tool — which infers
packages from the directory tree — rejected it and aborted the
`release` profile build before publishing to Maven Central.

Rename the six affected directories (main + test for core,
signing-local, and wizard) so the on-disk layout matches the
package declarations. No source code changes; verified locally with
`./mvnw -P release -DskipTests -Dgpg.skip clean install` — all four
modules now build, including the javadoc jars.
Central Portal maps io.github.<X> to github.com/<X> for namespace
verification. The repo lives under github.com/decentralized-identity,
so the claimable namespace is io.github.decentralized-identity — not
io.github.decentralizedidentity (a separate GitHub org we don't own).

Maven groupIds may contain hyphens; Java package names may not. Source
packages remain io.github.decentralizedidentity.didwebvh.* (valid Java
identifiers) while the published Maven coordinates become:

  io.github.decentralized-identity:didwebvh-core
  io.github.decentralized-identity:didwebvh-signing-local
  io.github.decentralized-identity:didwebvh-wizard
Central Portal's User Token surfaces as a cleartext (namecode, password)
pair that Maven feeds to <username>/<password> in settings.xml. Maven
then base64-encodes user:pass itself for the HTTP Basic Auth header.

If a maintainer pre-encodes the secret as base64(user:pass) (a common
mistake, since some Sonatype docs show that form for bearer-style API
calls), Maven double-encodes it and the Portal returns 401. The release
job now decodes that shape automatically and logs which form it saw:

  OSSRH_TOKEN shape detected: raw cleartext password
  OSSRH_TOKEN shape detected: base64(user:pass) — decoded for Maven

Detection is conservative: only triggers when OSSRH_TOKEN is valid
base64 of all-printable ASCII containing a single ":" with non-empty
halves. A genuine cleartext password is extremely unlikely to satisfy
all three conditions.

Decoded values are masked with ::add-mask:: so they don't leak in logs.
@swcurran swcurran merged commit 054f970 into main May 27, 2026
4 of 5 checks passed
@IVIR3zaM IVIR3zaM deleted the fix/javadoc-package-rename branch May 29, 2026 09:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants