Skip to content

feat: 1.0.0 — production-ready release - #11

Merged
pranavz28 merged 3 commits into
mainfrom
release/1.0.0
May 20, 2026
Merged

feat: 1.0.0 — production-ready release#11
pranavz28 merged 3 commits into
mainfrom
release/1.0.0

Conversation

@pranavz28

Copy link
Copy Markdown
Contributor

Summary

First production-ready release of @percy/detox. Bumps version 0.1.0-alpha.01.0.0 and lifts the SDK to a state where the npm publish workflow can ship a stable latest tag.

What's in this PR

Coverage + CI

  • Enforce 100% coverage threshold in nyc (statements, branches, functions, lines).
  • Wire test.yml + release.yml to run test:coverage so CI fails on coverage regression.
  • Add typecheck.yml workflow + tsd type-test fixtures (types/index.test-d.ts).
  • Drive coverage from 86% → 100% across all metrics (189 tests, 0 failures):
    • New tests: genericProvider, tile, exec, log, postFailedEvents
    • Branch-completion tests: androidMetadata, iosMetadata, resolveMetadata, findRegions, resolveDebugUrl, index

Types

  • Restructure types/index.d.ts so export = percyScreenshot works alongside namespace-scoped interface exports (PercyOptions, DetoxDevice, DetoxElement, Rect, SnapshotResponse).
  • Add types/index.test-d.ts covering all option keys, return types, and isDetoxDevice narrowing.

Code

  • Remove unreachable defensive scale clamp in iosMetadata.scaleFactor (scale is always 2 or 3 by that point).

Release config

  • Version 0.1.0-alpha.01.0.0.
  • publishConfig.tag flipped from alphalatest so the next npm publish becomes the default install.

Docs

  • Rewritten README for npm consumers: quick-start, supported-targets matrix, options table, BS App Automate section, migration table from @percy/appium-app, known limitations.

Test plan

  • npm run lint — clean
  • npm run test:coverage — 189 specs, 0 failures, 100/100/100/100
  • npm run test:typestsd passes

Post-Deploy Monitoring & Validation

  • Validation checks
    • Confirm next push to main runs test.yml and typecheck.yml green
    • Confirm release.yml triggers cleanly on first GitHub Release for v1.0.0
  • Failure signal / rollback
    • If test:coverage fails on main: revert and address the gap
    • If release.yml fails: ensure NPM_TOKEN repo secret is configured before retrying

🤖 Generated with Claude Code

- Bump version 0.1.0-alpha.0 → 1.0.0; publish tag back to "latest".
- Enforce 100% coverage threshold in nyc (statements/branches/functions/lines).
- Add typecheck workflow + tsd type-test fixtures (types/index.test-d.ts).
- Restructure types/index.d.ts so `export =` works alongside namespace exports.
- Wire test.yml + release.yml to run test:coverage (CI fails on coverage regression).
- Drive coverage from 86% to 100% across statements, branches, functions, lines:
  + new tests for genericProvider, tile, exec, log, postFailedEvents
  + branch-completion tests for android/iOS metadata, resolveMetadata, findRegions, resolveDebugUrl, index
- Remove unreachable defensive scale clamp in iosMetadata.scaleFactor.
- Polish README for npm consumers: quick-start, supported-targets matrix, options table, BS section, migration table, known limitations.
Comment thread .github/workflows/typecheck.yml Fixed
pranavz28 and others added 2 commits May 18, 2026 02:57
Aligns @percy/detox with peer SDK conventions and removes the
not-yet-implemented Percy-on-Automate path until BrowserStack
server-side capture lands.

- CODEOWNERS: @percy/percy-product-reviewers (web JS peer parity)
- Add .nvmrc=20, ISSUE_TEMPLATE/bug_report.md (Detox-adapted)
- test.yml node matrix -> [20, 22]; test script uses
  `percy app:exec --testing` for safety
- Semgrep.yml: codeql-action/upload-sarif@v4, semgrep/semgrep image
- README: add Debugging section; strip BS App Automate /
  "wired end-to-end" claim, getSessionId/getBuildId,
  BROWSERSTACK_* env vars, BS rows from execution-targets table
- Source: delete percy/providers/resolveDebugUrl.js (+ test);
  drop externalDebugUrl from postComparison call
- types/: drop getSessionId/getBuildId from PercyOptions;
  add CLIENT_INFO / ENV_INFO declarations
- package.json: directories.test for peer parity
- Add percy/util/timing.js (TimeIt) + tests; wrap screenshot
  call with TimeIt.run('percyScreenshot', ...) for telemetry parity
- Re-export CLIENT_INFO / ENV_INFO from index.js (maestro pattern)

Verified locally: 184/184 specs, 100% coverage, lint clean,
tsd clean. Verified end-to-end on Android (Pixel_7_API_34, API 34)
via example-percy-detox with 3 Percy builds — all state=finished,
failure-reason=None, with correct dedup behavior on re-runs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ntain permissions'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@pranavz28
pranavz28 merged commit a9f0ed9 into main May 20, 2026
9 checks 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.

2 participants