Hi all,
Thanks for sharing this, Jim!
For anyone finding this thread without prior context:
- We include 2 installation methods in the AtoM documentation
- Option 1 is to install from the downloadable tarball that we package and include on the Downloads page of the AtoM website
- Option 2 is to install directly from the GitHub repository where we develop and maintain AtoM's code
- As Darryl notes, I have previously pointed out to users asking for in-place upgrade options that if you originally followed Option 2 when installing AtoM, there is a path to upgrade in place - but for minor releases only (i.e. 2.7.1 and 2.7.2 would be minor releases; 2.6 and 2.7 would be major releases)
- Currently, beyond previous user forum posts, this second method of minor release upgrading is not officially documented
In light of this:
Jim: per your suggestion, I have filed the following issue ticket for the documentation, so we can consider including in-place upgrade instructions for minor versions in the official docs, when users have previously installed from the code repository:
At present as Artefactual restructures a bit and tries to make new software development possible, I'm actually not working on the AtoM project very much right now (our wonderful Maintainers are taking on the bulk of the work), but I will try to find some time to add something like this soon if I'm able.
In the meantime, some notes:
- ALWAYS make a backup of your data before proceeding with an upgrade like this - or really with most things I suggest in the forum, since I am not actually a system administrator or a developer and have been wrong before!
- As noted, the upgrade task should not be required for minor release upgrades. We have traditionally avoided including database schema migrations (which is what the upgrade task handles) or dependency upgrades in point releases, and so far it seems that the Maintainers intend to continue with this pattern. That said, running the upgrade task should not harm anything if you are already on the correct schema version - and might actually catch issues if you forgot that step last upgrade and hadn't yet discovered the issues it may be causing behind the scene
- Afterwards, you will at minimum want to clear the application cache, restart PHP-FPM and memcached, and repopulate the search index. Links to all of these commands can be found from the Troubleshooting page in the docs.
- Nginx should not need a restart in this case, but tip for Jim: if you use reload instead of restart with Nginx then I believe there is no downtime for end users
- For the job scheduler restart, just remember that the atom-worker now has a fail count limit to prevent it from getting caught in an endless loop of failing and trying to restart. After 3 restarts, the fail-counter must be manually reset with the following command, as noted in the documentation here:
- sudo systemctl reset-failed atom-worker
- Then you can restart
- You can always run sudo systemctl status atom-worker to see if the restart was successful or not
- Resetting the fail counter shouldn't hurt anything, so if scripting minor upgrade processes, this might be a good thing to include, to avoid unexpected failures
- Regenerating derivatives should not be required in a minor release. As far as I can recall, this should not actually be required for any release UNLESS we do something like replace or upgrade some of the media players (as we did with the MediaElements player), or we change the default size of one of the derivatives (as was done in the move from ICA-AtoM to AtoM 2.0). If such a change does occur, then my hope is that a) the Maintainers would put such a change in a point release, and b) we would make it clear in the release notes that such a change is included. Finally, if this were needed but not initially run, it would not require the upgrade to be restarted - you'd just notice your derivatives look weird, run the command, and be done (hopefully!)
- In some cases, you may need to recompile your theme - if any of the bug fixes or minor enhancements change UI elements, for example. If you followed the Option 2 installation instructions then the dependencies to recompile the themes should already be in place, so you will just need to run the commands:
- sudo make -C /usr/share/nginx/atom/plugins/arDominionPlugin
- sudo make -C /usr/share/nginx/atom/plugins/arArchivesCanadaPlugin
- [repeat again if you have a custom theme, using your own custom theme plugin path and name]
- Keep in mind that these commands are for Bootstrap 2 themes, and may change in version 2.9 and beyond, when Bootstrap 2 is fully removed. The replacement Bootstrap 5 themes use different dependencies - the installation docs for 2.8 (where BS2 will still be included, but deprecated) should reflect this.
- As a general reminder, it shouldn't matter for minor releases, but don't forget that we have started trying to include suggestions and reminders for users with custom themes in the upgrade docs (here). Always good to double-check this for any upgrade involving a custom theme!
That's all I can think of for now... hope this helps!