Skip to content

Version Packages#1183

Merged
wswebcreation merged 1 commit into
mainfrom
changeset-release/main
Jul 11, 2026
Merged

Version Packages#1183
wswebcreation merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@wdio/image-comparison-core@2.1.0

Minor Changes

  • b194642: fix: ignore* option parity with resemble (pixelmatch)

    After v10 switched to pixelmatch, the public ignore* API did not fully match resemble.js preset behaviour. Combined modes such as ignoreLess with the default ignoreAntialiasing: true still inherited AA forgiveness, and ignoreColors used BT.601 grayscale instead of resemble brightness-only comparison.

    This release also adds compareOptions.pixelmatch so you can pass pixelmatch settings directly instead of using ignore* presets.

    What changed

    • Multiple ignore* flags now follow resemble last-wins ordering (ignoreAlphaignoreAntialiasingignoreColorsignoreLessignoreNothing) instead of composing independently
    • ignoreLess, ignoreAlpha, ignoreColors, and ignoreNothing now apply their own threshold and AA rules when active; they no longer inherit default ignoreAntialiasing: true forgiveness
    • ignoreColors now compares brightness only using resemble luma weights (0.3/0.59/0.11), matching resemble v9 behaviour
    • WDIO logs a warning when multiple ignore* flags are enabled, naming which preset wins
    • New compareOptions.pixelmatch object for direct pixelmatch control (threshold, includeAA, diffColor, aaColor, diffColorAlt, alpha, diffMask, checkerboard)

    Preset reference

    Active preset threshold AA forgiven
    ignoreNothing 0 no
    ignoreLess ~16/255 no
    ignoreColors ~16/255 no (brightness only)
    ignoreAlpha ~16/255 no
    ignoreAntialiasing (default) ~32/255 yes

    Using compareOptions.pixelmatch

    Set it in your service config or on a single check* call. Do not put ignore* keys and pixelmatch on the same options object; that throws, even when an ignore* flag is false. Service config and method options are separate objects, so a method call can override the service compare mode for that check (a warning is logged when the mode switches).

    Service config:

    // wdio.conf.js
    services: [
      [
        "visual",
        {
          compareOptions: {
            pixelmatch: {
              threshold: 0.063,
              includeAA: true,
            },
          },
        },
      ],
    ];

    Method override when the service uses ignore* presets:

    await browser.checkScreen("homepage", {
      pixelmatch: { threshold: 0.05 },
    });

    Method override when the service uses pixelmatch:

    await browser.checkScreen("homepage", {
      ignoreLess: true,
    });

    Invalid (throws):

    compareOptions: {
      ignoreLess: false,
      pixelmatch: { threshold: 0.063 },
    }

    See pixelmatch for option details.

    What you need to do

    • No change needed if you use a single ignore* flag or rely on defaults (ignoreAntialiasing: true)
    • Set ignoreAntialiasing: false when anti-aliased pixels should count as differences
    • If you combine multiple ignore* flags, review your tests; last-wins ordering now matches resemble v9
    • If you use ignoreColors, results may differ slightly from early v10 but align with resemble v9
    • To tune pixelmatch directly, add compareOptions.pixelmatch in your service config or pass pixelmatch on individual check* calls

@wdio/visual-service@10.1.0

Minor Changes

  • b194642: fix: ignore* option parity with resemble (pixelmatch)

    After v10 switched to pixelmatch, the public ignore* API did not fully match resemble.js preset behaviour. Combined modes such as ignoreLess with the default ignoreAntialiasing: true still inherited AA forgiveness, and ignoreColors used BT.601 grayscale instead of resemble brightness-only comparison.

    This release also adds compareOptions.pixelmatch so you can pass pixelmatch settings directly instead of using ignore* presets.

    What changed

    • Multiple ignore* flags now follow resemble last-wins ordering (ignoreAlphaignoreAntialiasingignoreColorsignoreLessignoreNothing) instead of composing independently
    • ignoreLess, ignoreAlpha, ignoreColors, and ignoreNothing now apply their own threshold and AA rules when active; they no longer inherit default ignoreAntialiasing: true forgiveness
    • ignoreColors now compares brightness only using resemble luma weights (0.3/0.59/0.11), matching resemble v9 behaviour
    • WDIO logs a warning when multiple ignore* flags are enabled, naming which preset wins
    • New compareOptions.pixelmatch object for direct pixelmatch control (threshold, includeAA, diffColor, aaColor, diffColorAlt, alpha, diffMask, checkerboard)

    Preset reference

    Active preset threshold AA forgiven
    ignoreNothing 0 no
    ignoreLess ~16/255 no
    ignoreColors ~16/255 no (brightness only)
    ignoreAlpha ~16/255 no
    ignoreAntialiasing (default) ~32/255 yes

    Using compareOptions.pixelmatch

    Set it in your service config or on a single check* call. Do not put ignore* keys and pixelmatch on the same options object; that throws, even when an ignore* flag is false. Service config and method options are separate objects, so a method call can override the service compare mode for that check (a warning is logged when the mode switches).

    Service config:

    // wdio.conf.js
    services: [
      [
        "visual",
        {
          compareOptions: {
            pixelmatch: {
              threshold: 0.063,
              includeAA: true,
            },
          },
        },
      ],
    ];

    Method override when the service uses ignore* presets:

    await browser.checkScreen("homepage", {
      pixelmatch: { threshold: 0.05 },
    });

    Method override when the service uses pixelmatch:

    await browser.checkScreen("homepage", {
      ignoreLess: true,
    });

    Invalid (throws):

    compareOptions: {
      ignoreLess: false,
      pixelmatch: { threshold: 0.063 },
    }

    See pixelmatch for option details.

    What you need to do

    • No change needed if you use a single ignore* flag or rely on defaults (ignoreAntialiasing: true)
    • Set ignoreAntialiasing: false when anti-aliased pixels should count as differences
    • If you combine multiple ignore* flags, review your tests; last-wins ordering now matches resemble v9
    • If you use ignoreColors, results may differ slightly from early v10 but align with resemble v9
    • To tune pixelmatch directly, add compareOptions.pixelmatch in your service config or pass pixelmatch on individual check* calls

Patch Changes

  • b194642: chore: dependency updates

    Updated dependencies to their latest compatible versions:

    • @wdio/visual-service: expect-webdriverio to ^5.7.0
    • @wdio/visual-reporter: sharp to ^0.35.3
    • Dev tooling: @typescript-eslint/* to ^8.63.0, vitest to ^3.2.7, eslint to ^9.39.5, plus minor bumps for postcss, react-icons, and isbot in the reporter package

    No functional or API changes.

    Committers: 1

  • Updated dependencies [b194642]

    • @wdio/image-comparison-core@2.1.0

@wdio/visual-reporter@0.4.15

Patch Changes

  • b194642: chore: dependency updates

    Updated dependencies to their latest compatible versions:

    • @wdio/visual-service: expect-webdriverio to ^5.7.0
    • @wdio/visual-reporter: sharp to ^0.35.3
    • Dev tooling: @typescript-eslint/* to ^8.63.0, vitest to ^3.2.7, eslint to ^9.39.5, plus minor bumps for postcss, react-icons, and isbot in the reporter package

    No functional or API changes.

    Committers: 1

@wswebcreation
wswebcreation merged commit bde36b7 into main Jul 11, 2026
4 checks passed
@wswebcreation
wswebcreation deleted the changeset-release/main branch July 11, 2026 06:05
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