Skip to content

DYN-9542: Move 4.0.0 public APIs from Unshipped.txt to Shipped.txt#16918

Closed
aparajit-pratap wants to merge 8 commits intoDynamoDS:masterfrom
aparajit-pratap:api-ship-4.0.0-baseline
Closed

DYN-9542: Move 4.0.0 public APIs from Unshipped.txt to Shipped.txt#16918
aparajit-pratap wants to merge 8 commits intoDynamoDS:masterfrom
aparajit-pratap:api-ship-4.0.0-baseline

Conversation

@aparajit-pratap
Copy link
Contributor

@aparajit-pratap aparajit-pratap commented Feb 24, 2026

Summary

Establishes the 4.0.0 release (commit 16e37420f4e4a8ca85cf0a79aaf9bf16dee695c7 — "DYN-9542: Make RC4.0 stable nugets", Nov 24 2025) as the shipped API baseline for four projects:

  • DynamoCore: 3,197 APIs moved to Shipped.txt; 3 post-4.0.0 additions remain in Unshipped.txt (EnableUnTrustedLocationsNotifications)
  • DynamoCoreWpf: 6,033 APIs moved to Shipped.txt; 69 post-4.0.0 additions remain in Unshipped.txt (new converters, PackageManager VM members, DynamoViewModel.OnlineAccess, etc.)
  • DynamoUtilities: 246 APIs moved to Shipped.txt; Unshipped.txt is now empty (no new public API since 4.0.0)
  • DynamoServices: All APIs except for NodeCategoryAttribute moved from DynamoCore to DynamoServices in DYN-7899: Type forward nodecategoryattribute for use in external node libs such as protogeometry #16914

Previously, all projects kept Shipped.txt empty and put everything in Unshipped.txt, which meant the analyzer provided no protection against accidental breaking changes to the already-released 4.0.0 surface.

Why this matters

With this change:

  • RS0017 will fire if any 4.0.0 API is accidentally removed or renamed (protecting the shipped API surface)
  • RS0016 will fire for any genuinely new API that hasn't been declared in Unshipped.txt yet
  • DynamoServices (handled in a companion PR that adds the PublicApiAnalyzers package) follows the same pattern

Note

This PR must be committed after #16914 to avoid merge conflicts once the other PR is merged.

Test plan

  • Verify CI builds pass for all three projects
  • Confirm no RS0017 errors (no stale entries in Shipped.txt)
  • Confirm Unshipped.txt entries match only the APIs genuinely added after the 4.0.0 stable release

🤖 Generated with Claude Code

Establishes the 4.0.0 release (commit 16e3742) as the shipped baseline
for DynamoCore, DynamoCoreWpf, and DynamoUtilities. API entries that
existed at the 4.0.0 stable release are moved to PublicAPI.Shipped.txt.
Only APIs added after 4.0.0 remain in PublicAPI.Unshipped.txt:
  - DynamoCore: 3 new entries (EnableUnTrustedLocationsNotifications)
  - DynamoCoreWpf: 69 new entries (converters, PackageManager VM, etc.)
  - DynamoUtilities: 0 new entries (Unshipped.txt now empty)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 24, 2026 22:22
@github-actions github-actions bot changed the title Move 4.0.0 public APIs from Unshipped.txt to Shipped.txt DYN-9542: Move 4.0.0 public APIs from Unshipped.txt to Shipped.txt Feb 24, 2026
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-9542

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Establishes a shipped public API baseline for the 4.0.0 release across DynamoCore, DynamoCoreWpf, and DynamoUtilities by moving the previously-declared “unshipped” APIs into PublicAPI.Shipped.txt, leaving only post-4.0.0 additions in PublicAPI.Unshipped.txt. This enables PublicApiAnalyzers (RS0016/RS0017) to properly detect new APIs and protect the already-shipped surface from breaking changes.

Changes:

  • Populate PublicAPI.Shipped.txt for DynamoCore / DynamoCoreWpf / DynamoUtilities with the 4.0.0 baseline API set.
  • Reduce PublicAPI.Unshipped.txt to only post-4.0.0 additions (or empty, for DynamoUtilities).
  • Align the repo with the intended PublicApiAnalyzers workflow (shipped vs. unshipped separation).

Reviewed changes

Copilot reviewed 2 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/DynamoCore/PublicAPI.Shipped.txt Adds the 4.0.0 shipped API baseline for DynamoCore.
src/DynamoCore/PublicAPI.Unshipped.txt Leaves only post-4.0.0 DynamoCore API additions.
src/DynamoCoreWpf/PublicAPI.Shipped.txt Adds the 4.0.0 shipped API baseline for DynamoCoreWpf.
src/DynamoCoreWpf/PublicAPI.Unshipped.txt Leaves only post-4.0.0 DynamoCoreWpf API additions.
src/DynamoUtilities/PublicAPI.Shipped.txt Adds the 4.0.0 shipped API baseline for DynamoUtilities.
src/DynamoUtilities/PublicAPI.Unshipped.txt Removes all entries (no post-4.0.0 public APIs).
Comments suppressed due to low confidence (1)

src/DynamoUtilities/PublicAPI.Unshipped.txt:2

  • PublicAPI.Unshipped.txt currently contains two blank lines. Consider making the file truly empty (0 entries / no whitespace lines) to avoid confusing diffs/noise and to better reflect that there are no unshipped APIs for this project.

…split

Since PublicApiAnalyzers is being introduced in a companion PR (dyn-7899),
this commit pre-creates the PublicAPI files for DynamoServices so they are
ready when the analyzer activates. All existing DynamoServices APIs as of
4.0.0 go into PublicAPI.Shipped.txt (382 entries). The newly-added
NodeCategoryAttribute (moved from DynamoCore in dyn-7899) is placed in
PublicAPI.Unshipped.txt (4 entries).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Contributor

@RobertGlobant20 RobertGlobant20 left a comment

Choose a reason for hiding this comment

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

LGTM, then if there is a API breaking change (a public method was updated or deleted) then msbuild will raise an error when building?
Probably if we want to see errors, we will need to add this in the 4 cspro files supporting PublicApiAnalyzers (not sure if already exists):

<PropertyGroup>
  <WarningsAsErrors>RS0016;RS0017</WarningsAsErrors>
</PropertyGroup>

dependabot bot and others added 6 commits February 24, 2026 23:14
…lows (DynamoDS#16913)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…r by manual drag or Sidebar toggle, activating a new extension should expand the panel to a Default width and display the activated extension. (DynamoDS#16897)
…he leftmost (“beginning”) and rightmost (“end”) nodes of the active graph. (DynamoDS#16873)
… libs such as protogeometry (DynamoDS#16914)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@sonarqubecloud
Copy link

@aparajit-pratap
Copy link
Contributor Author

Closing in favor of #16921. This PR ended up with several conflicts.

@aparajit-pratap
Copy link
Contributor Author

LGTM, then if there is a API breaking change (a public method was updated or deleted) then msbuild will raise an error when building? Probably if we want to see errors, we will need to add this in the 4 cspro files supporting PublicApiAnalyzers (not sure if already exists):

<PropertyGroup>
  <WarningsAsErrors>RS0016;RS0017</WarningsAsErrors>
</PropertyGroup>

There are PR checks that automatically catch these errors as build errors. Those should suffice.

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.

5 participants