Skip to content

docs: add a v9 to v10 migration guide - #471

Merged
dargmuesli merged 3 commits into
betafrom
docs/migration/add-v9-to-v10-guide
Sep 1, 2026
Merged

dargmuesli merged 3 commits into
betafrom
docs/migration/add-v9-to-v10-guide

Conversation

@dargmuesli

@dargmuesli dargmuesli commented Sep 1, 2026 •

Copy link
Copy Markdown
Member

9.4.0 users have no written upgrade path. This adds one.

The guide covers the 9.4.0 to 10.0.0 surface: 41 renamed methods and request classes, 25 package moves, the model object getters that were renamed or dropped, and what is new. It opens with the handful of changes a clean compile does not catch, the worst being addItemsToPlaylist, which keeps its signature but now posts to /items instead of /tracks.

Every table was generated by diffing the SpotifyApi surface of the 9.4.0 tag against this branch and matching on HTTP verb plus endpoint path, so the mapping comes from the code rather than from memory. Three pairs the path match could not separate (searchItem, reorderPlaylistsItems, replacePlaylistsItems) were resolved by hand.

ci/check-docs.py gained a check that keeps the guide from going stale: every identifier on the 10.0.0 side of a table, and every method in a // v10 snippet, must exist in the code, and its warning marker must match the @Deprecated on the request class. Columns headed "v9" and lines under a // v9 marker describe a released past and are left alone. This proves the names exist, not that a mapping is the right one, so a wrong-but-existing target would still pass. One prose mention of getAvailableMarkets resolves through the v9 name set rather than the code, because the same name is both a removed model getter and a live deprecated request builder.

The guide reports that Album.getExternalIds() and Track.getExternalIds() are gone in v10, even though external_ids is still a required, non-deprecated property on both objects in spec/openapi.yaml. #472 restores the getters and removes that note, and is stacked on this branch.

395 tests pass, the javadoc build is clean, and ci/check-docs.py passes at both commits.

@codecov

codecov Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.21053% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 48.93%. Comparing base (d070e54) to head (3ce3498).

Files with missing lines Patch % Lines
...lin/spotify/model_objects/specification/Track.java 77.77% 1 Missing and 1 partial ⚠️
...lin/spotify/model_objects/specification/Album.java 90.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               beta     #471      +/-   ##
============================================
+ Coverage     48.73%   48.93%   +0.19%     
- Complexity      712      716       +4     
============================================
  Files           325      325              
  Lines         11177    11195      +18     
  Branches       1317     1319       +2     
============================================
+ Hits           5447     5478      +31     
+ Misses         4711     4696      -15     
- Partials       1019     1021       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dargmuesli
dargmuesli merged commit 8dc27f7 into beta Sep 1, 2026
11 checks passed
@dargmuesli
dargmuesli deleted the docs/migration/add-v9-to-v10-guide branch September 1, 2026 21:36
@dargmuesli dargmuesli mentioned this pull request Sep 1, 2026
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