This Early Access Program release contains the full scope of breaking changes in Bamboo 9.0. Please find all of them listed here.
Thanks for the info! @MartynaWojtas
Was removing this method on purpose? (9.0.0-rc1)
value getRuntimeArtifactIds is not a member of object com.atlassian.bamboo.plugin.ArtifactDownloaderTaskConfigurationHelper
What should be used instead?
Yes, it is intentional change. We have modified the ArtifactDefinition object to support multiple copy patterns and coding artifact transfer data as map of strings wasn’t maintainable to begin with. You should now use RequestedArtifacts object instead.
Here’s an example of plugin change: atlassian / bamboo-scp-plugin / commit / 5f9124c525b1 — Bitbucket
Thanks a lot for the quick response and the example.
Will check it.
@mgardias - can you clarify the involved version range(s) for this change, i.e. from which version onward can we use the new RequstedArtifacts object approach?
It’s only available in 9.0
Let me add some more background to this: in 9.0 we are adding a feature to have multiple copy patterns as well as exclusion patterns in ArtifactDefinition. This requires that new data to be represented in runtime data of ArtifactDownloaderTask. This used to be done as Map<String, String>, which is brittle and error prone. Keeping the old ‘API’ could result is unexpected behaviour as the underlying data would change but Map<String, String> is still a Map<String, String>.
Having that in mind I decided to change the way we transfer this data into more future-proof and maintainable way: using actual objects. That unfortunately means breaking backward compatibility, but, as I wrote above, backward compatibility would be questionable anyway if we kept the old API and one could easily miss the change at compile time.
Thanks for the explanation.
Is that change documented somewhere?
Has Bamboo something similar to: https://developer.atlassian.com/server/bitbucket/reference/api-changelog/?
That would be very helpful for app developers.
That’s helpful feedback - thank you! We’ve added the information about this change to this document, so all the important information on 9.0 is in one place: Preparing for Bamboo 9.0 | Bamboo Data Center and Server 8.2 | Atlassian Documentation
That is fully understandable, though it implies that we have to either add some OSGi/reflection ‘magic’ to our app, or switch to building and shipping separate binaries for the 8.x/9.x Bamboo targets.
There is no problem doing that in principle, and we have done both in the past for different apps - however, it would be nice to have some more prominent warning and a bit more lead time for such breaking changes in the future (even now, the information added for this to Preparing for Bamboo 9.0 reads more like a “new/extended feature” to adapt to and does not exactly emphasize the breaking nature of this change).
Thank you for your feedback! We will adjust the documentation to make sure the breaking nature of this change is highlighted. One of the reasons we do EAPs is that we can never be 100% sure about the nature and impact of certain changes. This one, theoretically, shouldn’t have been breaking as it wasn’t technically an API change. However, it turned out that in practice it was a breaking change. And I don’t mean it as an excuse, because I wholeheartedly agree that we should always try to improve our process in order to deliver best quality (be it product or its documentation). It’s just that certain problems are not obvious and this was one of them. If that would be helpful we could extend the EAP duration for the next platform release.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.