Difference between revisions of "Dev Maintenance"

From Dreamwidth Notes
Jump to: navigation, search
(link to old instructions)
(add link to moving over; use shorter version of the pull)
Line 1: Line 1:
{{Note|text="We're in the middle of moving over to a git workflow. If you haven't yet moved over to git, see the [http://wiki.dwscoalition.org/wiki/index.php?title=Dev_Maintenance&oldid=10581 old instructions]"}}
+
{{Note|text="We're in the middle of moving over to a git workflow. If you haven't yet moved over to git, see the [http://wiki.dwscoalition.org/wiki/index.php?title=Dev_Maintenance&oldid=10581 old instructions]. If you're looking to move over, see [Moving your Dreamwidth installation to use Github]"}}
 +
 
 
== Updating the Dreamwidth code ==
 
== Updating the Dreamwidth code ==
  
Line 19: Line 20:
  
 
     cd $LJHOME
 
     cd $LJHOME
     git pull dreamwidth develop
+
     git pull
 
     cd $LJHOME/ext/dw-nonfree
 
     cd $LJHOME/ext/dw-nonfree
     git pull dreamwidth develop
+
     git pull
  
 
To restore your saved changes, now do:
 
To restore your saved changes, now do:
Line 79: Line 80:
 
oldpwd=$PWD && \
 
oldpwd=$PWD && \
 
cd $LJHOME && \
 
cd $LJHOME && \
git pull dreamwidth develop && \
+
git pull && \
 
cd $LJHOME/ext/dw-nonfree && \
 
cd $LJHOME/ext/dw-nonfree && \
git pull dreamwidth develop && \
+
git pull && \
 
cd $oldpwd
 
cd $oldpwd
 
</source>
 
</source>

Revision as of 04:27, 20 August 2012

Note: "We're in the middle of moving over to a git workflow. If you haven't yet moved over to git, see the old instructions. If you're looking to move over, see [Moving your Dreamwidth installation to use Github]"

Updating the Dreamwidth code

Warning: VERY IMPORTANT: If you have custom changes that you have not committed or patched out, you want to do that first! This is very easy. Just use git stash to save your work before you start, and recover it after you're done.

It is best to shut your Apache instance down before doing the update process, to make sure that everything, especially scripts in cgi-bin/ are reloaded properly:

stop-apache                     # for Dreamhacks
sudo /etc/init.d/apache2 stop   # for people running their own

Okay. Let's say you've been running your Dreamwidth install and you want to pull down the latest and greatest in fixes. This is pretty easy.

If you have any changes, first save them:

   cd $LJHOME
   git stash

Then grab updates from the development branch of Dreamwidth's repository:

   cd $LJHOME
   git pull
   cd $LJHOME/ext/dw-nonfree
   git pull

To restore your saved changes, now do:

   git stash pop


Update your database:

   # order of commands is important
   $LJHOME/bin/upgrading/update-db.pl -r -p --innodb
   $LJHOME/bin/upgrading/update-db.pl -r --cluster=all --innodb
   $LJHOME/bin/upgrading/texttool.pl load

Now you can restart Apache:

start-apache                     # for Dreamhacks
sudo /etc/init.d/apache2 start   # for people running their own

Of course, in a production environment, this whole process is not too recommended as you never know what kind of code you're going to get. But for the most part, it's fairly straightforward. (And if you're doing development, this is generally safe.)

Updating your system

On Ubuntu, you can update the packages on your system with:

apt-get update
apt-get upgrade

Or, if you want an easy command to run on your dw account in one swoop:

sudo apt-get update && sudo apt-get upgrade

(Note, you may not need to do this step if you're on a Dreamhack and Sophie or Afuna has already done it for everyone.)

Scripting

You can, of course, use scripts to make it easier for you to do most of this.

There is an "omnibus" script available at http://dw-dev.dreamwidth.org/94822.html which incorporates all the individual scripts listed here and some other functions, and includes help information.

Some simpler example scripts are given below.

dwu - Updating the repos

Put this code in a file called ~/bin/dwu and make it executable with chmod ugo+x ~/bin/dwu:

#!/bin/bash
oldpwd=$PWD && \
cd $LJHOME && \
git pull dreamwidth develop && \
cd $oldpwd

Now, when you type 'dwu', this script will update dw-free. If you need to update dw-nonfree as well, then use this code:

#!/bin/bash
oldpwd=$PWD && \
cd $LJHOME && \
git pull && \
cd $LJHOME/ext/dw-nonfree && \
git pull && \
cd $oldpwd


dwdb - Updating the database

Put this code in a file called ~/bin/dwdb and make it executable with chmod ugo+x ~/bin/dwdb:

#!/bin/bash
$LJHOME/bin/upgrading/update-db.pl -r -p --innodb && \
$LJHOME/bin/upgrading/update-db.pl -r --cluster=all --innodb && \
$LJHOME/bin/upgrading/texttool.pl load

This will update the database when you type 'dwdb'.

Cleaning up your directories

If you do any amount of work, you'll find that your directories get cluttered with .orig and .rej files everywhere. This script will clean those up:

git clean -f "*.rej" "*.orig"

You can run it from the command line, or put it in a file called ~/bin/tidy and make it executable with "chmod +x ~/bin/tidy". If you do that, you'll be able to just type "tidy" to clean house.