Skip to content

chore: rename scope to @inoxth, ship 0.1.1#2

Merged
nonth merged 6 commits into
mainfrom
chore/rename-scope-inoxth
May 29, 2026
Merged

chore: rename scope to @inoxth, ship 0.1.1#2
nonth merged 6 commits into
mainfrom
chore/rename-scope-inoxth

Conversation

@nonth
Copy link
Copy Markdown
Collaborator

@nonth nonth commented May 29, 2026

Summary

Rename the npm scope from @inox/* to @inoxth/* and ship the first real public release at 0.1.1.

@inox is owned by a different npm account that inoxth has no membership in, so all publishes returned 404. Moving to the user scope @inoxth/* (free, reserved automatically for the npm user) resolves this.

While fixing this we also closed two related gaps:

  • Yarn 4 + Changesets workspace protocol bugyarn changeset publish invokes npm publish directly from each workspace, which uploaded the literal workspace:* string instead of substituting it with a concrete version (consumers couldn't install). Replaced the publish path with yarn packnpm publish <tgz> via scripts/publish.sh. See changesets/changesets#432.
  • No PR validation workflowrelease.yml only ran on push to main, so there was no status check the new main branch ruleset could require. Added .github/workflows/ci.yml to fill the gap.

Changes

  • Rename @inox/*@inoxth/* across 119 files (packages, workspace deps, source imports, OTel instrumentation scope strings, example apps, READMEs, openspec current specs)
  • iOS Podfile.lock paths updated for new scope (3 example apps)
  • New scripts/publish.shyarn pack substitutes workspace:*, npm publish <tgz> uploads. Idempotent (npm view skip-check) and guarded against accidental workspace: leakage in the tarball.
  • release.yml swaps yarn changeset publishbash scripts/publish.sh, fixes stale :inox_react-native-edot-sdk Android module ref to :inoxth_react-native-edot-sdk
  • ci.yml runs build/typecheck/test/lint/Android compile on every PR against main
  • Version bump 0.1.0 → 0.1.1 for all 4 publishable packages (changeset: chore — republish under @inoxth scope)

Verification done locally

  • yarn build / typecheck / test (322/322) / lint green
  • iOS pod install succeeds on all 4 example apps under new scope
  • Android :inoxth_react-native-edot-sdk:assembleDebug succeeds on all 4 example apps
  • yarn pack produces tarballs with concrete deps (workspace:*0.1.1)
  • 0.1.1 published to npm; npm view confirms concrete deps for each of the 4 packages

What CI on this PR will do

  • ci.ymlVerify job runs the same checks listed above

What CI on merge will do

  • release.yml runs build/test/lint/Android compile
  • scripts/publish.sh runs, sees all 4 packages already at 0.1.1 → npm view skip-check fires → no publish attempted → green run

Follow-up after merge (manual)

  1. Enable "Require status checks to pass" in the main branch ruleset and select Verify
  2. Configure Trusted Publishing for each of the 4 packages on npmjs.com (Settings → Trusted Publisher → GitHub Actions → `inoxth/react-native-edot-sdk` + `release.yml`)
  3. Optionally remove NPM_TOKEN secret once TP is confirmed working

🤖 Generated with Claude Code

nonth and others added 6 commits May 28, 2026 22:51
The @Inox scope is owned by a different npm account on registry.
Account inoxth is not a member, so PUT to @inox/* returns 404.
Renaming all 4 publishable packages and the private CLI to the
user-scope @inoxth/* (free, immediate, no org required).

- Rename 5 packages/*/package.json names and workspace deps
- Update source imports of @inox/react-native-edot-shared in
  packages/react-native/src/{EdotReactNative,activeViewContext}.ts
- Update OTel instrumentation scope strings used in fetch/xhr/startup
  TS sources and EdotReactNative.swift to match the new npm scope
- Update example apps (basic, expo-router, react-navigation, wix-
  navigation) deps, metro/tsconfig resolvers, and all imports
- Update root scripts, .changeset/config.json fixed group/ignore list
- Update READMEs, AGENTS.md, CONTRIBUTING.md, current openspec specs
- Rewrite CHANGELOG.md 0.1.0 entries (version never published, safe)
- Regenerate yarn.lock under the new scope

Untouched: native module identifiers (com.edot.reactnative,
EdotReactNative class, EdotReactNativeSpec codegen) and archived
openspec/changes/archive/** historical specs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reflect the @Inox -> @inoxth npm scope rename in the cached
node_modules path entries inside each example app's Podfile.lock.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
`yarn changeset publish` invokes `npm publish` directly from each yarn 4
workspace, which uploads the raw `workspace:*` protocol literal instead
of a concrete version range — published packages with cross-package deps
become uninstallable for consumers. See changesets/changesets#432.

Replace the publish step with a script that:
- Reads the publishable scope from .changeset/config.json fixed group
- Packs each via `yarn pack` (substitutes workspace:* at pack time)
- Publishes each tarball via `npm publish <tgz>` (auth via ~/.npmrc +
  WebAuthn locally, NODE_AUTH_TOKEN/OIDC in CI)
- Adds --provenance only when GitHub Actions OIDC is available, else
  --no-provenance so local publish doesn't trip publishConfig.provenance
- Idempotent: skips versions already on the registry

Also fix the Android compile step's stale `:inox_react-native-edot-sdk`
gradle module reference left over from the scope rename — autolinking
now derives `:inoxth_react-native-edot-sdk`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Group the header into "why this script exists", "what this script
  does", and "output format" sections to make the rationale and the
  upstream issue (changesets/changesets#432) discoverable for future
  maintainers.
- Annotate each step inline so the role of yarn pack vs npm publish vs
  the idempotency check is clear at a glance.
- Add a pre-publish guard: after yarn pack, grep the tarball's embedded
  package.json for any leftover "workspace: protocol entries and abort
  with a clear error if found. Prevents another round of broken
  tarballs hitting the public registry if yarn pack ever stops
  substituting (regression, wrong yarn version, etc.).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Runs build/typecheck/test/lint and the Android SDK module compile on
every pull_request against main, providing a status check the main
branch ruleset can require before merge.

Concurrency: cancels in-progress runs when a PR receives new commits to
keep CI minutes bounded and feedback fast.

Mirrors the same verification steps as release.yml's pre-publish gates,
intentionally duplicated so neither workflow depends on the other for
correctness.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@nonth nonth merged commit c70548f into main May 29, 2026
1 check passed
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