Skip to content

Commit

Permalink
Merge remote-tracking branch 'IQSS/develop' into QDR-PIDBugFixes
Browse files Browse the repository at this point in the history
  • Loading branch information
qqmyers committed Sep 3, 2024
2 parents 1cd9b7c + 025b55d commit 9c5036d
Show file tree
Hide file tree
Showing 150 changed files with 3,682 additions and 890 deletions.
7 changes: 5 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Thank you for contributing to the Dataverse Project through the creation of a bu
WARNING: If this is a security issue it should be reported privately to security@dataverse.org
More information on bug issues and contributions can be found in the "Contributing to Dataverse" page:
https://github.com/IQSS/dataverse/blob/develop/CONTRIBUTING.md#bug-reportsissues
https://guides.dataverse.org/en/latest/contributor/index.html
Please fill out as much of the template as you can.
Start below this comment section.
Expand Down Expand Up @@ -44,7 +44,6 @@ Start below this comment section.
**Any related open or closed issues to this bug report?**



**Screenshots:**

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

* https://help.github.com/en/articles/file-attachments-on-issues-and-pull-requests
*


**Are you thinking about creating a pull request for this issue?**
Help is always welcome, is this bug something you or your organization plan to fix?
7 changes: 5 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: Feature request
about: Suggest an idea or new feature for the Dataverse software!
title: 'Feature Request/Idea:'
title: 'Feature Request:'
labels: 'Type: Feature'
assignees: ''

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


**Any open or closed issues related to this feature request?**

**Are you thinking about creating a pull request for this feature?**
Help is always welcome, is this feature something you or your organization plan to implement?
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/idea_proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Idea proposal
about: Propose a new idea for discussion to improve the Dataverse software!
title: 'Suggestion:'
labels: 'Type: Suggestion'
assignees: ''

---

<!--
Thank you for contributing to the Dataverse Project through the creation of a feature request!
More information on ideas/feature requests and contributions can be found in the "Contributing to Dataverse" page:
https://guides.dataverse.org/en/latest/contributor/index.html
Please fill out as much of the template as you can.
Start below this comment section.
-->

**Overview of the Suggestion**


**What kind of user is the suggestion intended for?**
(Example users roles: API User, Curator, Depositor, Guest, Superuser, Sysadmin)


**What inspired this idea?**


**What existing behavior do you want changed?**


**Any brand new behavior do you want to add to Dataverse?**


**Any open or closed issues related to this suggestion?**


**Are you thinking about creating a pull request for this issue?**
Help is always welcome, is this idea something you or your organization plan to implement?
32 changes: 32 additions & 0 deletions .github/workflows/check_property_files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "Properties Check"
on:
pull_request:
paths:
- "src/**/*.properties"
- "scripts/api/data/metadatablocks/*"
jobs:
duplicate_keys:
name: Duplicate Keys
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run duplicates detection script
shell: bash
run: tests/check_duplicate_properties.sh

metadata_blocks_properties:
name: Metadata Blocks Properties
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup GraalVM + Native Image
uses: graalvm/setup-graalvm@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
java-version: '21'
distribution: 'graalvm-community'
- name: Setup JBang
uses: jbangdev/setup-jbang@main
- name: Run metadata block properties verification script
shell: bash
run: tests/verify_mdb_properties.sh
23 changes: 3 additions & 20 deletions .github/workflows/shellspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,28 +24,11 @@ jobs:
run: |
cd tests/shell
shellspec
shellspec-centos7:
name: "CentOS 7"
shellspec-rocky9:
name: "RockyLinux 9"
runs-on: ubuntu-latest
container:
image: centos:7
steps:
- uses: actions/checkout@v2
- name: Install shellspec
run: |
curl -fsSL https://github.com/shellspec/shellspec/releases/download/${{ env.SHELLSPEC_VERSION }}/shellspec-dist.tar.gz | tar -xz -C /usr/share
ln -s /usr/share/shellspec/shellspec /usr/bin/shellspec
- name: Install dependencies
run: yum install -y ed
- name: Run shellspec
run: |
cd tests/shell
shellspec
shellspec-rocky8:
name: "RockyLinux 8"
runs-on: ubuntu-latest
container:
image: rockylinux/rockylinux:8
image: rockylinux/rockylinux:9
steps:
- uses: actions/checkout@v2
- name: Install shellspec
Expand Down
3 changes: 3 additions & 0 deletions doc/release-notes/10169-JSON-schema-validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Improved JSON Schema validation for datasets

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.
9 changes: 9 additions & 0 deletions doc/release-notes/10341-croissant.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
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.

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.

