Skip to content

Commit b5b8c40

Browse files
committed
Merge branch 'develop' into 10517-dataset-types #10517
We bumped our db migration script to .2 Conflicts: src/main/resources/db/migration/V6.3.0.1.sql src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java
2 parents c8adf25 + 650003e commit b5b8c40

File tree

50 files changed

+1004
-269
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1004
-269
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Thank you for contributing to the Dataverse Project through the creation of a bu
1414
WARNING: If this is a security issue it should be reported privately to [email protected]
1515
1616
More information on bug issues and contributions can be found in the "Contributing to Dataverse" page:
17-
https://github.com/IQSS/dataverse/blob/develop/CONTRIBUTING.md#bug-reportsissues
17+
https://guides.dataverse.org/en/latest/contributor/index.html
1818
1919
Please fill out as much of the template as you can.
2020
Start below this comment section.
@@ -44,7 +44,6 @@ Start below this comment section.
4444
**Any related open or closed issues to this bug report?**
4545

4646

47-
4847
**Screenshots:**
4948

5049
No matter the issue, screenshots are always welcome.
@@ -53,3 +52,7 @@ To add a screenshot, please use one of the following formats and/or methods desc
5352

5453
* https://help.github.com/en/articles/file-attachments-on-issues-and-pull-requests
5554
*
55+
56+
57+
**Are you thinking about creating a pull request for this issue?**
58+
Help is always welcome, is this bug something you or your organization plan to fix?

.github/ISSUE_TEMPLATE/feature_request.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: Feature request
33
about: Suggest an idea or new feature for the Dataverse software!
4-
title: 'Feature Request/Idea:'
4+
title: 'Feature Request:'
55
labels: 'Type: Feature'
66
assignees: ''
77

@@ -11,7 +11,7 @@ assignees: ''
1111
Thank you for contributing to the Dataverse Project through the creation of a feature request!
1212
1313
More information on ideas/feature requests and contributions can be found in the "Contributing to Dataverse" page:
14-
https://github.com/IQSS/dataverse/blob/develop/CONTRIBUTING.md#ideasfeature-requests
14+
https://guides.dataverse.org/en/latest/contributor/index.html
1515
1616
Please fill out as much of the template as you can.
1717
Start below this comment section.
@@ -34,3 +34,6 @@ Start below this comment section.
3434

3535

