The OpenREM project is always looking for contributions. If you feel you can help in any way, please do get in touch. Even just letting us know that you are using the software and telling us how you are getting on helps :-) You can tweet us @_OpenREM, send a post to the Google Group by emailing openrem@googlegroups.com, go to the Google group website or contact me on Bitbucket.
There are many ways to help; with coding new features, fixing bugs, improving documentation, adding ideas, talking to people about the project, improving this website!
This section of the website is very much a work in progress at the moment, and aims to help lower the barriers to contributing to the project.
The copyright for OpenREM belongs to my employer, The Royal Marsden NHS Foundation Trust (RMH). In common with most employers, they own the copyright for anything that I create or invent if it is done in work time or is related to my work.
I have been advised that it is preferable to keep the copyright to a single named entity, as otherwise any action that is required to persue any legal avenue for breach of copyright or breach of the GPLv3 licence becomes very difficult. I think it is highly unlikely that any action would be required, but none the less I would like to adhere to best practice.
Therefore, when contributing I am asking you to pass the copyright of your work to The Royal Marsden NHS Foundation Trust. By making a contribution, you are agreeing to this condition.
The copyright owner has the right to set the licence for the software. Theoretically it could be dual licenced with a proprietary licence. However, the code as it stands today is licenced under the GPL, and that can never be revoked. Any code that you contribute will also be under the GPL and whilst as copyright owner RMH could then dual licence your contribution, they cannot remove the GPL version.
In addition, I am not in any way interested in any licence other than the GPL, and therefore would not support anything that seeks to modify this.
If you feel that this condition is contrary to your conditions of employment, or your own personal ethics, and you think you have a significant contribution you'd like to make, please get in touch (Google Group, Twitter or via Bitbucket), and we can talk about it. If this becomes enough of an issue, one possible avenue would be to create a foundation or a Community Interest Company which could hold the copyright. However, I have not approached my employer about this concept, and do not wish to do so unless it becomes an issue!
The full licence can be reviewed at the GNU Project website. In basic terms, the GNU General Public Licence (GPL) means that you can do whatever you like with the code - change it, share it, use if for what ever purpose you like. However, if you distribute any changes you make, it must be under the same terms. Please note however, this does not affect copyright - that cannot be changed without agreement (see the copyright section above).
Git is a distributed version control system. It performs the same function as cvs or subversion in that it keeps a history of how files have changed, but it is different in that you can make commits, create new branches to work on features or try new things out, see differences between versions etc all on your local computer without needing to be able to contact a server. The majority of OpenREM coding has taken place on a London Underground train, made possible with git!
To make like easier, OpenREM code is hosted on a website called Bitbucket. This provides a place for me to push to code to so that I and anyone else can clone the repository to work on different computers. It also provides a nice interface for browsing the code and the commit history, and provides an issues function which ties into the commits by having each reference the other when they are related.
Bitbucket have a tutorial on their website to help you get started with git and Bitbucket
Web based git code repositories such as Bitbucket and GitHub have introduced the concept of forking a repository. The idea is that rather than let everyone and his dog have commit access to the master repository, anyone can 'fork' the repository and get their own copy that they can do anything they like with.
If they have done something that the original project might like to incorporate, they send a 'pull request'. This then allows the original project to take a look at what the changes are, decide whether they want to incorporate them and if they do, merge them into the main project.
Working like this enables anyone to have a go at contributing, safe in the knowledge that they won't cause any problems with the master repository, and when they do send in a pull request, all the changes and history can be carefully reviewed.
For more information on forking, take a look at this guide from the makers of Bitbucket .
Yes! I would prefer that you used those tools, but if you don't want to, I can accept patches or new versions of files instead, and I'll incorporate them into a branch of my version of the repository and go from there :-)