-
Notifications
You must be signed in to change notification settings - Fork 44.6k
Maintaining
π§ββοΈ Here be wizards
TODO: flesh this all out
- our review/merge process
- what else?
TL;DR: Upkeep of the project.
- Promote progress of the project towards its goals
- Ensure the project architecture serves the project's goals
- Coordinate with catalysts, contributors, and external parties
- Gatekeep the codebase to ensure its quality
- Reviewing and merging pull requests
- Publish releases
- GitHub
- Assign PR to a milestone if appropriate
-
nit:
if we're reviewing someone's code, but don't want to insist they take our suggestion
- Kanban
- Assign yourself to a card in the "In Progress" col, so people can see what you're up to.
- Each day,
#maintainer-updates
channel:- Post a message when you clock in, with your TODOs.
- As you work, update this message, so that when you clock out it actually shows what you did (and things still to do) This way we can see what everyone's up to.
Let's be creative:
- π (looking at it) -- if someone presents an issue (e.g. a pull-request) we don't want everyone looking at it. So whoever is looking at it, react with π
- Ask for a π to request acknowledgement (or react π to acknowledge that you've read it)
- β job done (merged, finished, etc)
- etc.
- create a thread at the relevant place (e.g. β π¬γ»dev-contributors-chat )
- In it Hilight e.g. @Contributor @Catalyst @Maintainer, @Catalyst @Matintainer, or just @Maintainer
- Propose time using https://r.3v.fi/discord-timestamps/ -- invite π π responses
- link a livedoc https://pad.bitlair.nl/ so stakeholders can put together an agenda, so meeting starts hot
- seed the agenda
- during the meeting, can update further the livedoc like Nick did yesterday, marking out TODOs at bottom of doc
- After the meeting, summarize actionables in thread
GitHub has comprehensive tooling for collaborative projects, and WE ARE USING MOST OF IT.
-
Kanban project board This is our main nexus for scheduling, figuring out what's going on, etc.
-
Use filters, e.g.:
-
label:challenges
to see what's in-progress regarding Challenges -
milestone:"v0.4.0 Release"
to see what's outstanding regarding the upcoming v0.4.0 milestone -
assignee:ntindle
to marvel at the insane number of cards to which Nick has self-assigned (and maybe help him out)
-
-
If you're keen to involve, this is a GREAT place to get a sense of what needs doing
-
By viewing the
In Progress
column you can see who's currently doing what!
NOTE: Cards (issues/PRs) are NOT by default added to the kanban project. So if you're wondering why a card doesn't show up on the kanban, probably this is why. If you go to the issue/PR, on the right, you should see a
Projects
that lets you choose which projects to add this card to. Just select the kanban project, and it'll show up.NOTE: Also TODO is add milestone to certain issues / PRs. Either make a decision yourself, or float it on Discord.
-
-
-
Click the link to see current milestones.
-
This is DIFFERENT from the roadmap
-
Catalysts/Maintainers should be adding milestones to cards (issues/PRs) as appropriate
-
We should always have a few open milestones. Suppose for example we're on 0.3.1. We should have:
- 0.3.1 -- current version being worked on
- 0.3.2 -- next point-release
- 0.4.0 -- next minor-version release
- 1.0.0 -- next MAJOR-version release
-
We can shuffle these around when we need to, e.g.: At time of writing we're about to release 0.3.1, as it contains a critical bugfix.
We've created a 0.3.2 milestone (and re-targeted all cards that were targeting this milestone to this 0.3.2 milestone)
-
NOTE (21 May 2023): Discord link We will be releasing each Thursday at 21:00z
-
Any cards milestoned for this release not cleared get pushed forward to next milestone
-
Compile RELEASE-NOTES
- On Releases page,
Draft New Release
-
Choose a tag
: (e.g.)v0.3.1
and clickCreate new tag: v0.3.1 on publish
- Click
Previous tag: auto
pulldown, and select the tag of the last release NOTE: Yes it's annoying theauto
sometimes selects the wrong tag, so yes we have to do this! - Click
Generate Release Notes
- Throw these thru GPT4 to get a bulleted list
- Use common sense to reformulate/reorganize items
- On Releases page,
-
Round of testing (1h before release)
- in #testing (in
Development
section) on the Discord:- Hilight @Contributor @Catalyst @Maintainer and @Windows Tester @Linux Tester @MacOS Tester @Docker Tester
- Dump RELEASE-NOTES into message
- Create a thread from the message
- In the thread, ask for testers to β β, and leave a comment if β
- in #testing (in
-
Update BULLETIN.md to announce new version
-
βοΈ Make the release, dropping in the RELEASE-NOTES, and tag master (e.g. v0.3.1)
-
Announce it using the main Discord #Announcements channel (which relays to 50k+ other discord users as well as our guild)
-
Tweet from official AutoGPT Twitter (Toran)
-
Retire old milestone (GH-PR-page (any PR))!
Here are some tools to make the life of catalysts and maintainers easier!
-
Refined GitHub Chrome Extension to improve GitHub Web{UI/UX}
-
Create a livedoc: https://pad.bitlair.nl/
-
Create a diagram: https://www.figma.com/figjam/
-
list-prs-for-path.sh
pwuts' Tool to List pull requests that touch/change a specified file or path -
Toran's git-aid
This repository contains a collection of AI-assisted utilities to improve your experience with GitHub. These utilities include tools for finding duplicate issues, generating responses to issues, extracting information about repositories, and assisting with reviewing pull requests.
We are working back towards a more accessible and inclusive developer experience. As long as this notice is here, beware that there may be things on this wiki that still need updating.
~ Pwuts, 2024-06-13