Skip to content

release: bump to v2.1.0 and aggregate javadoc for dtmf-io modules#7

Merged
tino1b2be merged 2 commits into
masterfrom
release/v2.1.0
May 2, 2026
Merged

release: bump to v2.1.0 and aggregate javadoc for dtmf-io modules#7
tino1b2be merged 2 commits into
masterfrom
release/v2.1.0

Conversation

@tino1b2be

Copy link
Copy Markdown
Owner

Release v2.1.0: bump coordinates and ship dtmf-io to Maven consumers

Prep commit for the 2.1.0 release. PR #6 merged the three new modules onto master at 2.0.0 coordinates; this PR bumps them to the release version they actually ship at, aligns the BOM, and fixes a Pages-workflow bug I caught during release prep: aggregateJavadoc was still only aggregating goertzel and dtmf-core so the new modules' API docs would have been silently missing from tino1b2be.github.io/DTMF-Decoder.

What this changes

  • Version bump: root build.gradle.ktsversion = "2.1.0". Inherited via allprojects by all five published modules (goertzel, dtmf-core, dtmf-io, dtmf-io-wav, dtmf-io-mp3) plus the BOM.
  • BOM alignment: dtmf-bom constraints bumped to 2.1.0 for all five shipping libraries. Verified via publishToMavenLocal that dtmf-bom-2.1.0.pom pins every dependency correctly.
  • aggregateJavadoc fix: publishedModuleNames in root build.gradle.kts grows from {goertzel, dtmf-core} to the full set of five. The Pages site now includes dtmf-io/, dtmf-io-wav/, and dtmf-io-mp3/ API docs.
  • README refresh: coordinate table now lists all five shipping modules plus the BOM at 2.1.0; "Status" and "Out of scope" sections updated — file I/O is delivered in this release, with FLAC/OGG/Opus/AAC + production encoding now the out-of-scope items.
  • Per-module header comments: cited coordinates bumped from 2.0.0 to 2.1.0 in all five module build scripts.

What this deliberately does not change

  • .kiro/specs/*/requirements.md and design.md — historical spec documents. The 2.0.0 coordinates written there were the contract at the time those specs were authored. Retrofitting would rewrite history.
  • docs/requirements.md (foundation spec) — same reasoning. Documents v2.0 acceptance criteria.

Verification

Locally before pushing:

  • ./gradlew clean build aggregateJavadoc — BUILD SUCCESSFUL. Fifteen 2.1.0 artifacts produced (five modules × main/sources/javadoc).
  • ./gradlew :dtmf-core:integrationTest :dtmf-io:integrationTest — green.
  • ./gradlew publishToMavenLocal — all six coordinates land under ~/.m2/repository/com/tino1b2be/, BOM pins every dependency at 2.1.0.
  • build/javadoc-site/ aggregates all five modules; footer reads "Currently documenting version 2.1.0".

Release plan after merge

  1. Merge this PR into master.
  2. Annotate v2.1.0 on the merge commit with a release note in the same style as v2.0.0 (the existing annotated tag).
  3. Pages workflow runs on merge to master, deploys updated site.

Refs: PR #6 (dtmf-io modules), tag v2.0.0 (baseline release).

tino1b2be added 2 commits May 2, 2026 23:58
Prepare the 2.1.0 release that first ships the dtmf-io layer to Maven
consumers. The modules themselves merged in #6; this commit bumps the
coordinate every published artifact stamps itself with, pins the BOM
to match, and teaches the Pages workflow about the three new modules.

Version bump (all inherit via root `allprojects`):
- build.gradle.kts: version = "2.1.0"
- goertzel, dtmf-core, dtmf-io, dtmf-io-wav, dtmf-io-mp3 all now
  publish as com.tino1b2be:<name>:2.1.0.

BOM alignment (dtmf-bom/build.gradle.kts):
- All five api() constraints bumped to 2.1.0 so
  com.tino1b2be:dtmf-bom:2.1.0 pins the new artifacts. Verified via
  `./gradlew publishToMavenLocal` that dtmf-bom-2.1.0.pom lists all
  five shipping libraries at 2.1.0.

aggregateJavadoc fix (build.gradle.kts):
- publishedModuleNames grows from 2 entries to 5 so that
  `./gradlew aggregateJavadoc` — the task the GitHub Pages workflow
  runs on every push to master — now copies dtmf-io/, dtmf-io-wav/,
  and dtmf-io-mp3/ javadoc into build/javadoc-site/ alongside the
  existing goertzel/ and dtmf-core/ entries. Without this the Pages
  site would be missing 60% of the public API starting 2.1.0.
- Task-comment block's example layout updated to show all five module
  directories under build/javadoc-site/.

README.md:
- Coordinate table replaces the four-module layout with five
  published modules (goertzel, dtmf-core, dtmf-io, dtmf-io-wav,
  dtmf-io-mp3) plus dtmf-bom, each at 2.1.0.
- Status line updated: 2.1.0, file I/O now delivered, remaining
  out-of-scope items listed.
- Out of scope section trims File I/O (it ships), adds codecs beyond
  WAV/MP3 (FLAC/OGG/Opus/AAC) and production WAV/MP3 encoding as
  future-spec candidates.

Per-module header comments (goertzel, dtmf-core, dtmf-io,
dtmf-io-wav, dtmf-io-mp3 build.gradle.kts): bump the cited 2.0.0
coordinate in the top-of-file comment to 2.1.0 so doc stays
accurate.

Not touched on purpose:
- .kiro/specs/*/requirements.md and design.md — historical spec
  documents, still cite the 2.0.0 coordinate that was the contract
  at the time those specs were authored.
- docs/requirements.md (foundation normative spec) — same reasoning,
  documents the 2.0 acceptance criteria. A future `v2.1` foundation
  spec addendum (if wanted) can supersede.

Verification:
- `./gradlew clean build aggregateJavadoc` — BUILD SUCCESSFUL. All
  five published modules produce 2.1.0 jars (main + sources +
  javadoc = 15 artifacts).
- `./gradlew :dtmf-core:integrationTest :dtmf-io:integrationTest` —
  0 failures.
- `./gradlew publishToMavenLocal` — six Maven folders populated
  under ~/.m2/repository/com/tino1b2be/ with every BOM constraint
  pinned at 2.1.0.
- build/javadoc-site/ aggregates all five modules with footer
  reading "Currently documenting version 2.1.0".
Caught by CI on the previous commit: ModuleStructureTest's
`dtmfBomPinsAllFivePublishedCoordinates` passed locally from cache but
failed on Ubuntu's fresh run. The test's VERSION constant was pinned
to "2.0.0", so after the BOM bumped to 2.1.0 the expected/actual sets
no longer intersected.

Changes:

- dtmf-io/src/test/java/.../ModuleStructureTest.java: VERSION
  constant bumped to "2.1.0"; class-level Javadoc example coordinates
  updated to match.
- All 31 Javadoc `@since 2.0.0` tags on dtmf-io*, dtmf-io-wav, and
  dtmf-io-mp3 public and internal types bumped to `@since 2.1.0` so
  they record the first Maven release the type actually ships in,
  rather than the date it was authored.

Not bumped:
- goertzel and dtmf-core `@since 2.0.0` tags stay as-is — those types
  genuinely shipped in 2.0.0.
- docs/requirements.md and .kiro/specs/*/ still reference 2.0.0; those
  are historical spec documents.

Verification: `./gradlew clean build` — green locally.
@tino1b2be tino1b2be merged commit 0483fab into master May 2, 2026
4 checks passed
@tino1b2be tino1b2be deleted the release/v2.1.0 branch May 2, 2026 23:10
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.

1 participant