Islandora 2.0.0 Release Notes / Upgrade Instructions¶
Update to PHP 7.4¶
Upstream dependencies have forced us to upgrade PHP to 7.4. How to do this varies by operating system, but for Ubuntu 18.04 the following will work:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.4
sudo apt install php7.4-curl php7.4-xml php7.4-gd php7.4-imap php7.4-mbstring php7.4-mysql
Here's the steps to update Alpaca code in general. None of this is specific to this release, it's just the process.
Move your blueprint config out of the deploy directory temporarily
mv /opt/karaf/deploy/ca.islandora.* /opt/karaf
Now we'll uninstall the old features and install the new ones. We're assuming you're currently on 1.0.3 and want to update to 1.0.5, but you may be on an older version. Keep that in mind when copy/pasting these commands.
/opt/karaf/bin/client "feature:uninstall islandora-connector-derivative"
/opt/karaf/bin/client "feature:uninstall islandora-indexing-fcrepo"
/opt/karaf/bin/client "feature:uninstall islandora-indexing-triplestore"
/opt/karaf/bin/client "feature:uninstall islandora-http-client"
/opt/karaf/bin/client "feature:repo-remove mvn:ca.islandora.alpaca/islandora-karaf/1.0.3/xml/features"
/opt/karaf/bin/client "feature:repo-add mvn:ca.islandora.alpaca/islandora-karaf/1.0.5/xml/features"
/opt/karaf/bin/client "feature:install islandora-http-client"
/opt/karaf/bin/client "feature:install islandora-indexing-triplestore"
/opt/karaf/bin/client "feature:install islandora-indexing-fcrepo"
/opt/karaf/bin/client "feature:install islandora-connector-derivative"
Move the blueprint files back to the
deploy folder to deploy the derivative routes
mv /opt/karaf/ca.islandora.* /opt/karaf/deploy
You can check that everything is working with
/opt/karaf/bin/client "la | grep islandora"
If all the bundles have a state of
Active, then you're all good!
Configuring Alpaca Timeouts¶
Some users have experienced timeouts when generating derivatives. We've added the ability to set the timeout length to your routes. In order to do so, edit each
ca.islandora.* file in the
deploy directory and replace
<bean id="http" class="org.apache.camel.component.http4.HttpComponent"/> <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
<bean id="requestConfigConfigurer" class="ca.islandora.alpaca.connector.derivative.RequestConfigConfigurer"> <property name="connectionRequestTimeoutMs" value="10000"/> <property name="connectTimeoutMs" value="10000"/> <property name="socketTimeoutMs" value="10000"/> </bean> <bean id="http" class="org.apache.camel.component.http4.HttpComponent"> <property name="httpClientConfigurer" ref="requestConfigConfigurer"/> </bean> <bean id="https" class="org.apache.camel.component.http4.HttpComponent"> <property name="httpClientConfigurer" ref="requestConfigConfigurer"/> </bean>
You can set the timeout values to whatever you like, we're using 10000 in this example.
Update Drupal core and modules¶
To get the latest Drupal code, edit your
composer.json file and change the
islandora/* packages versions' to the latest (
2.0.0 for most). Then run the following command to update them, your dependencies, and Drupal core:
sudo php -d memory_limit=-1 `which composer` update --with-all-dependencies
Afterwards, you need to run
drush updb or visit
/update.php in your browser to trigger the database updates. This includes important changes, like stripping out configuration we no longer use as well as a fix to support large media (>2.2 GB). The database updates may take a while depending on how many media you have.
Update Crayfish and Remove Gemini¶
We removed the Gemini microservice and pushed its code into Crayfish-Commons so that it can be used by the other microservices and Drupal modules. Once you've updated your Drupal installation, Gemini will no longer be utilized. It will still, however, need to be removed. It is recommended to test this method in a staging/development environment before running in your production environment.
- Make sure you have the
2.0.0version of the
islandoramodule. If you followed the steps above to update Drupal core and its modules, you'll have this.
Import two new Islandora views
i. This can be done by coping the views into a new directory and using drush such as
mkdir /var/www/html/drupal/config/1time cp /var/www/html/drupal/web/modules/contrib/islandora/modules/islandora_core_feature/config/install/views.view.all_taxonomy_terms.yml /var/www/html/drupal/config/1time/ cp /var/www/html/drupal/web/modules/contrib/islandora/modules/islandora_core_feature/config/install/views.view.non_fedora_files.yml /var/www/html/drupal/config/1time/ drush config:import --partial --source /var/www/html/drupal/config/1timeii. It can also be done through the UI at
/admin/config/development/configuration/single/import4. Update Crayfish to
git fetch origin --tags3.
git checkout 2.0.06. Run composer install for Milliner such as
cd /var/www/html/Crayfish/Milliner && composer install7. Run composer install for Recast such as
cd /var/www/html/Crayfish/Recast && composer install8. Update the Recast config 1.
cd /var/www/html/Crayfish/Recast/cfg2. open
fedora_resourcesection. It should contain a value something like
http://localhost:8080/fcrepo/rest8. Clear your cache in Drupal using Drush (
cd /var/www/html/drupal && drush cr) or the UI. 9. Restart apache
sudo systemctl restart apache29. Test to make sure you can view existing objects in Fedora by going to the Drupal UI and clicking one of the Fedora URI links 10. Create a new object and make sure it persists to Fedora and the Fedora URI link resolves correctly. Make sure that no new entries get added to Gemini. 11. Once you've confirmed everything is working as expected, you can then remove Gemini like 1.
rm /var/www/html/Crayfish/Gemini2. Remove the gemini database and the associated mysql user 3. Remove the vhost file for gemini:
sudo rm /etc/apache2/conf-enabled/Gemini.conf4. Restart apache:
sudo systemctl restart apache2
You can now add captions to A/V content! If you are starting with a new installation, there's nothing to do, but if you have an existing install, here's how to configure Drupal to display captions/
- Make sure you have the
2.0.0version of islandora and islandora_defaults. If you followed the steps above to update Drupal core and its modules, you'll have this.
- Selectively import the following configurations from
islandora_defaultsusing the Features UI (recommended) or by copying them into a temporary directory and using
drushto do a partial config import.
- Clear your drupal cache
- You should now see a "track" field on audio and video media objects