|
| 1 | +# Package Maintainers Working Group |
| 2 | + |
| 3 | +🚧 Draft charter: this working group isn’t currently approved. The proposal requires further work, and an initial membership team. |
| 4 | + |
| 5 | +## Scope of responsibilities |
| 6 | + |
| 7 | +This group supports package maintainers in the Django ecosystem. |
| 8 | +Packages are an important part of the experience of using Django, and their maintainers can benefit from different forms of support than Django contributors and users. |
| 9 | + |
| 10 | +The goals of the group are: |
| 11 | + |
| 12 | +- To facilitate discussions and share knowledge about common issues or tasks in package maintenance. |
| 13 | +- To coordinate efforts to improve the health and quality of packages in the Django ecosystem. |
| 14 | +- To advocate for the needs of package maintainers in the Django community. |
| 15 | + |
| 16 | +This is a broad definition of the group’s remit. |
| 17 | +Current members select specific activities to undertake based on their interests and availability. |
| 18 | +See [Group activities](#group-activities) for examples of what the group may choose to do. |
| 19 | + |
| 20 | +### Delegated responsibilities |
| 21 | + |
| 22 | +With regards to Django Software Foundation responsibilities and resources, the group operates with: |
| 23 | + |
| 24 | +- No special powers delegated by the board to the group. |
| 25 | +- No specific "Django Software Foundation" actions the group can take directly. |
| 26 | + |
| 27 | +Any request for funding or resources are made via existing processes outside of this group. |
| 28 | +This can be revised in the future as and when the group identifies specific recurring needs. |
| 29 | + |
| 30 | +## Membership |
| 31 | + |
| 32 | +- Chair: You? |
| 33 | +- Co-Chair: You? |
| 34 | +- Board Liaison (must be an active Board member; may be the same as Chair/Co-Chair): You? |
| 35 | +- Other members: |
| 36 | + - You? |
| 37 | + |
| 38 | +The Chair, Co-Chair and Board Liaison manage the membership of the group. The Chair and Co-Chair animate the group’s activities. The Board Liaison relays information between the group and the Django Software Foundation Board. |
| 39 | + |
| 40 | +### Eligibility |
| 41 | + |
| 42 | +Membership is open to all Individual Members of the Django Software Foundation. |
| 43 | + |
| 44 | +### How to join |
| 45 | + |
| 46 | +To join, members must apply via the group’s [membership application form](https://www.example.com/) (to be set up once the group is up and running), sharing their motivation for joining, and expected contributions. |
| 47 | + |
| 48 | +Membership applications are reviewed asynchronously and during meetings, after which they will be voted in by current group members (50%+1). Members will be selected for the group based on their interest in the group’s goals and ability to contribute to them. |
| 49 | + |
| 50 | +### Membership terms |
| 51 | + |
| 52 | +Members join the group for a 12-month term. At the end of this term, they need to opt into staying involved to keep being a member of the group. |
| 53 | + |
| 54 | +If any member wishes to leave the group before the end of their term, they can do so without a vote. |
| 55 | + |
| 56 | +Members can propose a vote on removing a member from the working group. This needs 50%+1 agreement. |
| 57 | + |
| 58 | +## Budget |
| 59 | + |
| 60 | +No allocated budget, the group makes ad-hoc requests for funding or resources as needed. |
| 61 | + |
| 62 | +## Group communications |
| 63 | + |
| 64 | +The group communicates asynchronously via: |
| 65 | + |
| 66 | +- The public `#packages` channel on the Django Discord server. |
| 67 | +- Appropriate public sections of the [Django Forum](https://forum.djangoproject.com/). |
| 68 | +- GitHub issues and pull requests in a new `django/package-maintainers-wg` repository. |
| 69 | +- Collaborative documents set up in the Django Software Foundation’s Google Workspace. |
| 70 | +- A new private #package-maintainers-wg` channel on the Django Discord server for internal discussions. |
| 71 | + |
| 72 | +The group will also offer office hours for package maintainers every month via a video call. |
| 73 | + |
| 74 | +## Reporting |
| 75 | + |
| 76 | +The group will share highlights from current activities on a monthly basis via a forum post. |
| 77 | + |
| 78 | +## Appendix |
| 79 | + |
| 80 | +### Group activities |
| 81 | + |
| 82 | +As an illustration of the group’s remit, here are possible activities members could take part in. |
| 83 | + |
| 84 | +#### Support Django version compatibility efforts |
| 85 | + |
| 86 | +As Django regularly releases new versions, it’s an ongoing effort to ensure packages are compatible with new releases. |
| 87 | + |
| 88 | +Group members can support maintainers in this effort by: |
| 89 | + |
| 90 | +- Creating a shared calendar with Django release dates and deadlines. |
| 91 | +- Creating communication channels for package maintainers to coordinate compatibility changes for a specific release. |
| 92 | +- Recommending appropriate automation, such as [django-upgrade](https://github.com/adamchainz/django-upgrade) or how to set up Django pre-releases in Continuous Integration. |
| 93 | +- Proposing additions to the Django release notes with recommendations on how to handle deprecations. |
| 94 | + |
| 95 | +#### Share packaging best practices |
| 96 | + |
| 97 | +The group can work on create, maintain, or curate best practices for Django package maintainers. For example, the official [Advanced tutorial: How to write reusable apps](https://docs.djangoproject.com/en/5.0/intro/reusable-apps/), or packaging-focused sections on third-party resources like [awesome-django](https://github.com/wsvincent/awesome-django). |
| 98 | + |
| 99 | +Those best practices can cover aspects like: |
| 100 | + |
| 101 | +- Documentation approaches and tools |
| 102 | +- Use of the `django_` prefix for app names (see [Change reusable apps naming recommendation](https://forum.djangoproject.com/t/change-reusable-apps-naming-recommendation/25233)). |
| 103 | +- Recommended Python, Django, browser, operating system support policies to align with those of Django itself. |
| 104 | +- Tooling, for example how to set up Continuous Integration for Django packages. |
| 105 | + |
| 106 | +#### Facilitate community-driven maintenance |
| 107 | + |
| 108 | +Group members can liaise with organizations dedicated to sharing maintenance efforts, such as [Jazzband](https://jazzband.co/), [Wagtail Nest](https://github.com/wagtail-nest), or [Django Commons](https://github.com/django-commons). Or work directly with packages in need of new maintainers to find new candidates. This can involve: |
| 109 | + |
| 110 | +- Sharing calls for new package maintainers. |
| 111 | +- Coordinating trusted volunteer open source “roadies” familiar with package ownership transfers. |
| 112 | +- Facilitating participation in mentoring programs such as [Google Summer of Code](https://summerofcode.withgoogle.com/) or [Djangonaut Space](https://djangonaut.space/). |
| 113 | +- Providing support for tasks requiring very specific expertise, like funding avenues or vulnerability reports handling. |
| 114 | +- Encouraging working on packages during contributor sprints. |
| 115 | + |
| 116 | +### Curate training for maintainers |
| 117 | + |
| 118 | +The group could help organize (and fund) training sessions or training material for package maintainers on relevant topics. For example anything relating to sustainability of long-term development, or product / project management (deprecation policies, user research, writing roadmaps, fundraising). |
| 119 | + |
| 120 | +### Advance the state of the art |
| 121 | + |
| 122 | +The group could also work on more ambitious projects to advance the state of the art in Django and Python package maintenance. For example: |
| 123 | + |
| 124 | +- A standard to call for contributors, maintainers, or request funding via pip or a manage.py check |
| 125 | +- Distributed code review for Django packages (see for example [crev](https://github.com/crev-dev/crev/)) |
| 126 | +- Participation in convenings such as [PackagingCon](https://packaging-con.org/), [Upstream](https://upstream.live/), etc. |
0 commit comments