Skip to content
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

Initial draft for triaging #901

Open
wants to merge 26 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
85f565b
Added the first bits intoduction and labelling issues
Sherwin-14 Oct 30, 2024
f77fad7
Added all the sections as provided in the issue description
Sherwin-14 Oct 31, 2024
4b82dbf
Added issue pr workflow diagram
Sherwin-14 Dec 13, 2024
ae0e833
Made some adjustments to the flowchart in the context of earthaccess
Sherwin-14 Dec 14, 2024
8a2c4e7
Initial triaging draft
Sherwin-14 Dec 15, 2024
a7a182c
Removed extra spaces
Sherwin-14 Dec 15, 2024
9e876f3
replaced doc with guide
Sherwin-14 Jan 12, 2025
aa815ff
added triaging guide
Sherwin-14 Jan 12, 2025
b04d16f
fixed a typo and grammatical error (removed quite from essential)
Sherwin-14 Jan 12, 2025
827d79c
made changes to the labelling issues section
Sherwin-14 Jan 12, 2025
a9c8ea8
added prefixes to labels
Sherwin-14 Jan 12, 2025
70f2f42
made a change to section "When to use this label"
Sherwin-14 Jan 12, 2025
70edb3d
differentiating two sections by removing a keyword
Sherwin-14 Jan 12, 2025
0b939b6
added description for section titled "When to Migrate"
Sherwin-14 Jan 12, 2025
e53370f
updated the part "migrating an issue to a discussion when"
Sherwin-14 Jan 12, 2025
ed81270
added impact labels
Sherwin-14 Jan 12, 2025
5ce45af
replaced requests and feedback with needs labels
Sherwin-14 Jan 12, 2025
f41f79c
expanded linking a label to github markdown
Sherwin-14 Jan 13, 2025
6c4df6b
removed tip
Sherwin-14 Jan 13, 2025
a2029a5
made changes to section "close issue as not planned"
Sherwin-14 Jan 13, 2025
a953c0e
Changed section heading for "When to Use This Label?"
Sherwin-14 Jan 13, 2025
2e48778
refactored the labelling section removing special labels section
Sherwin-14 Jan 14, 2025
c89cb13
Made all the changes as per the review
Sherwin-14 Jan 14, 2025
cabf675
added mkdocs-mermaid plugin to doc dependencies
Sherwin-14 Jan 15, 2025
393df4a
updated the name of the doc
Sherwin-14 Jan 15, 2025
cf51bad
added good first issue label back in special label section
Sherwin-14 Jan 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html)

## [Unreleased]

### Added

