You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Also add additional namespaces we use and rewrite
"adding new library" section, pointing at examples.
Co-authored-by: Steven Winship <[email protected]>
Copy file name to clipboardExpand all lines: doc/sphinx-guides/source/developers/making-library-releases.rst
+10-50Lines changed: 10 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,9 @@ Note: See :doc:`making-releases` for Dataverse itself.
13
13
We release Java libraries to Maven Central that are used by Dataverse (and perhaps `other <https://github.com/gdcc/xoai/issues/141>`_ `software <https://github.com/gdcc/xoai/issues/170>`_!):
We release JavaScript/TypeScript libraries to npm:
19
21
@@ -109,60 +111,18 @@ Releasing a New Library to Maven Central
109
111
At a high level:
110
112
111
113
- Start with a snapshot release.
112
-
- Use an existing pom.xml as a starting point.
113
-
- Use existing GitHub Actions workflows as a starting point.
114
-
- Create secrets in the new library's GitHub repo used by the workflow.
115
-
- If you need an entire new namespace, look at previous issues such as https://issues.sonatype.org/browse/OSSRH-94575 and https://issues.sonatype.org/browse/OSSRH-94577
116
-
117
-
Updating pom.xml for a Snapshot Release
118
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119
-
120
-
Before publishing a final version to Maven Central, you should publish a snapshot release or two. For each snapshot release you publish, the jar name will be unique each time (e.g. ``foobar-0.0.1-20240430.175110-3.jar``), so you can safely publish over and over with the same version number.
121
-
122
-
We use the `Nexus Staging Maven Plugin <https://github.com/sonatype/nexus-maven-plugins/blob/main/staging/maven-plugin/README.md>`_ to push snapshot releases to https://s01.oss.sonatype.org/content/groups/staging/io/gdcc/ and https://s01.oss.sonatype.org/content/groups/staging/org/dataverse/
123
-
124
-
Add the following to your pom.xml:
125
-
126
-
.. code-block:: xml
114
+
- Use an existing pom.xml as a starting point, such as from `Croissant <https://github.com/gdcc/exporter-croissant>`_, that inherits from the common Maven parent (https://github.com/gdcc/maven-parent). You can also play around with the "hello" project (https://github.com/gdcc/hello) and even make releases from it since it is designed to be a sandbox for publishing to Maven Central.
115
+
- Use existing GitHub Actions workflows as a starting point, such as from `Croissant <https://github.com/gdcc/exporter-croissant>`_. As of this writing we have separate actions for ``maven-snapshot.yml`` and ``maven-release.yml``.
116
+
- For repos under https://github.com/IQSS, create secrets in the new library's GitHub repo used by the workflow. This is necessary for the IQSS org because "organization secrets are not available for organizations on legacy per-repository billing plans." For repos under https://github.com/gdcc you can make use of shared secrets at the org level. These are the environment variables we use:
In GitHub, you will likely need to configure the following secrets:
157
-
158
-
- DATAVERSEBOT_GPG_KEY
159
-
- DATAVERSEBOT_GPG_PASSWORD
160
-
- DATAVERSEBOT_SONATYPE_TOKEN
161
-
- DATAVERSEBOT_SONATYPE_USERNAME
162
-
163
-
Note that some of these secrets might be configured at the org level (e.g. gdcc or IQSS).
164
-
165
-
Many of the automated tasks are performed by the dataversebot account on GitHub: https://github.com/dataversebot
124
+
- DATAVERSEBOT_SONATYPE_USERNAME
125
+
- If you need an entire new namespace, look at previous issues such as https://issues.sonatype.org/browse/OSSRH-94575 and https://issues.sonatype.org/browse/OSSRH-94577
0 commit comments