After all of this discussion, it seems to me that the consensus is that we should not make major changes to layout files for minor releases. I understand Uwe's reasons for wanting to do so, but it will break a lot of documents for people whose machines do not automatically update when new class files are released. So far as I know, only Windows uses TeXLive's auto-update procedure, and I'd assume it can even be turned off there.

(I'll also note that people do all kinds of weird things. Someone might use a journal's class file to write their own articles, just because they like how it looks, not because they intend to submit to that particular journal. We shouldn't break their documents without good reason.)

As has been said, however, this does not prevent us from shipping Uwe's updated layout files. We just need to rename them. My suggestion was that these should include the version number of the class file, e.g., moderncv-0-17.layout, and the version should be noted in the declaration, too. That seems the most flexible and informative scheme. We should note such changes in the release notes and the announcement.

Now a question: How hard would it be to add version checking information to configure.py and chkconfig.ltx? Or do we already have that? Then we could mark moderncv.layout as unavailable if the version were wrong, and moderncv-0-17 as available, and add code to switch the layout on the fly, as the document is loaded, if need be. Asking first, of course. That actually looks to me like an almost ideal solution.

If that is too hard, or if we need to change the layout format to implement it, then we can think about including some code that pops up an information box saying something like: The moderncv layout now comes in two forms. If you have problems compiling your document with this layout file, you should check what version of the moderncv class your distribution makes available. If it is 0.17 (or newer), you should select the
    new "curriculum vitae (modern, 0.17)" class under Document>Settings.
when a document with the older layout file was loaded.

The decision what exactly we should do at major releases can be deferred for now. The simplest thing would be to continue shipping the older layout files, but with version numbers for the older ones, rather than the newer ones. (So, e.g., moderncv.layout would become moderncv-0-16.layout and moderncv-0-17.layout would be come moderncv.layout.) These could then be put into a new "Deprecated" category, per Liviu's suggestion (I think), so as not to clutter the list. We can handle this switch in lyx2lyx, of course.

If someone wants to do something more complicated, e.g. along the lines of Georg's suggestions, then they can do so.

Richard

Reply via email to