Le 06/06/2016 20:33, Georg Baum a écrit :
Jean-Marc Lasgouttes wrote:

Le 05/06/2016 à 21:05, Guillaume Munch a écrit :
Yet, most of the file format changes are very simple. I wonder
whether one could introduce a single compilation variable to
disable them, and ask developers to enclose file-format-specific
code between the corresponding #ifdefs. (For instance in my last
file format change all that was needed to be enclosed was the
parsing code.) This would allow the release of "master versions
without file format changes", either as nightlies or as official
"x.5" versions as Pavel suggested by Pavel in another message
(without having to maintain three branches in parallel).

This looks too complicated to me. And eventually there will be
changes that cannot be treated like that, and all the previous
work on small changes will be useless.

The current workflow of testing master all at once before a release
has proven to be too complicated. Notice that only the input and output
of the features has to be treated with #ifdefs, not the whole changed
code. Do you have a particular example situation in mind which would be
too difficult?

As far as I know the biggest file format change for 2.2 was Enrico's
work on separators. On the looks of it, preserving the previous format
with a switch was entirely doable (see c668ebf6).


Note that that stable nightlies could be updated with lyx2lyx code
for new master versions in parallel with master.


lyx2lyx is not meant to be back and forth, and this still locks us into
the nightlies, so, this is no enough to convince me to use dailies.

In fact, to take my previous example again, it would not have been
possible to rely on lyx2lyx since it was explicitly made non roundtrip
(c668ebf6). Moreover getting lyx2lyx right is more tricky because it
seems to rely more on trial-and-error (cda00d832).


Or we could add a mode that calls lyx2lyx automatically after
saving, so that effectively the master version would use the old file
format. This would probably work fine as long as no new features are
used.


Then, do we have to still include a switch to disable the use of these
new features?

Reply via email to