Scrolls v0.9.0 Release Notes

Release Date: 2017-09-04 // about 4 years ago
  • ๐Ÿš€ This long overdue release of Scrolls brings it up speed with modern Ruby releases, improves the codebase and overall provides a better platform for further development.

    ๐Ÿšง After years of poor maintenance, Scrolls should now be usable again on recent versions of Ruby. In order to bring it up to speed, a number of backward incompatible changes were made:

    • ๐Ÿ‘€ Scrolls#global_context is no longer mutable (see #54 and #71)
    • 0๏ธโƒฃ Scrolls is now initialized using Scrolls#init (though it doesn't have to be if the defaults are enough)
    • ๐Ÿ‘€ Scrolls#log_exception has changed to the following method shape (see #60):

      Scrolls.log_exception(exception, data)

    • โฌ‡๏ธ Drop support for Ruby 1.8.7 and 1.9.3 (though it may work on the latter)

    โž• Additional changes include:

    • โž• Added functionality to escape keys of log data (see #67)
    • Cleaned up codebase organization
    • ๐Ÿ›  Fixed tests
    • ๐Ÿ›  Fixed thread local context in recent Ruby versions
    • ๐Ÿ‘€ Don't fail with nil error if unknown log level used (see #65)

    ๐Ÿ“š The documentation has been mostly updated as well, though I plan to rework it all in the future.

    ๐Ÿš€ I apologize for taking this long to bring the codebase up to speed and the overall lack of communication around the library. If there are still any users out there, thanks for your patience. I hope this release sets us up to add some much needed features (improved parsing, JSON output support, etc) soon.


Previous changes from v0.9.0.pre

  • โ™ป๏ธ This dev version breaks backwards compatibility for Scrolls. It is a rework/refactor of the initial work done in the following PR: #54.

    Please report any bugs you find with this version on: #71

    Backward Incompatible changes

    • The #global_context is no longer mutable, instead we instantiate a class internally inside Scrolls::Logger that contains the global_context. This is to avoid various bad thread behaviors, that previous to Ruby 2.0, were allowed.
    • The result of the above change removes #add_global_context.
    • 0๏ธโƒฃ Currently Scrolls needs to be instantiated to be used (Scrolls.init(options)) however I'd like to work on a method for allowing one to just use Scrolls.log and get sane defaults.
    • ๐Ÿšš Due to this massive change I moved to "single line exceptions" by default since it lowers the amount of data produced by Scrolls when using #log_exception without losing the information.
    • ๐Ÿ’Ž Officially kills Ruby 1.8.7 support (though literally no one should be using that version).

    NOTE : I don't have a great setup right now to test everything here. I'm testing against Ruby 2.4.1 and all tests pass. Please test if you can. I'm going to cut a release of this version, 0.9.0.pre. I'm jumping versions here since we break backward compatibility. I'm hopeful with this and subsequent versions we can get to a place where a version 1.0 is a reality.

    โœ… Please test this version as much as possible!