1 | -*- text -*- |
---|
2 | |
---|
3 | == How to update an autoinstaller to a new version of the upstream package == |
---|
4 | |
---|
5 | Things to check beforehand: |
---|
6 | - Make sure /mit/scripts/deploydev is up to date from /mit/scripts/deploy (deploydev is not a svn checkout and is probably missing changes from deploy) |
---|
7 | |
---|
8 | Steps: |
---|
9 | # Example values |
---|
10 | PKG=wordpress |
---|
11 | NEWVERS=2.5.1 |
---|
12 | OLDVERS=2.3.3 |
---|
13 | URL=http://www.example.com/download/wordpress-2.5.1.tar.gz |
---|
14 | |
---|
15 | # Create a new directory in /mit/scripts/deploydev for the new version |
---|
16 | mkdir /mit/scripts/deploydev/$PKG-$NEWVERS |
---|
17 | |
---|
18 | # Copy any scripts patches to the new directory |
---|
19 | cp /mit/scripts/deploydev/$PKG-$OLDVERS/*.patch /mit/scripts/deploydev/$PKG-$NEWVERS/ |
---|
20 | # Some scripts might have other files in here |
---|
21 | # Make sure the patch is still relevant for the current version of the package |
---|
22 | |
---|
23 | # Download the new package from the upstream site |
---|
24 | wget -O /mit/scripts/deploydev/$PKG-$NEWVERS/$PKG-$NEWVERS.tar.gz "$URL" |
---|
25 | |
---|
26 | # Update the symlink for the new package version |
---|
27 | cd /mit/scripts/deploydev && ln -nsf $PKG-$NEWVERS/$PKG-NEWVERS.tar.gz $PKG.tar.gz |
---|
28 | |
---|
29 | # Try an autoinstall |
---|
30 | ssh linerva -t env scriptsdev=dev athrun scripts |
---|
31 | |
---|
32 | # Fix any bugs that were introduced, probably in /mit/scripts/deploydev/bin/$PKG or /mit/scripts/bin/scripts-$PKG, or the patches |
---|
33 | |
---|
34 | # Commit your changes by moving them to /mit/scripts/deploy |
---|
35 | cp -a /mit/scripts/deploydev/$PKG-NEWVERS /mit/scripts/deploydev/$PKG.tar.gz /mit/scripts/deploy/ |
---|
36 | |
---|
37 | # Test the new version from linerva and athena.dialup |
---|
38 | |
---|
39 | |
---|
40 | == How to generate an autoupdate == |
---|
41 | |
---|
42 | cd /tmp |
---|
43 | # Use --dev if you haven't pushed to deploy yet |
---|
44 | /mit/scripts/sbin/propose-update --dev $PKG $OLDVERS $NEWVERS |
---|
45 | cd $PKG-$OLDVERS-to-$NEWVERS.proposal |
---|
46 | # If there is any custom setup that needs to be performed |
---|
47 | # (e.g. something in /mit/scripts/deploy/bin), do so to the |
---|
48 | # $PKG-$OLDVERS and $PKG-$NEWVERS directories, then do |
---|
49 | (cd .. && /mit/scripts/sbin/propose-update --redo-all --dev $PKG $OLDVERS $NEWVERS) |
---|
50 | # Look at the files that were generated to make sure they're sane |
---|
51 | # If necessary, add pre- and post- hooks, such as for a DB update script |
---|
52 | emacs extra/prepatch.sh |
---|
53 | emacs extra/postpatch.sh |
---|
54 | # Generate the patch |
---|
55 | cd .. |
---|
56 | # --dev here means to put the update in /mit/scripts/deploydev/updates |
---|
57 | /mit/scripts/sbin/build-update --dev $PKG $OLDVERS $NEWVERS |
---|
58 | # Test the update by running cd /mit/foo/web_scripts/bar && /mit/scripts/deploydev/updates/$PKG-#OLDVERS-to-$NEWVERS/update "foo" |
---|
59 | |
---|
60 | # If necessary, repeat this process. You can edit the files in the |
---|
61 | # $PKG-$OLDVERS and $PKG-$NEWVERS subdirectories of the proposal, |
---|
62 | # passing --redo-* options to propose-update as necessary to cause it |
---|
63 | # to regenerate the file lists from the subdirectories |
---|