- Added triaging guide ([#754](https://github.com/nsidc/earthaccess/issues/754))
([@Sherwin-14](https://github.com/Sherwin-14))
([@mfisher87](https://github.com/mfisher87))

## [v0.12.0] - 2024-11-13

### Changed
Expand Down
144 changes: 144 additions & 0 deletions docs/contributing/triaging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Triaging guide

Sherwin-14 marked this conversation as resolved.
Show resolved Hide resolved
With constant influx of new issues, it's essential to prioritize and categorize them efficiently to ensure that the most important problems are addressed promptly. This document outlines our approach to triaging issues on GitHub, including guidelines for labeling and resolving issues, as well as best practices for maintaining a well-organized and up-to-date issue tracker.

## Labeling Issues

When labeling an issue, choose the label(s) that best describes the issue. Using labels consistently and accurately ensures that issues are trackable and searchable.


### Issue Types

- **type: bug**: Use for issues that identify bugs causing incorrect or unexpected behavior.
- **type: duplicate**: Use this label for issues that are duplicates of existing ones.
- **type: enhancement**: Use this label for requests for new features or improvements to existing functionalities.
- **type: will not do**: Use this label for issues that won’t be addressed or fixed.

### Impact labels

These labels describe what portion of the project they affect:

- **impact: breaking**: Issues that break our public API.
- **impact: core**: Issues that affect the core Python codebase.
- **impact: dependencies**: Use this label for issues concerning dependencies.
- **impact: documentation**: Use this label for issues related to documentation.
- **impact: automation**: Use this label for issues related to the CI/CD pipeline or automation

### Needs labels

- **needs: decision**: We're struggling to decide what to do and the decision committee needs to help.
- **needs: feedback**: Use this label for issues where feedback is requested from the team or our community.
- **needs: help**: Use this label for issues where additional help or contributions are needed.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to add back the "good first issue" label, perhaps alone in a "Special labels" section? That is one that triagers should be especially aware of!

### Special labels

- **good-first-issue**: Use this label for issues that are suitable for new contributors. These issues are designed to be approachable and not overly complex, making them an ideal starting point for those looking to contribute to the project.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **good-first-issue**: Use this label for issues that are suitable for new contributors. These issues are designed to be approachable and not overly complex, making them an ideal starting point for those looking to contribute to the project.
- **good first issue**: Use this label for issues that are suitable for new contributors. These issues are designed to be approachable and not overly complex, making them an ideal starting point for those looking to contribute to the project.


## Linking Labels in GitHub Markdown

When referencing a label in a GitHub issue or discussion, it will be useful to link to the label page to provide additional context and help other members to quickly understand the issue's category.
Sherwin-14 marked this conversation as resolved.
Show resolved Hide resolved

### Syntax

To link to a label in GitHub Markdown, copy-and-paste the URL to the label by right-clicking [any label](https://github.com/nsidc/earthaccess/labels) and selecting "Copy Link". Then, paste that label in a GitHub issue, PR, discussion, or Markdown document:

```
https://github.com/username/repository/labels/label-name
```

### Example

For example, to link to the "good first issue" label in the nsidc/earthaccess repository, you would use the URL:

```
https://github.com/nsidc/earthaccess/labels/good%20first%20issue
```


## Close Issue as Not Planned

This section will cover the guidelines for when to use the "Close Issue as Not Planned" feature, and how to handle issues that are not planned or feasible.

### When to "Close as not planned"?

Close issues as "not planned" when:

- An issue is not aligned with the project's goals or priorities.
- An issue is not feasible to be addressed due to technical or resource constraints.
- An issue is a duplicate of an existing issue that has already been addressed.

When closing an issue as not planned, keep the following best practices in mind:

- Provide a clear explanation as to why the issue is not planned or feasible.
- Offer alternative solutions or workarounds, if possible.
- Link to relevant documentation or resources, if applicable.
Sherwin-14 marked this conversation as resolved.
Show resolved Hide resolved

## Discussions vs Issues

This section would cover the guidelines for when to use discussions versus issues, and how to migrate between them.

### What are Discussions?

Discussions are used for:

- Brainstorming and idea generation.
- Project feedback.
- General questions and topics.

### What are Issues?

Issues are used for:

- Reporting bugs and errors.
- Tracking progress on specific tasks or projects.
- Requesting changes or improvements.

### When to Migrate
Sherwin-14 marked this conversation as resolved.
Show resolved Hide resolved

Use your best judgement when migrating between issues and discussions. Sometimes it makes more sense to open a new issue or discussion instead of migrating, for example when there are many things being discussed, but we want to create an issue or task out of just one of those things.

Migrate a discussion to an issue when:

- A specific task is identified.
- A bug or error is reported.
- A change or improvement is requested.

Migrate an issue to a discussion when:

- The issue is a nebulous idea that needs to be workshopped before it can be implemented.
- The issue is a general question or topic.
- The issue is not specific or actionable.

## Issue Triaging Workflow

``` mermaid

flowchart TD
%%{init: {"flowchart": {"htmlLabels": false}} }%%
classDef default font-size:32pt;
start{"`Followed
issue
template?`"}
start ==NO==> close1[Change
to draft and ask to follow template]
start == YES ==> dupe{Is duplicate?}
dupe == YES ==> close2[Close and point to duplicate]
dupe == NO ==> repro{Has proper reproduction?}
repro == NO ==> close3[Label: 'needs reproduction' bot will auto close if no update has been made in 3 days]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bot will auto close if no update has been made in 3 days

I think this isn't true. We have one automation for autoclosing issues, but I believe it's broken: https://github.com/nsidc/earthaccess/blob/main/.github/workflows/issue-manager.yml

We should be careful about fixing it: #895 & https://jacobtomlinson.dev/posts/2024/most-stale-bots-are-anti-user-and-anti-contributor-but-they-dont-have-to-be/

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, I did not made changes to the flowchart since we had discussed earlier, that flowchart will be reviewed. so that is why a lot of irrelevant info is still up there.

Copy link
Collaborator

@mfisher87 mfisher87 Jan 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, that makes sense, thanks for the context! I forgot 🙃

Copy link
Collaborator Author

@Sherwin-14 Sherwin-14 Jan 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So how do we move forward from here? I know there might some specific suggestions that you may have in your mind. I think we can encompass all of those in a single review, so it becomes easier for me to add them to the PR :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think getting @asteiker 's eyes on this is probably the best way forward. Will you be at next week's hack day? Maybe we can work together to finalize the flowchart.

repro == YES ==> real{Is actually a bug?}
real == NO ==> intended{Is the intended behaviour?}
intended == YES ==> explain[Explain and close point to docs if needed]
intended == NO ==> open[Keep open for discussion Remove 'pending triage' label]
real == YES ==> real2["1. Remove 'pending triage' label 2. Add related feature label if applicable (e.g. 'feat: ssr') 3. Add priority and meta labels (see below)"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renders as
image

real2 ==> unusable{Does the bug make earthaccess unusable?}
unusable == YES ==> maj{Does the bug affect the majority of earthaccess users?}
maj == YES ==> p5[p5: urgent]
maj == NO ==> p4[p4: important]
unusable == NO ==> workarounds{Are there workarounds for the bug?}
workarounds == NO ==> p3[p3: minor bug]
workarounds == YES ==> p2[p2: edge case has workaround]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't have priority levels yet to my knowledge. @asteiker what do you think?


%% Link Color %%
linkStyle default stroke:black,stroke-width:2px,font-size:24pt;

```
10 changes: 9 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ extra_css:

plugins:
- search
- mermaid2
Sherwin-14 marked this conversation as resolved.
Show resolved Hide resolved
- mkdocstrings:
default_handler: python
handlers:
Expand Down Expand Up @@ -65,8 +66,10 @@ nav:
- "Releasing": "contributing/releasing.md"
- "Our meet-ups": "contributing/our-meet-ups.md"
- "Maintainers Guide": "contributing/maintainers-guide.md"
- "Triaging Guide": "contributing/triaging.md"
- "Code of Conduct": "contributing/code-of-conduct.md"
- "Contributing naming convention": "contributing/naming-convention.md"

- "Resources": "resources.md"
- USER GUIDE:
- "user_guide/index.md"
Expand Down Expand Up @@ -119,7 +122,12 @@ markdown_extensions:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:mermaid2.fence_mermaid_custom

- pymdownx.tabbed:
alternate_style: true

Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ docs = [
"markdown-callouts >=0.2.0",
"markdown-include >=0.6",
"mkdocs-jupyter >=0.19.0",
"mkdocs-mermaid2-plugin >=1.2.1",
"mkdocstrings[python] >=0.19.0",
"pymdown-extensions >=9.2",
"pygments >=2.11.1",
Expand Down
Loading