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}"/>

Reply via email to