summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/assistant/downloadupgrade.pngbin0 -> 9071 bytes
-rw-r--r--doc/devblog/day_64__overkill.mdwn31
2 files changed, 31 insertions, 0 deletions
diff --git a/doc/assistant/downloadupgrade.png b/doc/assistant/downloadupgrade.png
new file mode 100644
index 000000000..157eaddc7
--- /dev/null
+++ b/doc/assistant/downloadupgrade.png
Binary files differ
diff --git a/doc/devblog/day_64__overkill.mdwn b/doc/devblog/day_64__overkill.mdwn
new file mode 100644
index 000000000..fd5d66f4e
--- /dev/null
+++ b/doc/devblog/day_64__overkill.mdwn
@@ -0,0 +1,31 @@
+Completely finished up with making the assistant detect when git-annex's
+binary has changed and handling the restart.
+
+It's a bit tricky because during an upgrade there can be two assistant
+daemons running at the same time, in the same repository. Although I
+disable the watcher of the old one first. Luckily, git-annex has long
+supported running multiple concurrent git-annex processes in the same
+repository.
+
+The surprisingly annoying part turned out to be how to make the webapp
+redirect the browser to the new url when it's upgraded. Particularly needed
+when automatic upgrades are enabled, since the user will not then be taking
+any action in the webapp that could result in a redirect. My solution to this
+feels like overkill; the webapp does ajax long polling until it gets an
+url, and then redirects to it. Had to write javascript code and ugh.
+
+But, that turned out to also be useful when manually restarting the webapp
+(removed some horrible old code that ran a shell script to do it before),
+and also when shutting the webapp down.
+
+[[!img assistant/downloadupgrade.png alt="assistant downloading an upgrade to itself"]]
+
+Getting back to upgrades, I have the assistant downloading the upgrade, and
+running a hook action once the key is transferred. Now all I need is some
+platform-specific code to install it. Will probably be hairy, especially on
+OSX where I need to somehow unmount the old git-annex dmg and mount the new
+one, from within a program running on the old dmg.
+
+----
+
+Today's work was sponsored by Evan Deaubl.