History.md in minitar-0.12 vs History.md in minitar-0.12.1

- old
+ new

@@ -1,158 +1,160 @@ # History -## 0.12 / 2024-08-DD +## 0.12.1 / 2024-08-21 -- Properly handle very long GNU filenames, resolving [#46][]. -- Handle very long GNU filenames that are 512 or more bytes, resolving [#45][]. - Originally implemented in [#47][] by Vijay, but accidentally closed. +- Reverted @adbbb9b596 to restore compatibility with Ruby < 2.0. Resolves + [#63][#63] reported by Robert Schulze. +## 0.12 / 2024-08-06 + +- Properly handle very long GNU filenames, resolving [#46][#46]. +- Handle very long GNU filenames that are 512 or more bytes, resolving + [#45][#45]. Originally implemented in [#47][#47] by Vijay, but accidentally + closed. + ## 0.11 / 2022-12-31 -- symlink support is complete. Merged as PR [#42][], rebased and built on top of - PR [#12][] by fetep. +- symlink support is complete. Merged as PR [#42][#42], rebased and built on top + of PR [#12][#12] by fetep. -- kymmt90 fixed a documentation error on Minitar.pack in PR [#43][]. +- kymmt90 fixed a documentation error on Minitar.pack in PR [#43][#43]. - This version is a soft-deprecation of all versions before Ruby 2.7, as they will no longer be tested in CI. ## 0.10 / 2022-03-26 -- nevesenin fixed an issue with long filename handling. Merged as PR [#40][]. +- nevesenin fixed an issue with long filename handling. Merged as PR [#40][#40]. ## 0.9 / 2019-09-04 -- jtappa added the ability to skip fsync with a new option to Minitar.unpack - and Minitar::Input#extract_entry. Provide `:fsync => false` as the last - parameter to enable. Merged from a modified version of PR [#37][]. +- jtappa added the ability to skip fsync with a new option to Minitar.unpack and + Minitar::Input#extract_entry. Provide `:fsync => false` as the last parameter + to enable. Merged from a modified version of PR [#37][#37]. ## 0.8 / 2019-01-05 -- inkstak resolved an issue introduced in the fix for [#31][] by allowing +- inkstak resolved an issue introduced in the fix for [#31][#31] by allowing spaces to be considered valid characters in strict octal handling. Octal - conversion ignores leading spaces. Merged from a slightly modified version - of PR [#35][]. + conversion ignores leading spaces. Merged from a slightly modified version of + PR [#35][#35]. -- dearblue contributed PR [#32][] providing an explicit call to #bytesize for +- dearblue contributed PR [#32][#32] providing an explicit call to #bytesize for strings that include multibyte characters. The PR has been modified to be compatible with older versions of Ruby and extend tests. -- Akinori MUSHA (knu) contributed PR [#36][] that treats certain badly - encoded regular files (with names ending in `/`) as if they were - directories on decode. +- Akinori MUSHA (knu) contributed PR [#36][#36] that treats certain badly + encoded regular files (with names ending in `/`) as if they were directories + on decode. ## 0.7 / 2018-02-19 -- Fixed issue [#28][] with a modified version of PR [#29][] covering the - security policy and position for Minitar. Thanks so much to ooooooo_q for - the report and an initial patch. Additional information was added as - [#30][]. +- Fixed issue [#28][#28] with a modified version of PR [#29][#29] covering the + security policy and position for Minitar. Thanks so much to ooooooo_q for the + report and an initial patch. Additional information was added as [#30][#30]. -- dearblue contributed PR [#33][] providing a fix for Minitar::Reader when +- dearblue contributed PR [#33][#33] providing a fix for Minitar::Reader when the IO-like object does not have a `#pos` method. -- Kevin McDermott contributed PR [#34][] so that an InvalidTarStream is - raised if the tar header is not valid, preventing incorrect streaming of - files from a non-tarfile. This is a minor breaking change, so the version - has been bumped accordingly. +- Kevin McDermott contributed PR [#34][#34] so that an InvalidTarStream is + raised if the tar header is not valid, preventing incorrect streaming of files + from a non-tarfile. This is a minor breaking change, so the version has been + bumped accordingly. -- Kazuyoshi Kato contributed PR [#26][] providing support for the GNU tar +- Kazuyoshi Kato contributed PR [#26][#26] providing support for the GNU tar long filename extension. - Addressed a potential DOS with negative size fields in tar headers - ([#31][]). This has been handled in two ways: the size field in a tar + ([#31][#31]). This has been handled in two ways: the size field in a tar header is interpreted as a strict octal value and the Minitar reader will raise an InvalidTarStream if the size ends up being negative anyway. ## 0.6.1 / 2017-02-07 -- Fixed issue [#24][] where streams were being improperly closed immediately +- Fixed issue [#24][#24] where streams were being improperly closed immediately on open unless there was a block provided. -- Hopefully fixes issue [#23][] by releasing archive-tar-minitar after +- Hopefully fixes issue [#23][#23] by releasing archive-tar-minitar after minitar-cli is available. ## 0.6 / 2017-02-07 - Breaking Changes: - - Extracted `bin/minitar` into a new gem, `minitar-cli`. No, I am _not_ - going to bump the major version for this. As far as I can tell, few - people use the command-line utility anyway. (Installing - `archive-tar-minitar` will install both `minitar` and `minitar-cli`, at - least until version 1.0.) + - Extracted `bin/minitar` into a new gem, `minitar-cli`. No, I am _not_ going + to bump the major version for this. As far as I can tell, few people use the + command-line utility anyway. (Installing `archive-tar-minitar` will install + both `minitar` and `minitar-cli`, at least until version 1.0.) - - Minitar extraction before 0.6 traverses directories if the tarball - includes a relative directory reference, as reported in [#16][] by - @ecneladis. This has been disallowed entirely and will throw a - SecureRelativePathError when found. Additionally, if the final - destination of an entry is an already-existing symbolic link, the - existing symbolic link will be removed and the file will be written - correctly (on platforms that support symblic links). + - Minitar extraction before 0.6 traverses directories if the tarball includes + a relative directory reference, as reported in [#16][#16] by @ecneladis. + This has been disallowed entirely and will throw a SecureRelativePathError + when found. Additionally, if the final destination of an entry is an + already-existing symbolic link, the existing symbolic link will be removed + and the file will be written correctly (on platforms that support symblic + links). - Enhancements: - - Licence change. After speaking with Mauricio Fernández, we have changed - the licensing of this library to Ruby and Simplified BSD and have - dropped the GNU GPL license. This takes effect from the 0.6 release. - - Printing a deprecation warning for including Archive::Tar to put - Minitar in the top-level namespace. - - Printing a deprecation warning for including Archive::Tar::Minitar into - a class (Minitar will be a class for version 1.0). - - Moved Archive::Tar::PosixHeader to Archive::Tar::Minitar::PosixHeader - with a deprecation warning. Do not depend on - Archive::Tar::Minitar::PosixHeader, as it will be moving to - ::Minitar::PosixHeader in a future release. + - Licence change. After speaking with Mauricio Fernández, we have changed the + licensing of this library to Ruby and Simplified BSD and have dropped the + GNU GPL license. This takes effect from the 0.6 release. + - Printing a deprecation warning for including Archive::Tar to put Minitar in + the top-level namespace. + - Printing a deprecation warning for including Archive::Tar::Minitar into a + class (Minitar will be a class for version 1.0). + - Moved Archive::Tar::PosixHeader to Archive::Tar::Minitar::PosixHeader with a + deprecation warning. Do not depend on Archive::Tar::Minitar::PosixHeader, as + it will be moving to ::Minitar::PosixHeader in a future release. - Added an alias, ::Minitar, for Archive::Tar::Minitar, opted in with `require 'minitar'`. In future releases, this alias will be enabled by - default, and the Archive::Tar namespace will be removed entirely for - version 1.0. - - Modified the handling of `mtime` in PosixHeader to do an integer - conversion (#to_i) so that a Time object can be used instead of the - integer value of the time object. - - Writer::RestrictedStream was renamed to Writer::WriteOnlyStream for - clarity. No alias or deprecation warning was provided for this as it is - an internal implementation detail. - - Writer::BoundedStream was renamed to Writer::BoundedWriteStream for - clarity. A deprecation warning is provided on first use because a - BoundedWriteStream may raise a BoundedWriteStream::FileOverflow - exception. + default, and the Archive::Tar namespace will be removed entirely for version + 1.0. + - Modified the handling of `mtime` in PosixHeader to do an integer conversion + (#to_i) so that a Time object can be used instead of the integer value of + the time object. + - Writer::RestrictedStream was renamed to Writer::WriteOnlyStream for clarity. + No alias or deprecation warning was provided for this as it is an internal + implementation detail. + - Writer::BoundedStream was renamed to Writer::BoundedWriteStream for clarity. + A deprecation warning is provided on first use because a BoundedWriteStream + may raise a BoundedWriteStream::FileOverflow exception. - Writer::BoundedWriteStream::FileOverflow has been renamed to - Writer::WriteBoundaryOverflow and inherits from StandardError instead - of RuntimeError. Note that for Ruby 2.0 or higher, an error will be - raised when specifying Writer::BoundedWriteStream::FileOverflow because + Writer::WriteBoundaryOverflow and inherits from StandardError instead of + RuntimeError. Note that for Ruby 2.0 or higher, an error will be raised when + specifying Writer::BoundedWriteStream::FileOverflow because Writer::BoundedWriteStream has been declared a private constant. - - Modified Writer#add_file_simple to accept the data for a - file in `opts[:data]`. When `opts[:data]` is provided, a stream block - must not be provided. Improved the documentation for this method. + - Modified Writer#add_file_simple to accept the data for a file in + `opts[:data]`. When `opts[:data]` is provided, a stream block must not be + provided. Improved the documentation for this method. - Modified Writer#add_file to accept `opts[:data]` and transparently call Writer#add_file_simple in this case. - Methods that require blocks are no longer required, so the Archive::Tar::Minitar::BlockRequired exception has been removed with a warning (this may not work on Ruby 1.8). - - Dramatically reduced the number of strings created when creating a - POSIX tarball header. - - Added a helper, Input.each_entry that iterates over each entry in an - opened entry object. + - Dramatically reduced the number of strings created when creating a POSIX + tarball header. + - Added a helper, Input.each_entry that iterates over each entry in an opened + entry object. - Bugs: - - Fix [#2][] to handle IO streams that are not seekable, such as pipes, + - Fix [#2][#2] to handle IO streams that are not seekable, such as pipes, STDIN, or STDOUT. - - Fix [#3][] to make the test timezone resilient. - - Fix [#4][] for supporting the reading of tar files with filenames in - the GNU long filename extension format. Ported from @atoulme’s fork, - originally provided by Curtis Sampson. - - Fix [#6][] by making it raise the correct error for a long filename - with no path components. - - Fix [#13][] provided by @fetep fixes an off-by-one error on filename + - Fix [#3][#3] to make the test timezone resilient. + - Fix [#4][#4] for supporting the reading of tar files with filenames in the + GNU long filename extension format. Ported from @atoulme’s fork, originally + provided by Curtis Sampson. + - Fix [#6][#6] by making it raise the correct error for a long filename with + no path components. + - Fix [#13][#13] provided by @fetep fixes an off-by-one error on filename splitting. - - Fix [#14][] provided by @kzys should fix Windows detection issues. - - Fix [#16][] as specified above. - - Fix an issue where Minitar.pack would not include Unix hidden files - when creating a tarball. + - Fix [#14][#14] provided by @kzys should fix Windows detection issues. + - Fix [#16][#16] as specified above. + - Fix an issue where Minitar.pack would not include Unix hidden files when + creating a tarball. - Development: - Modernized minitar tooling around Hoe. - Added travis and coveralls. @@ -167,12 +169,12 @@ - Bugs: - Fixed a variable name error. ## 0.5.0 -- Initial release. Does files and directories. Command does create, extract, - and list. +- Initial release. Does files and directories. Command does create, extract, and + list. [#2]: https://github.com/halostatue/minitar/issues/2 [#3]: https://github.com/halostatue/minitar/issues/3 [#4]: https://github.com/halostatue/minitar/issues/4 [#6]: https://github.com/halostatue/minitar/issues/6 @@ -197,5 +199,6 @@ [#42]: https://github.com/halostatue/minitar/pull/42 [#43]: https://github.com/halostatue/minitar/pull/43 [#45]: https://github.com/halostatue/minitar/issues/45 [#46]: https://github.com/halostatue/minitar/issues/46 [#47]: https://github.com/halostatue/minitar/pull/47 +[#63]: https://github.com/halostatue/minitar/issues/63