|
| 1 | +# How to Contribute |
| 2 | + |
| 3 | +DSpace is a community built and supported project. We do not have a centralized development or support team, but have a dedicated group of volunteers who help us improve the software, documentation, resources, etc. |
| 4 | + |
| 5 | +* [Contribute new code via a Pull Request](#contribute-new-code-via-a-pull-request) |
| 6 | +* [Contribute documentation](#contribute-documentation) |
| 7 | +* [Help others on mailing lists or Slack](#help-others-on-mailing-lists-or-slack) |
| 8 | +* [Join a working or interest group](#join-a-working-or-interest-group) |
| 9 | + |
| 10 | +## Contribute new code via a Pull Request |
| 11 | + |
| 12 | +We accept [GitHub Pull Requests (PRs)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) at any time from anyone. |
| 13 | +Contributors to each release are recognized in our [Release Notes](https://wiki.lyrasis.org/display/DSDOC7x/Release+Notes). |
| 14 | + |
| 15 | +Code Contribution Checklist |
| 16 | +- [ ] PRs _should_ be smaller in size (ideally less than 1,000 lines of code, not including comments & tests) |
| 17 | +- [ ] PRs **must** pass [ESLint](https://eslint.org/) validation using `yarn lint` |
| 18 | +- [ ] PRs **must** not introduce circular dependencies (verified via `yarn check-circ-deps`) |
| 19 | +- [ ] PRs **must** include [TypeDoc](https://typedoc.org/) comments for _all new (or modified) public methods and classes_. Large or complex private methods should also have TypeDoc. |
| 20 | +- [ ] PRs **must** pass all automated pecs/tests and includes new/updated specs or tests based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide). |
| 21 | +- [ ] If a PR includes new libraries/dependencies (in `package.json`), then their software licenses **must** align with the [DSpace BSD License](https://github.com/DSpace/dspace-angular/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation. |
| 22 | +- [ ] Basic technical documentation _should_ be provided for any new features or configuration, either in the PR itself or in the DSpace Wiki documentation. |
| 23 | +- [ ] If a PR fixes an issue ticket, please [link them together](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue). |
| 24 | + |
| 25 | +Additional details on the code contribution process can be found in our [Code Contribution Guidelines](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines) |
| 26 | + |
| 27 | +## Contribute documentation |
| 28 | + |
| 29 | +DSpace Documentation is a collaborative effort in a shared Wiki. The latest documentation is at https://wiki.lyrasis.org/display/DSDOC7x |
| 30 | + |
| 31 | +If you find areas of the DSpace Documentation which you wish to improve, please request a Wiki account by emailing [email protected]. |
| 32 | +Once you have an account setup, contact @tdonohue (via [Slack](https://wiki.lyrasis.org/display/DSPACE/Slack) or email) for access to edit our Documentation. |
| 33 | + |
| 34 | +## Help others on mailing lists or Slack |
| 35 | + |
| 36 | +DSpace has our own [Slack](https://wiki.lyrasis.org/display/DSPACE/Slack) community and [Mailing Lists](https://wiki.lyrasis.org/display/DSPACE/Mailing+Lists) where discussions take place and questions are answered. |
| 37 | +Anyone is welcome to join and help others. We just ask you to follow our [Code of Conduct](https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx) (adopted via LYRASIS). |
| 38 | + |
| 39 | +## Join a working or interest group |
| 40 | + |
| 41 | +Most of the work in building/improving DSpace comes via [Working Groups](https://wiki.lyrasis.org/display/DSPACE/DSpace+Working+Groups) or [Interest Groups](https://wiki.lyrasis.org/display/DSPACE/DSpace+Interest+Groups). |
| 42 | + |
| 43 | +All working/interest groups are open to anyone to join and participate. A few key groups to be aware of include: |
| 44 | + |
| 45 | +* [DSpace 7 Working Group](https://wiki.lyrasis.org/display/DSPACE/DSpace+7+Working+Group) - This is the main (mostly volunteer) development team. We meet weekly to review our current development [project board](https://github.com/orgs/DSpace/projects), assigning tickets and/or PRs. |
| 46 | +* [DSpace Community Advisory Team (DCAT)](https://wiki.lyrasis.org/display/cmtygp/DSpace+Community+Advisory+Team) - This is an interest group for repository managers/administrators. We meet monthly to discuss DSpace, share tips & provide feedback back to developers. |
0 commit comments