Bastien <b...@gnu.org> writes:
> Hi Ihor, > > Ihor Radchenko <yanta...@gmail.com> writes: > >> The text is mostly clear. However, there is a slight confusion about >> actual current Emacs version vs. planned Emacs version. > > I've rephrased it a bit to focus on "releases", not "versions": > > We aim at keeping the latest stable version of Org compatible with > the *last three major releases of Emacs*. > > For example, if the latest release of Emacs is 28.x, then you can > assume that the latest release of Org is compatible with Emacs 28.x, > 27.x and 26.x, but not with Emacs 25.x. > >> Should we target "current" Emacs 28 for main? Should we target Emacs >> version+1 as current on main all the time or maybe just when new >> Emacs release branch is created, but not yet released? It is not >> fully clear. > > These paragraphes on Worg try to explicit reasonable expectations > for users and are thus focusing on stable releases only. > > Expectactions for development versions are another story: I am in > favor of not trying to commit to _any_ expectactions for Org's main. > > For example, I would not mind a feature on main that relies on a new > feature in the Emacs development branch, as long as we manage to keep > the promise that the next Org stable is usable with the older Emacs > releases. So what your saying is that if the current main branch relies on a new feature in the current Emacs development branch, then org must also have a compatibility function so that the feature works with at least the last 2 released versions (possibly 3 since we don't know when the new Emacs version will be released and we may need/want to release main before the new Emacs version is released). So basically, if you want to use a new feature in development Emacs, you will also need to implement a compatibility version for the previous 2 or 3 Emacs versions. This probably sounds worse than it is in practice because most of the time, once you have a compatibility implementation for the previous version, it will likely work with the previous 2 or 3 versions. It further means that a new feature added into Emacs cannot be used in org without a compatibility version until it has been in Emacs for 3 versions.