Page History
...
- New Developers Hub - Draft docs for new developers started by Hardy Pottinger
- Pull Request "Trading" (discussed/Trading reviews on Pull Requests (approved in 2023-08-24 DSpace Developers Meeting)
- Developers are encouraged to ask other developer(s) to review/test their PR in exchange for reviewing/testing a PR created by the other developer. This allows both developers to get more immediate feedback! Tim Donohue will also take part in this PR "trading" but in a more general fashion.
- If you review or test any two similar-sized PRs (of your choice), I (Tim) will promise to review one of your PRs as soon as possible (Your PR go to the top of my "to do" list.)
- PRs you review or test can be any PR on one of our boards (7.6.1 Board or 8.0 Board), provided they are similar-size to your own PR.
- PRs you review or test must be from a developer at a different institution from your own.
- You must submit useful feedback on the PR you've reviewed/tested (via a comment on the PR or similar). It can be positive or negative feedback (if you test it and it doesn't work for you, that still counts).
- If I (Tim) don't notice your two reviews, please message me (privately is fine) via Slack or email & let me know which of your PRs you want me to review as soon as possible. You can also "trade" to support someone else's PR. Review any two PRs and then ask me (Tim) to review someone else's similar-sized PR.- A way for developers to offer to review or test each others PRs as a "trade".
Resources for making Code Reviews / Testing easier
General Goal: Find a way to make the codebase easier to work with & test PRs with.
- Testing DSpace 7 Github Pull Requests - How to use existing Docker scripts to spin up PRs more easily locally, in order to test them or review them.
- Spin up code in virtual environment (quickly) for easier reviews/testing
- PullPreview: https://pullpreview.com/ - Potentially promising, but not yet investigated thoroughly
- GitHub CodeSpaces: https://docs.github.com/en/codespaces/overview
- (As of 2023) Tim Donohue has played with this, and it's possible to spin up DSpace 7 in CodeSpaces. However, you need to use a 4 Core / 8GB RAM machine type (otherwise, the UI will often fail to build with an "error 137" - meaning it ran out of memory during the build process). Connecting the UI to a running Backend is also not super-easy right now, as codespaces assigns a random URL. We'd need to likely provide a Codespaces configuration for DSpace to make this easier.
- May be a way to use our Docker scripts in CodeSpaces, but it's not easy yet. See https://notes.alexkehayias.com/running-docker-compose-in-codespaces/ and https://github.com/orgs/community/discussions/34090
- GitPod: https://www.gitpod.io/for/opensource
- Automated Code Reviewing resources. Tools/resources exist which can do some automatic checking/verification of code quality in Pull Requests. Some examples include:
- Code Scanning in GitHub. We already do some of this, but currently we only scan for security-oriented code issues.
- Free & integrated into GitHub. Interface is a bit clunky at times though.
- Highly Configurable (e.g. see query types)
- Could configure this to also check PR code quality against coding best practices (currently we only scan for major bugs / security issues). See these settings
- SonarCloud.io - This is a hosted version of SonarQube.
- Free for open source projects. Integrates with GitHub & supports both Java and TypeScript. Can run on every new PR.
- Example projects: https://sonarcloud.io/explore/projects
- Test analysis run by Tim on DSpace backend/frontend: https://sonarcloud.io/organizations/tdonohue/projects (Keep in mind, there are definitely false positives listed here. These are just raw reports)
- Pros: Highly Configurable Used by other major OS projects like Apache. Good documentation/resources on how to fix any issues that are found. SonarQube is open source itself.
- DeepSource
- Free for open source projects. Integrates with GitHub & supports both Java and TypeScript. Can run on every new PR.
- Test analysis run by Tim on DSpace backend/frontend (Keep in mind, there are definitely false positives listed in both. These are just raw reports)
- Not as configurable, but able to turn off individual rules if they are too "noisy" or not useful.
- Pros: Some "autofix" options. Good documentation/resources on how to fix any issues that are found.
- Code Scanning in GitHub. We already do some of this, but currently we only scan for security-oriented code issues.
...
- All Contributors: https://github.com/all-contributors/all-contributors
- Great resource for acknowledging all types of contribution. However, it'd be nice if we could find a way to do this per release (i.e. in Release Notes) rather than just in general README.
- "Top Contributors" https://github.com/tdonohue/top-contributors
- Old (unmaintained) project from Tim Donohue to try to highlight/acknowledge top reviewers/code contributors per month using data from GitHub's API.
- Old demo at https://tdonohue.github.io/top-contributors/
- Maybe look at whether it's possible to adapt this to give similar stats per release?
- Gamification dashboard / leaderboard like this: https://github.com/PicnicSupermarket/pr-leaderboard
- Code is outdated (no updates in 4 years) but the concept is interesting
- The GitHub Contributors action https://github.com/github/contributors
- inspired by All Contributors but looks like it has more ability to integrate into the release workflow (and might also be useful in helping us identify people to invite to become reviewers, etc.)
- https://github.blog/open-source/maintainers/how-to-gain-insight-into-your-project-contributors/
Overview
Content Tools