For more about the Croissant exporter, see https://github.com/gdcc/exporter-croissant

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.

See also Issue #10341 and PR #10533.
12 changes: 12 additions & 0 deletions doc/release-notes/10508-base-image-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Security and Compatibility Fixes to the Container Base Image

- Switch "wait-for" to "wait4x", aligned with the Configbaker Image
- Update "jattach" to v2.2
- Install AMD64 / ARM64 versions of tools as necessary
- Run base image as unprivileged user by default instead of `root` - this was an oversight from OpenShift changes
- Linux User, Payara Admin and Domain Master passwords:
- Print hints about default, public knowledge passwords in place for
- Enable replacing these passwords at container boot time
- Enable building with updates Temurin JRE image based on Ubuntu 24.04 LTS
- Fix entrypoint script troubles with pre- and postboot script files
- Unify location of files at CONFIG_DIR=/opt/payara/config, avoid writing to other places
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
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.
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.
1 change: 1 addition & 0 deletions doc/release-notes/10633-add-dataverse-api-extension.md
Original file line number Diff line number Diff line change
@@ -0,0 +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.
3 changes: 3 additions & 0 deletions doc/release-notes/10726-dataverse-facets-api-extension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
New optional query parameter "returnDetails" added to "dataverses/{identifier}/facets/" endpoint to include detailed information of each DataverseFacet.

New endpoint "datasetfields/facetables" that lists all facetable dataset fields defined in the installation.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Search API (/api/search) response will now include publicationStatuses in the Json response as long as the list is not empty

Example:
```javascript
"items": [
{
"name": "Darwin's Finches",
...
"publicationStatuses": [
"Unpublished",
"Draft"
],
(etc, etc)
```
Original file line number Diff line number Diff line change
@@ -0,0 +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 changes: 3 additions & 0 deletions doc/release-notes/10744-ro-crate-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## RO-Crate Support (Metadata Export)

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 number Diff line number Diff line change
@@ -0,0 +1 @@
New API endpoint "dataverses/{identifier}/userPermissions" for obtaining the user permissions on a dataverse.
3 changes: 3 additions & 0 deletions doc/release-notes/10758-rust-client.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Rust API client library

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.
11 changes: 11 additions & 0 deletions doc/release-notes/10797-update-current-version-bug-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
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.)

Users of earlier Dataverse releases are encouraged to alert their superusers to this issue. Those who wish to disable this functionality have two options:
* 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
* Edit the dataset.xhtml file to remove the lines

<c:if test="#{dataverseSession.user.isSuperuser()}">
<f:selectItem rendered="#" itemLabel="#{bundle['dataset.updateRelease']}" itemValue="3" />
</c:if>

, delete the contents of the generated and osgi-cache directories in the Dataverse Payara domain, and restart the Payara server.
9 changes: 9 additions & 0 deletions doc/release-notes/7068-reserve-file-pids.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## Release Highlights

### Pre-Publish File DOI Reservation with DataCite

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).

## Major Use Cases

