Version self-checking against a remote is a feature that we should add to this project going forward, and the ability to do this quickly and asynchronously is critical to implementing a clean user-facing interface.
In general, I want to implement a suite of configuration files and shell scripts in this project for self-checking the current version installed against some remote. In the event of an outdated installation, the user would be prompted to update. This brings about the following questions:
-
Do we want to support non-standard installation of dot? I say no, and I'm pretty sure all of the other collaborators would agree. Anyone who does not install the project through a standard installation vector assumes their own responsibility for keeping things running stably. Standard installation vectors are as follows:
git clone-ing our project onto a client machine. (--shallow is within the realm of possibility, which may result in loss of tags.)
- Downloading a tarball of the project at a given release.
- In both cases above, the installation will include a full bundle of the
.emacs.d tree and any shell configurations we bring in, as well as the central VERSION file at the root of the project. This can be a good fallback.
-
When do we want to prompt people to update dot? I say: every time the user starts a dot component, this self-check should execute, and in long-running situations e.g. Emacs being open for days on end, daily timers should be run also. We should store the last update check timestamp in a readable file that everything can easily parse, so that multiple checks don't happen on top of each other.
-
How do we want to execute remote scripts?
Version self-checking against a remote is a feature that we should add to this project going forward, and the ability to do this quickly and asynchronously is critical to implementing a clean user-facing interface.
In general, I want to implement a suite of configuration files and shell scripts in this project for self-checking the current version installed against some remote. In the event of an outdated installation, the user would be prompted to update. This brings about the following questions:
Do we want to support non-standard installation of
dot? I say no, and I'm pretty sure all of the other collaborators would agree. Anyone who does not install the project through a standard installation vector assumes their own responsibility for keeping things running stably. Standard installation vectors are as follows:git clone-ing our project onto a client machine. (--shallowis within the realm of possibility, which may result in loss of tags.).emacs.dtree and any shell configurations we bring in, as well as the centralVERSIONfile at the root of the project. This can be a good fallback.When do we want to prompt people to update
dot? I say: every time the user starts a dot component, this self-check should execute, and in long-running situations e.g. Emacs being open for days on end, daily timers should be run also. We should store the last update check timestamp in a readable file that everything can easily parse, so that multiple checks don't happen on top of each other.How do we want to execute remote scripts?