This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
project_management [2010/06/09 11:56] 172.26.14.218 |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Project Management ====== | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | |||
- | ====== Subversion ====== | ||
- | |||
- | Subversion (SVN) uses a centralized model to manage software projects. | ||
- | |||
- | The repository can be on the local machine or a remote server, as SVN supports several protocols (%%svn:// | ||
- | |||
- | ===== Install ===== | ||
- | < | ||
- | Configure Apache: | ||
- | |||
- | ===== Create a New Project ===== | ||
- | ==== On The Server ==== | ||
- | |||
- | Create the project skeleton (the name isn't important, it is only a folder in the file system): | ||
- | < | ||
- | $ sudo mkdir / | ||
- | |||
- | Create the SVN repository, : | ||
- | < | ||
- | $ sudo svnadmin create / | ||
- | |||
- | Import the initial project skeleton: | ||
- | < | ||
- | |||
- | Clean up temp files and repository permissions. The repository needs '' | ||
- | < | ||
- | $ sudo find / | ||
- | $ sudo find / | ||
- | $ sudo chown -R root.www-data / | ||
- | |||
- | Tell Apache to use ''/ | ||
- | < | ||
- | DAV svn | ||
- | SVNPath / | ||
- | AuthzSVNAccessFile / | ||
- | |||
- | AuthName " | ||
- | AuthType Basic | ||
- | |||
- | PerlAuthenHandler Apache2:: | ||
- | PerlSetVar MSADDomain ilri.cgiarad.org | ||
- | PerlSetVar MSADServer 172.26.0.218 | ||
- | |||
- | # require any valid AD user to access the repo via Apache, | ||
- | # then use fine-grained controls in the AuthzSVNAccessFile | ||
- | # above. See: http:// | ||
- | require valid-user | ||
- | |||
- | # Or, use specific (but dumb) controls here in the Apache | ||
- | # config file instead of the AuthzSVNAccessFile above. | ||
- | #require user aorth akihara | ||
- | </ | ||
- | Gracefully restart Apache to enable the changes: | ||
- | < | ||
- | |||
- | ==== On The Client ==== | ||
- | |||
- | Check out the development branch (" | ||
- | < | ||
- | $ svn co --username=aorth https:// | ||
- | |||
- | Import your existing code base (" | ||
- | < | ||
- | $ cp -R / | ||
- | $ svn add * | ||
- | $ svn commit -m " | ||
- | |||
- | ===== Ignoring Files and Folders ===== | ||
- | Sometimes you need to ignore certain files/ | ||
- | < | ||
- | And then place a single " | ||
- | |||
- | ===== Tagging Releases ===== | ||
- | ==== From trunk ==== | ||
- | < | ||
- | $ svn copy . http:// | ||
- | |||
- | Switch a working copy to a certain release: | ||
- | < | ||
- | |||
- | ===== Links ===== | ||
- | * http:// | ||
- | ====== Trac ====== | ||
- | |||
- | Create a new Trac project: | ||
- | < | ||
- | Change the permissions so the Apache user can manage the Trac environment: | ||
- | < | ||
- | Configure Apache to use Python for '''/ | ||
- | < | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | </ | ||
- | The '' | ||
- | |||
- | Add Active Directory support for login URLs: | ||
- | < | ||
- | | ||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | |||
- | # | ||
- | | ||
- | </ | ||
- | This will tie Active Directory authentication into the login system for Trac. We use the same scheme for SVN too, so users will be able to log in as the same user they are submitting code as. | ||
- | |||
- | Add a user as an admin in a particular Trac project: | ||
- | < | ||
- | |||
- | ===== Resync Trac/SVN ===== | ||
- | If your Trac gets out of sync with your SVN repository you will have to resync them: | ||
- | < | ||
- | Resyncing repository history... | ||
- | 1 revision cached. | ||
- | Done.</ | ||
- | |||
- | ===== Links ===== | ||
- | |||
- | * http:// | ||
- | |||
- | ====== Redmine ====== | ||
- | |||
- | * Official install guide: http:// | ||
- | * Unofficial install guide: http:// | ||
- | * Arch Linux wiki guide: http:// | ||
- | |||
- | ===== Install dependencies ===== | ||
- | ==== aptitude ==== | ||
- | < | ||
- | |||
- | ==== Download ruby gems ==== | ||
- | Problems I faced: | ||
- | * DNS is screwed up for rubyforge.org and rubygems.org. | ||
- | * rubyforge.org has old versions of some gems (rails!) | ||
- | |||
- | You SHOULD be able to '' | ||
- | < | ||
- | 72.21.202.165 | ||
- | Don't ask. I guess they are using the " | ||
- | |||
- | < | ||
- | $ wget http:// | ||
- | $ wget http:// | ||
- | $ wget http:// | ||
- | $ wget http:// | ||
- | $ wget http:// | ||
- | |||
- | ==== Install gems ==== | ||
- | Rake, for building gems: | ||
- | < | ||
- | Make sure you can execute the '' | ||
- | < | ||
- | # ln -s / | ||
- | Continue installing gems: | ||
- | < | ||
- | # gem install fastthread-1.0.7.gem | ||
- | # gem install mysql-2.8.1.gem | ||
- | # gem install sqlite3-ruby-1.3.0.gem | ||
- | # gem install rails-2.3.5.gem</ | ||
- | |||
- | ===== Configure Redmine ===== | ||
- | Download and unzip the latest stable tarball: | ||
- | < | ||
- | $ tar zxf redmine-0.9.4.tar.gz</ | ||
- | |||
- | ==== Move redmine ==== | ||
- | Move redmine somewhere universal, outside of your home folder. | ||
- | |||
- | < | ||
- | $ cd / | ||
- | |||
- | ==== Configure the database ==== | ||
- | We can either use MySQL or SQLite. | ||
- | |||
- | Edit // | ||
- | < | ||
- | | ||
- | | ||
- | |||
- | ==== Initialize the database ==== | ||
- | < | ||
- | $ rake rake generate_session_store | ||
- | $ RAILS_ENV=production rake db:migrate | ||
- | $ RAILS_ENV=production rake redmine: | ||
- | |||
- | ==== Test the server ==== | ||
- | Before we can use Redmine with Apache, we have to make sure the installation worked fine. Use the built-in webserver to test first: | ||
- | < | ||
- | If you get an error about not finding ruby, make sure the ruby version in the '' | ||
- | |||
- | Navigate to http:// | ||
- | |||
- | ====== Configure Apache ====== | ||
- | |||
- | ===== Install Phusion Passenger ===== | ||
- | Phusion Passenger (" | ||
- | |||
- | * Reference: http:// | ||
- | * Also the guide on the [[http:// | ||
- | |||
- | ==== Install the gem ==== | ||
- | < | ||
- | |||
- | ==== Install the Apache module ==== | ||
- | Edit the invocation line of the passenger installer program to point to '' | ||
- | < | ||
- | Run the installer: | ||
- | < | ||
- | |||
- | ==== Configure Apache settings ==== | ||
- | Apache will serve Redmine via FastCGI using the included '' | ||
- | |||
- | ==== Configure dispatch.fcgi ==== | ||
- | Rename it and make sure its executable: | ||
- | < | ||
- | $ chmod 755 public/ | ||
- | |||
- | Edit the invocation line in the FastCGI script to make sure it points to your ruby version ('' | ||
- | < | ||
- | ... | ||
- | require "/ | ||
- | ...</ | ||
- | |||
- | ==== Move Redmine folder ==== | ||
- | Change permissions so the web server can read/write important files/ | ||
- | < | ||
- | |||
- | Link the Redmine installation to the web document root: | ||
- | < |