DYN-10707: Correct and complete DynamoMCP third-party attribution in ABOUT.txt - #17263
Conversation
Corrects and completes the third-party attributions added for the DynamoMCP built-in package in DynamoDS#17228. Both issues were raised by Roberto Tellez during review of that PR. ModelContextProtocol / ModelContextProtocol.Core v1.3.0 were labelled "The MIT License (MIT)" with copyright lines that appear nowhere in the upstream LICENSE. Both packages declare an SPDX expression of Apache-2.0 in their nuspecs. Corrected the license label, replaced the two copyright lines with the upstream holder, swapped the MIT permission body for the short-form Apache-2.0 notice already used elsewhere in this file, and noted the upstream MIT-to-Apache-2.0 transition. The cited LICENSE URL is pinned to the consumed v1.3.0 tag instead of main, which is a moving target on a repository that is mid-relicensing. Adds the ten Microsoft.Extensions packages shipped in the mcp_server folder of the DynamoMCP package, which had no attribution at all. Placed beside the existing Microsoft.Extensions.Configuration.Json entry and following its exact format. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-10707
There was a problem hiding this comment.
Pull request overview
Updates Dynamo’s canonical third-party acknowledgements (ABOUT.txt) to correct and complete OSS attributions for the DynamoMCP shipped dependencies, aligning the recorded license/copyright details with the referenced upstream sources.
Changes:
- Added missing attributions for the
Microsoft.Extensions.*packages bundled with DynamoMCP (MIT). - Corrected
ModelContextProtocol/ModelContextProtocol.Corev1.3.0 attribution to Apache-2.0 (including pinning the LICENSE URL to thev1.3.0tag) and replaced the prior MIT text with an Apache-2.0 notice plus an upstream transition note.
|
Verified the Apache-2.0 fix against the package cache — both v1.3.0 nuspecs declare One blocker. Upstream This PR deletes that notice and replaces it with a sentence describing it ("contributions not yet relicensed remain under the MIT License"). A description isn't the notice. So we've closed the Apache-2.0 gap and opened an MIT one. Fix: keep both, under the single correct copyright line — same as upstream's LICENSE does. After the Apache short-form paragraph: Dual-license state, so worth an OSS-compliance sign-off on the wording. Non-blocking: the new |
Addresses review feedback from Roberto Tellez on DynamoDS#17263. Upstream csharp-sdk v1.3.0/LICENSE carries a distinct MIT License section alongside the Apache-2.0 body, under the same copyright holder, because contributions that have not yet been relicensed remain MIT. That code is compiled into the assemblies we redistribute, and MIT requires its permission notice accompany all copies. The previous commit replaced that notice with a sentence describing it, which closed the Apache-2.0 gap but opened an MIT one. The entry now reproduces both notices under the single upstream copyright line, mirroring upstream's own LICENSE layout. Also pins the license URLs for the newly added Microsoft.Extensions entries, rather than citing the moving main branch that this change argues against elsewhere in the file: dotnet/runtime at tag v10.0.8, and dotnet/extensions at the commit recorded in the Microsoft.Extensions.AI.Abstractions nuspec. The pre-existing Configuration.Json v6.0.0 entry is left untouched as out of scope. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
|
@RobertGlobant20 , my recent PR change should address the concern in your comment. Please take another look to confirm. Good catch on that and the need for an OSS check. I am unaware of the process and so out of mind ... uh, out of mind. I should have thought about it because the initial PR with ABOUT.txt changes did mention OSS. @johnpierson , since you authored that PR, I imagine you know the process to get the sign off. Would you let me know how to get it? Oh, just thinking about it, there will be another ABOUT.txt change coming with the changes needed for the json-everything version change. So I'll hold off on getting the sign off until then. Or does it need to happen with every PR before they get merged? ... My intent being to get this change approved and merged without the sign-off. Then get the sign off for these changes and those for json-complete at the same time, when merging DYN-10727 changes to Dynamo |
RobertGlobant20
left a comment
There was a problem hiding this comment.
Both findings addressed. Verified the restored MIT notice against upstream's dual-body v1.3.0/LICENSE, and confirmed all three pinned URLs resolve (200) with the expected license text — nice touch pinning dotnet/extensions to the exact source revision baked into the shipped AI.Abstractions DLL. Package list and versions match bin\mcp_server\ one-for-one. LGTM.
|
With the approval, I'm going to go ahead and merge the change. There is another change coming for DYN-10727. When it is ready, we will get sign off on these changes at the same time since those changes may impact these as well. |



Purpose
Fixes DYN-10707. Corrects and completes the DynamoMCP third-party attributions added by #17228. Both issues in this PR were raised by @RobertGlobant20 during review of that PR.
1. ModelContextProtocol and ModelContextProtocol.Core v1.3.0 were attributed as MIT, but upstream declares Apache-2.0.
Verified against the pinned v1.3.0 tag rather than main:
The two copyright lines appear nowhere in the upstream LICENSE.
Upstream v1.3.0/LICENSE is a dual-license state: an Apache-2.0 body and a distinct MIT License section under the same copyright holder, because contributions not yet relicensed remain MIT. That code is compiled into the assemblies we redistribute, so the entry now reproduces both notices under the single upstream copyright line, mirroring upstream's own LICENSE layout. Thanks to @RobertGlobant20 for catching that the first revision of this PR described the MIT residual in prose instead of reproducing the notice, which would have traded an Apache-2.0 gap for an MIT one.
The cited LICENSE URL is pinned to /blob/v1.3.0/LICENSE instead of /blob/main/LICENSE. main is a moving target on a repository that is actively relicensing, which is the most likely reason the MIT text was accurate when transcribed and wrong by the time it merged.
2. Ten Microsoft.Extensions packages ship in the DynamoMCP package with no attribution at all.
MCPExtension.csproj copies mcp_server/Microsoft.Extensions*.dll by wildcard. The resolved set is Microsoft.Extensions.AI.Abstractions v10.5.2 plus nine packages at v10.0.8: Caching, Configuration, DependencyInjection, Diagnostics, FileProviders, Hosting and Logging Abstractions, plus Options and Primitives. All MIT.
ABOUT.txt already attributes Microsoft.Extensions.Configuration.Json v6.0.0 individually, so the established convention in this file is to list these rather than treat them under a blanket .NET runtime attribution. The new block is placed immediately beside that entry and reuses its exact format and license text. Its license URLs are pinned rather than citing main: dotnet/runtime at tag v10.0.8, and dotnet/extensions at the commit recorded in the AI.Abstractions nuspec, since that package has no matching tag. The pre-existing Configuration.Json v6.0.0 entry is left untouched as out of scope.
Note on scope: the same csproj also has a mcp_server/System.Net*.dll wildcard, but it matches nothing. No System.Net package appears in the resolved dependency graph and no such DLL is produced, so there is nothing to attribute there.
ABOUT.txt remains CRLF throughout: 939 CRLF, 0 bare LF.
Declarations
Check these if you believe they are true
Release Notes
Corrected the About box attribution for the Model Context Protocol C# SDK, which is dual-licensed under Apache-2.0 and MIT rather than MIT alone, and added the previously missing attributions for the Microsoft.Extensions packages bundled with DynamoMCP.
Reviewers
@RobertGlobant20, who raised both findings in #17228 and reviewed the first revision here.
Two notes for reviewers:
FYIs
None