3636
**Any open or closed issues related to this feature request?**
37+
38+
**Are you thinking about creating a pull request for this feature?**
39+
Help is always welcome, is this feature something you or your organization plan to implement?
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: Idea proposal
3+
about: Propose a new idea for discussion to improve the Dataverse software!
4+
title: 'Suggestion:'
5+
labels: 'Type: Suggestion'
6+
assignees: ''
7+
8+
---
9+
10+
<!--
11+
Thank you for contributing to the Dataverse Project through the creation of a feature request!
12+
13+
More information on ideas/feature requests and contributions can be found in the "Contributing to Dataverse" page:
14+
https://guides.dataverse.org/en/latest/contributor/index.html
15+
16+
Please fill out as much of the template as you can.
17+
Start below this comment section.
18+
-->
19+
20+
**Overview of the Suggestion**
21+
22+
23+
**What kind of user is the suggestion intended for?**
24+
(Example users roles: API User, Curator, Depositor, Guest, Superuser, Sysadmin)
25+
26+
27+
**What inspired this idea?**
28+
29+
30+
**What existing behavior do you want changed?**
31+
32+
33+
**Any brand new behavior do you want to add to Dataverse?**
34+
35+
36+
**Any open or closed issues related to this suggestion?**
37+
38+
39+
**Are you thinking about creating a pull request for this issue?**
40+
Help is always welcome, is this idea something you or your organization plan to implement?
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Security and Compatibility Fixes to the Container Base Image
2+
3+
- Switch "wait-for" to "wait4x", aligned with the Configbaker Image
4+
- Update "jattach" to v2.2
5+
- Install AMD64 / ARM64 versions of tools as necessary
6+
- Run base image as unprivileged user by default instead of `root` - this was an oversight from OpenShift changes
7+
- Linux User, Payara Admin and Domain Master passwords:
8+
- Print hints about default, public knowledge passwords in place for
9+
- Enable replacing these passwords at container boot time
10+
- Enable building with updates Temurin JRE image based on Ubuntu 24.04 LTS
11+
- Fix entrypoint script troubles with pre- and postboot script files
12+
- Unify location of files at CONFIG_DIR=/opt/payara/config, avoid writing to other places
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
The addDataverse (/api/dataverses/{identifier}) API endpoint has been extended to allow adding metadata blocks, input levels and facet ids at creation time, as the Dataverse page in create mode does in JSF.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
When datasets have neither a license nor custom terms of use the display will indicate this. Also, these datasets will no longer be indexed as having custom terms.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
### Shapefile Handling will now ignore files under a hidden directory within the zip file
2+
3+
Directories that are hidden will be ignored when determining if a zip file contains Shapefile files.
4+
5+
For more information, see #8945.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
In an earlier Dataverse release, Datasets with only 'CC0 Waiver' in termsofuse field were converted to 'Custom License' instead of CC0 1.0 licenses during an automated process. A new process was added to correct this. Only Datasets with no terms other than the one create by the previous process will be modified.
2+
- The existing 'Terms of Use' must be equal to 'This dataset is made available under a Creative Commons CC0 license with the following additional/modified terms and conditions: CC0 Waiver'
3+
- The following terms fields must be empty: Confidentiality Declaration, Special Permissions, Restrictions, Citation Requirements, Depositor Requirements, Conditions, and Disclaimer.
4+
- The License ID must not be assigned.
5+
6+
This process will set the License ID to that of the CC0 1.0 license and remove the contents of termsofuse field.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
* When any `ApiBlockingFilter` policy applies to a request, the JSON in the body of the error response is now valid JSON.
2+
In case an API client did any special processing to allow it to parse the body, that is no longer necessary.
3+
The status code of such responses has not changed.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
{
2+
"name": "Scientific Research",
3+
"alias": "science",
4+
"dataverseContacts": [
5+
{
6+
"contactEmail": "[email protected]"
7+
},
8+
{
9+
"contactEmail": "[email protected]"
10+
}
11+
],
12+
"affiliation": "Scientific Research University",
13+
"description": "We do all the science.",
14+
"dataverseType": "LABORATORY",
15+
"metadataBlocks": {
16+
"metadataBlockNames": [
17+
"citation", "geospatial"
18+
],
19+
"inputLevels": [
20+
{
21+
"datasetFieldTypeName": "geographicCoverage",
22+
"include": true,
23+
"required": true
24+
},
25+
{
26+
"datasetFieldTypeName": "country",
27+
"include": true,
28+
"required": true
29+
},
30+
{
31+
"datasetFieldTypeName": "geographicUnit",
32+
"include": false,
33+
"required": false
34+
},
35+
{
36+
"datasetFieldTypeName": "geographicBoundingBox",
37+
"include": false,
38+
"required": false
39+
},
40+
{
41+
"datasetFieldTypeName": "westLongitude",
42+
"include": false,
43+
"required": false
44+
},
45+
{
46+
"datasetFieldTypeName": "eastLongitude",
47+
"include": false,
48+
"required": false
49+
},
50+
{
51+
"datasetFieldTypeName": "northLatitude",
52+
"include": false,
53+
"required": false
54+
},
55+
{
56+
"datasetFieldTypeName": "southLatitude",
57+
"include": false,
58+
"required": false
59+
}
60+
],
61+
"facetIds": [
62+
"authorName", "authorAffiliation"
63+
]
64+
}
65+
}

doc/sphinx-guides/source/api/native-api.rst

