Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
workflow_dispatch:
inputs:
version:
description: "Release version (e.g., 1.12.0)"
description: "Release version (e.g., 1.11.0)"
required: true
type: string

Expand Down
8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v1.12.0] - 2026-04-12
## [v1.11.0] - 2026-04-12

### Added
- **HTML reporter** — interactive dashboard with 4 comparison modes (both/base/new/heatmap), per-image zoom, keyboard navigation, and search ([#170](https://github.com/snap-diff/snap_diff-capybara/pull/170))
Expand Down Expand Up @@ -55,10 +55,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

## [v1.11.0] - Previous Release
## [v1.10.3.1] - Previous Release

[Unreleased]: https://github.com/snap-diff/snap_diff-capybara/compare/v1.12.0...HEAD
[v1.12.0]: https://github.com/snap-diff/snap_diff-capybara/releases/tag/v1.12.0
[Unreleased]: https://github.com/snap-diff/snap_diff-capybara/compare/v1.11.0...HEAD
[v1.11.0]: https://github.com/snap-diff/snap_diff-capybara/releases/tag/v1.11.0
[v1.10.3.1]: https://github.com/snap-diff/snap_diff-capybara/releases/tag/v1.10.3.1

**Upgrade Guide:** See [docs/UPGRADING.md](docs/UPGRADING.md) for detailed migration instructions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
[![Gem Version](https://badge.fury.io/rb/capybara-screenshot-diff.svg)](https://rubygems.org/gems/capybara-screenshot-diff)
[![Gem Downloads](https://img.shields.io/gem/dt/capybara-screenshot-diff.svg)](https://rubygems.org/gems/capybara-screenshot-diff)
[![Test](https://github.com/snap-diff/snap_diff-capybara/actions/workflows/test.yml/badge.svg)](https://github.com/snap-diff/snap_diff-capybara/actions/workflows/test.yml)
[![DeepWiki](https://img.shields.io/badge/DeepWiki-snap--diff%2Fsnap__diff--capybara-blue.svg?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIweiIvPjxwYXRoIGQ9Ik0xMiA2djEyIi8+PHBhdGggZD0iTTYgMTJoMTIiLz48L3N2Zz4=)](https://deepwiki.com/snap-diff/snap_diff-capybara)

# Capybara::Screenshot::Diff

Stop shipping UI bugs. Take screenshots in your Capybara tests, commit baselines to git, and let CI catch visual regressions in pull requests — no cloud service, no subscription, runs entirely in your test suite.

**Why this gem?** Baselines live in git alongside your code — no external service, no account to sign up for, works offline. Unlike Percy/Chromatic (paid SaaS), this runs locally. Unlike BackstopJS, no Node required.
**Why this gem?** Baselines live in git — review UI changes in pull requests like you review code. Runs offline, works in CI, zero vendor lock-in. Unlike Percy/Chromatic (paid SaaS), nothing to sign up for. Unlike BackstopJS, no Node required.

## Quick Start
## Quick Start (5 minutes)

> **Prerequisites:** A working Capybara setup with a browser driver (e.g., selenium-webdriver + Chrome). See [Rails System Testing guide](https://guides.rubyonrails.org/testing.html#system-testing) if you don't have one yet.
> Already using Capybara for system tests? Add the gem and you're ready. New to system tests? See [Rails System Testing guide](https://guides.rubyonrails.org/testing.html#system-testing).

```ruby
# Gemfile
Expand Down
8 changes: 4 additions & 4 deletions docs/RELEASE_PREP.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Release Preparation — v1.12.0
# Release Preparation — v1.11.0

## Summary

71 commits since v1.11.0 with new features, performance improvements, and default behavior changes.
71 commits since v1.10.3.1 with new features, performance improvements, and default behavior changes.

## Release Checklist

### Pre-Release

- [x] Update version to `1.12.0`
- [x] Update version to `1.11.0`
- [x] Run tests: `bundle exec rake test` (218 runs, 0 failures)
- [x] Add CHANGELOG.md
- [x] Add docs/UPGRADING.md
Expand All @@ -17,7 +17,7 @@

1. Push to GitHub
2. Go to [Actions → Release](https://github.com/snap-diff/snap_diff-capybara/actions/workflows/release.yml)
3. Click **Run workflow**, enter `1.12.0`
3. Click **Run workflow**, enter `1.11.0`
4. Workflow will: test → tag → publish to RubyGems → create GitHub Release

### Post-Release
Expand Down
44 changes: 22 additions & 22 deletions docs/UPGRADING.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Upgrading to v1.12.0
# Upgrading to v1.11.0

## Overview

Version 1.12.0 is a **minor release** with new features, performance improvements, and default behavior changes. This guide will help you upgrade smoothly.
Version 1.11.0 is a **minor release** with new features, performance improvements, and default behavior changes. This guide will help you upgrade smoothly.

**Estimated upgrade time:** 5-15 minutes depending on your setup

Expand All @@ -14,15 +14,15 @@ For **most users**, upgrading is as simple as:

```ruby
# In your Gemfile
gem 'capybara-screenshot-diff', '~> 1.12.0'
gem 'capybara-screenshot-diff', '~> 1.11.0'
```

```bash
bundle update capybara-screenshot-diff
bundle exec rake test # Verify tests still pass
```

**That's it!** The zero-config setup still works out of the box. Your existing screenshot comparisons will continue to work with v1.12.0.
**That's it!** The zero-config setup still works out of the box. Your existing screenshot comparisons will continue to work with v1.11.0.

---

Expand All @@ -34,8 +34,8 @@ Three settings now have different defaults. This is the most likely source of un

#### `blur_active_element` — Now defaults to `true`

**Before (v1.11.0):** Cursor blinking could delay screenshots
**After (v1.12.0):** Cursor is automatically hidden
**Before (v1.10.x):** Cursor blinking could delay screenshots
**After (v1.11.0):** Cursor is automatically hidden

**Action required:** Only if you want the old behavior

Expand All @@ -46,8 +46,8 @@ Capybara::Screenshot.blur_active_element = false

#### `hide_caret` — Now defaults to `true`

**Before (v1.11.0):** Input caret visible in screenshots
**After (v1.12.0):** Caret is transparent for stable screenshots
**Before (v1.10.x):** Input caret visible in screenshots
**After (v1.11.0):** Caret is transparent for stable screenshots

**Action required:** Only if you want the old behavior

Expand All @@ -58,8 +58,8 @@ Capybara::Screenshot.hide_caret = false

#### `fail_if_new` — Now defaults to `true` in CI

**Before (v1.11.0):** New screenshots allowed in CI
**After (v1.12.0):** New screenshots fail tests in CI (when `ENV['CI']` is set)
**Before (v1.10.x):** New screenshots allowed in CI
**After (v1.11.0):** New screenshots fail tests in CI (when `ENV['CI']` is set)

**Action required:** Only if you want to allow new screenshots in CI

Expand All @@ -74,8 +74,8 @@ Capybara::Screenshot::Diff.fail_if_new = false

### 2. SVN Support Removed

**Before (v1.11.0):** Could use SVN for version control
**After (v1.12.0):** Git only
**Before (v1.10.x):** Could use SVN for version control
**After (v1.11.0):** Git only

**Action required:** If using SVN, migrate to Git

Expand All @@ -95,8 +95,8 @@ If you find SVN usage:

### 3. ActiveSupport No Longer Required

**Before (v1.11.0):** ActiveSupport was a runtime dependency
**After (v1.12.0):** Pure Ruby, no ActiveSupport required
**Before (v1.10.x):** ActiveSupport was a runtime dependency
**After (v1.11.0):** Pure Ruby, no ActiveSupport required

**Action required:** None (this is a positive change!)

Expand All @@ -113,8 +113,8 @@ If your project only had ActiveSupport because of this gem, you can now remove i

### 4. Internal API Changes

**Before (v1.11.0):** Could use internal classes like `CaptureStrategy`, `ComparisonLoader`
**After (v1.12.0):** These have been inlined/refactored
**Before (v1.10.x):** Could use internal classes like `CaptureStrategy`, `ComparisonLoader`
**After (v1.11.0):** These have been inlined/refactored

**Action required:** Only if using internal APIs

Expand Down Expand Up @@ -252,7 +252,7 @@ Enjoy faster screenshot comparisons:

### Upgrade Notes

**Ruby 4.0:** Fully compatible! If you see DSLStub ordering issues, they're fixed in v1.12.0.
**Ruby 4.0:** Fully compatible! If you see DSLStub ordering issues, they're fixed in v1.11.0.

**Rails 8.0:** Works out of the box with updated dependencies.

Expand All @@ -263,7 +263,7 @@ Enjoy faster screenshot comparisons:
### Step 1: Update Gemfile

```ruby
gem 'capybara-screenshot-diff', '~> 1.12.0'
gem 'capybara-screenshot-diff', '~> 1.11.0'
```

### Step 2: Bundle Update
Expand Down Expand Up @@ -306,7 +306,7 @@ Run tests and open `doc/screenshots/snap_diff_report.html` to review differences
```bash
# Commit the new baselines
git add doc/screenshots/
git commit -m "Add screenshot baselines for v1.12.0 upgrade"
git commit -m "Add screenshot baselines for v1.11.0 upgrade"
```

Or temporarily allow them:
Expand Down Expand Up @@ -337,7 +337,7 @@ bundle exec rake test

# Commit new baselines
git add doc/screenshots/
git commit -m "Re-record baselines with v1.12.0 defaults"
git commit -m "Re-record baselines with v1.11.0 defaults"
```

### "NoMethodError on internal class"
Expand Down Expand Up @@ -376,7 +376,7 @@ All screenshot baselines are compatible — no data loss.

## Summary Checklist

- [ ] Update gem version to `~> 1.12.0`
- [ ] Update gem version to `~> 1.11.0`
- [ ] Run `bundle update capybara-screenshot-diff`
- [ ] Run test suite
- [ ] Check for new screenshot failures in CI
Expand All @@ -387,4 +387,4 @@ All screenshot baselines are compatible — no data loss.
- [ ] Commit changes
- [ ] Review upgrade issues in [GitHub Issues](https://github.com/snap-diff/snap_diff-capybara/issues)

**Congratulations!** You're now running v1.12.0 🎉
**Congratulations!** You're now running v1.11.0 🎉
2 changes: 1 addition & 1 deletion lib/capybara/screenshot/diff/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
module Capybara
module Screenshot
module Diff
VERSION = "1.12.0"
VERSION = "1.11.0"
end
end
end
Loading