-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Map bpo issue metadata to GitHub fields/labels #5
Comments
An additional consideration: metadata on bpo supports searching with powerful filtering and ordering, also with the ability to save searches. Github’s search is poorer here, browsing and searching issues after the migration will be less pleasant 😦 Maybe all types, components and keywords will need to be converted to labels, which will make a huge flat list. Maybe a custom page (javascript app) will be needed to offer a better search experience. |
Here are some stats on bpo fields usage, that might help decide which ones to keep. The total for each table might add up to more than 100% if issues have more than one label (e.g. multiple components or versions). Issues (open/all): 7262/57119 type
stage
components
versions
resolution
priority
keywords
|
Can we drop ‘resolution’? GitHub doesn’t have this and I’ve never missed it. I don’t think I know of any project that introduced a set of labels with this purpose. We just explain the reason for closing in the message when we close it. I don’t recall ever searching for issues with a specific resolution. I’ve also often wondered why we have ‘stage’. |
Both I agree that the For the The current sequence on bpo is roughly If an issue has Then, if the issue has no PR linked to it, we can assume we are either still discussing, or in the To summarize:
|
This is a proposed mapping. type
In addition:
stage
componentsLabels in this group are related to the location of the affected files:
They could have their own namespace prefix (not sure what to use though, and the names are already long enough), or just a specific color. expertise (was included in components before)
OS (was included in components before)
versions
resolution
priority
keywords
|
The intended use of the stage labels was to always have a rough idea as to why an issue is still open without having to read the entire issue to figure it out. |
In case of priorities, I assume we only really need |
This issue is about issue metadata (priority, versions, status, etc.), how/where to import them in GitHub, and what metadata to keep/add/remove/update. User/comment/file metadata will be discussed in a separate issue.
bpo tracks different metadata for each issue (see e.g. https://bugs.python.org/issue2771 ) including: title, comments, files (attachments), creator, creation, actor, activity, type, stage, components, versions, status, resolution, dependencies, superseder, assigned to, nosy list, priority, keywords, remote HG repos, linked PRs
The meaning of each field is explained in the devguide. The fields are defined in the schema.py of the bpo instance. The creator, creation (datetime), (last) actor, (last) activity (datetime) are common to all classes.
GitHub already has corresponding fields for the followings: title, messages (comments), linked PRs, assigned to (assignees), creator (user) and creation (created_at).
❓ Does GitHub have fields for (last) actor, (last) activity (datetime)? Do we need them?
The other fields will need to be replaced with something else (mostly labels) or removed.
Labels in GitHub can be grouped either with colors, and/or with a prefix like
priority-high
,priority-medium
,priority-low
. GitHub is working on adding custom fields, but they will be available in ~6 months.Actions can be used to automate certain tasks in addition or instead of bots (e.g. adding labels, closing stale issues, etc.).
Unused metadata that are not converted to labels (or anything else) can be stored in a comment so that can be retrieved if needed (e.g. if we move away from GH).
On the python/cpython there are currently 32 labels:
awaiting change review
,awaiting changes
,awaiting core eview
,awaiting merge
,awaiting review
type-bugfix
,type-documentation
,type-enhancement
,type-performance
,type-security
,type-tests
needs backport to 3.6
-3.10
automerge
,DO-NOT-MERGE
,skip issue
,skip news
,test-with-buildbots
CLA not signed
,CLA signed
OS-mac
,OS-windows
invalid
,ctypes
,dependencies
,expert-asyncio
,spam
,sprint
,stale
This is the full list of all the fields we have in Roundup, and how we could convert them to GitHub Issues:
✅ it's possible to subscribe people to the issue without sending out any notification when the issue are imported, and enabling notification afterwards so that they will get updates.currently there is no built-in support for dependencies, GitHub might add it later.bpo-xxxxx
issues, even if they are moved after the table the checkboxes won't be updated automatically.Duplicate of #xxxxx
as a reply marks the issue as duplicate. A default "duplicate" reply can also be added to the saved replies (the icon with the left-pointing arrow on the top-right).bpo-xxxxx
ref, so it can't be used for imported issuesbpo-xxxxx
ref with a GH ref after the migration404
, and 14 are unreachableso:
test_*.py
and*.rst
files (not sure if they should be types -- they were components on bpo and got added in Add type labels for docs and tests. python/bedevere#108)The stage could use the existing stage labels. An awaiting triaging might be added.
There are currently 3 statuses: open, pending, closed
Events are now created for closed/reopened issues
Issues are labeled with the stale label when pending
The text was updated successfully, but these errors were encountered: