feat: 1.0.0 — production-ready release - #11
Merged
Merged
Conversation
- 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.
5 tasks
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First production-ready release of
@percy/detox. Bumps version0.1.0-alpha.0→1.0.0and lifts the SDK to a state where the npm publish workflow can ship a stablelatesttag.What's in this PR
Coverage + CI
nyc(statements, branches, functions, lines).test.yml+release.ymlto runtest:coverageso CI fails on coverage regression.typecheck.ymlworkflow +tsdtype-test fixtures (types/index.test-d.ts).genericProvider,tile,exec,log,postFailedEventsandroidMetadata,iosMetadata,resolveMetadata,findRegions,resolveDebugUrl,indexTypes
types/index.d.tssoexport = percyScreenshotworks alongside namespace-scoped interface exports (PercyOptions,DetoxDevice,DetoxElement,Rect,SnapshotResponse).types/index.test-d.tscovering all option keys, return types, andisDetoxDevicenarrowing.Code
iosMetadata.scaleFactor(scaleis always 2 or 3 by that point).Release config
0.1.0-alpha.0→1.0.0.publishConfig.tagflipped fromalpha→latestso the next npm publish becomes the default install.Docs
@percy/appium-app, known limitations.Test plan
npm run lint— cleannpm run test:coverage— 189 specs, 0 failures, 100/100/100/100npm run test:types—tsdpassesPost-Deploy Monitoring & Validation
mainrunstest.ymlandtypecheck.ymlgreenrelease.ymltriggers cleanly on first GitHub Release forv1.0.0test:coveragefails onmain: revert and address the gaprelease.ymlfails: ensureNPM_TOKENrepo secret is configured before retrying🤖 Generated with Claude Code