Skip to content

POM descriptions for every published module; the release rehearsal in docs/14 - #157

Merged
rleibman merged 2 commits into
fix-apple-headerfrom
pom-descriptions
Nov 9, 2026
Merged

rleibman merged 2 commits into
fix-apple-headerfrom
pom-descriptions

Conversation

@rleibman

@rleibman rleibman commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Stacked on #156. Rebase onto main once that merges.

Change

  • build.sbt: each of the 50 published modules sets description next to its name. The POM's <description> is what Central's and Maven's search pages show, and until now it was just the module name repeated.
  • docs/14-releasing.md §14.5: a section recording what the 2026-11-09 practice release settled.

The practice release (nothing published)

  • A clean clone, tagged v0.2.0 locally, staged 62 modules with publishSigned; platforms/publishSigned: jar, sources, javadoc and POM, each signed, 56 MB.
  • Every POM has name, description, url, licenses, developers and scm. No snapshot dependencies, and all 33 external dependencies resolve on repo1.maven.org.
  • sonaUpload reached VALIDATED (deployment 86b6f4e7). It was then dropped in the Portal. The local tag and clone are deleted.

What it settled (now in docs/14)

  • The account: net.leibman is owned by an older Sonatype login. A "namespace exists" error means you're in the wrong account.
  • Credentials: sbt 2 reads them from the environment variables, and its global folder is ~/.config/sbt/2/. It does not read ~/.sbt/1.0/.
  • Release from the Mac only. On Linux, the five Apple modules with no Swift (clipboard-apple, haptics-apple, secrets-apple, share-apple, storage-apple) are staged anyway. A Linux upload plus a Mac upload of the same version would collide on those five.
  • Rehearse with sonaUpload, then Drop.

Measured

Not checked

  • I wrote the descriptions from the module READMEs, docs/14 §14.3 and spot checks of the sources. They're worth a read for wording.

🤖 Generated with Claude Code

… docs/14

Each of the 50 published modules now sets `description` next to its `name`, so
the POM's <description> (what Central's and Maven's search pages show) says what
the module is instead of repeating its name.

docs/14 §14.5 records what the practice release run on 2026-11-09 settled: a clean
clone tagged v0.2.0 locally staged 62 modules (jar, sources, javadoc, POM, all
signed, 56 MB), all 33 external dependencies resolve on Central, and sonaUpload
reached VALIDATED (deployment 86b6f4e7, then dropped; nothing published). Also:
which account owns net.leibman, where sbt 2 reads credentials, why the release
must come from one machine (the Mac), and rehearse-then-Drop.

Measured: `show coreJVM/description` etc. print the new descriptions;
`sbt --error checkLinux` on this branch (stacked on the thicket_apple.h fix):
exit 0, 356 tests passed, 0 failed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🟡 Changes recommended

A misleading and ambiguous bullet in docs/14-releasing.md about which Apple modules are skipped (and why) remains, with a specific nit noted to clarify the gating by macOS/Xcode and the Linux vs macOS release context.

1 open issue
What changed in this PR

This pull request improves published artifact metadata by adding meaningful per-module description values in build.sbt (so generated POM <description> text is useful on Maven Central), and updates the release guide with learnings from the 2026-11-09 practice release rehearsal.

Changes:

  • Add description := ... alongside name := ... for each published module in build.sbt to improve Maven Central/POM metadata.
  • Extend docs/14-releasing.md (§14.5) to document what the practice release validated/settled (accounts, credentials, single-machine release guidance, and sonaUpload then Drop).
File Summary Review Notes
docs/​14-releasing.md Adds a practice-release section capturing outcomes and clarifying release procedure guidance. Nits: clarify ambiguous “Off a Mac” wording; tighten/clarify the description of which Apple modules are gated by macOS/Xcode vs Linux to avoid misleading implications.
build.sbt Adds per-module description settings so published POMs have informative descriptions on Maven Central. Nits: adjust article usage for “sttp” (“a sttp…”, not “an sttp…”) in the affected module descriptions.

This pull request is ready to be approved.

Review effort: Balanced

Comment thread docs/14-releasing.md Resolved
Clarified release process for Mac and non-Mac hosts, detailing module staging and potential upload collisions.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@rleibman
rleibman merged commit 4a903ab into fix-apple-header Nov 9, 2026
1 of 2 checks passed
rleibman added a commit that referenced this pull request Nov 9, 2026
* Regenerate thicket_apple.h: a merge left it broken, and main's CI red

Merging #152 and #151 left the kind-table comment in the generated Apple header
closed early (`*/` after the Stepper row) with a duplicate `25 Tab` row outside
it, as bare text before `sui_create`. That is not C, and shimGen's consistency
suite has failed on main since 9f2a3bd: 45 passed, 6 failed (Linux and Apple CI
both red on the #151 push). `shimGen/run` regenerates it; this is its output,
and the only file it changes.

Also the two-line comment in AppleRenderer that the same merge left mis-indented,
which `scalafmtAll` reflows.

Measured: `sbt --error checkLinux` exit 0, 356 tests passed, 0 failed (on main,
shimGen alone: 6 failed). Not verified here: the Swift build of the shim, which
needs the Mac.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* POM descriptions for every published module; the release rehearsal in docs/14 (#157)

* POM descriptions for every published module; the release rehearsal in docs/14

Each of the 50 published modules now sets `description` next to its `name`, so
the POM's <description> (what Central's and Maven's search pages show) says what
the module is instead of repeating its name.

docs/14 §14.5 records what the practice release run on 2026-11-09 settled: a clean
clone tagged v0.2.0 locally staged 62 modules (jar, sources, javadoc, POM, all
signed, 56 MB), all 33 external dependencies resolve on Central, and sonaUpload
reached VALIDATED (deployment 86b6f4e7, then dropped; nothing published). Also:
which account owns net.leibman, where sbt 2 reads credentials, why the release
must come from one machine (the Mac), and rehearse-then-Drop.

Measured: `show coreJVM/description` etc. print the new descriptions;
`sbt --error checkLinux` on this branch (stacked on the thicket_apple.h fix):
exit 0, 356 tests passed, 0 failed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Update release instructions for Mac and Linux

Clarified release process for Mac and non-Mac hosts, detailing module staging and potential upload collisions.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Change Platform shim kind to match WidgetKind

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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