This document is a hands-on manual for doing issue and pull request triage for MLflow issues on GitHub . The purpose of triage is to speed up issue management and get community members faster responses.
Issue and pull request triage has three steps:
- assign one or more process labels (e.g.
needs design
orhelp wanted
), - mark a priority, and
- label one or more relevant areas, languages, or integrations to help route issues to appropriate contributors or reviewers.
The remainder of the document describes the labels used in each of these steps and how to apply them.
Assign at least one process label to every issue you triage.
needs author feedback
: We need input from the author of the issue or PR to proceed.needs design
: This feature is large or tricky enough that we think it warrants a design docand review before someone begins implementation.needs committer feedback
: The issue has a design that is ready for committer review, or there isan issue or pull request that needs feedback from a committer about the approach or appropriatenessof the contribution.needs review
: Use this label for issues that need a more detailed design review or pullrequests ready for review (all questions answered, PR updated if requests have been addressed,tests passing).help wanted
: We would like community help for this issue.good first issue
: This would make a good first issue.
You should assign a priority to each issue you triage. We use kubernetes-style priority labels.
priority/critical-urgent
: This is the highest priority and should be worked on bysomebody right now. This should typically be reserved for things like security bugs,regressions, release blockers.priority/important-soon
: The issue is worked on by the community currently or willbe very soon, ideally in time for the next release.priority/important-longterm
: Important over the long term, but may not be staffed ormay need multiple releases to complete. Also used for things we know are on acontributor's roadmap in the next few months. We can use this in conjunction withhelp wanted
to mark issues we would like to get help with. If someone begins activelyworking on an issue with this label and we think it may be merged by the next release, changethe priority topriority/important-soon
.priority/backlog
: We believe it is useful but don’t see it being prioritized in thenext few months. Use this for issues that are lower priority thanpriority/important-longterm
.We welcome community members to pick up apriority/backlog
issue, but there may be somedelay in getting support through design review or pull request feedback.priority/awaiting-more-evidence
: Lowest priority. Possibly useful, but not yet enoughsupport to actually get it done. This is a good place to put issues that could be useful butrequire more evidence to demonstrate broad value. Don’t use it as a way to say no.If we think it doesn’t fit in MLflow, we should just say that and why.
Assign one more labels for relevant component or interface surface areas, languages, or
integrations. As a principle, we aim to have the minimal set of labels needed to help route issues
and PRs to appropriate contributors. For example, a language/python
label would not be
particularly helpful for routing issues to committers, since most PRs involve Python code.
language/java
and language/r
make sense to have, as the clients in these languages differ from the Python client and aren't maintained by many people. As with process labels, we
take inspiration from Kubernetes on naming conventions.
area/artifacts
: Artifact stores and artifact loggingarea/build
: Build and test infrastructure for MLflowarea/docs
: MLflow documentation pagesarea/examples
: Example codearea/model-registry
: Model Registry service, APIs, and the fluent client calls for Model Registryarea/models
: MLmodel format, model serialization/deserialization, flavorsarea/projects
: MLproject format, project execution backendsarea/scoring
: Local serving, model deployment tools, Spark UDFsarea/server-infra
: MLflow server, JavaScript dev serverarea/tracking
: Tracking Service, tracking client APIs, autologging
area/uiux
: Front-end, user experience, JavaScript, plottingarea/docker
: Docker use across MLflow's components, such as MLflow Projects and MLflow Modelsarea/sqlalchemy
: Use of SQLAlchemy in the Tracking Service or Model Registryarea/windows
: Windows support
language/r
: R APIs and clientslanguage/java
: Java APIs and clientslanguage/new
: Proposals for new client languages
integrations/azure
: Azure and Azure ML integrationsintegrations/sagemaker
: SageMaker integrationsintegrations/databricks
: Databricks integrations