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
Updating Alpaca¶
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"/>
with
<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:
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.0
version of theislandora
module. 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
ii. It can also be done through the UI atmkdir /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/1time
/admin/config/development/configuration/single/import
4. Update Crayfish to2.0.0
1.cd /var/www/html/Crayfish
2.git fetch origin --tags
3.git checkout 2.0.0
6. Run composer install for Milliner such ascd /var/www/html/Crayfish/Milliner && composer install
7. Run composer install for Recast such ascd /var/www/html/Crayfish/Recast && composer install
8. Update the Recast config 1.cd /var/www/html/Crayfish/Recast/cfg
2. openconfig.yaml
3. Removegemini_base_url
4. Updatebase_url
infedora_resource
section. It should contain a value something likehttp://localhost:8080/fcrepo/rest
8. Clear your cache in Drupal using Drush (cd /var/www/html/drupal && drush cr
) or the UI. 9. Restart apachesudo systemctl restart apache2
9. 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/Gemini
2. Remove the gemini database and the associated mysql user 3. Remove the vhost file for gemini:sudo rm /etc/apache2/conf-enabled/Gemini.conf
4. Restart apache:sudo systemctl restart apache2
Adding Captions¶
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.0
version 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_defaults
using the Features UI (recommended) or by copying them into a temporary directory and usingdrush
to do a partial config import.- core.entity_form_display.media.audio.default
- core.entity_form_display.media.video.default
- core.entity_view_display.media.audio.default
- core.entity_view_display.media.audio.source
- core.entity_view_display.media.video.default
- core.entity_view_display.media.video.source
- field.field.media.audio.field_track
- field.field.media.video.field_track
- field.storage.media.field_track
- Clear your drupal cache
drush cr
- You should now see a "track" field on audio and video media objects