Redmine
From Peyton Hall Documentation
Redmine is a "project management" web application which ties many useful features together, such as a source code repository, wiki, file space, issue tracking and documentation. In order to ease the use of things like Subversion repositories, we setup a Redmine installation on the network which may be used by all, and can easily have off-site collaborators added to it without needing to know intricacies of Subversion and SSH configuration.
Contents |
Connecting
https://redmine.astro.princeton.edu is the URL for the Redmine installation. If you already have an account in Peyton Hall, login with your user name and password and a Redmine account will be created for you automatically. You will initially have very little permissions on projects (except whatever publicly viewable projects there may be) but once your account exists we can create a new project for you and grant you administrative access for that project.
- NOTE: As we do not currently have an SSL certificate for this site, you will see an "error" in most web browsers that the certificate cannot be verified. You will have to accept the certificate as it is to proceed. You will also see this when performing checkouts or checkins via svn.
Hosting A Project
After you've created an account (see above) we can add a new project for you and set you as the administrator of the project. We will need to know the following for the project:
- Name (30 characters max, may be changed later)
- Description (you may change this later)
- Identifier (Length between 1 and 20 characters. Only lower case letters (a-z), numbers and dashes are allowed. Once saved, the identifier can not be changed. This will appear in URLs for the project, and also identify the project's source code repository.)
- Homepage URL (may be changed later, or omitted)
- Public or Private (if public, anyone can view things about the project as well as check out code; if private, only project members can see it)
- Source code repository (as of right now, this means a Subversion repository but others may be available in the future)
Once you have all of the above, contact us with everything listed and we can create your project. Be sure you've already created your account or we can't assign administrative access on the project to you.
Adding Off-Site Collaborators
If you have someone who needs access to your project (developer/administrator access, or read access if your project is marked private) then we'll need to create an account for them in Redmine. Automatic creation of accounts is turned on if you have a Peyton Hall account already, but off if you do not to keep spammers from creating accounts and junking up the database. To setup an account, we require the following information:
- User name (will be prefaced with 'ext-' to avoid collisions should they get an account here later)
- First & Last name
- Email address
Contact us with the above, and we will create an account for the user and generate a password for them. You should pass this password on to them securely (not just emailed) though they should change it anyway as soon as they receive it. You can then change their permissions on your project to reflect the role they should have (reporter, developer, administrator).
Using Subversion With Redmine
When a project is created, you probably want a source code repository created as well. The repository will be created with the same name as the "Identifier" we ask for when you setup a project, and will live in /u/svn/subversion/identifier. If a project is public, then anyone may locally check out code, but if it's private then they must be in the same group. By default, all projects are in the 'svn' group, but if you'll want local access to a repository we can change that as well.
The other way to access a repository is via HTTP. Simply using the url http://redmine.astro.princeton.edu/svn/identifier will get you access to the code (without a password if it's public; if the project is private, you'll be prompted for your user name and password). This way, you don't actually need a physical account in Peyton Hall to access a subversion repository, just an account in Redmine (and only then if you want to check in, or if the project is private).
- NOTE: One caveat of using HTTP access to a repository is with the storage of passwords. On Windows and Mac OS X machines, Subversion has hooks to store passwords securely and encrypted using the OS's built-in keychains. However on Linux, the password must be written in plain text to a directory in your home directory. This directory is set so that only you can read it, but if someone gains access to your account they can recover any passwords stored in there! We advise any Peyton users to not store passwords when Subversion asks you on Linux, but instead to use a local URL to access the repository which relies on Unix permissions instead of password authentication.
Hints
- You can reference an issue in many places, even through commit messages to the repository. When checking in a change, if you have "refs", "references" or "IssueID" followed by '#' and the issue number, Redmine will automatically link your commit to that issue. See this example commit and the associated issue.
- Similar to the above, if you have "fixes" or "closes" followed by '#' and an issue number, the issue will be set to the resolved status and 100% complete. This does not close the issue, but set it as resolved; you'll still have to close issues manually, but that's probably a good thing.
FAQ
Why the 'ext-' prefix?
It does happen that people who were remote collaborators on a project later get an account in Peyton Hall. If we do not distinguish between internal and external users, there's a chance of collision between the two if a user gets a Peyton account. Having a prefix for external users also prevents the chance of a Peyton account being created for someone who is not the same person, thus shutting out the external user from accessing the site anymore.
What if I just want Subversion?
Even if you don't want the wiki and issue tracking features of Redmine, using it to manage a Subversion repository makes it simple to add external collaborators.
What if I want to move my project out of Redmine?
There's no lock-in with Redmine. If you have a project created and decide you want to make it standalone, we can remove it from Redmine and move the repository elsewhere.
What if I already have a Subversion repository?
If you have an existing project and want to add the Redmine features, we can accommodate that either by leaving the repository as-is and linking Redmine to it, or by moving it to under Redmine's control. If we leave the repository as-is, then all access controls for check-ins and check-outs falls on whatever methods you've been using previously, while Redmine will handle access to the repository browser (web interface) and issue trackers, wiki, etc. If we move the repository to under Redmine's control, then it will also control check-ins and check-outs via the http://redmine.astro.princeton.edu/svn/identifier method. Accessing the repository via the local file system will be left unchanged, and based on Unix groups if desired.
I committed a change to the repository, but the associated issue is untouched
Redmine doesn't read repositories constantly, only when someone asks it to. In order for it to realize a new commit has been entered which it should parse, click the "Repository" link for that project. This will cause it to read the latest changes, and act accordingly.
See also
- http://www.redmine.org - Main site, including documentation
- https://redmine.astro.princeton.edu/projects/example - Example project for ideas on how to use Redmine & how it works
