5 - Write the code to make Wordpress figure out its URL from the database
7 - wizard install wordpress should ask for password. One problem with this is that
8 Wordpress will still send mail with the wrong username and password, so Wordpress
9 will need to be patched to not do that. Alternatively we can initally set the admin
10 email to a null address and then fix it manually.
11 - Parse output HTML for class="error" and give those errors back to the user (done),
12 then boot them back into configure so they can enter in something different
14 - Replace gaierror with a more descriptive name (this is a DNS error)
16 - Pre-emptively check if daemon/scripts-security-upd
17 is not on scripts-security-upd list (/mit/moira/bin/blanche)
18 - If you try to do an install on scripts w/o sql, it will sign you up but fail to write
19 the sql.cnf file. This sucks.
21 - Web application for installing autoinstalls has a hard problem
22 with credentials (as well as installations that are not conducted
23 on an Athena machine.) We have some crazy ideas involving a signed
24 Java applet that uses jsch to SSH into athena.dialup and perform
28 - Tidy up common code in callAsUser and drop_priviledges in shell;
29 namely cooking up the sudo and environment variable lines
30 - Summary script should be more machine friendly, and should not
31 output summary charts when I increase specificity
32 - Report code in wizard/command/__init__.py is ugly as sin. Also,
33 the Report object should operate at a higher level of abstraction
34 so we don't have to manually increment fails. (in fact, that should
35 probably be called something different). The by-percent errors should
37 - Move resolutions in mediawiki.py to a text file? (the parsing overhead
39 - PHP end of file allows omitted semicolon, can result in parse error
40 if merge resolutions aren't careful. `php -l` can be a quick stopgap
43 - Figure out why Sphinx sometimes fails to crossref :func: but wil
44 crossref :meth:, even though the dest is very clearly a function.
45 Example: :func:`wizard.app.php.re_var`
46 - The TODO extension for Sphinx doesn't properly force a full-rebuild
48 - Make single user mass-migrate work when not logged in as root. The
49 primary difficulty is making the parallel-find information easily
50 accessible to individual users: perhaps we can do a single-user
51 parallel-find on the fly.
52 - Don't use the scripts heuristics unless we're on scripts with the
53 AFS patch. Check with `fs sysname`
54 - Make 'wizard summary' generate nice pretty graphs of installs by date
55 (more histograms, will need to check actual .scripts-version files.)
56 - It should be able to handle installs like Django where there's a component
57 that gets installed in web_scripts and another directory that gets installed
60 - ACLs is a starting point for sending mail to users, but it has
61 several failure modes:
62 - Old maintainers who don't care who are still on the ACL
63 - Private AFS groups that aren't mailing lists and that we
65 A question is whether or not sending mail actually helps us:
66 many users will probably have to come back to us for help; many
67 other users won't care.
69 PULLING OUT CONFIGURATION FILES IN AN AUTOMATED MANNER
71 advancedpoll: Template file to fill out
72 django: Noodles of template files
73 gallery2: Multistage install process
75 mediawiki: One-step install process
76 phpbb: Multistage install process
77 phpical: Template file
80 wordpress: Multistage install process
82 COMMIT MESSAGE FIELDS:
84 Installed-by: username@hostname
85 Pre-commit-by: Real Name <username@mit.edu>
86 Upgraded-by: Real Name <username@mit.edu>
87 Migrated-by: Real Name <username@mit.edu>
88 Wizard-revision: abcdef1234567890
89 Wizard-args: /wizard/bin/wizard foo bar baz
93 Committer: Real Name <username@mit.edu>
94 Author: lockername locker <lockername@scripts.mit.edu>
98 - It is not required nor expected for update scripts to exist for all
99 intervening versions that were present pre-migration; only for it
100 to work on the most recent migration.
102 - Currently all repositories are initialized with --shared, which
103 means they have basically ~no space footprint. However, it
104 also means that /mit/scripts/wizard/srv MUST NOT lose revs after
109 * Some parts of the infrastructure will not be touched, although I plan
110 on documenting them. Specifically, we will be keeping:
112 - parallel-find.pl, and the resulting
113 /mit/scripts/.htaccess/scripts/sec-tools/store/scriptslist
115 * The new procedure for generating an update is as follows:
116 (check out the mass-migration instructions for something in this spirit,
117 although uglier in some ways; A indicates the step /should/ be automated)
119 0. ssh into not-backward, temporarily give the daemon.scripts-security-upd
120 bits by blanching it on system:scripts-security-upd, and run parallel-find.pl
122 1. [ see doc/upgrade.rst ]
124 [ENTER HERE FROM CREATING A NEW REPO]
126 9. Push all of your changes in a public place, and encourage others
127 to test, using --srv-path and a full path.
129 [ XXX: doc/deploy.rst ]
130 GET APPROVAL BEFORE PROCEEDING ANY FURTHER;
131 THIS IS PUSHING THE CHANGES TO THE PUBLIC
133 NOTE: The following commands are to be run on not-backward.mit.edu.
134 You'll need to add daemon.scripts-security-upd to
135 scripts-security-upd to get bits to do this. Make sure you remove
136 these bits when you're done.
138 10. Run `wizard research appname`
139 which uses Git commands to check how many
140 working copies apply the change cleanly, and writes out a logfile
141 with the working copies that don't apply cleanly. It also tells
142 us about "corrupt" working copies, i.e. working copies that
143 have over a certain threshold of changes.
145 11. Run `wizard mass-upgrade appname`, which applies the update to all working
148 12. Run parallel-find.pl to update our inventory
150 [ XXX: doc/upgrade.rst ]
151 * For mass importing into the repository, there are a few extra things:
153 * When mass producing updates, if the patch has changed you will have to
154 do a special procedure for your merge:
156 git checkout pristine
157 # NOTE: Now, the tricky part (this is different from a real update)
158 git symbolic-ref HEAD refs/heads/master
159 # NOTE: Now, we think we're on the master branch, but we have
160 # pristine copy checked out
161 # NOTE: -p0 might need to be twiddled
162 patch -p0 < ../app-1.2.3/app-1.2.3.patch
164 # reconstitute .scripts directory
165 git checkout v1.2.2-scripts -- .scripts
167 # NOTE: Fake the merge
168 git rev-parse pristine > .git/MERGE_HEAD
170 You could also just try your luck with a manual merge using the patch
173 [ XXX: doc/layout.rst ]
174 * The repository for a given application will contain the following files:
176 - The actual application's files, as from the official tarball
178 - A .scripts directory, with the intent of holding Scripts specific files
179 if they become necessary.
181 - .scripts/dsn, overriding database source name