On 01/17/2013 01:53 PM, Enrico Forestieri wrote:
On Wed, Jan 16, 2013 at 04:13:31PM -0500, Richard Heck wrote:
On 01/16/2013 03:39 PM, Georg Baum wrote:
Jean-Marc Lasgouttes wrote:
Le 16/01/2013 08:53, Liviu Andronic a écrit :
Consider that the updated layout (in 2.0.5) contains _new_ commands
and that the user creates a document using those new commands that the
2.0.5 layout supports. What happens if a collaborator opens this
document in 2.0.3? Will it work, or will opening/compilation break
down? In other words, is the versioning scheme necessary in such a
case?
With the current (non-)ability of LyX to cope with missing styles in a given
layout: Yes. However, it would be easy to implement an "edit-only" mode in
LyX 2.1, that would not allow export (because the information is missing),
but editing of such a document. Then new styles in a given .layout file
could be allowed for any 2.1.x release: People could still collaborate using
different point releases, only if they want to print or view the typeset
document they would need to install a new layout.
It's currently possible to edit such a file without data loss, if
I'm not mistaken. The unrecognized layouts are treated as
"Standard", but they retain their labels. It is even possible to
insert new such layouts (or insets) and save the file. So the "edit
only" mode isn't needed, so far as I can see.
It's worth remembering too that it is *trivial* to install new
layouts. Someone who opens a file that has a new versioned from
2.0.8 in some earlier version can easily get that new layout,
without having to install 2.0.8 itself. Perhaps we should add a
recipe to the docs and point users there when appropriate.
I have not followed this discussion, so what I say may be nonsense.
However, instead of full versioned layouts, the support for new commands
in more recent classes could be provided by the module mechanism, such
that one could add classname-1.8.module for updating the standard layout
to classname.cls version 1.8. At the next major release, all
classname-1.x.module's will be merged into the standard layout.
The new layout also indicates the obsoleted modules in order to avoid
complaints by lyx about missing modules when loading old documents.
That's an amazingly sensible idea. It could even work when more
extensive changes had been made, by redefining whatever needed redefining.
rh