Skip to content

Launching 2.0.0 version#33

Merged
tomas-stefano merged 22 commits intomasterfrom
update-2.0.0
Feb 2, 2026
Merged

Launching 2.0.0 version#33
tomas-stefano merged 22 commits intomasterfrom
update-2.0.0

Conversation

@tomas-stefano
Copy link
Owner

Context

Launch the new version.

Supporting auto discover lib/apps:

  • Rubygems
  • Rails
  • Padrino

Supporting auto discover test framework:

  • RSpec
  • Test unit

Supporting auto discover ruby version manager:

  • Pure ruby - default
  • RVM
  • Rbenv

Supporting new DSL for configuration (See Readme)

Require 'active_support' before 'active_support/core_ext' to ensure
the autoloading mechanism is initialized first.
- Use ActiveSupport::Deprecation.new.warn instead of class method (AS 7.x)
- Replace be_true/be_false with be true/be false (RSpec 3+ syntax)
- Add silence_stream helper to replace removed ActiveSupport method
- Stub Watchr.handler to avoid Config::CONFIG deprecation in Ruby 3.x
- Remove outdated pending blocks from specs that now pass
Update all spec descriptions to use present tense instead of
'it should...' style. For example:
- "should return true" -> "returns true"
- "should set the mode" -> "sets the mode"
- "should respond to" -> "responds to"

This follows modern RSpec best practices for clearer, more
readable test output.
Update rspec-mocks usage from old :should syntax to modern :expect
syntax to remove deprecation warnings.
- Remove unmaintained watchr gem (last updated 2011)
- Add listen gem as default observer (event-driven, used by Rails)
- Add filewatcher gem as alternative (polling-based, works everywhere)
- Update Core::Base to use :listen as default observer
- Add specs for both new observers

The listen observer uses native OS file system notifications for better
performance. The filewatcher observer uses polling which works in all
environments including VMs and NFS mounts.
Replace blocking sleep with timestamp-based approach. The previous
implementation blocked inside the signal handler which prevented
proper re-entrancy when pressing Ctrl+C multiple times.

Add specs for observer base including interrupt handling logic.
- Update notification options documentation with current notifiers:
  - :auto_discover (default) - auto-detect available notifier
  - :terminal_notifier - macOS
  - :osascript - macOS built-in
  - :notify_send - Linux/BSD
  - :dunstify - Linux/BSD
- Update specs to use :auto_discover instead of deprecated :growl
The latest notifiers 2.0.0 with auto_discover and modern notifier
support is not yet released on RubyGems.
Complete the notifications integration with the notifiers gem by adding
command line options to configure the notification library and image theme.
Update deprecated growl references to use modern notifiers (osascript,
terminal_notifier, notify_send, dunstify).
- Rename .infinity_test to INFINITY_TEST for clearer visibility
- Complete TestUnit implementation with patterns for minitest output,
  success/failure/pending detection, test_dir setter, and .run? method
- Add missing methods to RSpec: test_dir=, pending?, and .run?
- Add comprehensive specs for TestUnit
- RVM strategy builds commands using `rvm <version> do ruby -S <binary> <files>`
- RbEnv strategy builds commands using `RBENV_VERSION=<version> ruby -S <binary> <files>`
- Both strategies support running tests across multiple Ruby versions
- RVM strategy supports gemset configuration
- Add comprehensive specs for both strategies
- Add file watching heuristics to Rails framework for models, controllers,
  helpers, mailers, jobs, lib, and test directories
- Add file watching heuristics to Padrino framework with similar patterns
- Update specs to properly mock observer and test_framework dependencies
- Mark completed TODO items
Implement prioritization for auto discovery of strategies, frameworks,
and test frameworks. More specific libraries are checked before generic
ones (e.g., Rails before Rubygems, RVM before RubyDefault).

Priority order:
- Strategies: rvm > rbenv > ruby_default
- Frameworks: rails > padrino > rubygems
- Test frameworks: rspec > test_unit
Callbacks:
- Add Callback class supporting before/after with :all/:each_ruby scopes
- Implement before() and after() DSL methods in Base
- Add run_before_callbacks and run_after_callbacks helpers
- Integrate callbacks into ContinuousTestServer run_strategy

Just Watch:
- Add --just-watch (-j) option to skip initial test run
- Useful for large applications where startup is slow
- Only watches for file changes and runs tests on change
- Add --focus (-f) option accepting file path or "failures"
- When "failures" is specified, runs only previously failed tests
- When file path is specified, runs only that test file
- Failed tests tracked in .infinity_test_failures file
- Create AI_INTEGRATION_IDEAS.md with ideas for Claude Code, MCP servers,
  AI-assisted debugging, natural language commands, and more
- Update History.markdown with comprehensive v2.0.0 changelog
- Mark all TODO items as complete
Migrate CI from Travis CI to GitHub Actions with modern Ruby versions
(3.1, 3.2, 3.3, JRuby) and cross-platform testing (Ubuntu, macOS).
@tomas-stefano tomas-stefano merged commit d9b386b into master Feb 2, 2026
7 checks passed
@tomas-stefano tomas-stefano deleted the update-2.0.0 branch February 2, 2026 04:00
@tomas-stefano tomas-stefano restored the update-2.0.0 branch February 2, 2026 08:53
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.

1 participant

Comments