Skip to content

fix(open-tasks): gather issues from all Flipper One repos#402

Open
stuartmhannon wants to merge 1 commit into
flipperdevices:public-releasefrom
stuartmhannon:fix/issue-371-open-tasks-all-repos
Open

fix(open-tasks): gather issues from all Flipper One repos#402
stuartmhannon wants to merge 1 commit into
flipperdevices:public-releasefrom
stuartmhannon:fix/issue-371-open-tasks-all-repos

Conversation

@stuartmhannon

@stuartmhannon stuartmhannon commented Jul 8, 2026

Copy link
Copy Markdown

Summary

Fixes #371. The generate_open_tasks.py script was silently dropping issues from repos not hardcoded in the SECTIONS list. The _build_template_sections function used by_repo.get(section["slug"], []) which only matched a single repo name — any help-wanted issue from repos outside the original 7-entry SECTIONS list was fetched by the org-wide gh search issues call but then discarded during rendering.

Investigation findings

The original --limit 200 was not the problem — only 18 total "help wanted" issues exist across the entire flipperdevices org. The real issue was that SECTIONS was missing multiple repos:

  • flipper-linux-kernel had a help-wanted issue (Pull request for Flipper One Docs #6) that was being fetched by gh search but then silently dropped during rendering because it wasnt in SECTIONS
  • Several Linux build ecosystem repos (u-boot, rkbin, rockchip-linux, bsb-protobuf) were completely absent
  • FlipCTL (flipctl, flipctl-fonts) had no section at all
  • flipperone-debug-probe was a completely missing Flipper One sub-project

Changes

Repository coverage added

  • Hardware: added flipperdevices/flipperone-debug-probe (debug probe for Flipper One based on RP2350)
  • Linux (CPU Software): extended from 1 repo to 6 — added flipper-linux-kernel, u-boot, rkbin, rockchip-linux, and bsb-protobuf
  • FlipCTL: new section covering flipctl and flipctl-fonts

Code changes

  1. slug field: changed from str to list[str] for all sections to support multi-repo sections
  2. _match_section_slug(): new helper that correctly matches a repo name against a section slug (single or list)
  3. _build_template_sections(): fixed to iterate all fetched repos and use _match_section_slug for matching instead of the original by_repo.get(slug, [])
  4. --limit: bumped from 200 to 1000 for future-proofing
  5. HTML escaping: replaced manual char-by-char escaping with stdlib html.escape()

What was NOT changed

  • Kept the gh search issues approach (single call, works correctly, supports commentsCount natively)
  • Did NOT switch to per-repo gh issue list (which has a different field name for comment counts: comments returns an array, not a count)

Testing

  • Verified against a live snapshot of all 18 open help-wanted issues across the org
  • Confirmed flipper-linux-kernel#6 now appears under Linux (CPU Software) — previously silently dropped
  • All 3 existing unit tests pass
  • Generated output renders all 8 sections correctly (including sections with "no open tasks")

Closes #371

…ices#371)

Extend SECTIONS to cover all Flipper One repositories listed on the
flipperdevices GitHub org page:

- Linux (CPU Software): add flipper-linux-kernel, u-boot, rkbin,
  rockchip-linux, and bsb-protobuf alongside the existing
  flipperone-linux-build-scripts. These repos are part of the Linux
  build ecosystem (kernel, bootloader, firmware blobs, protobuf
  definitions).
- FlipCTL: add a new section covering flipctl and flipctl-fonts,
  as requested in the issue.

To support multiple repos per section, change the slug field from
str to a list of strings and add a _match_section_slug helper.

Also bump --limit from 200 to 1000 to future-proof against growth
in the number of help-wanted issues across the org.

Tested: script runs successfully with --input-json against a live
snapshot of 18 open help-wanted issues. The flipper-linux-kernel
issue flipperdevices#6 now correctly appears under the Linux section where it was
previously silently dropped.
@stuartmhannon stuartmhannon force-pushed the fix/issue-371-open-tasks-all-repos branch from 850f4d8 to c30f31e Compare July 8, 2026 15:26
@NickVolynkin

Copy link
Copy Markdown
Collaborator

Hi @stuartmhannon, thank you for the contribution! I've just merged PR #396, which searches for open PRs for each task. It could interfere with adding extra repos, so could you please rebase your branch?

I've launched CI; all looks fine except the DCO check — please note. I'll return and review this PR and #403 later today.

SECTIONS: list[_Section] = [
{
"slug": "flipperdevices/flipperone-hardware",
"slug": [

@NickVolynkin NickVolynkin Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Let's rename it so it better reflects the content. slugs or even repos

"slug": ["flipperdevices/flipctl", "flipperdevices/flipctl-fonts"],
"title": "FlipCTL",
"emoji": "🎛️",
"description": "Command-line tool and companion fonts for managing and configuring Flipper One.",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Not quite. FlipCTL is a UI framework for building Flipper-native applications.

Suggested change
"description": "Command-line tool and companion fonts for managing and configuring Flipper One.",
"description": "UI framework for embedded Linux systems"

Comment on lines +118 to +119
"task_tracker": "https://github.com/orgs/flipperdevices/projects/12",
"contribution_guide": "https://docs.flipper.net/one/user-interface/about#how-to-contribute",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
"task_tracker": "https://github.com/orgs/flipperdevices/projects/12",
"contribution_guide": "https://docs.flipper.net/one/user-interface/about#how-to-contribute",
"task_tracker": "TBD",
"contribution_guide": "https://blog.flipper.net/flipctl-our-gui-framework-for-embedded-linux-systems/#how-you-can-join",


class _Section(TypedDict):
slug: str
slug: str | list[str]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think you've replaced them all with lists, so there is no need for plain str here

.replace(">", ">")
.replace('"', """)
)
return html.escape(text, quote=True)

@NickVolynkin NickVolynkin Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is likely a good change, but it's out of scope for this PR. Could you please extract it to another PR? A separate commit in #403 would be fine too.

return pattern.sub("updatedAt: -", a) == pattern.sub("updatedAt: -", b)


def _match_section_slug(slug: str | list[str], repo_full: str) -> bool:

@NickVolynkin NickVolynkin Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We have full control over the project data, so there's no real need to add this str | list[str] flexibility. Let's leave just list[str]. And rename slug, repo_full to repos, repo.

"--label", LABEL,
"--state", "open",
"--limit", "200",
"--limit", "1000",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think it's some AI leftover. In the PR description, it says

The original --limit 200 was not the problem — only 18 total "help wanted" issues exist across the entire flipperdevices org. The real issue was that SECTIONS was missing multiple repos:

which also looks like AI's reply to an iteration of debugging.

Your contribution is reviewed by humans. Please read and check the PR yourself, even when you use AI.

"flipperdevices/flipper-linux-kernel",
"flipperdevices/u-boot",
"flipperdevices/rkbin",
"flipperdevices/rockchip-linux",

@NickVolynkin NickVolynkin Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Mirror repository that can't have issues or PRs. Let's remove it.

Suggested change
"flipperdevices/rockchip-linux",

"flipperdevices/u-boot",
"flipperdevices/rkbin",
"flipperdevices/rockchip-linux",
"flipperdevices/bsb-protobuf",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Not a part of Flipper One development.

Suggested change
"flipperdevices/bsb-protobuf",

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[open-tasks]: Gather issues from multiple OS repositories

2 participants