-- Implement "group" filtering using blanche for limited rollouts.
-
-- Remove "already migrated" cruft that will accumulate if we do small
- --limit and then increase.
-- Allow to migrate just one user (user filtering of installs, also
- has userland capabilities, although it means we need some way of
- selectively publishing the versions directory--likely a suid
- executable that reads it would be the best way here)
-
-- Make parallel-find.pl use `sudo -u username git describe --tags`
- to determine version. Make parallel-find.pl have this have greater
- precedence. This also means, however, that we get
- full mediawiki-1.2.3-2-abcdef names (Have patch, pending testing and commit)
-- Make deployed installer use 'wizard install' /or/ do a migration
- after doing a normal install (the latter makes it easier
- for mass-rollbacks).
-
-- Better error message if daemon/scripts-security-upd
- is not on scripts-security-upd list
-
-- Custom merge algo: absolute php.ini symlinks to relative symlinks
-- Custom merge algo: re-constitute AdminSettings.php if missing. It looks
- like this is the case for most 1.5.8 installs (check what the merges
- do in both directions). All 1.11.0 installs except four have
- the other (check diff -u with all in /root)
-
-- Redo Wordpress conversion, with an eye for automating everything
- possible (such as downloading the tarball and unpacking)
-
-- Genericize callAsUser and drop_priviledges in shell
-- Summary script should be more machine friendly, and should not
- output summary charts when I increase specificity
-
-Some other stuff to do in your copious free time:
-- Summary script should do something intelligent when distinguishing
- between old-style and new-style installs
-- Check how many autoinstalls are missing w bits for
- daemon.scripts (this would need pyafs)
-- Make scripts AFS patch advertise its existence so we can check for it.
- (This might be otherwise possible using `fs sysname`)
-- Make 'wizard summary' generate nice pretty graphs of installs by date
- (more histograms, will need to check actual .scripts-version files.)
-- It should be able to handle installs like Django where there's a component
- that gets installed in web_scripts and another directory that gets installed
- in Scripts.
+- Add support for mypristine workflow
+- Make a nicer backtrace if not in a Git working copy directory
+- Wordpress needs to get rid of the siteurl hack, so that it actually
+ has a fully-qualified URL http://foo.scripts.mit.edu/blah. This will
+ also fix Wordpress's cron functionality. We should be careful not
+ to write over users who are on vhosts. We should figure out who is
+ still on twiddle paths. We should make sure the redirect is handled
+ correctly.
+- Wizard needs a correct arch/ setup
+- The wizard command, when not on scripts, should automatically SSH to
+ scripts and start executing there?
+- Write the code to make Wordpress figure out its URL from the database
+
+- Plugin architecture
+ http://peak.telecommunity.com/DevCenter/setuptools#dynamic-discovery-of-services-and-plugins
+ http://peak.telecommunity.com/DevCenter/PkgResources#entry-points
+ https://xvm.mit.edu:1111/trunk/packages/invirt-base/python/invirt/authz.py
+ https://xvm.mit.edu:1111/trunk/packages/xvm-authz-locker/setup.py
+ http://pylonshq.com/docs/en/0.9.7/advanced_pylons/entry_points_and_plugins/
+
+- Remerges aren't reflected in the parent files, so `git diff` output is
+ spurious. Not sure how to fix this w/o tree hackery.
+- Sometimes users remove files. Well, if those files change, they automatically
+ get marked as conflicted. Maybe we should say for certain files "if they're
+ gone, they're gone forever"? What is the proper resolution?
+
+- Parse output HTML for class="error" and give those errors back to the user (done),
+ then boot them back into configure so they can enter in something different
+
+- Replace gaierror with a more descriptive name (this is a DNS error)
+
+- Pre-emptively check if daemon/scripts-security-upd
+ is not on scripts-security-upd list (/mit/moira/bin/blanche)
+- If you try to do an install on scripts w/o sql, it will sign you up but fail to write
+ the sql.cnf file. This sucks.
+
+- Web application for installing autoinstalls has a hard problem
+ with credentials (as well as installations that are not conducted
+ on an Athena machine.) We have some crazy ideas involving a signed
+ Java applet that uses jsch to SSH into athena.dialup and perform
+ operations.
+
+- Pay back code debt
+ - Tidy up common code in callAsUser and drop_priviledges in shell;
+ namely cooking up the sudo and environment variable lines
+ - Summary script should be more machine friendly, and should not
+ output summary charts when I increase specificity
+ - PHP end of file allows omitted semicolon, can result in parse error
+ if merge resolutions aren't careful. `php -l` can be a quick stopgap
+
+- Other stuff
+ - Figure out why Sphinx sometimes fails to crossref :func: but wil
+ crossref :meth:, even though the dest is very clearly a function.
+ Example: :func:`wizard.app.php.re_var`
+ - The TODO extension for Sphinx doesn't properly force a full-rebuild
+ - Code annotation!
+ - Make single user mass-migrate work when not logged in as root. The
+ primary difficulty is making the parallel-find information easily
+ accessible to individual users: perhaps we can do a single-user
+ parallel-find on the fly.
+ - Don't use the scripts heuristics unless we're on scripts with the
+ AFS patch. Check with `fs sysname`
+ - Make 'wizard summary' generate nice pretty graphs of installs by date
+ (more histograms, will need to check actual .scripts-version files.)
+ - It should be able to handle installs like Django where there's a component
+ that gets installed in web_scripts and another directory that gets installed
+ in Scripts.
+
+- ACLs is a starting point for sending mail to users, but it has
+ several failure modes:
+ - Old maintainers who don't care who are still on the ACL
+ - Private AFS groups that aren't mailing lists and that we
+ can't get to
+ A question is whether or not sending mail actually helps us:
+ many users will probably have to come back to us for help; many
+ other users won't care.