+27
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ The fully expanded example above (without environment variables) looks like this
6666
6767
You should expect an HTTP 200 response and JSON beginning with "status":"OK" followed by a representation of the newly-created Dataverse collection.
6868

69+
The request JSON supports an optional ``metadataBlocks`` object, with the following supported sub-objects:
70+
71+
- ``metadataBlockNames``: The names of the metadata blocks you want to add to the Dataverse collection.
72+
- ``inputLevels``: The names of the fields in each metadata block for which you want to add a custom configuration regarding their inclusion or requirement when creating and editing datasets in the new Dataverse collection. Note that if the corresponding metadata blocks names are not specified in the ``metadataBlockNames``` field, they will be added automatically to the Dataverse collection.
73+
- ``facetIds``: The names of the fields to use as facets for browsing datasets and collections in the new Dataverse collection. Note that the order of the facets is defined by their order in the provided JSON array.
74+
75+
To obtain an example of how these objects are included in the JSON file, download :download:`dataverse-complete-optional-params.json <../_static/api/dataverse-complete-optional-params.json>` file and modify it to suit your needs.
76+
6977
.. _view-dataverse:
7078

7179
View a Dataverse Collection
@@ -258,6 +266,25 @@ The fully expanded example above (without environment variables) looks like this
258266
259267
curl -H "X-Dataverse-key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" "https://demo.dataverse.org/api/dataverses/root/metadatablockfacets"
260268
269+
List Field Type Input Levels Configured for a Dataverse Collection
270+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271+
272+
|CORS| List the dataverse field type input levels configured for a given Dataverse collection ``id``:
273+
274+
.. code-block:: bash
275+
276+
export API_TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
277+
export SERVER_URL=https://demo.dataverse.org
278+
export ID=root
279+
280+
curl -H "X-Dataverse-key:$API_TOKEN" "$SERVER_URL/api/dataverses/$ID/inputLevels"
281+
282+
The fully expanded example above (without environment variables) looks like this:
283+
284+
.. code-block:: bash
285+
286+
curl -H "X-Dataverse-key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" "https://demo.dataverse.org/api/dataverses/root/inputLevels"
287+
261288
Set Metadata Block Facets for a Dataverse Collection
262289
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
263290

doc/sphinx-guides/source/container/base-image.rst

+18-4
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ The base image provides:
4646
- CLI tools necessary to run Dataverse (i. e. ``curl`` or ``jq`` - see also :doc:`../installation/prerequisites` in Installation Guide)
4747
- Linux tools for analysis, monitoring and so on
4848
- `Jattach <https://github.com/apangin/jattach>`__ (attach to running JVM)
49-
- `wait-for <https://github.com/eficode/wait-for>`__ (tool to "wait for" a service to be available)
49+
- `wait4x <https://github.com/atkrad/wait4x>`__ (tool to "wait for" a service to be available)
5050
- `dumb-init <https://github.com/Yelp/dumb-init>`__ (see :ref:`below <base-entrypoint>` for details)
5151

5252
This image is created as a "multi-arch image", see :ref:`below <base-multiarch>`.
@@ -85,7 +85,7 @@ Some additional notes, using Maven parameters to change the build and use ...:
8585
(See also `Docker Hub search example <https://hub.docker.com/_/eclipse-temurin/tags?page=1&name=11-jre>`_)
8686
- ... a different Java Distribution: add ``-Djava.image="name:tag"`` with precise reference to an
8787
image available local or remote.
88-
- ... a different UID/GID for the ``payara`` user/group: add ``-Dbase.image.uid=1234`` (or ``.gid``)
88+
- ... a different UID/GID for the ``payara`` user/group (default ``1000:1000``): add ``-Dbase.image.uid=1234`` (or ``.gid``)
8989

