Skip to content

Commit 59789b8

Browse files
committed
Merge branch 'develop' into 10688_whitespace_trimming IQSS#10688
2 parents 1cbe75f + 4b96cec commit 59789b8

File tree

208 files changed

+30828
-2611
lines changed

Some content is hidden

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

208 files changed

+30828
-2611
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 security@dataverse.org
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?
+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: "Properties Check"
2+
on:
3+
pull_request:
4+
paths:
5+
- "src/**/*.properties"
6+
- "scripts/api/data/metadatablocks/*"
7+
jobs:
8+
duplicate_keys:
9+
name: Duplicate Keys
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- name: Run duplicates detection script
14+
shell: bash
15+
run: tests/check_duplicate_properties.sh
16+
17+
metadata_blocks_properties:
18+
name: Metadata Blocks Properties
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
- name: Setup GraalVM + Native Image
23+
uses: graalvm/setup-graalvm@v1
24+
with:
25+
github-token: ${{ secrets.GITHUB_TOKEN }}
26+
java-version: '21'
27+
distribution: 'graalvm-community'
28+
- name: Setup JBang
29+
uses: jbangdev/setup-jbang@main
30+
- name: Run metadata block properties verification script
31+
shell: bash
32+
run: tests/verify_mdb_properties.sh

.github/workflows/shellspec.yml

+3-20
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,11 @@ jobs:
2424
run: |
2525
cd tests/shell
2626
shellspec
27-
shellspec-centos7:
28-
name: "CentOS 7"
27+
shellspec-rocky9:
28+
name: "RockyLinux 9"
2929
runs-on: ubuntu-latest
3030
container:
31-
image: centos:7
32-
steps:
33-
- uses: actions/checkout@v2
34-
- name: Install shellspec
35-
run: |
36-
curl -fsSL https://github.com/shellspec/shellspec/releases/download/${{ env.SHELLSPEC_VERSION }}/shellspec-dist.tar.gz | tar -xz -C /usr/share
37-
ln -s /usr/share/shellspec/shellspec /usr/bin/shellspec
38-
- name: Install dependencies
39-
run: yum install -y ed
40-
- name: Run shellspec
41-
run: |
42-
cd tests/shell
43-
shellspec
44-
shellspec-rocky8:
45-
name: "RockyLinux 8"
46-
runs-on: ubuntu-latest
47-
container:
48-
image: rockylinux/rockylinux:8
31+
image: rockylinux/rockylinux:9
4932
steps:
5033
- uses: actions/checkout@v2
5134
- name: Install shellspec

conf/solr/schema.xml

+3
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142

143143
<field name="dvName" type="text_en" stored="true" indexed="true" multiValued="false"/>
144144
<field name="dvAlias" type="text_en" stored="true" indexed="true" multiValued="false"/>
145+
<field name="dvParentAlias" type="text_en" stored="true" indexed="true" multiValued="false"/>
145146
<field name="dvAffiliation" type="text_en" stored="true" indexed="true" multiValued="false"/>
146147
<field name="dvDescription" type="text_en" stored="true" indexed="true" multiValued="false"/>
147148

@@ -205,6 +206,7 @@
205206
<field name="entityId" type="plong" stored="true" indexed="true" multiValued="false"/>
206207

207208
<field name="datasetVersionId" type="plong" stored="true" indexed="true" multiValued="false"/>
209+
<field name="datasetType" type="string" stored="true" indexed="true" multiValued="false"/>
208210

