Skip to content

Fixes flow back upstream

GitHub

Not every improvement waits on Ionic’s release schedule. When a fix is developed or merged in this fork, maintainers can propose the same change on upstream main. That path is manual today. There is no bot that opens upstream PRs for you.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PR β†’ plus β”‚ β”‚ CI, review, merge, β”‚ β”‚ Manual PR β†’ β”‚
β”‚ (fork-only fix) │────▢│ npm release │────▢│ ionic-team/capacitor main β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

This applies to fork-only work (not branches named sync/upstream-* or sync/plus-upstream-*, which come from the daily upstream sync).

StepWhat happensAutomated?
BranchingOpen a feature branch and a pull request against the plus branchNo
CIThe CI workflow runs lint and platform builds on the PRYes
ReviewA maintainer reviews and merges when CI is greenNo (manual)
Version tagAfter merge to plus, the Bump version workflow runs tests, bumps the patch version with Lerna, and pushes a git tagYes
npm releaseThe tag triggers Build and publish, which stages @capacitor-plus/* packages and requests approval. Packages become available after approval; the workflow can finish if the request failsStaging and request only

Example fork-only fix merged on plus: Cap-go/capacitor-plus#187 (fix(ios): make private API calls static for App Store 2.5.2).

2. Opening the matching upstream PR on ionic-team/capacitor

Section titled β€œ2. Opening the matching upstream PR on ionic-team/capacitor”

There is no GitHub Actions workflow in this repository that opens or updates upstream pull requests. Maintainers (or the original author) do this by hand:

  1. Open a pull request on ionic-team/capacitor targeting main (or next when the change is breaking, per upstream branch policy).
  2. Follow upstream’s CONTRIBUTING.md template (description, change type, platforms).
  3. In the PR body, link the Capacitor+ pull request or issue when the change already shipped in the fork, so reviewers can compare behavior and npm availability.

The Sync Upstream PRs workflow imports open upstream PRs into sync/upstream-pr-* branches (inbound only, not a backport tool). On schedule it fetches at most 100 open PRs, skips drafts and PRs authored by riderx, and matching PRs from other authors can still be imported. To sync one upstream PR by number, including a draft, set sync_mode to specific_pr and enter the number in pr_number.

When merges hit conflicts, the workflow retries with Git’s upstream-preferred strategy (-X theirs), opens a sync pull request labeled merge-conflict when that succeeds, and can file a GitHub issue when automatic resolution fails. A specific_pr run deletes and recreates the sync/upstream-pr-<n> branch from plus and the upstream PR head, so save any manual conflict-resolution commits on that branch before rerunning; you may need to recover or redo them. The scheduled sync rebuilds and force-pushes that branch the same way when the upstream PR receives new commits, so those manual commits can disappear even without a specific_pr rerun. Manual workflow_dispatch runs require write access to this repository; without write access, open an issue with the upstream PR link and ask a maintainer to run the sync.

Real upstream PR examples that reference Capacitor+ or originate from Capgo work:

Upstream PRStatusNotes
ionic-team/capacitor#8284OpenBody includes an Availability section pointing at this fork and @capacitor-plus/cli
ionic-team/capacitor#8203OpenCapgo-maintainer feature PR on upstream (bidirectional blob transfer)

Upstream acceptance and merge timing are decided by the Ionic team, not by Capacitor+ automation.

DirectionWhat we track todayWhere
Upstream β†’ fork (daily sync)upstream-sync, needs-attention, and sometimes merge-conflict labels; PR title/body text upstream PR #<n>; head branch sync/upstream-pr-<n> or sync/plus-upstream-*This repo’s pull requests and labels
Fork β†’ upstream (backport)No dedicated label, issue template, or tracking file (there is no UPSTREAM.md in this repo)GitHub state of the upstream PR; optional links in the Capacitor+ PR or issue; changelog entries may cite ionic-team/capacitor issues after merge

If you care about a specific backport, watch the upstream pull request URL or ask in the linked Capacitor+ issue. Not every fork-only fix has an open upstream PR (for example, #187 had no matching ionic-team/capacitor pull request at documentation time).

This page mirrors the Capacitor+ README section in Cap-go/capacitor-plus#236.