>> This discussion would also involve the words "session-based alternative". >> > And I should have added: I thought we had agreed that we will not implement > any form of reversibility. It's what leads to the really bad security > problems.
Technically speaking, we are aiming at different goals. I have stated my design goal several times so I will not repeat here. I used bundle/unbundle to achieve that goal but failed, so I am using a different approach. This approach does not have to solve the bundle/unbundle problem that you have, it does not have a bundled mode so there is no reversibility to talk about. In that sense, the reversibility problem is yours, not mine. However, my approach can be used to bundle/unbundle external files, and I do try to achieve full reversibility. This is why I am trying to keep file links in .lyx file (optional or encrypted). I have stated reasons why I dislike the session idea. Your solution to troublesome reversible unbundling is to use non-reversible unbundling. My solution is quite different. I first minimize the need for unbundling by introducing no bundled mode. The .lyx file is still in plain text format. There is no change for user-interaction except that they are given an option to embed a file. If you call this a bundled mode, it is a natural bundled mode that is much less intrusive than yours. Different users can work on the same document with ease if we allow features such as embed-all, un-embed, update from external file etc. This makes unbundling, namely extracting all embedded files, almost irrelevant. But I do agree that unbundling is a good feature to have. Because unbundling, under my design, will change .lyx file in an intrusive way, I proposed to make it something similar to "File->Export->LyX with extracted files". A Python script will be called to extract a .lyx file to a new directory (e.g. filename.extracted under the document directory), and arrange files in their original layout. The layout proposed by Enrico, in which .lyx file can be a few levels down filename.extracted can be used to keep out of tree files. Full reversibility is achieved in this way at a cost of convenience. A side note about these kind of unbundling is that unbundling will be ugly if all embedded files are anonymous, easy if file links are kept, and can not be done using a Python script if file links are encrypted. Cheers, Bo