[texworks] Automatic update of resources

Stefan Löffler st.loeffler at gmail.com
Thu Jan 20 07:55:23 CET 2011


On 2011-01-18 16:47, Jérome Laurens wrote:
> your solution does not apply to machines shared by different users (all machines for students at the university).
> When upgrading, only one user sees the scripts and templates updated:
> the one who did the upgrade.

Really? Did you try this, and what did you do exactly?
Since there are no shared resources at the moment, every user either has
his/her own resources, which should get updated whenever the respective
user runs a new version of Tw, or central shared resources (via the
portable mode), which would then have to be updated by the sysadmin.

> IMO, you'd better implement a machine wide mechanism to find the resources
> and only then try to manage resource updates.
> For example, if you put the resources in one of
> ~/Library/TeXworks <-- RW access for the user only
> /Library/TeXworks <-- R access for anyone, W access for the machine admins
> TeXWorks <--- R access for anyone, W access for no one
> then if TeXworks does not find some resource in ~/Library/TeXworks, it looks for it into /Library/TeXworks,
> and if it is still unsuccessfull, TW ends with the default resource built in the TW app itself.
> This code design allows administrators to customize the resources for all the users at once.
> Moreover, it ensures that the default resources are automatically updated for all the users with absolutely no effort.

Indeed. There are several issues with such a system that haven't been
resolved yet, however. Therefore, I doubt this will be implemented
before 0.4. The current update implementation, on the other hand, should
facilitate further bugfixes to the resources and also possibly upgrading
to 0.6 in the future - provided the current code proves stable enough
for 0.4.

Regarding the above-mentioned issues:
As long as the user can only add new definitions/settings, everything
should be fairly straight forward. The problems emerge when the user
should also be able to modify and/or remove/disable settings in the
system-wide resources. For example, suppose the system-wide resources
define a setting A, which the user wants to unset. Writing "A=" could
not be distinguished from actually setting A to an empty value (which
may not be the same as unsetting A in some circumstances). This would
require a diff-like file format, which is not particularly
user-friendly, however. Or how would you disable/override a system-wide
template, which is a file of its own? An empty file is something
completely different from no file at all.

> It may allow to install the app on a movable drive.

And in portable mode, the situation gets worse. Does the user want to
relocate only his personal directory (~Library/...)? Or run Tw fully
portable (i.e., override /Library as well)? What if the sys-admins wants
to relocate the global directory (e.g. to /Tw)? Or the sys-admins wants
to relocate the user's directory (say, to a network share, or even a
virtual/dynamic directory)?

> BTW, localizable resources are essential.

I agree. But again, this will need some changes to the current design.
Right now, we (mostly) simply have plain text files. Whatever language,
encoding, ... is in there is used. But there is no mechanism to filter
by language etc.


More information about the texworks mailing list