Skip to content

Releases: guard/listen

v2.8.0

15 Nov 13:30
@e2 e2
Compare
Choose a tag to compare

Improvements

  • #273 abort on filesystem loop

Notes

Listen will refuse to watch multiple copies of a physical directory within a watched directory.

This means you can either watch symlinked directories or the real ones - but not both.

This also means you can only have one symlink to a physical directory (which has to be outside the watched directory anyway).

Reasoning

It may be very "convenient" to listen to a "whole project", but this causes a confusion and a whole array of issues with symlinks.

Solutions / workarounds

  1. Ideally, watch only the physical directories you need to monitor

  2. Help with a technically related feature request #274 (PRs are welcome)

  3. Freeze Listen in your Gemfile:

gem 'listen', '~> 2.7.12'

Issues

If none of the above solutions are acceptable in your case, feel free to post new issues or comment on existing ones

If despite this change symlinks don't work as accepted, please file a bug with a specific issue.

Caveats

On Linux, Listen "cheats" by translating events on physical paths to being relative to the watched directory.

This make is seem like Listen handles symlinks transparently, but likely won't work in every case.

(Feel free to post specific cases causing problems).

v2.7.12

13 Nov 09:55
@e2 e2
Compare
Choose a tag to compare

Bugfixes

  • #243 fix multiple dir handling in OSX by giving each runner it's own thread

Improvements

  • #269 Show version in debug mode

Development

  • replicate HoundCi Rubocop config to get the exact same warnings + cleanup
  • stop RSpec objects leaking between tests
  • ThreadPool for properly stopping threads

v2.7.11

26 Sep 17:36
@e2 e2
Compare
Choose a tag to compare

Same as v2.7.10, except v2.7.10 was released with incorrect version number.

v2.7.10

26 Sep 17:26
@e2 e2
Compare
Choose a tag to compare

Major:

  • properly watch multiple directories on OSX (fixes #243)
  • change how Celluloid logger is used to avoid conflicts (closes #248)
  • sidestep issues with incompatible filename encodings (affects #250)
  • fix TCP port/host parsing (fixes #245)
  • fix TCP client reconnect issues (#253)

Minor:

  • no longer force debug log level in *BSD

Known issues:

  • symlink handling is undefined and/or inconsistent across adapters (see #25)
  • symlink "loops" can cause Listen to hang (see #259)
  • Listen doesn't gracefully handle incompatibly encoded file/dir names (see #238)

v2.7.9

20 Jun 17:26
@e2 e2
Compare
Choose a tag to compare

Major:

  • fixed #239 (deleting and adding file on OSX caused endless loop)
  • fixed Ctrl-c handling and stopping all Listen instances

Minor:

  • debugging: callback time is shown when LISTEN_GEM_DEBUGGING=2

Development:

  • fsevent emulation on Linux is more accurate, which means OSX-specific paths can be tested under Linux

v2.7.8

12 Jun 22:22
@e2 e2
Compare
Choose a tag to compare

Major fix:

  • show WDM load error (and fallback to polling) instead of crashing (Windows)

Minor changes:

  • fix Ctrl-C handling (bin/listen)
  • update README (added Performance section + minor tweaks)

v2.7.7

05 Jun 19:59
@e2 e2
Compare
Choose a tag to compare

MAJOR speed improvement:

  • hyperfast FS record building - should take Listen just a few seconds at most, even with hundreds of thousands of files! (closes #207)

Other improvements:

  • record build time is shown when environment variable is set: LISTEN_GEM_DEBUGGING=1)
  • more robust file ignoring (removed relative path hack, silencer is always available)
  • file ignoring has less overhead (avoids Celluloid + reuses Silencer instance)
  • more strict+robust internals (by keeping events relative to and separate from watched dir)
  • slightly smaller memory footprint (less info stored in Record)

Notes/warnings:

  • undiscovered bugs related to file/path/dir handling are more likely to surface (!!) [but can be tracked down and fixed much faster]
  • record building is now so fast, it can uncover new race conditions (e.g. if your app "relies" on Listen being "slow")
  • while this is a patch release, there are a lot of internal changes - so test properly before upgrading Listen for production purposes!

v2.7.6

02 Jun 02:45
@e2 e2
Compare
Choose a tag to compare

NOTE: this and following releases may include MAJOR changes and improvements unintentionally breaking compatibility - feel free to report issues (given sufficient details are included - see README) and submit pull requests! (If this bothers you, feel free to freeze your guard version, although previous behaviors and codebase will not be actively maintained, - but pull requests are always welcome).

Compatibility:

  • TCP message format is incompatible with previous versions of Listen (!)

Bug fixes:

  • fix TCP socket disconnect bug (deleting during iteration)
  • improved WDM support, bug fixes + fixed failing specs
  • fixed various race condition errors
  • avoid sending empty results (fixes #230)
  • apply ignore rules to TCP changes
  • improve inaccurate mtime workaround checking

Editor support:

  • Ignore IntelliJ editor files (which fixes editing detection)
  • Ignore Vim files (for less noise when debugging)

Other features:

  • collect changes while paused
  • update Record while paused
  • block until Record is finished building (to assure consistency and avoid obscure race conditions)
  • retry TCP connection 3 times before failing
  • autodetection of inaccurate mtime + activate workarounds on all OSs

Performance:

  • reduce amount of lstat/fstat() calls
  • smaller memory footprint of Record (due to using symbols)
  • more accurate latency handling (main loop)
  • more responsive TCP (avoiding wait delay on broadcaster side)

Debugging:

  • Better debugging output for all adapters
  • LISTEN_GEM_DEBUGGING now supports '1' (Logger::INFO) and '2' (Logger::DEBUG)'
  • show crashes and errors by default instead of silently hiding them
  • less Celluloid errors/warnings during termination
  • fsevent emulation mode in Linux using: LISTEN_GEM_SIMULATE_FSEVENT=1
  • accurately simulate OSX behavior on linux (using a mounted VFAT filesystem and LISTEN_GEM_SIMULATE_FSEVENT=1)

Development:

  • migrate specs to RSpec 3.0.0rc1 (yay!)
  • heaps of fixes to specs + refactoring
  • list known issues+workarounds for BSD and Windows

v2.7.5

15 May 06:57
@e2 e2
Compare
Choose a tag to compare

Bug fixes

  • Fix GEdit support #226
  • Fix Kate suport #180
  • Handle failing pathnames on Windows #221
  • Get tests working with Celluloid 0.16.0pre 73c5ed0

Changes

  • Drop BSD support (warnings + README notes + patches) #220
  • Load TCP support on demand (thanks @timkurvers!) #193

Improvements (for contributors)

  • Massive rubocop cleanup - fix ALL offenses #223
  • Use guard-rubocop to avoid HoundCI warnings in PRs #223
  • Force guard-rspec to use bundler #223
  • Multi-OS testing on Travis CI #224

v2.7.4

02 May 19:28
@e2 e2
Compare
Choose a tag to compare
  • Kate editor support working correctly (finally!)