Safe sequence
Read the changelog and breaking changes
Verify the supported upgrade path
Back up database, configuration and uploads
Test the same package in staging
Define a maintenance window and rollback criteria
Verify migrations, login, email, uploads, downloads and backups
Do not
Upgrade without a database copy
Overwrite config.json or data with package files
Use releases from unofficial URLs
Manually alter the database to force a migration through