In no particular order, here are some hints/tips to help introduce a new Committer to the DSpace Development process:
Committer Mailing Lists
- firstname.lastname@example.org : As a new committer, you will be added to the private 'dspace-commit' listserv. We try to only use this 'dspace-commit' list for administrative duties or official nominations/votes for committership, etc. Developer topics occasionally come up here as well, but once they begin to move beyond "administrative" we try to move them to 'dspace-devel' so the entire DSpace Developer Community has input.
- email@example.com : If you are not already aware of it, we have a public 'dspace-changelog' email list which just reports recent commits to GitHub. You should probably join that list, as it is your friend.
- firstname.lastname@example.org: Again, if you are not already aware of it, we have a public 'dspace-tickets' email list which just reports any recent changes to JIRA tickets. You should probably join that list, as it is also your friend.
The Tools We Use
Here's a current list of the tools/sites we use, and how they are used.
- GitHub - The main codebase is now here. We also distribute our releases from here. See Development with Git for some hints/tips.
- JIRA - Obviously this is where we log all bugs/tickets. It is also used to auto-generate the "History" page of our DSpace Documentation, e.g. 1.8 History page
- Travis CI - We use Travis CI for automatic building/testing of any new commits to GitHub and to validate Pull Requests. If an error occurs during an automated build/test, we are notified immediately.
- DSpace Wiki- The public wiki space. A few areas to be aware of (if you are not already)
- DSpace Documentation- The official DSpace documentation is created in the wiki (and PDFs are generated from the wiki during releases). This is the splash page which lists all the existing DSpace Wiki Documentation.
- How we generally manage this Documentation is on a subpage: Documentation Management
- demo.dspace.org - The demo installation of DSpace which is on a virtual server (Amazon EC2 w/Ubuntu Linux). This server is used to show off the latest version of DSpace, as well as to help test upcoming features during release Testathons.
- www.dspace.org - Main website which is managed by DuraSpace. If you need something changed/updated there, contact or email sysadmin at duraspace.org
Development Tool Licenses for Committers (for IDEs, etc.)
If you find a need for some licensed software to do your open source development for DSpace (e.g. an IDE, Java profiler, other tool), contact DuraSpace (email: sysadmin at duraspace.org) and we can try to obtain a license. Many non-free, licensed development tools offer a free "open source" license, which DuraSpace can then make available to our project committers. Some tools that DuraSpace has open source licenses for include: IntelliJ IDEA and YourKit Java profiler.
Regarding commits to GitHub:
- As a new Committer, you obviously have full rights to commit code. Usually, we try to not commit major code to DSpace that has not be reviewed by others (by posting a GitHub Pull Request and JIRA ticket for review). But, obviously minor bug fixes/typos can just be fixed immediately – there's no need to review things that are obvious.
- Please review to the Guidelines for Committing for additional hints/tips on our normal commit process.
- Also read Development with Git for some hints/tips on GitHub development practices
There are actually several projects in GitHub (in case you haven't browsed around it much). Here's a very brief overview of the main projects available off of https://github.com/DSpace/
- DSpace- The main codebase.
- dspace-api-lang - The DSpace API/JSPUI Language Packs, which are released separately to Maven Central (so DSpace can use it as a dependency & include it out-of-the-box)
- dspace-xmlui-lang - The DSpace XMLUI Language Packs, which are released separately to Maven Central (so DSpace can use it as a dependency & include it out-of-the-box)
- dspace-solr - Special, slightly customized version of Solr, which is released separately to Maven Central (so DSpace can use it as a dependency & include it out-of-the-box)
- dspace-cocoon-servlet-service-impl - Patched version of Cocoon Servlet Service which resolves issues with Cocoon swallowing 404 Errors, which is released separately to Maven Central (so DSpace can use it as a dependency & include it out-of-the-box)
- dspace-geoip - Project that deploys MaxMind GeoIP releases (http://sourceforge.net/projects/geoip/) to Maven Central for DSpace (so DSpace can use it as a dependency & include it out-of-the-box)
- If you can, try to join our DSpace Developer Meetings in #duraspace IRC. It's a good way to stay "in the loop". It's also a good way to get to know everyone. If you cannot make the meeting, transcripts are also available on the above wiki page and off of http://irclogs.duraspace.org/.
- You are also very welcome to pop into #dspace IRC anytime – most workdays many of us can be found there. Usually, it's live Q&A there, but occasionally we have ad hoc discussions. You'll probably see us joking around as well – we try to keep it relaxed and fun.
- Information about joining either #dspace or #duraspace IRC is on the DSpace Resources page.
Questions / Issues
- If you have questions – definitely feel free to ask. We are a very friendly group. Although there is the occasional disagreement, no one gets offended, and I think we always end up with a friendly resolution.
- If you are trying to do something with anything related to DSpace (GitHub, JIRA, etc.) and you cannot figure it out or it isn't working, let us know! Chances are we forgot to give you some permissions that you need to have (or something is broken).
- Similarly, if you really aren't sure about an "official policy on ____" or have questions on Committership in general, please ask. In most cases, either there is no "official policy" (but there may be guidelines), or we forgot to document it. Either way, it's helpful to point it out to us, so that we can avoid confusing new committers in the future!
- In the end, it comes down to three things:
- Have fun! Really – no need to take it too seriously.
- We don't really have any strict "rules", just occasional "guidelines"
- Ask questions if things are not clear – any of us are glad to help.