Software Development
This page offers a rapid tour of URY's software development resources.
Acquiring URY source code
At time of writing, nearly all of URY's development is done on computing:software:external:GitHub: see that article for more information.
GitHub uses Git as its version control system. Git is simple, which makes it both really nice to use and also really horrific with its learning curve. Reading the enclosed instruction book is recommended.
Acquiring older URY source code
Some of URY's older source may not be available on GitHub. Before we used GitHub, we used:
Most of these are now decommissioned, though backups may still exist. (Some of the old CVS root is now on GitHub as the private repository cvs-ury).
Old documentation about these VCSes follows.
urybsod git
Prerequisite knowledge
Use port forwarding using ssh tunnels or UNI VPN
Access
GIT repos are stored on urybsod:/home/git owned by the git user and group.\
How to do stuff
Always use the git user for developmenting purposes.
git clone git@urybsod:somerepo.git
To commit changes to your local repository, first add any new files, then commit with a message:
git add [filename]
git commit -m "Enter a nice pretty git message here"
Once you are done working on whatever you're working on, you push changes back to the development server:
git push
It may argue with you about there being other changes - apparently other people can edit code too! To 'pull' changes by others:
git pull
That's it! One can now git. Once a push is made to many of our git repositories, an automated build process will be started by Jenkins. Once complete the built code can be pulled onto the live location.
Remember to refresh your local copy with the latest from the remote repo (git pull or git fetch/git merge), and commit all your changes to it, or branch.
Software specifics
Certain bits of software, notably the computing:software:Website and computing:software:external:Radioplayer , have more involved git workflows than the standard push-pull. Check their pages for more information.
Repos
repo | Description | Live Pull Locations |
---|---|---|
NewBAPS.git | The BAPS replacement | - |
baps2-slut.git | BAPS2 The replacement of the replacement of BAPS | |
website.git | Front website | Deprecated software |
radioplayer.git | Our URY version of Radioplayer | Automagically by website.git |
SiS.git | Studio Information System | Deprecated software |
sis2.git | SIS2 | uryfs1:/usr/local/sis2 |
api.git | URY API internals | - |
myury.git | MyURY - The Members Internal replacement | ury:/usr/local/myury |
shibbobleh.git | URY Single Sign-On Service | ury:/usr/local/shibbobleh; uryfs1:/usr/local/shibbobleh; dog:/usr/local/dog |
timelord.git | Studio Clock | jukebox:/usr/local/timelord |
uryjukebox.git | iTones Web Management (Not inc. jukebox server API) | uryfs1:/usr/local/uryjukebox |
propget.git | Command-line utilities for querying website properties | Anywhere (separate install process) |
fpclient.git | A FreeBSD port of https://github.com/lastfm/Fingerprinter/ with URY's API key. Required for MyURY/NIPSWeb. At time of writing the FreeBSD /usr/ports package has a sample API key hardcoded. | Made & installed on thunderhorn |
SVN
SVN replaced CVS stored on uryfs1 at /var/svnury checkout using svn co svn+ssh://user@uryfs1.york.ac.uk:/var/svnury ury-svn
CVS
user must be in cvs group on ury.york.ac.uk export CVS_RSH="ssh" cvs -d :ext:uryuser@ury.york.ac.uk/usr/home/cvsroot co urycvs/