| 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 | 
|---|