Read the Upgrade Guide
The product developers publish upgrade guides each time they release a new version of the product. They often use these upgrade guides to mention things that have changes in the code: new APIS, deprecations, new libraries, etc. Read all the upgrades between the version you are currently running on and the one you wish to move to.
- JIRA Upgrade Guides
- Confluence Release Notes (Upgrade guides are attached to each release notes page)
- Bamboo Upgrade Guides
- Crowd Upgrade Guides
- Fisheye Upgrade Guides
- Crucible Upgrade Guides
Upgrade your POM and recompile the plugin against the new product.version
Change your project's POM so that you specify the correct target version. For example, you might change the property confluence.version from 2.4.5 to 2.7.1. Once you've done this, do a mvn clean compile to see if anything has been broken.
Watch for deprecation warnings
Watch for deprecation warnings during compilation or in your IDE. It's a good idea to correct these warnings as early as possible.
Run the test suite
Be sure you run the full test-suite over your newly-compiled plugin. (You do have a test suite, don't you?)
Test your plugin's functionality manually.
Be sure to test your plugin functionality manually inside a running instance of the product.
Test the product upgrade (including your plugin) with a backup copy of your data
If at all possible, we strongly recommend attempting the upgrade in a test-bed before doing so with your live system. You'll want to run the upgrade and install the new plugin, making sure that all the data is upgraded properly, that the new plugin works as expected, that there are not unexpected errors in the logs, etc.
Backup all your data
This is critical. You must perform a full backup of your data (database, attachments, indexes, confluence.home, etc) before attempting an upgrade.
Perform the real upgrade
Perform the real upgrade with your real data and install your new plugin. Test everything again before you bring your system back online.