209211
<!-- Added for Dataverse 4.0 alpha 1 to sort by name -->
210212
<!-- https://redmine.hmdc.harvard.edu/issues/3482 -->
@@ -426,6 +428,7 @@
426428
<copyField source="dvAlias" dest="_text_" maxChars="3000"/>
427429
<copyField source="dvAffiliation" dest="_text_" maxChars="3000"/>
428430
<copyField source="dsPersistentId" dest="_text_" maxChars="3000"/>
431+
<copyField source="datasetType" dest="_text_" maxChars="3000"/>
429432
<!-- copyField commands copy one field to another at the time a document
430433
is added to the index. It's used either to index the same field differently,
431434
or to add multiple fields to the same field for easier/faster searching. -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Improved JSON Schema validation for datasets
2+
3+
Enhanced JSON schema validation with checks for required and allowed child objects, type checking for field types including `primitive`, `compound` and `controlledVocabulary`. More user-friendly error messages to help pinpoint the issues in the dataset JSON. See [Retrieve a Dataset JSON Schema for a Collection](https://guides.dataverse.org/en/6.3/api/native-api.html#retrieve-a-dataset-json-schema-for-a-collection) in the API Guide and PR #10543.

doc/release-notes/10341-croissant.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
A new metadata export format called Croissant is now available as an external metadata exporter. It is oriented toward making datasets consumable by machine learning.
2+
3+
When enabled, Croissant replaces the Schema.org JSON-LD format in the `<head>` of dataset landing pages. For details, see the [Schema.org JSON-LD/Croissant Metadata](https://dataverse-guide--10533.org.readthedocs.build/en/10533/admin/discoverability.html#schema-org-head) under the discoverability section of the Admin Guide.
4+
5+
For more about the Croissant exporter, see https://github.com/gdcc/exporter-croissant
6+
7+
For installation instructions, see [Enabling External Exporters](https://dataverse-guide--10533.org.readthedocs.build/en/10533/installation/advanced.html#enabling-external-exporters) in the Installation Guide.
8+
9+
See also Issue #10341 and PR #10533.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Add the ability to configure a thumbnail logo that is displayed for a collection when the collection is configured as a featured collection. If present, this thumbnail logo is shown. Otherwise, the collection logo is shown. Configuration is done under the "Theme" for a collection.
2+
3+
The HTML preview of the documentation can be found [here](https://dataverse-guide--10433.org.readthedocs.build/en/10433/user/dataverse-management.html#theme).
4+
5+
For more information, see [#10291](https://github.com/IQSS/dataverse/issues/10291).
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
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
### Initial Support for Dataset Types
2+
3+
Out of the box, all datasets have the type "dataset" but superusers can add additional types. At this time the type can only be set at creation time via API. The types "dataset", "software", and "workflow" will be sent to DataCite when the dataset is published.
4+
5+
For details see <https://dataverse-guide--10694.org.readthedocs.build/en/10694/user/dataset-management.html#dataset-types> and #10517. Please note that this feature is highly experimental and is expected to evolve.
6+
7+
Upgrade instructions
8+
--------------------
9+
10+
Update your Solr schema.xml file to pick up the "datasetType" additions and do a full reindex.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
New "Unlink Dataset" button has been added to the Dataset Page to allow a user to unlink a dataset from a collection that was previously linked with the "Link Dataset" button. The user must possess the same permissions needed to unlink the Dataset as they would to link the Dataset.
2+
The [existing API](https://guides.dataverse.org/en/6.3/admin/dataverses-datasets.html#unlink-a-dataset) for unlinking datasets has been updated to no longer require superuser access. The "Publish Dataset" permission is now enough.
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,3 @@
1+
New optional query parameter "returnDetails" added to "dataverses/{identifier}/facets/" endpoint to include detailed information of each DataverseFacet.
2+
3+
New endpoint "datasetfields/facetables" that lists all facetable dataset fields defined in the installation.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Search API (/api/search) response will now include publicationStatuses in the Json response as long as the list is not empty
2+
3+
Example:
4+
```javascript
5+
"items": [
6+
{
7+
"name": "Darwin's Finches",
8+
...
9+
"publicationStatuses": [
10+
"Unpublished",
11+
"Draft"
12+
],
13+
(etc, etc)
14+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed dataverses/{identifier}/metadatablocks endpoint to not return fields marked as displayOnCreate=true if there is an input level with include=false, when query parameters returnDatasetFieldTypes=true and onlyDisplayedOnCreate=true are set.
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## RO-Crate Support (Metadata Export)
2+
3+
Dataverse now supports [RO-Crate](https://www.researchobject.org/ro-crate/) in the sense that dataset metadata can be exported in that format. This functionality is not available out of the box but you can enable one or more RO-Crate exporters from the [list of external exporters](https://preview.guides.gdcc.io/en/develop/installation/advanced.html#inventory-of-external-exporters). See also #10744.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
New API endpoint "dataverses/{identifier}/userPermissions" for obtaining the user permissions on a dataverse.
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Rust API client library
2+
3+
An API client library for the Rust programming language is now available at https://github.com/gdcc/rust-dataverse and has been added to the [list of client libraries](https://dataverse-guide--10758.org.readthedocs.build/en/10758/api/client-libraries.html) in the API Guide. See also #10758.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
A significant bug in the superuser-only "Update-Current-Version" publication was found and fixed in this release. If the Update-Current-Version option was used when changes were made to the dataset Terms (rather than to dataset metadata), or if the PID provider service was down/returned an error, the update would fail and render the dataset unusable and require restoration from a backup. The fix in this release allows the update to succeed in both of these cases and redesigns the functionality such that any unknown issues should not make the dataset unusable (i.e. the error would be reported and the dataset would remain in its current state with the last-published version as it was and changes still in the draft version.)
2+
3+
Users of earlier Dataverse releases are encouraged to alert their superusers to this issue. Those who wish to disable this functionality have two options:
4+
* Change the dataset.updateRelease entry in the Bundle.properties file (or local language version) to "Do Not Use" or similar (doesn't disable but alerts superusers to the issue), or
5+
* Edit the dataset.xhtml file to remove the lines
6+
7+
<c:if test="#{dataverseSession.user.isSuperuser()}">
8+
<f:selectItem rendered="#" itemLabel="#{bundle['dataset.updateRelease']}" itemValue="3" />
9+
</c:if>
10+
11+
, delete the contents of the generated and osgi-cache directories in the Dataverse Payara domain, and restart the Payara server.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed the "addDataverse" API endpoint (/dataverses/{id} POST) expected request JSON structure to parse facetIds as described in the docs.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
Search API (/api/search) response will now include new fields for the different entities.
2+
3+
For Dataverse:
4+
5+
- "affiliation"
6+
- "parentDataverseName"
7+
- "parentDataverseIdentifier"
8+
- "image_url" (optional)
9+
10+
```javascript
11+
"items": [
12+
{
13+
"name": "Darwin's Finches",
14+
...
15+
"affiliation": "Dataverse.org",
16+
"parentDataverseName": "Root",
17+
"parentDataverseIdentifier": "root",
18+
"image_url":"data:image/png;base64,iVBORw0..."
19+
(etc, etc)
20+
```
21+
22+
For DataFile:
23+
24+
- "releaseOrCreateDate"
25+
- "image_url" (optional)
26+
27+
```javascript
28+
"items": [
29+
{
30+
"name": "test.txt",
31+
...
32+
"releaseOrCreateDate": "2016-05-10T12:53:39Z",
33+
"image_url":"data:image/png;base64,iVBORw0..."
34+
(etc, etc)
35+
```
36+
37+
For Dataset:
38+
39+
- "image_url" (optional)
40+
41+
```javascript
42+
"items": [
43+
{
44+
...
45+
"image_url": "http://localhost:8080/api/datasets/2/logo"
46+
...
47+
(etc, etc)
48+
```
49+
50+
The image_url field was already part of the SolrSearchResult JSON (and incorrectly appeared in Search API documentation), but it wasn’t returned by the API because it was appended only after the Solr query was executed in the SearchIncludeFragment of JSF. Now, the field is set in SearchServiceBean, ensuring it is always returned by the API when an image is available.
51+
52+
The schema.xml file for Solr has been updated to include a new field called dvParentAlias for supporting the new response field "parentDataverseIdentifier". So for the next Dataverse released version, a Solr reindex will be necessary to apply the new schema.xml version.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
The initial release of the Dataverse v6.3 introduced a bug where publishing would break the dataset thumbnail, which in turn broke the rendering of the parent Collection ("dataverse") page. This problem was fixed in the PR 10820.
2+
3+
This bug fix will prevent this from happening in the future, but does not fix any existing broken links. To restore any broken thumbnails caused by this bug, you can call the http://localhost:8080/api/admin/clearThumbnailFailureFlag API, which will attempt to clear the flag on all files (regardless of whether caused by this bug or some other problem with the file) or the http://localhost:8080/api/admin/clearThumbnailFailureFlag/id to clear the flag for individual files. Calling the former, batch API is recommended.
4+
5+
Additionally, the same PR made it possible to turn off the feature that automatically selects of one of the image datafiles to serve as the thumbnail of the parent dataset. An admin can turn it off by raising the feature flag `<jvm-options>-Ddataverse.feature.disable-dataset-thumbnail-autoselect=true</jvm-options>`. When the feature is disabled, a user can still manually pick a thumbnail image, or upload a dedicated thumbnail image.
6+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## Release Highlights
2+
3+
### Pre-Publish File DOI Reservation with DataCite
4+
5+
Dataverse installations using DataCite (or other persistent identifier (PID) Providers that support reserving PIDs) will be able to reserve PIDs for files when they are uploaded (rather than at publication time). Note that reserving file DOIs can slow uploads with large numbers of files so administrators may need to adjust timeouts (specifically any Apache "``ProxyPass / ajp://localhost:8009/ timeout=``" setting in the recommended Dataverse configuration).
6+
7+
## Major Use Cases
8+
9+
- Users will have DOIs/PIDs reserved for their files as part of file upload instead of at publication time. (Issue #7068, PR #7334)

doc/release-notes/8129-harvesting.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
### Remap oai_dc export and harvesting format fields: dc:type and dc:date
2+
3+
The `oai_dc` export and harvesting format has had the following fields remapped:
4+
5+
- dc:type was mapped to the field "Kind of Data". Now it is hard-coded to the word "Dataset".
6+
- dc:date was mapped to the field "Production Date" when available and otherwise to "Publication Date". Now it is mapped the field "Publication Date" or the field used for the citation date, if set (see [Set Citation Date Field Type for a Dataset](https://guides.dataverse.org/en/6.3/api/native-api.html#set-citation-date-field-type-for-a-dataset)).
7+
8+
In order for these changes to be reflected in existing datasets, a [reexport all](https://guides.dataverse.org/en/6.3/admin/metadataexport.html#batch-exports-through-the-api) should be run.
9+
10+
For more information, please see #8129 and #10737.
11+
12+
### Backward incompatible changes
13+
14+
See the "Remap oai_dc export" section above.
15+
16+
### Upgrade instructions
17+
18+
In order for changes to the `oai_dc` metadata export format to be reflected in existing datasets, a [reexport all](https://guides.dataverse.org/en/6.3/admin/metadataexport.html#batch-exports-through-the-api) should be run.

0 commit comments

Comments
 (0)