Skip to content

chore: sync plus with upstream main (conflicts)#79

Open
riderx wants to merge 6 commits into
plusfrom
sync/plus-upstream-20260513-060815
Open

chore: sync plus with upstream main (conflicts)#79
riderx wants to merge 6 commits into
plusfrom
sync/plus-upstream-20260513-060815

Conversation

@riderx
Copy link
Copy Markdown
Member

@riderx riderx commented May 13, 2026

Merge Conflict Resolution Required

The automatic sync of the plus branch with upstream main encountered merge conflicts.

What happened

  • Claude Code attempted to resolve the merge conflicts
  • The workflow created this PR so CI and manual review can finish the merge safely

Action needed: Review the branch and resolve any remaining concerns before merging.


This PR was created automatically by the Capacitor+ sync workflow

Summary by CodeRabbit

  • Bug Fixes

    • Fixed iOS package handling logic for SPM mode.
    • Updated telemetry metrics endpoint.
  • Chores

    • Updated changelogs for versions 8.3.4, 8.3.3, and 8.3.2.
    • Updated package metadata across multiple packages.

Review Change Stack

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

📝 Walkthrough

Walkthrough

This PR rebrands capacitor-plus packages to capacitor under Ionic ownership, updates all package metadata and changelogs to reference the upstream ionic-team/capacitor repository, and adjusts CLI telemetry routing and SPM plugin-handling logic.

Changes

Package namespace migration and runtime updates

