Deprecation policy in MAAS

I saw the RSD deprecation in 2.10 announcement and was surprised to see a feature removal in a point release. Semantic versioning is the preferred approach, and we’re clearly using a semantic versioning schema, so I think it will surprise users to see such an announcement.

It would be fine to remove RSD in a MAAS 3.x, but not in a 2.x.

2 Likes

Hi @sabdfl , thanks for raising this - despite having 3 components to the version number, MAAS doesn’t use semantic versioning.

We of course endeavour to maintain API backwards compatibility as much as possible and hope we’ve done a good job (bugs welcome!). Where we have to break that, we document it in Deprecation Notices, similar to what you saw in MD2.

The RSD API version that MAAS uses (1.2) is from 2017 and now several generations behind, and we unfortunately don’t have any contributors with access to the hardware to bring it forward. The way the code in MAAS was structured makes it very difficult to progress our plans for better LXD integration whilst retaining RSD compatibility.

If there’s interest and we get access to hardware so we can verify behaviours, we are of course happy to add it back.

We use a numbering scheme that is exactly like semantic versioning. Googling doesn’t suggest we don’t use semantic versioning. Semantic versioning is good healthy practice that’s widely adopted, and I think it’s the way we do things at Canonical.

There wasn’t any discussion in roadmap meetings about deprecation outside of that, and I’m uncomfortable to put users in a position that they learn about such a decision in this way.