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>