Layer / File(s) Summary
Package name and metadata rebranding
core/package.json, cli/package.json, android/package.json, ios/package.json
All four package manifests updated from @capacitor-plus/* to @capacitor/* namespace, with description, homepage, and author fields changed to reflect Ionic branding and capacitorjs.com domain.
Changelog updates for all packages
CHANGELOG.md, core/CHANGELOG.md, android/CHANGELOG.md, cli/CHANGELOG.md, ios/CHANGELOG.md
Release notes across all changelogs switched to ionic-team/capacitor compare links, version notes updated to "version bump only" format, and bug-fix descriptions adjusted for consistency.
CLI telemetry and SPM plugin handling
cli/src/ios/update.ts, cli/src/ipc.ts
Telemetry request now targets metrics-capacitor.outsystems.com with /metrics path and expects HTTP 202 instead of 204. Plugin-package skip logic made conditional on SPM mode.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related issues

Poem

🐰 From plus to core, the rebranding is clear,
Ionic's now steering this ecosystem dear,
Changelogs rewritten, telemetry flows free,
SPM logic refined for packages that be!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: sync plus with upstream main (conflicts)' accurately describes the main change—syncing the plus branch with upstream main while handling merge conflicts.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sync/plus-upstream-20260513-060815

Comment @coderabbitai help to get the list of available commands and usage tips.

@socket-security
Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm entities is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: ?npm/jest-environment-jsdom@29.7.0npm/entities@6.0.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/entities@6.0.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Around line 6-30: Revert any manual edits to CHANGELOG.md and restore the
CI-generated content exactly as produced by the release workflow; remove any
hand-modified lines (the version entries and notes in CHANGELOG.md) and do not
commit manual changelog changes, then re-run or trigger the repository's release
workflow/CI job that regenerates CHANGELOG.md so the correct auto-generated
entries are committed by the pipeline.

In `@ios/package.json`:
- Around line 2-6: The package name change to the Ionic-owned scope will block
publishes; update the "name" field in ios/package.json (currently
"@capacitor/ios") back to your org scope (e.g., "@capacitor-plus/ios") or
coordinate/ensure ownership of the "@capacitor" scope and registry auth before
merging; make the same revert/config change for any other packages renamed to
"@capacitor/*" so Lerna's publish scripts and .npmrc remain valid.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 24ee00c0-e3ab-44f0-89d6-e689aa367c86

📥 Commits

Reviewing files that changed from the base of the PR and between f3aefab and 79bc33a.

📒 Files selected for processing (11)
  • CHANGELOG.md
  • android/CHANGELOG.md
  • android/package.json
  • cli/CHANGELOG.md
  • cli/package.json
  • cli/src/ios/update.ts
  • cli/src/ipc.ts
  • core/CHANGELOG.md
  • core/package.json
  • ios/CHANGELOG.md
  • ios/package.json

Comment thread CHANGELOG.md
Comment on lines +6 to +30
## [8.3.4](https://github.com/ionic-team/capacitor/compare/8.3.3...8.3.4) (2026-05-12)

**Note:** Version bump only for package capacitor

## [8.3.3](https://github.com/ionic-team/capacitor/compare/8.3.2...8.3.3) (2026-05-08)

### Bug Fixes

- **cli:** copy plugin files in CocoaPods projects ([#8467](https://github.com/ionic-team/capacitor/issues/8467)) ([b2d7719](https://github.com/ionic-team/capacitor/commit/b2d771926a180e60deea31992d7d4abcd5ca3bc7))

## [8.3.2](https://github.com/ionic-team/capacitor/compare/8.3.1...8.3.2) (2026-05-07)

### Bug Fixes

- **cli:** add cSettings support for compiler flags in generated Package.swift ([#8448](https://github.com/ionic-team/capacitor/issues/8448)) ([0bd0676](https://github.com/ionic-team/capacitor/commit/0bd0676315c5fd77e50312dd7b5bf4990dcbd7d0))
- **cli:** add system framework and weak framework support in SPM Package.swift ([#8447](https://github.com/ionic-team/capacitor/issues/8447)) ([3232f0f](https://github.com/ionic-team/capacitor/commit/3232f0fe1d9811b0b5c500e3dc05cb8a250177f8))
- **cli:** correct Capacitor plugin SPM compat check ([#8440](https://github.com/ionic-team/capacitor/issues/8440)) ([e5ccc45](https://github.com/ionic-team/capacitor/commit/e5ccc451dda27d56bca824ed644bd20fe4d988cb))
- **cli:** generate binaryTarget entries for custom xcframeworks in Package.swift ([#8445](https://github.com/ionic-team/capacitor/issues/8445)) ([1f7e33f](https://github.com/ionic-team/capacitor/commit/1f7e33fca43d183332ec19d22b0d75ef81d8cc6d))
- **cli:** generate resource entries in Package.swift ([#8455](https://github.com/ionic-team/capacitor/issues/8455)) ([790bd27](https://github.com/ionic-team/capacitor/commit/790bd27123497111984227010c3162cec94a108e))
- **cli:** handle Cordova plugins without iOS source files ([#8443](https://github.com/ionic-team/capacitor/issues/8443)) ([0da130e](https://github.com/ionic-team/capacitor/commit/0da130eb7a861bee4e2c35bc0aac53ba9c983fc3))
- **cli:** link plugin dependencies in Package.swift ([#8457](https://github.com/ionic-team/capacitor/issues/8457)) ([b3c769e](https://github.com/ionic-team/capacitor/commit/b3c769e856c826b1174518877cf86ac7ce73bf09))
- **ios:** support Cordova plugins with Package.swift ([#8438](https://github.com/ionic-team/capacitor/issues/8438)) ([139943b](https://github.com/ionic-team/capacitor/commit/139943b0c05fddb2d1ce2d6f468800fddf17b4cf))
- **SystemBars:** avoid extra view padding on API <= 34 ([#8439](https://github.com/ionic-team/capacitor/issues/8439)) ([5b135a7](https://github.com/ionic-team/capacitor/commit/5b135a70217be560e7176c8d5b514cc92ed3e4e4))

## [8.3.1](https://github.com/ionic-team/capacitor/compare/8.3.0...8.3.1) (2026-04-16)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Do not manually modify generated changelog entries.

This file is CI/CD-managed, so these edits should be reverted and regenerated by the release workflow to avoid divergence.

As per coding guidelines, Do not manually edit CHANGELOG.md; it is managed automatically by CI/CD.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` around lines 6 - 30, Revert any manual edits to CHANGELOG.md
and restore the CI-generated content exactly as produced by the release
workflow; remove any hand-modified lines (the version entries and notes in
CHANGELOG.md) and do not commit manual changelog changes, then re-run or trigger
the repository's release workflow/CI job that regenerates CHANGELOG.md so the
correct auto-generated entries are committed by the pipeline.

Comment thread ios/package.json
Comment on lines +2 to +6
"name": "@capacitor/ios",
"version": "8.3.4",
"description": "Capacitor+: Enhanced Capacitor with automated upstream sync - Cross-platform apps with JavaScript and the web",
"homepage": "https://capgo.app/docs/plugins/capacitor-plus/",
"author": "Capgo Team <support@capgo.app> (https://capgo.app)",
"description": "Capacitor: Cross-platform apps with JavaScript and the web",
"homepage": "https://capacitorjs.com",
"author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Verify package identity consistency and cross-package references.
python - <<'PY'
import json, pathlib

pkg_files = [p for p in pathlib.Path('.').rglob('package.json') if 'node_modules' not in p.parts]
rows = []
for p in sorted(pkg_files):
    try:
        data = json.loads(p.read_text())
    except Exception:
        continue
    name = data.get("name")
    version = data.get("version")
    peer = data.get("peerDependencies", {})
    deps = data.get("dependencies", {})
    refs = sorted([k for k in {**peer, **deps}.keys() if k.startswith("@capacitor/") or k.startswith("@capacitor-plus/")])
    if name or refs:
        rows.append((str(p), name, version, refs))

print("== Package identities and capacitor-scope references ==")
for p, name, version, refs in rows:
    print(f"{p}\n  name={name}\n  version={version}\n  refs={refs}\n")
PY

Repository: Cap-go/capacitor-plus

Length of output: 533


🏁 Script executed:

# Check root package.json and npm publishing configuration
cat package.json | head -40

Repository: Cap-go/capacitor-plus

Length of output: 2599


🏁 Script executed:

# Look for any npm registry or publishing configuration
find . -maxdepth 2 -type f \( -name ".npmrc" -o -name ".npm*" -o -name "*.yml" -o -name "*.yaml" \) | head -20

Repository: Cap-go/capacitor-plus

Length of output: 195


🏁 Script executed:

# Check git remote and repository metadata
git remote -v 2>/dev/null || echo "No git remote"
git config --get remote.origin.url 2>/dev/null || echo "No origin URL"

Repository: Cap-go/capacitor-plus

Length of output: 241


🏁 Script executed:

# Check if there are any npm publish scripts or CI/CD configuration
find . -maxdepth 2 -type f -name "*.json" | xargs grep -l "publish" 2>/dev/null | head -10

Repository: Cap-go/capacitor-plus

Length of output: 161


🏁 Script executed:

cat ./.npmrc

Repository: Cap-go/capacitor-plus

Length of output: 83


🏁 Script executed:

cat ./cli/.npmrc ./core/.npmrc 2>/dev/null || echo "No individual .npmrc in subdirs"

Repository: Cap-go/capacitor-plus

Length of output: 101


🏁 Script executed:

# Check if there are any references to Cap-go or capacitor-plus scope in package.json files
grep -r "capacitor-plus" . --include="package.json" | head -20

Repository: Cap-go/capacitor-plus

Length of output: 837


Scope rename to @capacitor/* will block package publishing without ownership of the scope.

The workspace is configured with Lerna to automatically publish packages via npm publish (see root package.json publish scripts), but renaming all packages to @capacitor/*—which is owned by Ionic—will fail with permission denied on npmjs unless your organization owns that scope. The .npmrc contains no registry overrides. Either revert the package names to @capacitor-plus/* or configure scope ownership before merging.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ios/package.json` around lines 2 - 6, The package name change to the
Ionic-owned scope will block publishes; update the "name" field in
ios/package.json (currently "@capacitor/ios") back to your org scope (e.g.,
"@capacitor-plus/ios") or coordinate/ensure ownership of the "@capacitor" scope
and registry auth before merging; make the same revert/config change for any
other packages renamed to "@capacitor/*" so Lerna's publish scripts and .npmrc
remain valid.

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.

3 participants