This is an automated email from the ASF dual-hosted git repository. Cole-Greer pushed a commit to branch remove-mono in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 441ca237c2b187b19ce1b1ef3949f236f2879e1a Author: Cole Greer <[email protected]> AuthorDate: Tue Jul 21 17:56:04 2026 -0700 Document why NUGET_API_KEY is passed explicitly, not via config --- docs/src/dev/developer/development-environment.asciidoc | 6 +++--- gremlin-dotnet/src/pom.xml | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/src/dev/developer/development-environment.asciidoc b/docs/src/dev/developer/development-environment.asciidoc index dc0a13d628..ec2f7fe185 100644 --- a/docs/src/dev/developer/development-environment.asciidoc +++ b/docs/src/dev/developer/development-environment.asciidoc @@ -380,9 +380,9 @@ Mono or `nuget.exe` installation is needed. To get an environment ready to deplo NuGet API key. First, create an account with link:https://www.nuget.org[nuget] and request that a PMC member add your account to the Gremlin.Net and the Gremlin.Net.Template package in nuget so that you can deploy. Next, generate an API key for your account on the -nuget website. Unlike the old `nuget.exe setApiKey` approach, `dotnet nuget push` does not store the API key in a -config file; instead, the build passes it via the `NUGET_API_KEY` environment variable, which the release manager -must set before running `mvn deploy`: +nuget website. The old `mono nuget.exe setApiKey` approach stored the key encrypted (via Windows DPAPI) in +`NuGet.Config`, which the `dotnet` CLI cannot decrypt on Linux/macOS. Instead, set the key in the `NUGET_API_KEY` +environment variable before running `mvn deploy`, which the build passes explicitly to `dotnet nuget push --api-key`: [source,text] ---- diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml index cc6ea00fb9..828382ea98 100644 --- a/gremlin-dotnet/src/pom.xml +++ b/gremlin-dotnet/src/pom.xml @@ -261,8 +261,15 @@ limitations under the License. <configuration> <target> <!-- - the NuGet API key is read from the NUGET_API_KEY environment variable, which - must be set by the release manager prior to running "mvn deploy -Dnuget". + the NuGet API key is passed explicitly via the "api-key" option, sourced + from the NUGET_API_KEY environment variable, which must be set by the + release manager prior to running "mvn deploy -Dnuget". NuGet 7.6+ (bundled + with .NET SDK 10.0.300+) can read NUGET_API_KEY automatically without that + option, but this build currently targets .NET SDK 8.0, whose bundled NuGet + CLI predates that feature, so the option is passed explicitly. The old + "nuget.exe setApiKey" config file approach is not viable here: it encrypts + the key with Windows DPAPI, which the dotnet CLI cannot decrypt on + Linux/macOS release hosts. --> <exec executable="dotnet" failonerror="true"> <arg line="nuget push Gremlin.Net/bin/Gremlin.Net.${project.version}.nupkg --source https://api.nuget.org/v3/index.json --api-key ${env.NUGET_API_KEY}"/>
