Proposal: Automatically synchronize issues between frontend and backend repositories? #608
Replies: 4 comments 2 replies
|
Thanks for writing this up. My take is that we might not need automation here at all. There is no rule that a PR must link an issue from its own repository. GitHub lets us link and reference issues across repositories, so a frontend PR can point to a backend issue directly. That already removes most of the reason to duplicate issues. In practice the backend API always comes first. Building the frontend before the API exists makes no sense. So the natural flow would be:
This keeps one source of truth for each feature instead of two copies we have to keep in sync. Duplicated issues drift apart over time, and closing one while forgetting the other creates confusion. A single issue with cross-repo links avoids that problem without any workflow, action, or app to maintain. So to answer the questions directly: I don't think the manual process is painful enough to automate. The pain comes from duplicating, not from linking. If we stop duplicating and just reference the backend issue from frontend PRs, the problem mostly goes away. |
|
Greetings @marcvergees @chetanr25 @vharkins1 , I went through the discussion and wanted to share my thoughts. I agree with Chetan that the real problem here is duplication, not syncing. If we stop creating identical issues in both repos, most of the pain goes away on its own. Automation that mirrors issues doesn't fix that — it just makes two copies that drift apart automatically instead of manually. I also agree that backend should always be the source of truth. The API has to exist before the frontend can do anything, so it makes sense for the issue to live in FireForm first. That said, I think there's one gap in the pure "just reference the backend issue" approach — frontend project board tracking. If no issue exists in the frontend repo, contributors working there have to jump to the backend repo to find their work. That gets messy as more people join. What I think can work For cross-repo features, something like this:
This keeps one source of truth for discussion and gives frontend contributors visibility into their work without any automation to maintain. One small thing worth being careful about When writing PR descriptions, use
Overall I think Chetan's direction is right. The only additions I'd suggest are the minimal frontend issue for board tracking and being careful about the closing keyword order in PRs. |
|
The Issues are automatically closed as soon as PR is merged? Didn't knew it existed. |
|
Talking about Projects tab, I think we are using 🚀 GSoC '26 | 16-Week Engineering Track (view) which is centralised to the whole org. Since the issue about the frontend will be mentioned in the backend repository itself and the same issue can be tagged, by default that issue is tracked in projects. Plus we can always open issue on frontend if necessary. That won't be an issue. Coming to auto close issue, is that true @marcvergees? |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Proposal: Automatically synchronize issues between frontend and backend repositories?
We've had an ongoing internal discussion about the overhead of creating the same issue in both the frontend and backend repositories whenever a feature or bug spans both codebases.
At the moment, the process is entirely manual: if an issue affects both repositories, someone has to create it twice and keep both copies reasonably in sync. This is repetitive and easy to forget.
The challenge
Not every issue belongs in both repositories.
Some examples:
Backend-only
Frontend-only
Cross-repository
Because of this, simply mirroring every issue would probably create unnecessary noise.
Possible approach
One idea would be to create a GitHub Action (or another automation) that only mirrors issues when explicitly requested.
For example, when creating an issue, we could use one of several mechanisms:
a label such as
sync:frontend,sync:backend, orcross-repoa dedicated issue template field
a checkbox like:
The workflow would then:
This keeps synchronization opt-in rather than automatic.
Things to consider
There are a few questions we'd need to answer before implementing anything:
Alternative
Instead of creating duplicate issues, another option would be to have a single "source of truth" issue in one repository and simply reference it from the other. This reduces duplication but also makes project boards and repository-specific planning a bit more difficult.
Open for discussion
I think it's worth designing a solution that handles all three cases cleanly:
rather than assuming every issue should exist in both repositories.
Curious to hear everyone's thoughts:
All reactions