- Users will have DOIs/PIDs reserved for their files as part of file upload instead of at publication time. (Issue #7068, PR #7334)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
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.
- 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'
- The following terms fields must be empty: Confidentiality Declaration, Special Permissions, Restrictions, Citation Requirements, Depositor Requirements, Conditions, and Disclaimer.
- The License ID must not be assigned.

This process will set the License ID to that of the CC0 1.0 license and remove the contents of termsofuse field.
4 changes: 4 additions & 0 deletions doc/release-notes/9317-delete-saved-search.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
### Saved search deletion

Saved searches can now be removed using API `/api/admin/savedsearches/$id`. See PR #10198.
This is reflected in the [Saved Search Native API section](https://dataverse-guide--10198.org.readthedocs.build/en/10198/api/native-api.html#saved-search) of the Guide.
3 changes: 3 additions & 0 deletions doc/release-notes/api-blocking-filter-json.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* When any `ApiBlockingFilter` policy applies to a request, the JSON in the body of the error response is now valid JSON.
In case an API client did any special processing to allow it to parse the body, that is no longer necessary.
The status code of such responses has not changed.
3 changes: 3 additions & 0 deletions doc/release-notes/make-data-count-.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Counter Processor 1.05 Support

This release includes support for counter-processor-1.05 for processing Make Data Count metrics. If you are running Make Data Counts support, you should reinstall/reconfigure counter-processor as described in the latest Guides. (For existing installations, note that counter-processor-1.05 requires a Python3, so you will need to follow the full counter-processor install. Also note that if you configure the new version the same way, it will reprocess the days in the current month when it is first run. This is normal and will not affect the metrics in Dataverse.)
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"name": "Scientific Research",
"alias": "science",
"dataverseContacts": [
{
"contactEmail": "pi@example.edu"
},
{
"contactEmail": "student@example.edu"
}
],
"affiliation": "Scientific Research University",
"description": "We do all the science.",
"dataverseType": "LABORATORY",
"metadataBlocks": {
"metadataBlockNames": [
"citation", "geospatial"
],
"inputLevels": [
{
"datasetFieldTypeName": "geographicCoverage",
"include": true,
"required": true
},
{
"datasetFieldTypeName": "country",
"include": true,
"required": true
},
{
"datasetFieldTypeName": "geographicUnit",
"include": false,
"required": false
},
{
"datasetFieldTypeName": "geographicBoundingBox",
"include": false,
"required": false
},
{
"datasetFieldTypeName": "westLongitude",
"include": false,
"required": false
},
{
"datasetFieldTypeName": "eastLongitude",
"include": false,
"required": false
},
{
"datasetFieldTypeName": "northLatitude",
"include": false,
"required": false
},
{
"datasetFieldTypeName": "southLatitude",
"include": false,
"required": false
}
],
"facetIds": [
"authorName", "authorAffiliation"
]
}
}
2 changes: 1 addition & 1 deletion doc/sphinx-guides/source/_static/util/counter_daily.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/bash

COUNTER_PROCESSOR_DIRECTORY="/usr/local/counter-processor-0.1.04"
COUNTER_PROCESSOR_DIRECTORY="/usr/local/counter-processor-1.05"
MDC_LOG_DIRECTORY="/usr/local/payara6/glassfish/domains/domain1/logs/mdc"

# counter_daily.sh
Expand Down
1 change: 0 additions & 1 deletion doc/sphinx-guides/source/_templates/navbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">About <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a target="_blank" href="https://dataverse.org/about">About the Project</a></li>
<li><a target="_blank" href="https://dataverse.org/add-data">Add Data</a></li>
<li><a target="_blank" href="https://dataverse.org/blog">Blog</a></li>
<li><a target="_blank" href="https://dataverse.org/presentations">Presentations</a></li>
<li><a target="_blank" href="https://dataverse.org/publications">Publications</a></li>
Expand Down
2 changes: 1 addition & 1 deletion doc/sphinx-guides/source/admin/dataverses-datasets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ It returns a list in the following format:
Unlink a Dataset
^^^^^^^^^^^^^^^^

Removes a link between a dataset and a Dataverse collection. Only accessible to superusers. ::
Removes a link between a dataset and a Dataverse collection. Accessible to users with Publish Dataset permissions. ::

curl -H "X-Dataverse-key: $API_TOKEN" -X DELETE http://$SERVER/api/datasets/$linked-dataset-id/deleteLink/$linking-dataverse-alias

Expand Down
13 changes: 10 additions & 3 deletions doc/sphinx-guides/source/admin/discoverability.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,21 @@ The HTML source of a dataset landing page includes "DC" (Dublin Core) ``<meta>``
<meta name="DC.type" content="Dataset"
<meta name="DC.title" content="..."

Schema.org JSON-LD Metadata
+++++++++++++++++++++++++++
.. _schema.org-head:

The HTML source of a dataset landing page includes Schema.org JSON-LD metadata like this::
Schema.org JSON-LD/Croissant Metadata
+++++++++++++++++++++++++++++++++++++

The ``<head>`` of the HTML source of a dataset landing page includes Schema.org JSON-LD metadata like this::


<script type="application/ld+json">{"@context":"http://schema.org","@type":"Dataset","@id":"https://doi.org/...

If you enable the Croissant metadata export format (see :ref:`external-exporters`) the ``<head>`` will show Croissant metadata instead. It looks similar, but you should see ``"cr": "http://mlcommons.org/croissant/"`` in the output.

For backward compatibility, if you enable Croissant, the older Schema.org JSON-LD format (``schema.org`` in the API) will still be available from both the web interface (see :ref:`metadata-export-formats`) and the API (see :ref:`export-dataset-metadata-api`).

The Dataverse team has been working with Google on both formats. Google has `indicated <https://github.com/mlcommons/croissant/issues/530#issuecomment-1964227662>`_ that for `Google Dataset Search <https://datasetsearch.research.google.com>`_ (the main reason we started adding this extra metadata in the ``<head>`` of dataset pages), Croissant is the successor to the older format.

.. _discovery-sign-posting:

Expand Down
Loading

0 comments on commit 9c5036d

Please sign in to comment.