Project: bamboo
Issue BAM-7531: Remove pre-2.0 upgrade tasks and provide protection against upgrade from pre 2.0 version
Krystian: In the history of Bamboo we had several versions which were required to be used to upgrade to the newer version. Ie. to upgrade from Bamboo 1.0 to Bamboo 2.1 you need to execute upgrades to 1.1.2, 1.2 and 2.0. The latest of this "milestone-upgrade" versions is 2.0. This is why I propose to drop all the upgrade tasks which were introduced by pre-2.0 versions. The main benefit would be dropping the last usages of old and usually deprecated APIs According to https://extranet.atlassian.com/pages/viewpage.action?pageId=636158922 it means all pre 801 upgrade tasks (18 of them) Przemek: + make it impossible to use new Bamboo version to upgrade from build number of pre-2.0.x version. That check should have been included in 2.0.x anyway... Marek: +1, those upgrade tasks are in sources too long. For historical stuff we got subversion Anton: Yes, if we do this, Bamboo *must* lockup upon starting if it detects that it is being brought up against a version which is before 2.0. We should also stop the user importing XML backups from pre 2.0 versions. In all these cases the user should be given a very clear error message and no data should be changed. Can I ask why do you bring this up now? What caused you to do this? If we do this, will this simplify some other work we need to do for 3.0? How long will the work of stopping a pre 2.0 upgrade/import take? Krystian: Adding protection against upgrade/import from pre-2.0 version is rather simple and would require ~4h of work (including testing). I'm bringing this now cause last week Przemek has spotted a small bug which was caused by internal use of deprecated API (BuildManager). I thought that releasing 3.0 is a good moment to drop this (and maybe other) legacy APIs which were deprecated in 2.7 and previous versions. A lot of uses of deprecated API is buried in old upgrade tasks which led to idea I presented in my original email. This will probably not simplify other work for 3.0 but has a potential to help us find forgotten usages of legacy code that should have been updated some time ago.
Story points: 1