diff --git a/doc/release-notes/8094-java-17.md b/doc/release-notes/8094-java-17.md deleted file mode 100644 index f3c81145465..00000000000 --- a/doc/release-notes/8094-java-17.md +++ /dev/null @@ -1 +0,0 @@ -Java 17 or higher is now required. diff --git a/doc/release-notes/8305-payara6-ee10-v3.md b/doc/release-notes/8305-payara6-ee10-v3.md deleted file mode 100644 index 94369e0211f..00000000000 --- a/doc/release-notes/8305-payara6-ee10-v3.md +++ /dev/null @@ -1,5 +0,0 @@ -Payara has been updated from version 5 to 6. - -Developers, you are encouraged to upgrade to Payara 6 immediately. - -Sysadmins, instructions on how to upgrade production installations will be written as part of https://github.com/IQSS/dataverse/issues/9340 diff --git a/doc/release-notes/9260-solr930.md b/doc/release-notes/9260-solr930.md deleted file mode 100644 index 07824920b3e..00000000000 --- a/doc/release-notes/9260-solr930.md +++ /dev/null @@ -1,63 +0,0 @@ -Solr has been upgraded to Solr 9. You must install Solr fresh and reindex. You cannot use your old schema.xml because the format has changed. - -Specifically, to install Solr fresh you should follow the instructions for new installations, found at https://guides.dataverse.org/en/9260-solr930/installation/prerequisites.html#installing-solr - -These instructions are copied below and tweaked a bit for an upgrade scenario. - -We assume that you already have a user called "solr" (from the instructions above), added during your initial installation of Solr. - -1. Become the "solr" user and then download and configure Solr. - - ``` - su - solr - cd /usr/local/solr - wget https://archive.apache.org/dist/solr/solr/9.3.0/solr-9.3.0.tgz - tar xvzf solr-9.3.0.tgz - cd solr-9.3.0 - cp -r server/solr/configsets/_default server/solr/collection1 - ``` - -1. Unzip "dvinstall.zip" from this release. Unzip it into /tmp. Then copy the following files into place. - - ``` - cp /tmp/dvinstall/schema*.xml /usr/local/solr/solr-9.3.0/server/solr/collection1/conf - - cp /tmp/dvinstall/solrconfig.xml /usr/local/solr/solr-9.3.0/server/solr/collection1/conf - ``` - -1. A Dataverse installation requires a change to the jetty.xml file that ships with Solr. - - Edit /usr/local/solr/solr-9.3.0/server/etc/jetty.xml , increasing `requestHeaderSize` from `8192` to `102400` - -1. Tell Solr to create the core "collection1" on startup. - - ``` - echo "name=collection1" > /usr/local/solr/solr-9.3.0/server/solr/collection1/core.properties - ``` - -1. Update your init script. - - Your init script may be located at `/etc/systemd/system/solr.service`, for example. Update the path to Solr to be `/usr/local/solr/solr-9.3.0`. - -1. Start Solr using your init script and check collection1. - - The collection1 check below should print out fields Dataverse uses like "dsDescription". - - ``` - systemctl start solr.service - curl http://localhost:8983/solr/collection1/schema/fields - ``` - -1. Reindex Solr. - - For details, see https://guides.dataverse.org/en/9260-solr930/admin/solr-search-index.html - - ``` - curl http://localhost:8080/api/admin/index - ``` - -1. If you have custom metadata blocks installed, you must update your Solr schema.xml to include your custom fields. - - For details, please see https://guides.dataverse.org/en/9260-solr930/admin/metadatacustomization.html#updating-the-solr-schema - - At a high level you will be copying custom fields from the output of http://localhost:8080/api/admin/index/solr/schema or using a script to automate this. diff --git a/doc/release-notes/9340-payara5to6.md b/doc/release-notes/9340-payara5to6.md deleted file mode 100644 index 68162ef7598..00000000000 --- a/doc/release-notes/9340-payara5to6.md +++ /dev/null @@ -1,132 +0,0 @@ -## Upgrade from Payara 5 to Payara 6 - -1. Download Payara 6.2023.8 as of this writing: - - `curl -L -O https://nexus.payara.fish/repository/payara-community/fish/payara/distributions/payara/6.2023.8/payara-6.2023.8.zip` - -1. Unzip it to /usr/local (or your preferred location): - - `sudo unzip payara-6.2023.8.zip -d /usr/local/` - -1. Change ownership of the unzipped Payara to your "service" user ("dataverse" by default): - - `sudo chown -R dataverse /usr/local/payara6` - -1. Undeploy Dataverse (if deployed, using the unprivileged service account. Version 5.14 is assumed in the example below): - - `sudo -u dataverse /usr/local/payara5/bin/asadmin list-applications` - - `sudo -u dataverse /usr/local/payara5/bin/asadmin undeploy dataverse-5.14` - -1. Stop Payara 5: - - `sudo -u dataverse /usr/local/payara5/bin/asadmin stop-domain` - -1. Copy Dataverse-related lines from Payara 5 to Payara 6 domain.xml: - - `sudo -u dataverse cp /usr/local/payara6/glassfish/domains/domain1/config/domain.xml /usr/local/payara6/glassfish/domains/domain1/config/domain.xml.orig` - - `sudo egrep 'dataverse|doi' /usr/local/payara5/glassfish/domains/domain1/config/domain.xml > lines.txt` - - `sudo vi /usr/local/payara6/glassfish/domains/domain1/config/domain.xml` - - The lines will appear in two sections, examples shown below (but your content will vary). - - Section 1: system properties (under ``) - - ``` - - - - - - ``` - - Note: if you used the Dataverse installer, you won't have a `dataverse.db.password` property. See "Create password aliases" below. - - Section 2: JVM options (under ``, the one under ``, not under ``) - - ``` - -Ddataverse.files.directory=/usr/local/dvn/data - -Ddataverse.files.file.type=file - -Ddataverse.files.file.label=file - -Ddataverse.files.file.directory=/usr/local/dvn/data - -Ddataverse.rserve.host=localhost - -Ddataverse.rserve.port=6311 - -Ddataverse.rserve.user=rserve - -Ddataverse.rserve.password=rserve - -Ddataverse.auth.password-reset-timeout-in-minutes=60 - -Ddataverse.timerServer=true - -Ddataverse.fqdn=dev1.dataverse.org - -Ddataverse.siteUrl=https://dev1.dataverse.org - -Ddataverse.files.storage-driver-id=file - -Ddoi.username=testaccount - -Ddoi.password=notmypassword - -Ddoi.baseurlstring=https://mds.test.datacite.org/ - -Ddoi.dataciterestapiurlstring=https://api.test.datacite.org - ``` - -1. Check the `Xmx` setting in `/usr/local/payara6/glassfish/domains/domain1/config/domain.xml`. (The one under ``, where you put the JVM options, not the one under ``.) Note that there are two such settings, and you want to adjust the one in the stanza with Dataverse options. This sets the JVM heap size; a good rule of thumb is half of your system's total RAM. You may specify the value in MB (`8192m`) or GB (`8g`). - -1. Copy jhove.conf and jhoveConfig.xsd from Payara 5, edit and change payara5 to payara6 - - `sudo cp /usr/local/payara5/glassfish/domains/domain1/config/jhove* /usr/local/payara6/glassfish/domains/domain1/config/` - - `sudo chown dataverse /usr/local/payara6/glassfish/domains/domain1/config/jhove*` - - `sudo -u dataverse vi /usr/local/payara6/glassfish/domains/domain1/config/jhove.conf` - -1. Copy logos from Payara 5 to Payara 6 - - These logos are for collections (dataverses). - - `sudo -u dataverse cp -r /usr/local/payara5/glassfish/domains/domain1/docroot/logos /usr/local/payara6/glassfish/domains/domain1/docroot` - -1. If you are using Make Data Count (MDC), edit :MDCLogPath - - Your `:MDCLogPath` database setting might be pointing to a Payara 5 directory such as `/usr/local/payara5/glassfish/domains/domain1/logs`. If so, edit this to be Payara 6. You'll probably want to copy your logs over as well. - -1. Update systemd unit file (or other init system) from `/usr/local/payara5` to `/usr/local/payara6`, if applicable. - -1. Start Payara: - - `sudo -u dataverse /usr/local/payara6/bin/asadmin start-domain` - -1. Create a Java mail resource, replacing "localhost" for mailhost with your mail relay server, and replacing "localhost" for fromaddress with the FQDN of your Dataverse server: - - `sudo -u dataverse /usr/local/payara6/bin/asadmin create-javamail-resource --mailhost "localhost" --mailuser "dataversenotify" --fromaddress "do-not-reply@localhost" mail/notifyMailSession` - -1. Create password aliases for your database, rserve and datacite jvm-options, if you're using them: - - ``` - $ echo "AS_ADMIN_ALIASPASSWORD=yourDBpassword" > /tmp/dataverse.db.password.txt - $ sudo -u dataverse /usr/local/payara6/bin/asadmin create-password-alias --passwordfile /tmp/dataverse.db.password.txt - Enter the value for the aliasname operand> dataverse.db.password - Command create-password-alias executed successfully. - ``` - - You'll want to perform similar commands for `rserve_password_alias` and `doi_password_alias` if you're using Rserve and/or Datacite. - -1. Enable workaround for FISH-7722: - - The following workaround is for https://github.com/payara/Payara/issues/6337 - - `sudo -u dataverse /usr/local/payara6/bin/asadmin create-jvm-options --add-opens=java.base/java.io=ALL-UNNAMED` - -1. Create the network listener on port 8009 - - `sudo -u dataverse /usr/local/payara6/bin/asadmin create-network-listener --protocol http-listener-1 --listenerport 8009 --jkenabled true jk-connector` - -1. Deploy the Dataverse 6.0 warfile: - - `sudo -u dataverse /usr/local/payara6/bin/asadmin deploy /path/to/dataverse-6.0.war` - -1. Check that you get a version number from Dataverse: - - `curl http://localhost:8080/api/info/version` - -1. Perform one final Payara restart to ensure that timers are initialized properly: - - `sudo -u dataverse /usr/local/payara6/bin/asadmin stop-domain` - - `sudo -u dataverse /usr/local/payara6/bin/asadmin start-domain` diff --git a/doc/release-notes/9782-juni5-transition.md b/doc/release-notes/9782-juni5-transition.md deleted file mode 100644 index b7ffcc0de0d..00000000000 --- a/doc/release-notes/9782-juni5-transition.md +++ /dev/null @@ -1,7 +0,0 @@ -# Migrating all test to JUnit 5 -With this release, we transition all of our test cases (see `src/test/`) to use JUnit 5 only. -Moving forward from JUnit 4 will allow writing tests in more concise and easier ways. -The tests themselves have not been altered, but updated to match JUnit 5 ways. -They have not been extended or dropped coverage; this is mostly a preparation of things to come in the future. -If you are writing tests in JUnit 4 in your feature branches, you need to migrate. -The development guides section of testing has been updated as well. diff --git a/doc/release-notes/9812-archiver-warnings.md b/doc/release-notes/9812-archiver-warnings.md deleted file mode 100644 index 716223b3f46..00000000000 --- a/doc/release-notes/9812-archiver-warnings.md +++ /dev/null @@ -1,7 +0,0 @@ -# Potential Archiver Incompatibilities with Payara6 -The Google Cloud and DuraCloud Archivers (see https://guides.dataverse.org/en/latest/installation/config.html#bagit-export) may not work in v6.0. -This is due to their dependence on libraries that include classes in javax.* packages that are no longer available. -If these classes are actually used when the archivers run, the archivers would fail. -As these two archivers require additional setup, they have not been tested in v6.0. -Community members using these archivers or considering their use are encouraged to test them with v6.0 and report any errors and/or provide fixes for them that can be included in future releases. - diff --git a/doc/release-notes/9838-rm-vagrant.md b/doc/release-notes/9838-rm-vagrant.md deleted file mode 100644 index 910f2e0b2f0..00000000000 --- a/doc/release-notes/9838-rm-vagrant.md +++ /dev/null @@ -1 +0,0 @@ -Vagrant has been removed. See #9838. diff --git a/doc/release-notes/9860-6.0-release-notes.md b/doc/release-notes/9860-6.0-release-notes.md new file mode 100644 index 00000000000..9d0e167901d --- /dev/null +++ b/doc/release-notes/9860-6.0-release-notes.md @@ -0,0 +1,282 @@ +# Dataverse 6.0 + +This is a platform upgrade release. Payara, Solr, and Java have been upgraded. No features have been added to the Dataverse software itself. Only a handful of bugs were fixed. + +Thank you to all of the community members who contributed code, suggestions, bug reports, and other assistance across the project! + +## Release Highlights + +### Payara 6 + +Payara has been upgraded to version 6.2023.8. For details, see PR #9685 and PR #9795. + +Please note that Payara Community 5 has reached [end of life](https://www.payara.fish/products/payara-platform-product-lifecycle/). + +### Solr 9 + +Solr has been upgraded to version 9.3.0. For details, see PR #9787. + +### Java 17 + +Java has been upgraded to version 17. For details, see PR #9764. + + +## Installation + +If this is a new installation, please follow our [Installation Guide](https://guides.dataverse.org/en/latest/installation/). Please don't be shy about [asking for help](https://guides.dataverse.org/en/latest/installation/intro.html#getting-help) if you need it! + +If you would like to be on our [map of Dataverse installations](https://dataverse.org/installations) around the world, please [create an issue](https://github.com/IQSS/dataverse-installations/issues) or email us at support@dataverse.org! + +## Upgrade Instructions + +Upgrading requires a maintenance window and downtime. Please plan ahead, create backups of your database, etc. + +These instructions assume that you've already upgraded through all the 5.x releases and are now running Dataverse 5.14. + +### Upgrade from Java 11 to Java 17 + +Java 17 is now required for Dataverse. Solr can run under Java 11 or Java 17 but the latter is recommended. In preparation for the Java upgrade, stop both Dataverse/Payara and Solr. + +1. Undeploy Dataverse, if deployed, using the unprivileged service account. + + `sudo -u dataverse /usr/local/payara5/bin/asadmin list-applications` + + `sudo -u dataverse /usr/local/payara5/bin/asadmin undeploy dataverse-5.14` + +1. Stop Payara 5. + + `sudo -u dataverse /usr/local/payara5/bin/asadmin stop-domain` + +1. Stop Solr 8. + + `sudo systemctl stop solr.service` + +1. Install Java 17. + + Assuming you are using RHEL or a derivative such as Rocky Linux: + + `sudo yum install java-17-openjdk` + +1. Set Java 17 as the default. + + Assuming you are using RHEL or a derivative such as Rocky Linux: + + `sudo alternatives --config java` + +1. Test that Java 17 is the default. + + `java -version` + +### Upgrade from Payara 5 to Payara 6 + +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. + +1. Download Payara 6.2023.8. + + `curl -L -O https://nexus.payara.fish/repository/payara-community/fish/payara/distributions/payara/6.2023.8/payara-6.2023.8.zip` + +1. Unzip it to /usr/local (or your preferred location). + + `sudo unzip payara-6.2023.8.zip -d /usr/local/` + +1. Change ownership of the unzipped Payara to your "service" user ("dataverse" by default). + + `sudo chown -R dataverse /usr/local/payara6` + +1. Undeploy Dataverse, if deployed, using the unprivileged service account. + + `sudo -u dataverse /usr/local/payara5/bin/asadmin list-applications` + + `sudo -u dataverse /usr/local/payara5/bin/asadmin undeploy dataverse-5.14` + +1. Stop Payara 5, if running. + + `sudo -u dataverse /usr/local/payara5/bin/asadmin stop-domain` + +1. Copy Dataverse-related lines from Payara 5 to Payara 6 domain.xml. + + `sudo -u dataverse cp /usr/local/payara6/glassfish/domains/domain1/config/domain.xml /usr/local/payara6/glassfish/domains/domain1/config/domain.xml.orig` + + `sudo egrep 'dataverse|doi' /usr/local/payara5/glassfish/domains/domain1/config/domain.xml > lines.txt` + + `sudo vi /usr/local/payara6/glassfish/domains/domain1/config/domain.xml` + + The lines will appear in two sections, examples shown below (but your content will vary). + + Section 1: system properties (under ``) + + ``` + + + + + + ``` + + Note: if you used the Dataverse installer, you won't have a `dataverse.db.password` property. See "Create password aliases" below. + + Section 2: JVM options (under ``, the one under ``, not under ``) + + ``` + -Ddataverse.files.directory=/usr/local/dvn/data + -Ddataverse.files.file.type=file + -Ddataverse.files.file.label=file + -Ddataverse.files.file.directory=/usr/local/dvn/data + -Ddataverse.rserve.host=localhost + -Ddataverse.rserve.port=6311 + -Ddataverse.rserve.user=rserve + -Ddataverse.rserve.password=rserve + -Ddataverse.auth.password-reset-timeout-in-minutes=60 + -Ddataverse.timerServer=true + -Ddataverse.fqdn=dev1.dataverse.org + -Ddataverse.siteUrl=https://dev1.dataverse.org + -Ddataverse.files.storage-driver-id=file + -Ddoi.username=testaccount + -Ddoi.password=notmypassword + -Ddoi.baseurlstring=https://mds.test.datacite.org/ + -Ddoi.dataciterestapiurlstring=https://api.test.datacite.org + ``` + +1. Check the `Xmx` setting in `domain.xml`. + + Under `/usr/local/payara6/glassfish/domains/domain1/config/domain.xml`, check the `Xmx` setting under ``, where you put the JVM options, not the one under ``. Note that there are two such settings, and you want to adjust the one in the stanza with Dataverse options. This sets the JVM heap size; a good rule of thumb is half of your system's total RAM. You may specify the value in MB (`8192m`) or GB (`8g`). + +1. Copy `jhove.conf` and `jhoveConfig.xsd` from Payara 5, edit and change `payara5` to `payara6`. + + `sudo cp /usr/local/payara5/glassfish/domains/domain1/config/jhove* /usr/local/payara6/glassfish/domains/domain1/config/` + + `sudo chown dataverse /usr/local/payara6/glassfish/domains/domain1/config/jhove*` + + `sudo -u dataverse vi /usr/local/payara6/glassfish/domains/domain1/config/jhove.conf` + +1. Copy logos from Payara 5 to Payara 6. + + These logos are for collections (dataverses). + + `sudo -u dataverse cp -r /usr/local/payara5/glassfish/domains/domain1/docroot/logos /usr/local/payara6/glassfish/domains/domain1/docroot` + +1. If you are using Make Data Count (MDC), edit :MDCLogPath. + + Your `:MDCLogPath` database setting might be pointing to a Payara 5 directory such as `/usr/local/payara5/glassfish/domains/domain1/logs`. If so, edit this to be Payara 6. You'll probably want to copy your logs over as well. + +1. Update systemd unit file (or other init system) from `/usr/local/payara5` to `/usr/local/payara6`, if applicable. + +1. Start Payara. + + `sudo -u dataverse /usr/local/payara6/bin/asadmin start-domain` + +1. Create a Java mail resource, replacing "localhost" for mailhost with your mail relay server, and replacing "localhost" for fromaddress with the FQDN of your Dataverse server. + + `sudo -u dataverse /usr/local/payara6/bin/asadmin create-javamail-resource --mailhost "localhost" --mailuser "dataversenotify" --fromaddress "do-not-reply@localhost" mail/notifyMailSession` + +1. Create password aliases for your database, rserve and datacite jvm-options, if you're using them. + + `echo "AS_ADMIN_ALIASPASSWORD=yourDBpassword" > /tmp/dataverse.db.password.txt` + + `sudo -u dataverse /usr/local/payara6/bin/asadmin create-password-alias --passwordfile /tmp/dataverse.db.password.txt` + + When you are prompted "Enter the value for the aliasname operand", enter `dataverse.db.password` + + You should see "Command create-password-alias executed successfully." + + You'll want to perform similar commands for `rserve_password_alias` and `doi_password_alias` if you're using Rserve and/or DataCite. + +1. Enable workaround for FISH-7722. + + The following workaround is for https://github.com/payara/Payara/issues/6337 + + `sudo -u dataverse /usr/local/payara6/bin/asadmin create-jvm-options --add-opens=java.base/java.io=ALL-UNNAMED` + +1. Create the network listener on port 8009. + + `sudo -u dataverse /usr/local/payara6/bin/asadmin create-network-listener --protocol http-listener-1 --listenerport 8009 --jkenabled true jk-connector` + +1. Deploy the Dataverse 6.0 war file. + + `sudo -u dataverse /usr/local/payara6/bin/asadmin deploy /path/to/dataverse-6.0.war` + +1. Check that you get a version number from Dataverse. + + This is just a sanity check that Dataverse has been deployed properly. + + `curl http://localhost:8080/api/info/version` + +1. Perform one final Payara restart to ensure that timers are initialized properly. + + `sudo -u dataverse /usr/local/payara6/bin/asadmin stop-domain` + + `sudo -u dataverse /usr/local/payara6/bin/asadmin start-domain` + +### Upgrade from Solr 8 to 9 + +Solr has been upgraded to Solr 9. You must install Solr fresh and reindex. You cannot use your old `schema.xml` because the format has changed. + +The instructions below are copied from https://guides.dataverse.org/en/6.0/installation/prerequisites.html#installing-solr and tweaked a bit for an upgrade scenario. + +We assume that you already have a user called "solr" (from the instructions above), added during your initial installation of Solr. We also assume that you have already stopped Solr 8 as explained in the instructions above about upgrading Java. + +1. Become the "solr" user and then download and configure Solr. + + `su - solr` + + `cd /usr/local/solr` + + `wget https://archive.apache.org/dist/solr/solr/9.3.0/solr-9.3.0.tgz` + + `tar xvzf solr-9.3.0.tgz` + + `cd solr-9.3.0` + + `cp -r server/solr/configsets/_default server/solr/collection1` + +1. Unzip "dvinstall.zip" from this release. Unzip it into /tmp. Then copy the following files into place. + + `cp /tmp/dvinstall/schema*.xml /usr/local/solr/solr-9.3.0/server/solr/collection1/conf` + + `cp /tmp/dvinstall/solrconfig.xml /usr/local/solr/solr-9.3.0/server/solr/collection1/conf` + +1. A Dataverse installation requires a change to the jetty.xml file that ships with Solr. + + Edit `/usr/local/solr/solr-9.3.0/server/etc/jetty.xml`, increasing `requestHeaderSize` from `8192` to `102400` + +1. Tell Solr to create the core "collection1" on startup. + + `echo "name=collection1" > /usr/local/solr/solr-9.3.0/server/solr/collection1/core.properties` + +1. Update your init script. + + Your init script may be located at `/etc/systemd/system/solr.service`, for example. Update the path to Solr to be `/usr/local/solr/solr-9.3.0`. + +1. Start Solr using your init script and check collection1. + + The collection1 check below should print out fields Dataverse uses like "dsDescription". + + `systemctl start solr.service` + + `curl http://localhost:8983/solr/collection1/schema/fields` + +1. Reindex Solr. + + For details, see https://guides.dataverse.org/en/6.0/admin/solr-search-index.html but here is the reindex command: + + `curl http://localhost:8080/api/admin/index` + +1. If you have custom metadata blocks installed, you must update your Solr `schema.xml` to include your custom fields. + + For details, please see https://guides.dataverse.org/en/6.0/admin/metadatacustomization.html#updating-the-solr-schema + + At a high level you will be copying custom fields from the output of http://localhost:8080/api/admin/index/solr/schema or using a script to automate this. + +## Potential Archiver Incompatibilities with Payara 6 + +The [Google Cloud and DuraCloud archivers](https://guides.dataverse.org/en/5.14/installation/config.html#bagit-export) may not work in Dataverse 6.0. + +This is due to the archivers' dependence on libraries that include classes in `javax.* packages` that are no longer available. If these classes are actually used when the archivers run, the archivers would fail. As these two archivers require additional setup, they have not been tested in 6.0. Community members using these archivers or considering their use are encouraged to test them with 6.0 and report any errors and/or provide fixes for them that can be included in future releases. + +## Complete List of Changes + +For the complete list of code changes in this release, see the [6.0 Milestone](https://github.com/IQSS/dataverse/milestone/109?closed=1) in GitHub. + +## Getting Help + +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 support@dataverse.org. \ No newline at end of file