Comments (7)
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.
from gh-migration.
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’.
from gh-migration.
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
bpo field | open | all |
---|---|---|
behavior | 2807 (38.7%) | 17747 (31.1%) |
enhancement | 2472 (34.0%) | 11468 (20.1%) |
crash | 184 ( 2.5%) | 2210 ( 3.9%) |
compile error | 161 ( 2.2%) | 1381 ( 2.4%) |
performance | 156 ( 2.1%) | 1182 ( 2.1%) |
resource usage | 78 ( 1.1%) | 890 ( 1.6%) |
security | 65 ( 0.9%) | 464 ( 0.8%) |
Total | 5923 (81.6%) | 35342 (61.9%) |
stage
bpo field | open | all |
---|---|---|
patch review | 2099 (28.9%) | 2884 ( 5.0%) |
needs patch | 886 (12.2%) | 1623 ( 2.8%) |
test needed | 297 ( 4.1%) | 874 ( 1.5%) |
resolved | 73 ( 1.0%) | 27057 (47.4%) |
commit review | 21 ( 0.3%) | 288 ( 0.5%) |
backport needed | 1 ( 0.0%) | 2 ( 0.0%) |
Total | 3377 (46.5%) | 32728 (57.3%) |
components
bpo field | open | all |
---|---|---|
Library (Lib) | 2738 (37.7%) | 16043 (28.1%) |
Documentation | 1054 (14.5%) | 8726 (15.3%) |
Interpreter Core | 630 ( 8.7%) | 7853 (13.7%) |
Windows | 479 ( 6.6%) | 3162 ( 5.5%) |
Extension Modules | 360 ( 5.0%) | 3176 ( 5.6%) |
Tests | 350 ( 4.8%) | 3483 ( 6.1%) |
asyncio | 279 ( 3.8%) | 970 ( 1.7%) |
IDLE | 274 ( 3.8%) | 1479 ( 2.6%) |
Build | 271 ( 3.7%) | 2641 ( 4.6%) |
160 ( 2.2%) | 447 ( 0.8%) | |
IO | 140 ( 1.9%) | 644 ( 1.1%) |
macOS | 119 ( 1.6%) | 1253 ( 2.2%) |
ctypes | 117 ( 1.6%) | 477 ( 0.8%) |
C API | 105 ( 1.4%) | 274 ( 0.5%) |
Unicode | 102 ( 1.4%) | 950 ( 1.7%) |
Installation | 96 ( 1.3%) | 789 ( 1.4%) |
Tkinter | 94 ( 1.3%) | 821 ( 1.4%) |
SSL | 63 ( 0.9%) | 316 ( 0.6%) |
XML | 58 ( 0.8%) | 457 ( 0.8%) |
2to3 (2.x to 3.x conversion tool) | 57 ( 0.8%) | 342 ( 0.6%) |
Cross-Build | 54 ( 0.7%) | 161 ( 0.3%) |
Demos and Tools | 44 ( 0.6%) | 512 ( 0.9%) |
Subinterpreters | 38 ( 0.5%) | 72 ( 0.1%) |
Regular Expressions | 37 ( 0.5%) | 519 ( 0.9%) |
Argument Clinic | 36 ( 0.5%) | 123 ( 0.2%) |
FreeBSD | 9 ( 0.1%) | 33 ( 0.1%) |
Parser | 9 ( 0.1%) | 35 ( 0.1%) |
Distutils | 5 ( 0.1%) | 1141 ( 2.0%) |
Total | 7778 (107.1%) | 56899 (99.6%) |
versions
bpo field | open | all |
---|---|---|
Python 3.8 | 2046 (28.2%) | 6851 (12.0%) |
Python 3.9 | 1845 (25.4%) | 5067 ( 8.9%) |
Python 3.7 | 1706 (23.5%) | 7442 (13.0%) |
Python 3.10 | 1452 (20.0%) | 3508 ( 6.1%) |
Python 3.6 | 1390 (19.1%) | 7054 (12.3%) |
Python 3.11 | 541 ( 7.4%) | 1203 ( 2.1%) |
Total | 8980 (123.7%) | 31125 (54.5%) |
resolution
bpo field | open | all |
---|---|---|
fixed | 21 ( 0.3%) | 24291 (42.5%) |
not a bug | 11 ( 0.2%) | 6178 (10.8%) |
duplicate | 7 ( 0.1%) | 3720 ( 6.5%) |
wont fix | 7 ( 0.1%) | 2295 ( 4.0%) |
third party | 7 ( 0.1%) | 701 ( 1.2%) |
remind | 5 ( 0.1%) | 18 ( 0.0%) |
out of date | 4 ( 0.1%) | 3145 ( 5.5%) |
postponed | 4 ( 0.1%) | 114 ( 0.2%) |
works for me | 4 ( 0.1%) | 952 ( 1.7%) |
later | 3 ( 0.0%) | 154 ( 0.3%) |
rejected | 3 ( 0.0%) | 2801 ( 4.9%) |
Total | 76 ( 1.0%) | 44369 (77.7%) |
priority
bpo field | open | all |
---|---|---|
normal | 6951 (95.7%) | 51387 (90.0%) |
low | 229 ( 3.2%) | 2483 ( 4.3%) |
high | 55 ( 0.8%) | 1583 ( 2.8%) |
critical | 10 ( 0.1%) | 449 ( 0.8%) |
release blocker | 2 ( 0.0%) | 933 ( 1.6%) |
deferred blocker | 1 ( 0.0%) | 107 ( 0.2%) |
Total | 7248 (99.8%) | 56942 (99.7%) |
keywords
bpo field | open | all |
---|---|---|
patch | 2878 (39.6%) | 25886 (45.3%) |
easy | 202 ( 2.8%) | 2139 ( 3.7%) |
needs review | 84 ( 1.2%) | 928 ( 1.6%) |
newcomer friendly | 17 ( 0.2%) | 98 ( 0.2%) |
easy (C) | 11 ( 0.2%) | 75 ( 0.1%) |
3.5regression | 10 ( 0.1%) | 60 ( 0.1%) |
pep3121 | 8 ( 0.1%) | 57 ( 0.1%) |
buildbot | 7 ( 0.1%) | 328 ( 0.6%) |
3.6regression | 7 ( 0.1%) | 47 ( 0.1%) |
3.8regression | 6 ( 0.1%) | 55 ( 0.1%) |
3.3regression | 3 ( 0.0%) | 79 ( 0.1%) |
3.7regression | 3 ( 0.0%) | 60 ( 0.1%) |
3.9regression | 3 ( 0.0%) | 36 ( 0.1%) |
3.10regression | 3 ( 0.0%) | 26 ( 0.0%) |
gsoc | 2 ( 0.0%) | 19 ( 0.0%) |
3.2regression | 2 ( 0.0%) | 31 ( 0.1%) |
security_issue | 2 ( 0.0%) | 35 ( 0.1%) |
3.4regression | 2 ( 0.0%) | 43 ( 0.1%) |
Total | 3250 (44.8%) | 30002 (52.5%) |
from gh-migration.
Both stage
and resolution
mostly have an informative purpose. The stage
tells what's the next thing needed to make the issue move forward (are we waiting for a fix? for a review?), whereas the resolution
tells the reason why the issue was closed (e.g. was it fixed? rejected?).
I agree that the resolution
can be dropped.
For the stage
the situation is a bit more complicated, because on bpo we only had issues, whereas here we also have PRs. In addition, we already have a set of labels for PR stages that are added by @bedevere-bot automatically.
The current sequence on bpo is roughly
no selection -> test needed -> needs patch -> patch review -> commit review -> backport needed -> resolved
If an issue has no selection
, it's usually because it's not triaged yet or because people are still figuring out whether it needs a fix or not. If instead a test to reproduce the issue is needed, we are in the test needed
stage. I'm considering adding an untriaged
/new
label automatically on new issues, that can be removed as soon as someone comes around to triage them and the issue is being discussed (this also leaves the issue less label-cluttered).
Then, if the issue has no PR linked to it, we can assume we are either still discussing, or in the patch needed
stage. If the PR is not a WIP or if a review has been requested, then we are in the patch review
or commit-review
stage. The backport needed
is handled by a bot and there is already a set of labels for each version. Once a PR/issue is merged/closed, the PR/issue is implicitly resolved
. All this is already visible through the GitHub UI, without the need for labels.
To summarize:
- The
resolution
s can be dropped (can be mentioned in the closing message) - The
stage
s can be dropped, since they can be inferred by other elements in the UI (linked PRs, requested reviews, backport labels, closed/merged issue/PR) AnUsers can't add labels, so if an issue has no labels it's untriaged/newuntriaged
/new
label can be added for new issues, and removed once they are triaged- Maybe @brettcannon can comment on the intended use and actual usefulness of the existing stage labels added by bedevere now that they have been around for a while.
from gh-migration.
This is a proposed mapping.
type
type-bug
: "An unexpected behavior, bug, or error"type-feature
: "A feature request or enhancement"type-security
: "A security issue"type-crash
: "A hard crash of the interpreter, possibly with a core dump"
In addition:
- It was suggested to expand
type-compile-error
to include all build errors (e.g. configure/Makefile issues). Since we already have abuild
label, thetype-compile-error
has been removed. - Similarly,
performance
andresource usage
have been replaced by aperformance
label that can be combined either withtype-bug
ortype-feature
bug
,crash
,compile error
could be merged undertype-behavior
(users often have trouble telling them apart).- ❓ Should we merge them or keep them separate?
- ✔️
type-crash
has been kept,compile error
s can be indicated withtype-bug
+build
- ✔️
- ❓ Should
crash
became a standalone label instead of atype-*
label?
- ❓ Should we merge them or keep them separate?
- We might want to get rid of
type-security
if security issues should be reported under the Security tab of the repo. - I'm not sure if we can detect this when users select the issue type from the template, or when they add the label before they submit, but it could either be written in the template or be handled by an action after the report.
- ✔️
type-bugfix
has been renamed totype-bug
.- ❓ do we need this classification for PRs when the issue is already classified?
- ✔️
type-documentation
andtype-tests
have been renamed todocs
andtests
stage
- We can remove stages
- ❓ We currently have
awaiting change review
,awaiting changes
,awaiting core review
,awaiting merge
,awaiting review
onpython/cpython
andtest needed
,needs patch
,patch review
,commit review
,backport needed
,resolved
- ❓ Should we map
patch review
andcommit review
toawaiting review
?
- ❓ Should we map
components
Labels in this group are related to the location of the affected files:
library
: "Python modules in the Lib dir"documentation
: "Documentation in the Doc dir"interpreter-core
: "Interpreter core (Objects, Python, Grammar, and Parser dirs)"extension-modules
: "C modules in the Modules dir"tests
: "Tests in the Lib/test dir"
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)
expert-asyncio
: this is already on python/cpython- Could be grouped with
expert-*
or just by color - ❓ What other components do we want to keep? (e.g. email, IDLE, IO, Unicode, etc.)
- asyncio->
expert-asyncio
- IDLE->
expert-IDLE
- Build->
build
- email->
expert-email
- IO->
expert-IO
- ctypes->
expert-ctypes
- C API->
expert-C-API
- Unicode->
expert-unicode
- Installation->
expert-installation
- Tkinter->
expert-tkinter
- SSL->
expert-SSL
- XML->
expert-XML
- 2to3 (2.x to 3.x conversion tool)->
expert-2to3
- Subinterpreters->
expert-subinterpreters
- Regular Expressions->
expert-regex
- Argument Clinic->
expert-argument-clinic
- asyncio->
- FreeBSD and Demos and Tools have no corresponding labels, Cross-build and Build have been merged into build, Distutils has been included into library, Parser into interpreter-core.
OS (was included in components before)
OS-windows
andOS-mac
: these are already on python/cpython- We could add
OS-FreeBSD
and possibly others - ❓ Any other OS that deserves a label?
- ✔️ no
versions
- We already have
needs backport to *
on python/cpython - There is a discussion on Discourse about this
- In the same thread, it was suggested to just have labels to indicate if it only applies to
main
, if it should be backported to maintenance releases, and also to security releases- This could be inferred by the issue type (feature, bug, security) and marked with the
needs backport to *
labels
- This could be inferred by the issue type (feature, bug, security) and marked with the
- ❓ Should we remove versions, only keep two, or keep them all?
- ✔️ all active versions (
3.7
-3.11
) have been kept. They can be converted to milestones after the migartion.
- ✔️ all active versions (
resolution
- I only kept
invalid
(since it was already on python/cpython). There is also aspam
label.
priority
- ❓ Are the RMs fine with using milestones/projects to track release/deferred, or do they prefer to have labels?
- ✔️ they are fine, but for now the
release blocker
anddeferred blocker
labels have been added. This will make it easier to identify issues and add them to milestone/projects.
- ✔️ they are fine, but for now the
keywords
- I only kept
easy
. The others are barely used. - ❓ Is there any other keyword that we should keep?
- ✔️ no(?)
from gh-migration.
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.
from gh-migration.
In case of priorities, I assume we only really need release blocker
and deferred blocker
.
from gh-migration.
Related Issues (20)
- Issue (re)numbering HOT 9
- Replace the local_replace.py script HOT 1
- Map bpo users to GitHub users HOT 15
- Notify bpo users once the migration is done HOT 12
- Migration and risk management plans HOT 2
- Make bpo read-only HOT 3
- Add links from bpo to GitHub
- Set up autonosy on labels HOT 2
- Add a page that redirects from bpo to GitHub HOT 3
- Fate of Roundup and the instances HOT 1
- Some GH PR references were not ported correctly HOT 19
- Subversion revisions references were not ported HOT 6
- Archive bpo-related repos HOT 6
- Message conversion and formatting HOT 2
- Write a tool to export data from bpo HOT 1
- Replace the weekly summary report HOT 20
- Replace the sendmail script HOT 13
- Replace the irker detector HOT 3
- Replace the stats page HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gh-migration.