Contribute to the DSpace Development Fund
The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.
Welcome!
So, you want to work with DSpace, great! Here are some resources to help the first few days as a new DSpace developer go a lot more smoothly.
But I'm not a developer!
That's fine, even if you don't consider yourself a developer, if you want to work with DSpace in any capacity, we're here to help. These resources are for you. Welcome aboard, let's do some cool stuff!
Getting Started
- The Learning DSpace page is worth exploring if you haven't yet
- The Functional Overview is a good high-level view of all the pieces of DSpace
- Try out DSpace 8 leads you through options to try out v8 locally or on our demo site
- The Docker Compose instructions will get you going quickly with a development environment for testing purposes.
- The DSpace REST Contract will give you an overview of the DSpace REST-API code
- The DSpace 7 UI Technology Stack will give you an overview of the DSpace-Angular UI code (This is a little outdated, but the basics are still accurate)
- Recently recorded videos/webinars are also available.
- Developer Meetings also occur once per week (every Thursday). Discussion tends to revolve around activities for the next release, but anyone is welcome to listen in or join the discussion
Getting oriented: The Tools We Use
Here's a current list of the tools/sites we use, and how they are used.
- GitHub - The main codebases & issue tracker are here. We also distribute our releases from here.
- GitHub Actions for CI - We use GitHub Actions to do all Continuous Integration checks, including validating PRs & running automated tests. See Continuous Integration for more details.
- DSpace Wiki- The public wiki space. Much of our wiki is editable to anyone. If you want an account, please email "[email protected]" to request one. A few areas to be aware of (if you are not already)
- Committer Guidelines - Splash page for all our Committer Guidelines. Sure, you are probably not a committer, but these guidelines are good to know.
- Release Procedure - In case you are interested, this is our procedure for cutting a new release. If you're interested in helping with a DSpace release, release team membership is completely open to the entire community, so reach out to any committer and let us know.
- DSpace Documentation- The official DSpace documentation is created in this 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 - Demo site for current latest version of DSpace (REST API available at https://demo.dspace.org/server/)
- sandbox.dspace.org - Demo site for the next major version of DSpace (REST API available at https://sandbox.dspace.org/server/)
- dspace.org - Main website which is managed by Lyrasis. If you need something changed/updated there, contact Holger Lenz or Tim Donohue
I'm ready to develop, where do I start?
We track our focused development work in GitHub project boards, and we try to tag the tickets that are "good first issue":
- Latest Release Board(s) - Look for the issues labeled "good first issue" on this board, and ask to claim one. How? Ask in Slack, we'll help you get your name on that issue.
If you want to dig deeper than the focused work we're doing on an upcoming release, here are two links to every issue that is marked "good first issue", including tickets in our backlog:
- All DSpace backend (REST API) issues, filtered with the "good first issue" tag
- All DSpace frontend (UI) issues, filtered with the "good first issue" tag
We also have some guidelines for how to contribute new code:
- Contribution guidelines for backend (Spring Boot / Java)
- Contribution guidelines for frontend (Angular / Typescript)
I want to help, but I'm not really into writing code
That's cool, we need help reviewing code, and testing pull requests. We have a great step-by-step guide on how to test DSpace pull requests. Even if you're a bit hesitant about actually running DSpace on your own computer, trust us, you can do it. We believe in you!
I just need to customize the look of our site, I don't know where to start
We wrote a page just for you: User Interface Customization
I see that tests are required for new contributions, but I'm not sure where to start or how to run the existing tests
We have a wiki page for that, too: Code Testing Guide
You're not alone!
DSpace has a vibrant, and helpful community of developers and technologists. You have just joined that community. We're glad you're here!
The best options for seeking help as a developer are:
- Troubleshooting Guide (How to find the underlying problem/error)
- Documentation
- Mailing Lists
- Slack (chat)
- Issue Tracker (GitHub)
- StackOverflow
security at dspace dot org
(for reporting possible security issues via email)- Additional ways to get Support / Help
Asking a question on the mailing list, on Slack, or StackOverflow, are all great ways to get help. The DSpace community is global, no matter the time of day you're reaching out, you are likely to get a response a lot faster than you expect.
Code of Conduct
All DSpace support channels, mailing lists and meetings follow the LYRASIS Code of Conduct. We ask you to remain respectful in all discussions. We also encourage you to report any violations of the code of conduct to LYRASIS (see the Code of Conduct for more details).
Be the change you want to see
After you join the mailing lists, Slack, and StackOverflow, if you see a question that you know the answer to, please jump in and help. That's how this whole thing works.