Hello hello
The following is an idea/proposal that requires thoughts and feedback.
Background
We currently have a few teams of volunteers in Django who contribute to the maintenance and development of the Django framework.
Most teams also have a corresponding GitHub team and therefore can be @-ed or can have reviews requested in PRs. The exceptions here are the Technical Team and the Technical advisory team.
From my experience, in practise for the Django repository two teams are requested for reviews in PRs:
- The review and triage team
This team is often requested to review the PRs of fellows (as no one can approve their own PR) and, due to timezones or availability, the other fellow may not be able to review. These PRs are often either quite trivial (fixing a spelling error) or important (addressing a release blocker). - The accessibity team
They help validate that proposed changes to Django do not violate the accessibility standards we aim to uphold. This often means they will be requested for approval of UI/UX changes, especially in the Django admin. I also believe this review has been requested in recognition that the Fellowship does not hold the accessibility expertise themselves.
This has been working really well. Thank you to everyone who helps on PR reviews and triaging tickets, your input is invaluable
With the retirement of Mariusz and Carlton, the fellowship has much less contributor and Django design experience/expertise than it once had. For example, with the recent retirement of Mariusz, we have lost a lot of ORM experience.
Note: I donāt think we have lost Mariusz or have lost any fellow once they retire. They all do still care lots and make very valuable contributions. This is only highlighting a change of experience in those who have dedicated paid time to look after Django.
For any PR to be merged to Django we need to ensure it meets Djangoās standards, is correct and that it is the āright approachā. Having the āspider senseā as to whether it is the right approach requires a lot of experience and expertise and we need to lean on others in the community for this.
I believe the organisation of the accessibility team achieves this very well. When we request an approval from them
- this recognises needed expertise and fills a gap in the knowledge/experience of the fellowship
- the PR author knows that the PR is waiting for a review from a particular team (I prefer this from a person they can @ specifically)
This now leads to the proposal/ideaā¦
Proposal
I believe it would be beneficial to form more teams based on areas of expertise, similar to the accessibility team.
This would help the fellows merge PRs confidently in areas that we recognise we do not have the technical expertise in.
I believe an ORM team would be useful, there are others that we can form over time.
Why an ORM team?
The ORM has a lot of big and complex PRs requiring knowledge in multiple databases.
These are often considered more major updates and are featured at the top of the release notes (rather than in the āminor featuresā section).
These are example PRs:
Other notes that are a bit rambley
We already call on individuals to review PRs specifically.
We have some people in mind who can look at certain areas of Django. But explicit is better than implicit and we donāt know if our knowledge is complete/accurate/up-to-date. I also think it is easier for someone to step away when they know they are part of a team and we will recruit for their expertise if needed.
This leads to the documentation benefit. I believe this can help us document the expertise of individuals and where we are at risk. I feel like the current Technical Team or Technical Advisory Team could have a sentence or ātagsā on what topics they are experts in, considering the history of Django and that this knowledge isnāt ready available for new contributors.
The āriskā I refer to here, is if we rely heavily on 1 or 2 individuals, we should be concerned about how sustainable that is and actively try to develop and mentor others for these roles.
I would love to hear:
- Whether you think this would benefit Django in the long run
- What risks you see or why you would not agree with the idea
- If there is another idea or alternative you think we should discuss
If this is positively received it may require a DEP and I can draft this if appropriate, but wanted to bring the discussion here to begin with.