To be clear: branches would be “deprecated” asap, and we would stop maintaining them (committing to them) when all clients are updated. The older branches would be eventually buried in history, and with very explicit naming like 1.0.1, I don’t see where confusion could be. Keeping ‘master’ as the current latest styles for a given CSL version would also be a very nice way to make it idiot-proof to get the latest styles for the most up-to-date clients at any given time.
Also, looking at the history of CSL, you guys have been quite conservative, and I mean this in a good way. So it does not look like we are going to create branches nilly-willy every week. I think we still have a long time before we have a ‘plethora’ of branches
Finally, I don’t have the experience of going from the 0.8.1 to the 1.0 version of the styles. Whatever you guys learnt from it should be taken into account, but I can’t speak much on that.
It can definitly help to explicitely stating rules for expected changes between minor versions of the CSL, like restricting changes to only adding new attributes or adding new options for given attributes. Now, if you change the default value of an attribute, that does not break a client, but it certainly makes it behave wrongly, yet it could be considered a minor change.
There is potentially the issue of adding an attribute or an option that makes it much easier to deal with certain rules, in a way that would have been possible, but painful in 1.0. So you’d want to edit old styles or create new styles with those simplified attributes. These styles will work perfectly with 1.0.1 clients, but will produce a worse output on 1.0 client, even though that could be prevented by using the complicated workaround and still have the same output with 1.0.
Maybe these are not actual possibilities, but I am just wondering if even minor changes can still result in 1.0.1 styles being a step back for clients still expecting 1.0. And I am pointing this out because even if those cases, a separate branch would ease the transition.
Bruce, in any case, you have not explicitely stated how you see the transition going. Do you mean maybe that at some point X in time, we decide from now on, we can have 1.0.1 styles in the ‘master’ branch and that’s it? That’s definitely an option, but I don’t know if this is what you have in mind.
charles