Skip to content

chore: bring the repository to the ecosystem standard - #4

Merged
anilcancakir merged 2 commits into
mainfrom
chore/ecosystem-standard
Sep 27, 2026
Merged

anilcancakir merged 2 commits into
mainfrom
chore/ecosystem-standard

Conversation

@anilcancakir

Copy link
Copy Markdown
Member

Brings magic_sentry, published as 0.0.1 today, to the shape its sibling plugins (magic_deeplink, magic_notifications, magic_payments) already carry. No package code moves.

Added, adapted to sentry

File From What is sentry-specific
.claude/rules/tests.md deeplink the NetworkDriver contract double, MagicRouter.reset() around a boot, the unreachable-DSN Sentry.init, the static breadcrumb remover, barrel imports (the existing suites use them)
.claude/rules/flutter.md deeplink boot-before-Magic.init order, Sentry.isEnabled gating, one owner for HTTP reporting, hardcoded privacy defaults, no config names in the barrel
.claude/commands/release.md deeplink PR-based flow on main (release/X.Y.Z, chore(release): X.Y.Z, tag the merge commit), plus the plugin-sentry.md stamp in the magic repo
.claude/settings.json deeplink unchanged: format and analyze hooks on Dart edits
.github/ISSUE_TEMPLATE/* payments modules and a platform dropdown for this package, a never-paste-your-DSN note
.github/dependabot.yml payments a sentry group so sentry_flutter and sentry_dio move in one PR
.github/workflows/dependabot-auto-merge.yml deeplink branches: [main]
.pubignore, .worktreeinclude deeplink unchanged
.gitignore deeplink ignores .claude/worktrees/ only, so the rules above are tracked

ci.yml and publish.yml already match the siblings line for line, so they are untouched. No sibling plugin carries a GitHub release job or a codecov.yml (social_auth's is justified by its platform-channel SDKs), so neither is added.

Drift fixed

  • CLAUDE.md and README.md architecture trees were missing event_breadcrumbs.dart; the data-flow paragraph now names the Event.listenAny listener.
  • CLAUDE.md Post-Change Checklist gains the step for ../magic/skills/magic-framework/references/plugin-sentry.md, and the CI section names publish.yml, the manual 0.0.1 upload, the auto-merge workflow and the release pattern.
  • README.md intro now mentions the event breadcrumbs; doc/getting-started/installation.md Requirements states the magic 0.0.22 floor and why.

Gates

dart format --output=none --set-exit-if-changed . 11 files, 0 changed. flutter analyze --no-fatal-infos no issues. flutter test 38 passed. dart pub publish --dry-run 0 warnings, and the archive no longer carries .claude/, CLAUDE.md or .github/.

@codecov

codecov Bot commented Sep 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@kodizm

kodizm Bot commented Sep 27, 2026

Copy link
Copy Markdown

Note

Kodizm (AI-generated). May contain mistakes; verify before acting.

Looks correct to merge: it changes docs, tooling and repo config only, no package code, and the new rules match the code.

I checked the claims in the new .claude/rules/*.md and CLAUDE.md against the code. They hold. _SpyNetworkDriver implements NetworkDriver records addInterceptor. MagicRouter.reset() is used around provider boots. The tests use the unreachable DSN. _eventBreadcrumbRemover is a static field (lib/src/sentry_service_provider.dart:54). The tests import through the barrel. There is one test file per lib/src/ file. The magic: ^0.0.22 floor and its reason match pubspec.yaml.

dependabot-auto-merge.yml runs on pull_request_target but never checks out PR code. It is limited to dependabot[bot], pins fetch-metadata to a SHA and only queues auto-merge for Actions minor and patch bumps, so it does not expose secrets to PR code.

Minor

.pubignore:1: Once a .pubignore exists, pub stops reading the .gitignore in that directory. That means pubspec_overrides.yaml, pubspec.lock and .ac/ are no longer excluded from the archive. The tag-driven publish.yml starts from a clean checkout, so nothing leaks today. A hand-run dart pub publish from a dev tree that has local path overrides could ship that file, though. Adding those three entries would close it. (maintainability)

Tests

Not needed: no Dart source changed, and the existing 38-test suite still covers the package.

CI

  • Lint & Test: success
  • codecov/patch: success (coverage not affected)

@anilcancakir

anilcancakir commented Sep 27, 2026 •

Copy link
Copy Markdown
Member Author

Round 2.

Minor, .pubignore:1 (a .pubignore replaces .gitignore for the directory): fixed in 978a529. The Development block now lists pubspec_overrides.yaml, pubspec.lock and .ac/, with a comment saying why they have to be named here. Checked by writing a pubspec_overrides.yaml pointing magic at a local path and running dart pub publish --dry-run: the archive listing carries no pubspec_overrides.yaml and no pubspec.lock (the only matches are pub's own override notice), then removed it. Without the override: Package has 0 warnings.

The same gap exists in the siblings this .pubignore was copied from (magic_deeplink's .pubignore names none of the three, magic_payments' names only .ac/); that is noted for a follow-up rather than changed from this PR.

@kodizm please re-review.

@kodizm

kodizm Bot commented Sep 27, 2026

Copy link
Copy Markdown

Note

Kodizm (AI-generated). May contain mistakes; verify before acting.

Still good to merge. The one Minor from round 1 is fixed, and nothing new came up.

Since the last review, the only new commit is 978a529. It changes .pubignore alone. The Development block now lists pubspec_overrides.yaml, pubspec.lock and .ac/, which are the local-only entries from .gitignore that would otherwise have been published. The added comment explains why they have to be repeated. Other .gitignore entries are not repeated here, such as .dart_tool/, .flutter-plugins* and .pub-cache/. They are all dot-prefixed, and pub already leaves hidden files out of the archive, so they are covered. Checking the siblings' .pubignore files in a follow-up makes sense.

Tests

None needed, since no Dart source changed. The existing suite still covers the package.

CI

  • Lint & Test: success
  • codecov/patch: success (coverage not affected)

@anilcancakir
anilcancakir merged commit 8340c04 into main Sep 27, 2026
3 checks passed
@anilcancakir
anilcancakir deleted the chore/ecosystem-standard branch September 27, 2026 15:49
@anilcancakir anilcancakir mentioned this pull request Sep 29, 2026
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.

1 participant