]> scripts.mit.edu Git - wizard.git/blobdiff - TODO
Make pull.sh call aklog.
[wizard.git] / TODO
diff --git a/TODO b/TODO
index d070299f2f958791547f92112f7c2ab2a26f7811..f83867461576a6cf6944321d0ffac3a6f4d6cea9 100644 (file)
--- a/TODO
+++ b/TODO
@@ -2,6 +2,10 @@ The Git Autoinstaller
 
 TODO NOW:
 
+- Test code should auto-nuke the database using `wizard remove` before doing a new install
+- git diff :1:$file :2:$file to find out what the user did, or is it :3:?
+- Document how to fix a broken upgrade
+- php.ini needs to get substituted!
 - Make wizard install accept appname-head (so that you can do a test with
   head, and do things without tags).  Also make it accept commit hashes.
   In fact, let it accept any committish.  Figure out what to do if we
@@ -10,6 +14,8 @@ TODO NOW:
 - Let 'wizard configure' be interactive
 - Parse output HTML for class="error" and give those errors back to the user,
   then boot them back into configure
+- Get rid of our custom sizing code and use dialog's built-in sizing (i.e. width=0, height=0).
+  Maybe our sizing code is superior, maybe not.
 
 - Replace gaierror with a more descriptive name (this is a DNS error)
 
@@ -46,6 +52,11 @@ TODO NOW:
       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
     - Don't use the scripts heuristics unless we're on scripts with the
       AFS patch.  Check with `fs sysname`
@@ -124,6 +135,8 @@ OVERALL PLAN:
 
     X. Commit, with name "Appname x.y.z"
 
+    X. Tag as appname-x.y.z
+
     4. Checkout the master branch
 
     5. Merge the pristine branch in. Resolve any conflicts that our
@@ -223,11 +236,16 @@ OVERALL PLAN:
        inheriting from wizard.app.Application (check existing modules for
        the boilerplate code).
 
-    2. Implement download()
+    2. Implement download().  "wizard prepare-pristine" will use this in order
+       to download the next version of an application.
 
     3. Create a git repository with `git init`
 
-    4. Use `wizard prepare-pristine APP-VERSION`
+    4. Use `wizard prepare-pristine APP-VERSION` to download the tarball and
+       extract it into the directory.  If download() doesn't work and you don't
+       want to special case it (for example, you need a /really old version/
+       for record-keeping purposes), replace APP-VERSION with PATH, where PATH
+       is the tarball to extract.
 
     5. `git commit -asm "APP VERSION"`
 
@@ -249,7 +267,10 @@ OVERALL PLAN:
    10. Implement install().  Test using `wizard install APP`; you won't
        be able to do a version-specific install with `wizard install APP-VERSION`
        until you generate a tag (which will become out of date once you
-       amend the commit.)
+       amend the commit.)  Now might be a good time to create a
+       tests/test-install-APP.sh file (use the other tests as reference) so
+       you don't have to constantly enter the parameters when you're doing
+       an install.
 
    11. Push your changes to a directory accessible in the production environment.
        In the case of scripts, this is equivalent to your AFS homedir, and
@@ -257,8 +278,11 @@ OVERALL PLAN:
        perform a configuration in the production environment to extract
        out the canonical configuration files.
 
-   12. On the production server, call your wizard to perform an installation.
-       Inspect the generated configuration files, and implement:
+   12. On the production server, call your wizard to perform an installation;
+       be sure to use the option --no-commit in order to make propagating changes
+       back easier.  Inspect the generated configuration files (you can use `git
+       status` to find unversioned files that the installer created), and
+       implement:
             - extractors
             - substitutions
                 These are dictionaries of functions that perform extraction
@@ -290,7 +314,8 @@ OVERALL PLAN:
         script was buggy; try again.
 
     14. The current changes in the working copy should be merged in.  Add any new
-        files, and then `git commit --amend`.
+        files, and then `git commit --amend`.  `git push --force` to stick these
+        changes back in the "public" repository.
 
     15. In your local copy, you can pull the changes by doing `git reset --hard HEAD~`
         and then a `git pull` from the relevant source.  Otherwise, Git will complain