Replies: 4 comments 3 replies
-
I agree! I would also like to add something about "development expectations" and "the lifecycle of an issue". It is clear that we are developing a specification, and this is something different than software (See my comment here: #843 (comment)) Namely, that once a change makes it in to the specification, there is a real-world implication for implementers down the line, and those changes usually are associated with a cost. If a change is introduced in software and that results in a bug, the bug is fixed and the issue is closed. However, if a change is not well thought-out in a specification, this specification is released, and it is implemented in data, then this data will persist indefinitely. "Bug fixes" to data are much, much harder than bug fixes to software. You can't just install a new version of the spec! So necessarily there must be greater oversight, more critique, and slower development cycles for specifications than for software. For adding new features, we need to be aware that bad encodings will probably outlive all of us, so we need to spend time to get things right. For removing features, we need to be aware that this means more work for projects that may not have much in the way of budget to keep their data upgraded, particularly if they want to use later versions of Verovio or other tools. All this is to say that we should have a clear way of knowing, in our issue tracker, what is the next necessary step to move something forward, and possibly a 'cooling off' period that a PR sits before it gets merged, so that we can ensure broad consensus and visibility. This is so that we can manage expectations of how long a particular change will take: It is frustrating, as a contributor, to be in limbo about what state your particular contribution is in, and what might need to be done to move it forward. Particularly if you're used to shorter turnaround times in software development. I have seen this done with issue 'lifecycle' diagrams:
Indeed, this is what the current set of labels tries to do, but it is lacking in communication of the flow of an issue through the process. |
Beta Was this translation helpful? Give feedback.
-
Some general follow up questions:
|
Beta Was this translation helpful? Give feedback.
-
I'll answer the second one first: An MEI version is, for all intents and purposes, a standalone version. 4.0 is different from even 4.0.1, if the What we do guarantee with patch releases is a minimal amount of backwards compatibility, but I think this is primarily designed for software developers. Software that is "compatible" with 4.0 should also work with 4.0.1, since no breaking change should have been made between the two. So we "support" MEI 3 now, in roughly the same way we "support" it when it was first released. If you encoded files in MEI 3 and they validated then, then they will continue to validate with MEI 3. I think also, if someone has a big enough corpus of files encoded in MEI 3 and they find a bug, they can either a) pay for their project to upgrade their own files, or b) pay for a developer to patch the bug and ask the community to release 3.0.N. I think the best option is option A for most projects. If the bug also exists in the latest, and next, versions then yes -- this should be fixed. The answer to the first question is more about what we should expect from the community. If the Metadata IG comes up with a bunch of core changes and deprecates elements, then that necessitates a major version change. When we release is then a matter of who is able to get their changes in according to a given, but probably somewhat arbitrary, timeline. I'm not sure about thematic releases: I haven't really thought about it too much. My first instinct is that it would probably create artificial pressure on groups to "just release something" without having time and consultative space with the wider community, and then we're back to bug-fixing a spec that might have hundreds or thousands of files that require it. I don't think we can necessarily do more "rolling releases" like software, where bug fixes are just released when ready. This will be too much work for the community to keep up with the specs. MEI is a root dependency for a lot of projects, so changing the version, even a minor one, will then trigger many changes down through the ecosystem. A lot of releases means then a lot of churn for all the different software and edition projects, most of which are run on volunteer efforts. Releases focused on builds or build automation that don't touch the spec are probably not worth even tagging as a release. Or, some communities add addenda to their version numbers, like. That's one example I've seen. It gets a bit nutso with the version numbers, but it does provide some flexibility. Another one we could do is just shift the numbers and restrict the value of |
Beta Was this translation helpful? Give feedback.
-
There were some discussions during the conference last week about the plans for the next version of MEI - now that MEI 5.0 is out! One idea that emerged was to make sure we would not make compatibility breaking changes to the schema for a while in order to have the possibility to have an MEI 5.1 release within a time frame that would range between a few months from now to a year. Non breaking compatibility changes include (at least):
Of course, this means for the PRs to be thoroughly reviewed accordingly (e.g., this PR with a label MEI 6 should not be merged yet) since the rule of thumb would be that any MEI 5.0 file should remain valid with MEI 5.1. I am posting this here not implying that this should be a common pattern in the release strategy, but since we had such a long gap between MEI 4.0.1 and MEI 5.0, but at the same time many open issues / PR with MEI 5.x label, it seems that it would be a valuable approach in this particular case. |
Beta Was this translation helpful? Give feedback.
-
I see great effort and contributions in how MEI develops. Nevertheless I think we should com up with better communication of:
One way of managing this is making more use of milestones (https://github.com/music-encoding/music-encoding/milestones). Question with those is: what about datelines or the release strategy
happy to discuss and collect ideas and thoughts concerning theses topics
Beta Was this translation helpful? Give feedback.
All reactions