Skip to content

Commit cf90431

Browse files
authored
Merge pull request #9131 from IQSS/develop
merge develop to master for 5.12.1 release
2 parents 71341c0 + 11abccf commit cf90431

File tree

90 files changed

+1141
-2262
lines changed

Some content is hidden

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

90 files changed

+1141
-2262
lines changed
+115
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Dataverse Software 5.12.1
2+
3+
This release brings new features, enhancements, and bug fixes to the Dataverse Software. Thank you to all of the community members who contributed code, suggestions, bug reports, and other assistance across the project.
4+
5+
## Release Highlights
6+
7+
### Bug Fix for "Internal Server Error" When Creating a New Remote Account
8+
9+
Unfortunately, as of 5.11 new remote users have seen "Internal Server Error" when creating an account (or checking notifications just after creating an account). Remote users are those who log in with institutional (Shibboleth), OAuth (ORCID, GitHub, or Google) or OIDC providers.
10+
11+
This is a transient error that can be worked around by reloading the browser (or logging out and back in again) but it's obviously a very poor user experience and a bad first impression. This bug is the primary reason we are putting out this patch release. Other features and bug fixes are coming along for the ride.
12+
13+
### Ability to Disable OAuth Sign Up While Allowing Existing Accounts to Log In
14+
15+
A new option called `:AllowRemoteAuthSignUp` has been added providing a mechanism for disabling new account signups for specific OAuth2 authentication providers (Orcid, GitHub, Google etc.) while still allowing logins for already-existing accounts using this authentication method.
16+
17+
See the [Installation Guide](https://guides.dataverse.org/en/5.12.1/installation/config.html#allowremoteauthsignup) for more information on the setting.
18+
19+
### Production Date Now Used for Harvested Datasets in Addition to Distribution Date (`oai_dc` format)
20+
21+
Fix the year displayed in citation for harvested dataset, especially for `oai_dc` format.
22+
23+
For normal datasets, the date used is the "citation date" which is by default the publication date (the first release date) unless you [change it](https://guides.dataverse.org/en/5.12.1/api/native-api.html#set-citation-date-field-type-for-a-dataset).
24+
25+
However, for a harvested dataset, the distribution date was used instead and this date is not always present in the harvested metadata.
26+
27+
Now, the production date is used for harvested dataset in addition to distribution date when harvesting with the `oai_dc` format.
28+
29+
### Publication Date Now Used for Harvested Dataset if Production Date is Not Set (`oai_dc` format)
30+
31+
For exports and harvesting in `oai_dc` format, if "Production Date" is not set, "Publication Date" is now used instead. This change is reflected in the [Dataverse 4+ Metadata Crosswalk][] linked from the [Appendix][] of the User Guide.
32+
33+
[Dataverse 4+ Metadata Crosswalk]: https://docs.google.com/spreadsheets/d/10Luzti7svVTVKTA-px27oq3RxCUM-QbiTkm8iMd5C54/edit#gid=1901625433&range=K7
34+
[Appendix]: https://guides.dataverse.org/en/5.12.1/user/appendix.html
35+
36+
## Major Use Cases and Infrastructure Enhancements
37+
38+
Changes and fixes in this release include:
39+
40+
- Users creating an account by logging in with Shibboleth, OAuth, or OIDC should not see errors. (Issue 9029, PR #9030)
41+
- When harvesting datasets, I want the Production Date if I can't get the Distribution Date (PR #8732)
42+
- When harvesting datasets, I want the Publication Date if I can't get the Production Date (PR #8733)
43+
- As a sysadmin I'd like to disable (temporarily or permanently) sign ups from OAuth providers while allowing existing users to continue to log in from that provider (PR #9112)
44+
- As a C/C++ developer I want to use Dataverse APIs (PR #9070)
45+
46+
## New DB Settings
47+
48+
The following DB settings have been added:
49+
50+
- `:AllowRemoteAuthSignUp`
51+
52+
See the [Database Settings](https://guides.dataverse.org/en/5.12.1/installation/config.html#database-settings) section of the Guides for more information.
53+
54+
## Complete List of Changes
55+
56+
For the complete list of code changes in this release, see the [5.12.1 Milestone](https://github.com/IQSS/dataverse/milestone/106?closed=1) in GitHub.
57+
58+
For help with upgrading, installing, or general questions please post to the [Dataverse Community Google Group](https://groups.google.com/forum/#!forum/dataverse-community) or email [email protected].
59+
60+
## Installation
61+
62+
If this is a new installation, please see our [Installation Guide](https://guides.dataverse.org/en/5.12.1/installation/). Please also contact us to get added to the [Dataverse Project Map](https://guides.dataverse.org/en/5.10/installation/config.html#putting-your-dataverse-installation-on-the-map-at-dataverse-org) if you have not done so already.
63+
64+
## Upgrade Instructions
65+
66+
Upgrading requires a maintenance window and downtime. Please plan ahead, create backups of your database, etc.
67+
68+
0\. These instructions assume that you've already successfully upgraded from Dataverse Software 4.x to Dataverse Software 5 following the instructions in the [Dataverse Software 5 Release Notes](https://github.com/IQSS/dataverse/releases/tag/v5.0). After upgrading from the 4.x series to 5.0, you should progress through the other 5.x releases before attempting the upgrade to 5.12.1.
69+
70+
If you are running Payara as a non-root user (and you should be!), **remember not to execute the commands below as root**. Use `sudo` to change to that user first. For example, `sudo -i -u dataverse` if `dataverse` is your dedicated application user.
71+
72+
```shell
73+
export PAYARA=/usr/local/payara5
74+
```
75+
76+
(or `setenv PAYARA /usr/local/payara5` if you are using a `csh`-like shell)
77+
78+
1\. Undeploy the previous version
79+
80+
```shell
81+
$PAYARA/bin/asadmin list-applications
82+
$PAYARA/bin/asadmin undeploy dataverse<-version>
83+
```
84+
85+
2\. Stop Payara
86+
87+
```shell
88+
service payara stop
89+
rm -rf $PAYARA/glassfish/domains/domain1/generated
90+
```
91+
92+
6\. Start Payara
93+
94+
```shell
95+
service payara start
96+
```
97+
98+
7\. Deploy this version.
99+
100+
```shell
101+
$PAYARA/bin/asadmin deploy dataverse-5.12.1.war
102+
```
103+
104+
8\. Restart payara
105+
106+
```shell
107+
service payara stop
108+
service payara start
109+
```
110+
111+
## Upcoming Versions of Payara
112+
113+
With the recent release of Payara 6 ([Payara 6.2022.1](https://github.com/payara/Payara/releases/tag/payara-server-6.2022.1) being the first version), the days of free-to-use Payara 5.x Platform Community versions [are numbered](https://blog.payara.fish/whats-new-in-the-november-2022-payara-platform-release). Specifically, Payara's blog post says, "Payara Platform Community 5.2022.4 has been released today as the penultimate Payara 5 Community release."
114+
115+
Given the end of free-to-use Payara 5 versions, we plan to get the Dataverse software working on Payara 6 (#8305), which will require substantial efforts from the IQSS team and community members, as this also means shifting our app to be a [Jakarta EE 10](https://jakarta.ee/release/10/) application (upgrading from EE 8). We are currently working out the details and will share news as soon as we can. Rest assured we will do our best to provide you with a smooth transition. You can follow along in Issue #8305 and related pull requests and you are, of course, very welcome to participate by testing and otherwise contributing, as always.

doc/sphinx-guides/source/_static/docsdataverse_org.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ a.headerlink {
6868
#sidebar.bs-sidenav {
6969
background-color: #f8d5b8;
7070
}
71-
#sidebar.bs-sidenav .nav > li > a:hover, #sidebar.bs-sidenav .nav > li > a:focus {
71+
#sidebar.bs-sidenav .nav > li > a:hover, #sidebar.bs-sidenav .nav > li > a:focus, #sidebar.bs-sidenav .nav > li > a.current {
7272
background-color: #fbf4c5;
7373
border-right: 1px solid #dbd8e0;
7474
text-decoration: none;

doc/sphinx-guides/source/_static/util/clear_timer.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ DV_DIR=${PAYARA_DIR}/glassfish/domains/domain1
1717
${PAYARA_DIR}/bin/asadmin stop-domain
1818

1919
rm -rf ${PAYARA_DIR}/${DV_DIR}/generated/
20-
rm -rf ${PAYARA_DIR}/${DV_DIR}/osgi-cache/felix
20+
rm -rf ${PAYARA_DIR}/${DV_DIR}/osgi-cache/
2121

2222
# restart the domain (also generates a warning if app server is stopped)
2323
${PAYARA_DIR}/bin/asadmin start-domain

doc/sphinx-guides/source/admin/dataverses-datasets.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Dataverse collections have to be empty to delete them. Navigate to the Dataverse
1515
Move a Dataverse Collection
1616
^^^^^^^^^^^^^^^^^^^^^^^^^^^
1717

18-
Moves a Dataverse collection whose id is passed to a new Dataverse collection whose id is passed. The Dataverse collection alias also may be used instead of the id. If the moved Dataverse collection has a guestbook, template, metadata block, link, or featured Dataverse collection that is not compatible with the destination Dataverse collection, you will be informed and given the option to force the move and remove the association. Only accessible to superusers. ::
18+
Moves a Dataverse collection whose id is passed to an existing Dataverse collection whose id is passed. The Dataverse collection alias also may be used instead of the id. If the moved Dataverse collection has a guestbook, template, metadata block, link, or featured Dataverse collection that is not compatible with the destination Dataverse collection, you will be informed and given the option to force the move and remove the association. Only accessible to superusers. ::
1919

2020
curl -H "X-Dataverse-key: $API_TOKEN" -X POST http://$SERVER/api/dataverses/$id/move/$destination-id
2121

doc/sphinx-guides/source/admin/harvestserver.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The email portion of :ref:`systemEmail` will be visible via OAI-PMH (from the "I
2626
How does it work?
2727
-----------------
2828

29-
Only the published, unrestricted datasets in your Dataverse installation can
29+
Only the published datasets in your Dataverse installation can
3030
be made harvestable. Remote clients normally keep their records in sync
3131
through scheduled incremental updates, daily or weekly, thus
3232
minimizing the load on your server. Note that it is only the metadata
@@ -115,10 +115,10 @@ Some useful examples of search queries to define OAI sets:
115115

116116
``keywordValue:censorship``
117117

118-
Important: New SOLR schema required!
118+
Important: New Solr schema required!
119119
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120120

121-
In order to be able to define OAI sets, your SOLR server must be upgraded with the search schema that came with release 4.5 (or later), and all your local datasets must be re-indexed, once the new schema is installed.
121+
In order to be able to define OAI sets, your Solr server must be upgraded with the search schema that came with release 4.5 (or later), and all your local datasets must be re-indexed, once the new schema is installed.
122122

123123
OAI Set updates
124124
---------------

doc/sphinx-guides/source/admin/integrations.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ their research results and retain links to imported and exported data. Users
5757
can organize their data in "Datasets", which can be exported to a Dataverse installation via
5858
the command-line interface (CLI).
5959

60-
Renku dataset documentation: https://renku-python.readthedocs.io/en/latest/reference/commands.html#module-renku.cli.dataset
60+
Renku documentation: https://renku-python.readthedocs.io
6161

6262
Flagship deployment of the Renku platform: https://renkulab.io
6363

doc/sphinx-guides/source/admin/metadatacustomization.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ In general, the external vocabulary support mechanism may be a better choice for
565565
The specifics of the user interface for entering/selecting a vocabulary term and how that term is then displayed are managed by third-party Javascripts. The initial Javascripts that have been created provide auto-completion, displaying a list of choices that match what the user has typed so far, but other interfaces, such as displaying a tree of options for a hierarchical vocabulary, are possible.
566566
Similarly, existing scripts do relatively simple things for displaying a term - showing the term's name in the appropriate language and providing a link to an external URL with more information, but more sophisticated displays are possible.
567567

568-
Scripts supporting use of vocabularies from services supporting the SKOMOS protocol (see https://skosmos.org) and retrieving ORCIDs (from https:/orcid.org) are available https://github.com/gdcc/dataverse-external-vocab-support. (Custom scripts can also be used and community members are encouraged to share new scripts through the dataverse-external-vocab-support repository.)
568+
Scripts supporting use of vocabularies from services supporting the SKOMOS protocol (see https://skosmos.org) and retrieving ORCIDs (from https://orcid.org) are available https://github.com/gdcc/dataverse-external-vocab-support. (Custom scripts can also be used and community members are encouraged to share new scripts through the dataverse-external-vocab-support repository.)
569569

570570
Configuration involves specifying which fields are to be mapped, whether free-text entries are allowed, which vocabulary(ies) should be used, what languages those vocabulary(ies) are available in, and several service protocol and service instance specific parameters.
571571
These are all defined in the :ref:`:CVocConf <:CVocConf>` setting as a JSON array. Details about the required elements as well as example JSON arrays are available at https://github.com/gdcc/dataverse-external-vocab-support, along with an example metadata block that can be used for testing.

doc/sphinx-guides/source/admin/solr-search-index.rst

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
Solr Search Index
22
=================
33

4-
A Dataverse installation requires Solr to be operational at all times. If you stop Solr, you should see a error about this on the root Dataverse installation page, which is powered by the search index Solr provides. You can set up Solr by following the steps in our Installation Guide's :doc:`/installation/prerequisites` and :doc:`/installation/config` sections explaining how to configure it. This section you're reading now is about the care and feeding of the search index. PostgreSQL is the "source of truth" and the Dataverse installation will copy data from PostgreSQL into Solr. For this reason, the search index can be rebuilt at any time. Depending on the amount of data you have, this can be a slow process. You are encouraged to experiment with production data to get a sense of how long a full reindexing will take.
4+
A Dataverse installation requires Solr to be operational at all times. If you stop Solr, you should see an error about this on the root Dataverse installation page, which is powered by the search index Solr provides. You can set up Solr by following the steps in our Installation Guide's :doc:`/installation/prerequisites` and :doc:`/installation/config` sections explaining how to configure it. This section you're reading now is about the care and feeding of the search index. PostgreSQL is the "source of truth" and the Dataverse installation will copy data from PostgreSQL into Solr. For this reason, the search index can be rebuilt at any time. Depending on the amount of data you have, this can be a slow process. You are encouraged to experiment with production data to get a sense of how long a full reindexing will take.
55

66
.. contents:: Contents:
77
:local:
88

99
Full Reindex
1010
-------------
1111

12-
There are two ways to perform a full reindex of the Dataverse installation search index. Starting with a "clear" ensures a completely clean index but involves downtime. Reindexing in place doesn't involve downtime but does not ensure a completely clean index.
12+
There are two ways to perform a full reindex of the Dataverse installation search index. Starting with a "clear" ensures a completely clean index but involves downtime. Reindexing in place doesn't involve downtime but does not ensure a completely clean index (e.g. stale entries from destroyed datasets can remain in the index).
1313

1414
Clear and Reindex
1515
+++++++++++++++++
@@ -22,7 +22,7 @@ Get a list of all database objects that are missing in Solr, and Solr documents
2222

2323
``curl http://localhost:8080/api/admin/index/status``
2424

25-
Remove all Solr documents that are orphaned (ie not associated with objects in the database):
25+
Remove all Solr documents that are orphaned (i.e. not associated with objects in the database):
2626

2727
``curl http://localhost:8080/api/admin/index/clear-orphans``
2828

@@ -36,7 +36,7 @@ Please note that the moment you issue this command, it will appear to end users
3636
Start Async Reindex
3737
~~~~~~~~~~~~~~~~~~~
3838

39-
Please note that this operation may take hours depending on the amount of data in your system. This known issue is being tracked at https://github.com/IQSS/dataverse/issues/50
39+
Please note that this operation may take hours depending on the amount of data in your system and whether or not you installation is using full-text indexing. More information on this, as well as some reference times, can be found at https://github.com/IQSS/dataverse/issues/50.
4040

4141
``curl http://localhost:8080/api/admin/index``
4242

@@ -60,7 +60,7 @@ If indexing stops, this command should pick up where it left off based on which
6060
Manual Reindexing
6161
-----------------
6262

63-
If you have made manual changes to a dataset in the database or wish to reindex a dataset that solr didn't want to index properly, it is possible to manually reindex Dataverse collections and datasets.
63+
If you have made manual changes to a dataset in the database or wish to reindex a dataset that Solr didn't want to index properly, it is possible to manually reindex Dataverse collections and datasets.
6464

6565
Reindexing Dataverse Collections
6666
++++++++++++++++++++++++++++++++
@@ -69,7 +69,7 @@ Dataverse collections must be referenced by database object ID. If you have dire
6969

7070
``select id from dataverse where alias='dataversealias';``
7171

72-
should work, or you may click the Dataverse Software's "Edit" menu and look for dataverseId= in the URLs produced by the drop-down. Then, to re-index:
72+
should work, or you may click the Dataverse Software's "Edit" menu and look for *dataverseId=* in the URLs produced by the drop-down. Then, to re-index:
7373

7474
``curl http://localhost:8080/api/admin/index/dataverses/135``
7575

@@ -89,7 +89,7 @@ To re-index a dataset by its database ID:
8989
Manually Querying Solr
9090
----------------------
9191

92-
If you suspect something isn't indexed properly in solr, you may bypass the Dataverse installation's web interface and query the command line directly to verify what solr returns:
92+
If you suspect something isn't indexed properly in Solr, you may bypass the Dataverse installation's web interface and query the command line directly to verify what Solr returns:
9393

9494
``curl "http://localhost:8983/solr/collection1/select?q=dsPersistentId:doi:10.15139/S3/HFV0AO"``
9595

doc/sphinx-guides/source/admin/troubleshooting.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Ingest is both CPU- and memory-intensive, and depending on your system resources
5757

5858
``/usr/local/payara5/mq/bin/imqcmd -u admin purge dst -t q -n DataverseIngest`` will purge the DataverseIngest queue, and prompt for your confirmation.
5959

60-
Finally, list destinations to verify that the purge was successful::
60+
Finally, list destinations to verify that the purge was successful:
6161

6262
``/usr/local/payara5/mq/bin/imqcmd -u admin list dst``
6363

doc/sphinx-guides/source/admin/user-administration.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ See :ref:`deactivate-a-user`
5757
Confirm Email
5858
-------------
5959

60-
A Dataverse installation encourages builtin/local users to verify their email address upon signup or email change so that sysadmins can be assured that users can be contacted.
60+
A Dataverse installation encourages builtin/local users to verify their email address upon sign up or email change so that sysadmins can be assured that users can be contacted.
6161

62-
The app will send a standard welcome email with a URL the user can click, which, when activated, will store a ``lastconfirmed`` timestamp in the ``authenticateduser`` table of the database. Any time this is "null" for a user (immediately after signup and/or changing of their Dataverse installation email address), their current email on file is considered to not be verified. The link that is sent expires after a time (the default is 24 hours), but this is configurable by a superuser via the ``:MinutesUntilConfirmEmailTokenExpires`` config option.
62+
The app will send a standard welcome email with a URL the user can click, which, when activated, will store a ``lastconfirmed`` timestamp in the ``authenticateduser`` table of the database. Any time this is "null" for a user (immediately after sign up and/or changing of their Dataverse installation email address), their current email on file is considered to not be verified. The link that is sent expires after a time (the default is 24 hours), but this is configurable by a superuser via the ``:MinutesUntilConfirmEmailTokenExpires`` config option.
6363

6464
Should users' URL token expire, they will see a "Verify Email" button on the account information page to send another URL.
6565

0 commit comments

Comments
 (0)