== 1.0.0 (2018-05-20)
* *BreakingChange* The XZ module's methods now take any parameters
beyond the IO object as real Ruby keyword arguments rather than
a long argument list.
* *BreakingChange* XZ.decompress_stream now honours Ruby's
external and internal encoding concept instead of just
returning BINARY-tagged strings.
* *BreakingChange* Remove deprecated API on stream reader/writer
class and instead sync the API with Ruby's zlib library
(Ticket #12 by me).
* *BreakingChange* StreamWriter.new and StreamReader.new do not accept
a block anymore. This is part of syncing with Ruby's zlib API.
* *BreakingChange* StreamReader.open and StreamWriter.open always
return the new instance, even if a block is given to the method
(previous behaviour was to return the return value of the block).
This is part of the syncing with Ruby's zlib API.
* *BreakingChange* StreamReader.new and StreamWriter.new as well as
the ::open variants take additional arguments as real Ruby keyword
arguments now instead of a long parameter list plus options hash.
This is different from Ruby's own zlib API as that one takes both
a long parameter list and a hash of additional options. ruby-xz
is meant to follow zlib's semantics mostly, but not as a drop-in
replacement, so this divergence from zlib's API is okay (also
given that it isn't possible to replicate all possible options
1:1 anyway, since liblzma simply accepts different options as
libz). If you've never used these methods' optional arguments,
you should be fine.
* *BreakingChange* Stream#close now returns nil instead of the
number of bytes written. This syncs Stream#close with Ruby's
own IO#close, which also returns nil.
* *BreakingChange* Remove Stream#pos=, Stream#seek, Stream#stat. These
methods irritated the minitar gem, which doesn't expect them to
raise NotImplementedError, but directly to be missing if the object
does not support seeking.
* *BreakingChange* StreamReader and StreamWriter now honour Ruby's
encoding system instead of returning only BINARY-tagged strings.
* *Dependency* Remove dependency on ffi. ruby-xz now uses fiddle from
the stdlib instead.
* *Dependency* Remove dependency on io-like. ruby-xz now implements
all the IO mechanics itself. (Ticket #10 by me)
* *Dependency* Bump required Ruby version to 2.3.0.
* *Fix* libzlma.dylib not being found on OS X (Ticket #15 by
s0nspark).
== 0.2.3 (2015-12-29)
* *Fix* documentation of XZ module (a :nodoc: was causing havoc
in the XZ module so it appeared to have no methods).
* No other changes this release.
== 0.2.2 (2015-12-27)
* *Add* XZ.disable_deprecation_notices
* *Deprecate* use of XZ::StreamReader.open with an IO argument
* *Deprecate* use of XZ::StreamReader.new with a filename argument
* *Deprecate* use of XZ::StreamWriter.open with an IO argument
* *Deprecate* use of XZ::StreamWriter.new with a filename argument
* *Deprecate* nonautomatic IO close in XZ::StreamReader#close
* *Deprecate* nonautomatic IO close in XZ::StreamWriter#close
* *Fix* incompatibility with Resolv.getaddress() in Ruby 2.2 (Ticket #13
by Ken Simon)
* Goal of these deprecations is to sync the API with Ruby’s own
Zlib::GzipWriter and Zlib::GzipReader mostly.
* Add required versions to gemspec.
* Comment format cleanup, results in better docs.
* Internal code cleanup
* Add more tests.
The find-prefix infrastructure was required in a pkgviews world where
packages installed from pkgsrc could have different installation
prefixes, and this was a way for a dependency prefix to be determined.
Now that pkgviews has been removed there is no longer any need for the
overhead of this infrastructure. Instead we use BUILDLINK_PREFIX.pkg
for dependencies pulled in via buildlink, or LOCALBASE/PREFIX where the
dependency is coming from pkgsrc.
Provides a reasonable performance win due to the reduction of `pkg_info
-qp` calls, some of which were redundant anyway as they were duplicating
the same information provided by BUILDLINK_PREFIX.pkg.
0.2.1 (2014-02-08)
* Build the gem properly on Ruby 2.0+ (PR #8 by Nana Sakisaka (saki7))
* Release the GIL when interfacing with liblzma (PR #7 by Lars Christensen
* (larsch))
0.2.0 (2013-06-23)
* Fix#6 (errors on JRuby) by Ben Nagy
* Remove 1.8 compatibility
== 0.1.0
* <b>Add XZ::StreamReader and XZ::StreamWriter for io-like behaviour.</b>
* New dependency on the +io-like+ gem.
* <b>Add Ruby 1.8 compatibility.</b> Thanks to Christoph Plank.
* We now have proper unit tests.
ruby-xz is a basic binding for liblzma that allows you to create and
extract XZ-compressed archives. It can cope with big files as well as
small ones, but doesn't offer much of the possibilities liblzma itself
has.