9090
Automated Builds & Publishing
9191
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -151,12 +151,12 @@ provides. These are mostly based on environment variables (very common with cont
151151
- [preboot]_
152152
- Abs. path
153153
- Provide path to file with ``asadmin`` commands to run **before** boot of application server.
154-
See also `Pre/postboot script docs`_.
154+
See also `Pre/postboot script docs`_. Must be writeable by Payara Linux user!
155155
* - ``POSTBOOT_COMMANDS``
156156
- [postboot]_
157157
- Abs. path
158158
- Provide path to file with ``asadmin`` commands to run **after** boot of application server.
159-
See also `Pre/postboot script docs`_.
159+
See also `Pre/postboot script docs`_. Must be writeable by Payara Linux user!
160160
* - ``JVM_ARGS``
161161
- (empty)
162162
- String
@@ -231,6 +231,18 @@ provides. These are mostly based on environment variables (very common with cont
231231
- See :ref:`:ApplicationServerSettings` ``http.request-timeout-seconds``.
232232

233233
*Note:* can also be set using any other `MicroProfile Config Sources`_ available via ``dataverse.http.timeout``.
234+
* - ``PAYARA_ADMIN_PASSWORD``
235+
- ``admin``
236+
- String
237+
- Set to secret string to change `Payara Admin Console`_ Adminstrator User ("admin") password.
238+
* - ``LINUX_PASSWORD``
239+
- ``payara``
240+
- String
241+
- Set to secret string to change the Payara Linux User ("payara", default UID=1000) password.
242+
* - ``DOMAIN_PASSWORD``
243+
- ``changeit``
244+
- String
245+
- Set to secret string to change the `Domain Master Password`_.
234246

235247

236248
.. [preboot] ``${CONFIG_DIR}/pre-boot-commands.asadmin``
@@ -374,3 +386,5 @@ from `run-java-sh recommendations`_.
374386
.. _Pre/postboot script docs: https://docs.payara.fish/community/docs/Technical%20Documentation/Payara%20Micro%20Documentation/Payara%20Micro%20Configuration%20and%20Management/Micro%20Management/Asadmin%20Commands/Pre%20and%20Post%20Boot%20Commands.html
375387
.. _MicroProfile Config Sources: https://docs.payara.fish/community/docs/Technical%20Documentation/MicroProfile/Config/Overview.html
376388
.. _run-java-sh recommendations: https://github.com/fabric8io-images/run-java-sh/blob/master/TUNING.md#recommandations
389+
.. _Domain Master Password: https://docs.payara.fish/community/docs/Technical%20Documentation/Payara%20Server%20Documentation/Security%20Guide/Administering%20System%20Security.html#to-change-the-master-password
390+
.. _Payara Admin Console: https://docs.payara.fish/community/docs/Technical%20Documentation/Payara%20Server%20Documentation/General%20Administration/Overview.html#administration-console

doc/sphinx-guides/source/developers/making-releases.rst

+18-10
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ Making Releases
88
Introduction
99
------------
1010

11-
Note: See :doc:`making-library-releases` for how to publish our libraries to Maven Central.
12-
13-
See :doc:`version-control` for background on our branching strategy.
11+
This document is about releasing the main Dataverse app (https://github.com/IQSS/dataverse). See :doc:`making-library-releases` for how to release our various libraries. Other projects have their own release documentation.
1412

1513
The steps below describe making both regular releases and hotfix releases.
1614

15+
Below you'll see branches like "develop" and "master" mentioned. For more on our branching strategy, see :doc:`version-control`.
16+
1717
.. _write-release-notes:
1818

1919
Write Release Notes
@@ -24,10 +24,10 @@ Developers express the need for an addition to release notes by creating a "rele
2424
The task at or near release time is to collect these snippets into a single file.
2525

2626
- Create an issue in GitHub to track the work of creating release notes for the upcoming release.
27-
- Create a branch, add a .md file for the release (ex. 5.10.1 Release Notes) in ``/doc/release-notes`` and write the release notes, making sure to pull content from the release note snippets mentioned above.
28-
- Delete the release note snippets as the content is added to the main release notes file.
29-
- Include instructions to describe the steps required to upgrade the application from the previous version. These must be customized for release numbers and special circumstances such as changes to metadata blocks and infrastructure.
30-
- Take the release notes .md through the regular Code Review and QA process.
27+
- Create a branch, add a .md file for the release (ex. 5.10.1 Release Notes) in ``/doc/release-notes`` and write the release notes, making sure to pull content from the release note snippets mentioned above. Snippets may not include any issue number or pull request number in the text so be sure copy the number from the filename of the snippet into the final release note.
28+
- Delete (``git rm``) the release note snippets as the content is added to the main release notes file.
29+
- Include instructions describing the steps required to upgrade the application from the previous version. These must be customized for release numbers and special circumstances such as changes to metadata blocks and infrastructure.
30+
- Take the release notes .md through the regular Code Review and QA process. That is, make a pull request.
3131

3232
Create a GitHub Issue and Branch for the Release
3333
------------------------------------------------
@@ -70,6 +70,13 @@ Once important tests have passed (compile, unit tests, etc.), merge the pull req
7070

7171
If this is a hotfix release, skip this whole "merge develop to master" step (the "develop" branch is not involved until later).
7272

73+
Add Milestone to Pull Requests and Issues
74+
-----------------------------------------
75+
76+
Often someone is making sure that the proper milestone (e.g. 5.10.1) is being applied to pull requests and issues, but sometimes this falls between the cracks.
77+
78+
Check for merged pull requests that have no milestone by going to https://github.com/IQSS/dataverse/pulls and entering `is:pr is:merged no:milestone <https://github.com/IQSS/dataverse/pulls?q=is%3Apr+is%3Amerged+no%3Amilestone>`_ as a query. If you find any, add the milestone to the pull request and any issues it closes. This includes the "merge develop into master" pull request above.
79+
7380
(Optional) Test Docker Images
7481
-----------------------------
7582

@@ -106,7 +113,7 @@ Create a Draft Release on GitHub
106113
Go to https://github.com/IQSS/dataverse/releases/new to start creating a draft release.
107114

108115
- Under "Choose a tag" you will be creating a new tag. Have it start with a "v" such as ``v5.10.1``. Click "Create new tag on publish".
109-
- Under "Target" go to "Recent Commits" and select the merge commit from when you merged ``develop`` into ``master`` above. This commit will appear in ``/api/info/version`` from a running installation.
116+
- Under "Target", choose "master". This commit will appear in ``/api/info/version`` from a running installation.
110117
- Under "Release title" use the same name as the tag such as ``v5.10.1``.
111118
- In the description, copy and paste the content from the release notes .md file created in the "Write Release Notes" steps above.
112119
- Click "Save draft" because we do not want to publish the release yet.
@@ -153,6 +160,7 @@ ssh into the dataverse-internal server and do the following:
153160
- ``mkdir target``
154161
- ``cp /tmp/dataverse-5.10.1.war target``
155162
- ``cd scripts/installer``
163+
- ``make clean``
156164
- ``make``
157165

158166
A zip file called ``dvinstall.zip`` should be produced.
@@ -175,7 +183,7 @@ Upload the following artifacts to the draft release you created:
175183
Deploy on Demo
176184
--------------
177185

178-
Now that you have the release ready to go, give it one final test by deploying it on https://demo.dataverse.org . Note that this is also an opportunity to re-test the upgrade checklist as described in the release note.
186+
Now that you have the release ready to go, consider giving it one final test by deploying it on https://demo.dataverse.org. Note that this is also an opportunity to re-test the upgrade checklist as described in the release note.
179187

180188
Publish the Release
181189
-------------------
@@ -194,7 +202,7 @@ ssh into the guides server and update the symlink to point to the latest release
194202
cd /var/www/html/en
195203
ln -s 5.10.1 latest
196204
197-
205+
This step could be done before publishing the release if you'd like to double check that links in the release notes work.
198206

199207
Close Milestone on GitHub and Create a New One
200208
----------------------------------------------

0 commit comments

Comments
 (0)