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 c84d7cd4b54c56fdc64cf57567fd665c5294a8b8
Author: Cole Greer <[email protected]>
AuthorDate: Tue Jul 21 16:34:31 2026 -0700

    Remove Mono from Docker image and update .NET release docs
---
 docker/Dockerfile                                  |  6 ++----
 .../dev/developer/development-environment.asciidoc | 22 +++++++++-------------
 gremlin-dotnet/src/pom.xml                         |  8 ++++++--
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/docker/Dockerfile b/docker/Dockerfile
index 7d978b702c..8a032fcbb4 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -24,15 +24,13 @@ RUN apt-get -y install software-properties-common 
python3-software-properties ap
 RUN add-apt-repository ppa:openjdk-r/ppa
 RUN sh -c 'curl -s 
https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb 
-o packages-microsoft-prod.deb'
 RUN sh -c 'dpkg -i packages-microsoft-prod.deb'
-RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 
3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
-RUN apt-get install apt-transport-https gnupg ca-certificates
-RUN sh -c 'echo "deb https://download.mono-project.com/repo/ubuntu 
stable-focal main" | tee /etc/apt/sources.list.d/mono-official-stable.list'
+
 RUN apt-get update
 
 # include both java 8/11 so that we can use the same docker image for future 
builds on that version of the jdk as we do
 # for the older release branches. the java version to use is just controlled 
by JAVA_HOME hardcoded below
 RUN apt-get install -y openjdk-8-jdk openjdk-11-jdk gawk git maven 
openssh-server subversion zip
-RUN apt-get install -y --force-yes dotnet-sdk-8.0 mono-devel
+RUN apt-get install -y --force-yes dotnet-sdk-8.0
 
 ENV DEBIAN_FRONTEND=noninteractive
 RUN apt-get install -y python3 python3.8 python3-dev python3.8-dev python3-pip 
build-essential checkinstall zlib1g-dev libreadline-gplv2-dev \
diff --git a/docs/src/dev/developer/development-environment.asciidoc 
b/docs/src/dev/developer/development-environment.asciidoc
index 27105e7a17..dc0a13d628 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -250,10 +250,8 @@ and `test` directories of the `gremlin-dotnet` module 
which will signify to Mave
 The `.glv` file need not have any contents and is ignored by Git. A standard 
`mvn clean install` will then build
 `gremlin-dotnet` in full.
 
-In order to pack the Gremlin.Net.Template project, it is also necessary to 
install link:http://www.mono-project.com/[Mono].
-The template can still be built and tested without Mono but packing will be 
skipped.
-To pack the template (which will also download the 
link:https://docs.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference[NuGet 
CLI tool])
-the `nuget` property has to be set:
+Packing the Gremlin.Net.Template project uses `dotnet pack` directly — no 
additional tooling beyond the .NET SDK is
+required. To pack the template, the `nuget` property has to be set:
 
 [source,text]
 mvn clean install -Dnuget
@@ -377,22 +375,20 @@ link:https://pypi.org/manage/account/token/[account 
settings] and then the usern
 and the password to the token value. Please see 
link:https://pypi.org/help/#apitoken[PyPI documentation] for more
 details.
 
-For .NET releases, install link:http://www.mono-project.com/[Mono]. The 
release process is known to work with 6.12.0,
-so it is best to probably install that version. Release managers should 
probably also do an install of
-link:https://dist.nuget.org/win-x86-commandline/v3.4.4/nuget.exe[nuget 3.4.4] 
as it will help with environmental setup.
-To get an environment ready to deploy to NuGet, it is necessary to have a 
NuGet API key. First, create an account with
+For .NET releases, the .NET SDK (already required for building) provides all 
necessary tooling — no additional
+Mono or `nuget.exe` installation is needed. To get an environment ready to 
deploy to NuGet, it is necessary to have a
+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. The API key should be added to `NuGet.Config` with the 
following:
+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`:
 
 [source,text]
 ----
-mono nuget.exe setApiKey [your-api-key]
+export NUGET_API_KEY=[your-api-key]
 ----
 
-This should update `~/.config/NuGet/NuGet.Config` a file with an entry 
containing the encrypted API key. On
-`mvn deploy`, this file will be referenced on the automated `nuget push`.
-
 To deploy JavaScript / TypeScript artifacts on the 
link:https://www.npmjs.com[npm registry], the release manager must
 set the authentication information on the ~/.npmrc file. The easiest way to do 
that is to use the `npm adduser`
 command. This must be done only once, as the auth token doesn't have an 
expiration date and it's stored on your file
diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml
index ce3a8eb4c1..cc6ea00fb9 100644
--- a/gremlin-dotnet/src/pom.xml
+++ b/gremlin-dotnet/src/pom.xml
@@ -260,11 +260,15 @@ limitations under the License.
                                 </goals>
                                 <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".
+                                        -->
                                         <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"/>
+                                            <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}"/>
                                         </exec>
                                         <exec executable="dotnet" 
failonerror="true">
-                                            <arg line="nuget push 
Gremlin.Net.Template.${project.version}.nupkg --source 
https://api.nuget.org/v3/index.json"/>
+                                            <arg line="nuget push 
Gremlin.Net.Template.${project.version}.nupkg --source 
https://api.nuget.org/v3/index.json --api-key ${env.NUGET_API_KEY}"/>
                                         </exec>
                                     </target>
                                 </configuration>

Reply via email to