Updating Beaversource
The frontend of Beaversource is divided into two components: Elgg and Trac. They are updated independent of each other. The elgg side usually gets updated with UI fixes and more often than the Trac side. Trac is usually updated by the sysadmin, or new plugins are installed by one of the developers.
Updates to Beaversource happen on Sundays. An email to code-admins will be sent on a Thursday or before. Another email will also be sent to people letting them know whether or not the update happened. The email should include a small summary of the updates with a link to the Changelog for more information.
Elgg
Checking the status of Live Site
Before updating the live site it is always important to always check the live site to make sure there are no extra changes in it or things that are not in svn. If there are changes in the live site that are not in svn, commit them to trunk. Do not commit new changes into a tag. Tags are to point,mark, or tag a revision in svn.
Make sure we are running on the latest tag
cd /var/www/social svn info
Make sure that there are no new changes
svn status
Review the changes in trac tickets
Use trac's report and filter the tickets by owner. The tickets that are owned by insvn are the ones that are fixed. Review the changesets.
Review the changes in trunk
As a sanity check it's good form to do an svn diff to see what are the changes that will be applied when switching to a new tag. You can either use trac to do the diff or the command below:
svn diff https://code.oregonstate.edu/svn/admin/elgg/trunk https://code.oregonstate.edu/svn/admin/elgg/tags/<your-tag-goes-here>
Create a tag
When we create tags, we try to follow the convention of: YYYYMMDD. The tags are store inside the /elgg/tags directory.
svn copy https://code.oregonstate.edu/svn/admin/elgg/trunk https://code.oregonstate.edu/svn/admin/elgg/tags/<name-of-tag>
Switch the live site to the new tag
Only switch to a new tag after you have double checked the status of the working copy (live site), and the new changes in trunk. Be careful with the svn switch command. If you switch to a different repository, it could be problematic. Switching between tags is just a matter of seconds.
The svn switch command must always be done on the top level directory: /var/www/social
svn switch https://code.oregonstate.edu/svn/admin/elgg/tags/<name-of-tag> .
Trac
Since Trac is installed to the system and doesn't have a centralized location for all its files, updates to it vary depending on what type of change is being made.
Theme
New changes to the theme are done through modifications to the Trac templates. To make any new changes live, an admin would do the following:
- Checkout a copy of the repository to the live site (their home directory would be the preferable location)
- Copy any new templates to /usr/share/trac/template/
- Copy any new css changes to /usr/share/trac/htdocs/css/
- Copy any new images to /usr/share/trac/htdocs/
- Copy any new javascript to /usr/share/trac/htdocs/js/
Plugins
New plugins should be properly vetted first to make sure they don't require new database modifications. Assuming they don't, they can be installed using easy_install or (from tarball) sudo python setup.py install. Both of these methods install the plugins globally. The admin then needs to modify /etc/trac/trac.ini to indicate if the plugin should be enabled globally, or disabled. Most plugins will probably be set to disabled globally, and enabled on a project-by-projet basis by adding the requisite lines to that project's conf/trac.ini file.
Core Trac
At one time we made some changes to Trac's core code. All of these changes have since been walked back and are no longer needed. Trac core code should not be edited and all modifications should happen through plugins or template modifications.

