Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 21:18
· 160 commits to main since this release
48f9cf3

9l CLI 0.1.0

9l assess changes from an external trial on an 87-file Playwright suite.

  • --requirements is optional. Code-level checks run without a contract;
    requirement mapping is reported as not run. An empty value is a usage
    error (#5).
  • Suites: several specs, a directory or a quoted pattern (** supported)
    give one combined report with per-file reports or error codes and a suite
    summary. A file that cannot be assessed does not stop the others; the
    command then exits 2. At most half the CPUs analyze at once, and a file
    whose analyzer timed out is retried once on its own (#6).
  • Helpers: same-file helper functions are resolved, attributing their
    assertions, waits and limits to the calling test. // @9l-assertion-helper
    on a function or import declaration counts calls as reviewed assertions.
    Imports into other files are not followed yet (#4).
  • Skip guards: file- and describe-level test.skip(condition, reason)/
    test.fixme modifiers are no longer parsed as tests. Unconditional ones
    give disabled-test; conditional and after-hook ones give informational
    conditional-skip; conditions reading process.env give suspected
    environment-skip. Calls that could be declarations, such as
    test.skip(name, run), stay disabled tests (#7).
  • New finding absence-after-wait (suspected) when the first assertion after
    a fixed wait only checks that something is absent or did not happen (#8).
  • Unawaited resolves/rejects matchers are flagged; unawaited matchers
    outside the pinned Playwright API give an unknown-matcher limit.
  • Every finding carries code (#10). Text output omits empty fields, ends with
    a per-rule summary and shows literal test titles with opt-in --titles (#11).
  • Report version 3, policy assessment-source-v6. Consumers must accept the
    informational classification, the new rules and limit code, an absent
    requirementsSHA256 and an optional test title.

Install

Download the archive for your platform and SHA256SUMS, verify, and put 9l on your PATH; see the installation guide. Example for Apple Silicon:

BUNDLE=9l-darwin-arm64
gh release download v0.1.0 --repo Quality-Max/9lives-runner --pattern "$BUNDLE.tar.gz" --pattern SHA256SUMS
awk -v archive="$BUNDLE.tar.gz" '$2 == archive' SHA256SUMS > selected.sha256
shasum -a 256 -c selected.sha256   # sha256sum -c on Linux
tar -xzf "$BUNDLE.tar.gz" && ./$BUNDLE/9l --version
Platform Archive
macOS, Apple Silicon 9l-darwin-arm64.tar.gz
macOS, Intel 9l-darwin-amd64.tar.gz
Linux, x86-64 9l-linux-amd64.tar.gz
Linux, ARM64 9l-linux-arm64.tar.gz

9l assess needs Node 22 or newer; the TypeScript parser is bundled. macOS archives are not Apple notarized.

Compatibility

Assessment reports are version 3, policy assessment-source-v6. Consumers of the JSON report must accept the informational classification, the conditional-skip, environment-skip and absence-after-wait rules, the unknown-matcher limit code, an absent requirementsSHA256 and an optional test title. The new suite report (several specs, a directory or a pattern) is a separate format, version 1. A single spec still produces the single-file report.

Assessment is advisory and source-only: it does not run tests, and its findings do not establish assertion coverage.

Verification

Before publication the release workflow ran the complete CI suite on the tagged commit (48f9cf3). It then built each archive on its own native macOS or Linux amd64/arm64 runner and ran --version, --help and a fixture plan there. After publication, the macOS arm64 archive was downloaded and its checksum verified. It reported 9l 0.1.0 (Go runner), and the SDK checkout demo ran with it to completion (1 passed, 0 failed).

SDK

@9l/playwright 0.1.0 (tag sdk-v0.1.0) is published on npm with provenance. Its peer range @playwright/test >=1.61.1 <2 lets projects on later Playwright 1.x releases install it; 1.61.1 remains the only qualified version. The npm tarball is byte-identical to the one CI qualified, and it installs with @playwright/test 1.61.1 and 1.64.0.

npm install --save-dev @9l/playwright@0.1.0 @playwright/test@1.61.1

What's Changed

  • Add a static explainer page and publish it with GitHub Pages by @Desperado in #2
  • Stabilize SDK deadline smoke and identify failing cases by @Desperado in #3
  • Make assess usable on existing suites without a contract by @Desperado in #12
  • Flag environment-dependent skips and matchers of unknown timing by @Desperado in #16
  • Flag absence assertions that directly follow a fixed wait by @Desperado in #13
  • Assess a directory, pattern or several specs in one report by @Desperado in #14
  • Resolve same-file assertion helpers and accept marked helpers by @Desperado in #15
  • Prepare CLI and SDK release 0.1.0 by @Desperado in #17

Full Changelog: v0.0.0...v0.1.0