Hi @MichaelAndreacchio
I’m thrilled that you are here and willing to listen to comments.
This is a departure from many of my other forum suggestions, so I admit it is bordering on being a rant, but…could Atlassian please consider not chucking additional breaking changes into Confluence 8.x under the guise of “helping” developers prepare for 9.0, unless actually required for security purposes?
The community already understands that many things are going to break in 9.0. The scope of this breakage, however, will exceed (by far) anything that is being directly signaled in the 8.x series. We don’t need any more signaling in shipping 8.x products. It doesn’t “help”. It just generates more work. Keeping up with even just the forum threads for 8.x feels almost like a full-time job, without actually spending time to implement those changes…let alone work on 9.x.
As it stands, developers are being forced to contend with a myriad of issues in 8.7/8/9 with regards to grey API removals, changes to OSGi exports, and other random product API changes. Reading between the lines of other forum comments, a lot of vendors have barely finished with 8.8, the 8.9 EAP is being tossed out now, and we’re also needing to dedicate resources to 9.0.
I understand that Atlassian might feel obligated to mark a package as “deprecated” in a prior major release before actually removing it. I want to point out that the past practice (ie. loosely for the last decade) has generally been to mark the deprecations at the beginning of a major release line, rather than at the tail end like we are doing now.
Doing it this way defeats the point. Having packages marked as “deprecated” and partially-hidden from OSGi for three months (or however long it’s going to take 9.0 to land) doesn’t truly benefit anyone: it’s not enough time to allow any cross-major compatibility, plus enterprise customers are mostly not using post-8.5 (non-LTS) releases anyway, so these interim releases never even show up on their radar. But it still creates a ton of extra work for Marketplace vendors.
Atlassian can certainly check the box for “yes, it was technically marked as deprecated in the prior major release before we removed it”, but for all intents and purposes, you might as well not have bothered.
Here’s a recent example. Although we caught it in CI before shipping, it’s already broken things in the wild for other people. Could this not have been postponed until 9.0? And can we ask similarly for other API changes that might be planned for 8.9+?
It would also be great if the grey APIs in 8.x (and warnings and OSGi configuration and whatever else) could no longer be a moving target, by simply just shipping whatever you’ve already shipped in 8.8, per my comment above about not needing any more signaling in 8.x.
Scott
PS: On the note of messaging, the Preparing for Confluence 8.9 page says: From Confluence 8.7 to 8.9, these third-party libraries as well as a few Atlassian-specific libraries will no longer be exposed as transitive Maven dependencies of the main confluence
artefact.*
This is misleading. Large swaths of Atlassian-specific libraries and principal Atlassian product code have been removed from product exports. The third-party libraries are relatively easy to deal with and they are far less problematic because they can usually be bundled.