Skip to content

Release v1.19.0 Discussion: Merge Strategy and TestingΒ #183

@justin808

Description

@justin808

Release v1.19.0 Discussion

Overview

We have 3 PRs ready to merge that will constitute our v1.19.0 release. This issue discusses the merge strategy, regression risks, and testing requirements.

πŸ“‹ PRs Ready to Merge

  1. PR Add cypress-rails compatible rake tasks and server lifecycle hooksΒ #179: Add cypress-rails compatible rake tasks and server lifecycle hooks βœ… CI Passing
  2. PR Add comprehensive documentation to improve developer experienceΒ #180: Add comprehensive documentation to improve developer experience βœ… CI Passing
  3. PR Add automated release rake tasksΒ #182: Prepare for v1.19.0 release βœ… CI Passing

πŸ”„ Important Discovery: PR Dependencies

PR #180 includes all changes from PR #179! This means we have two merge options:

Option 1: Merge Only PR #180 (Recommended βœ…)

PR #180 (includes #179 changes) β†’ PR #182 (version bump) β†’ Tag v1.19.0

Pros: Simpler, one less merge, already tested together
Cons: PR #179 would be closed without merging

Option 2: Merge Both PRs Sequentially

PR #179 β†’ PR #180 (may need rebase) β†’ PR #182 β†’ Tag v1.19.0

Pros: Clean git history, both PRs get merged
Cons: Extra work, potential rebase needed

πŸ“Š Version Bump Rationale

1.18.0 β†’ 1.19.0 (Minor Version) is appropriate because:

  • βœ… Adds new features (rake tasks, server hooks, documentation)
  • βœ… Maintains backwards compatibility
  • βœ… No breaking changes
  • βœ… Follows semantic versioning

🎯 Regression Risk Assessment: LOW-MEDIUM

Why Risk is Low

  1. Purely Additive: 453 new lines of code, 0 deletions
  2. CI Validated: Passing on Rails 6.1, 7.2, and 8.0
  3. Optional Features: New features only activate when explicitly used
  4. Backwards Compatible: Existing functionality untouched

Potential Risk Areas

Component Risk Level Impact Mitigation
Existing functionality Very Low High No changes to existing code
New rake tasks Low Medium Isolated new code
Middleware addition Low-Medium Low Only responds to specific endpoints
Configuration defaults Low Low Safe defaults, nil for hooks

πŸ§ͺ Testing Recommendations

5-Minute Smoke Test (Recommended)

# 1. Test backwards compatibility (old way still works)
CYPRESS=1 bin/rails server -p 5017 &
yarn cypress run --project ./e2e
kill %1

# 2. Test new functionality (rake tasks)
bin/rails cypress:run

# If both work, ship it! βœ…

Extended Testing (Optional)

Only if team wants extra confidence:

  • Test server hooks trigger
  • Test state reset endpoint
  • Test with different Rails versions locally
  • Test Playwright rake tasks

πŸ“¦ Release Process After Merge

  1. Tag Release: git tag -a v1.19.0 -m "Release version 1.19.0"
  2. Push Tag: git push origin v1.19.0
  3. Build Gem: gem build cypress-on-rails.gemspec
  4. Publish: gem push cypress-on-rails-1.19.0.gem
  5. GitHub Release: Create with release notes
  6. Close Issues: No route matches [POST] "/api/__e2e__/vcr/insert"Β #175, Load fixtures in PlaywrightΒ #169, VCR with use_cassetteΒ #160, Run cypress in test environment and still get changes picked up?Β #157, ApplicationRecord Load getting Mysql ErrorΒ #155, Automatically start the rails server Β #152, Add initialization hooksΒ #153, Webpack Compilation ErrorΒ #146, Authenticate CypressOnRails commandsΒ #137, Question: any plans to support parallel testing?Β #119, RAILS_ENV=test yarn run cypress run opens cypressΒ #118, Use Rails' transactional fixtures instead of database cleanerΒ #114

🚒 Team Decision Needed

Questions for Discussion:

  1. Merge Strategy: Option 1 (just Add comprehensive documentation to improve developer experienceΒ #180) or Option 2 (both Add cypress-rails compatible rake tasks and server lifecycle hooksΒ #179 and Add comprehensive documentation to improve developer experienceΒ #180)?
  2. Testing Level: 5-minute smoke test sufficient or want extended testing?
  3. Release Timing: Merge and release now or wait?
  4. Release Manager: Who will handle the gem publication?

πŸ“Š Impact of This Release

This release will:

  • Provide cypress-rails compatibility making migration easy
  • Add 2000+ lines of documentation addressing all major pain points
  • Solve 11+ open issues with comprehensive guides
  • Make cypress-playwright-on-rails a complete replacement for cypress-rails

🎯 My Recommendation

  1. Merge only PR Add comprehensive documentation to improve developer experienceΒ #180 (simpler, includes everything)
  2. Do 5-minute smoke test (sufficient given low risk)
  3. Release immediately (users waiting for these fixes)
  4. Be ready for 1.19.1 if any edge cases appear

The benefits of getting these improvements to users outweigh the minimal regression risk. The changes are additive, CI is green, and we can quickly patch if needed.

πŸ“ Next Steps

Please discuss and decide on:

  • Merge strategy choice
  • Testing requirements
  • Release timing
  • Release manager assignment

cc @justin808

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions