0.9.0
=====
With this release, long lines are wrapped in side-by-side mode, thanks to a
far-reaching series of contributions by @th1000s (see #515). No special
customization is needed, but sophisticated control over the details is
available: see --wrap-max-lines, --wrap-left-symbol, --wrap-right-symbol,
--wrap-right-percent, --wrap-right-prefix-symbol, --inline-hint-style.
The long deleted line in the left panel overflows by a small amount, and the
wrapped content is right-aligned in the next line. In contrast, the long
replacement line in the right panel overflows by almost an entire line,
and so the wrapped content is left aligned in the next line. The arrow markers
and ellipsis explain when and how text has been wrapped.
What's Changed
-Fix the empty result issue in add -p by @norisio in #664
-Recognize GitHub SSH remote URLs that don't start with git@ for hyperlinks by
@spaarmann in #668
-Terminate process gracefully on error in diff() by @dandavison in #685
-Ignore ctrl-c (SIGINT) to avoid leaving an orphaned pager process. by
@dandavison in #686
-Remove unnecessary borrows by @benarmstead in #692
-Fix computed values to be computed after all set_options by @ulwlu in #690
-Make it possible to jump between files when navigate is active by @dandavison
in #684
-Fix empty line highlighting by @th1000s in #642
-Fix deadlock in git diff mode by @dandavison in #695
-Support insteadOf replacements in git remote URLs by @dandavison in #694
-Do not suppress submodule diffs by @dandavison in #699
-More minimalistic display of submodule (short) diffs by @dandavison in #700
-Fix hunk header when line number is not requested and navigate is enabled by
@dandavison in #710
-Display removed file name in file deletion case by @dandavison in #717
-Remove superfluous lowercasing of feature names by @Tak in #718
-Option to set the background extension mode to ANSI or spaces by @th1000s
in #512
-Add side-by-side line wrapping mode by @th1000s in #515
-Width can be an offset from the terminal width by @th1000s in #727
-Linenumber refactoring by @th1000s in #740
-Use fatal() to exit with errorcode 2 by @th1000s in #739
-Re-enable ANSI fill by equalizing panel sizes by @th1000s in #742
-Update syntaxes and themes from bat v0.18.3 by @FnControlOption in #702
-Line numbers and side-by-side mode by @th1000s in #748
0.9.1
=====
This is a followup to release 0.9.0 fixing a bug in the --help text emitted by
the 0.9.0 binary (see 3aab5d1).
0.9.0 was a major release adding line-wrapping to side-by-side mode: 0.9.0
release notes.
0.9.2
=====
This release fixes a regression introduced in 0.9.0 affecting the use of
git add -p when submodules are present. See #755
What's Changed
-Do not reformat submodule diffs under git add -p by @dandavison in #756
0.10.0
======
New features in this release:
-delta displays output from git grep and rg --json ... | delta with code syntax
highlighting and navigate functionality. See README#grep and #774.
-delta displays output from git blame with code syntax highlighting, hyperlinks
to commits, and control over formatting. See README#git-blame and #761.
-delta syntax highlights file contents produced by git show $revision
/path/to/file
-delta can apply syntax highlighting and arbitrary styling to the raw colors
emitted by git --color-moved. This is done by specifying rules for remapping
styles using map-styles. See below, and README#--color-moved-support and #72
-More powerful configuration options: styles can reference other styles, custom
styles and custom colors can be defined in gitconfig and reused, and 140 colors
can be specified using their standard CSS names. See below.
-New subcommand --show-colors outputs a demo of 140 background colors with
syntax highlighting, to help choose background colors.
-New subcommand --parse-ansi takes color input and prints out the corresponding
style strings (useful for map-styles)
-Utilities for interrogating the command line of the process that is sending
output to delta, added by @th1000s.
Additionally, we can now use the 140 color names that are standard in CSS. Use
delta --show-colors to get a demo of the available colors, as background colors
to see how they look with syntax highlighting.
0.10.1
======
This release fixes a bug in color-moved handling when files have DOS line
endings. See #800
What's Changed
-Remove trailing \r from raw line, in presence of ANSI escape sequences by
@dandavison in #800
0.10.2
======
This releases fixes a bug when using side-by-side with git diff.colorMoved.
See #802
What's Changed
-802 fix color moved side by side panic by @dandavison in #803
0.10.3
======
Delta was previously handling --word-diff and --color-words output in a
nonsensical way. With this release, delta does not attempt to handle these
output types, allowing git's raw output through unchanged. Appropriate handling
may be added later. See #152
When a line is unchanged but paired with a line that has additions/deletions,
delta now assigns the unchanged line {plus,minus}-non-emph-style; previously it
assigned {plus,minus}-style. This change does not alter visual output by default
because by default those two style styles are set to the same value. See #785
Fixes a bug affecting line numbers in side-by-side mode, see #819
0.11.0
======
This release adds handling of merge conflicts and the "combined" diff format
which git uses for merge commits; see the Merge conflicts README section and
#189. Please consider setting
[merge]
conflictstyle = diff3
With that setting, when a merge conflict is encountered, delta will display
diffs between the ancestral commit and each of the two merge parents.
0.11.1
======
Fixes a crash that can occur, see for example #826. Thanks @mrjoel.
What's Changed
-Be permissive about unexpected state machine state by @dandavison in #827
0.11.2
======
This release fixes a performance problem that was affecting some users. See #824
0.11.3
======
Fix handling of --word-diff and --color-words (#829). Note that line-numbers and
side-by-side will be ignored if delta detects that the input was generated by
git --word-diff / --color-words.
DELTA_FEATURES can now be used to add to features specified in ~/.gitconfig.
Use a + prefix to do this: an example is DELTA_FEATURES=+side-by-side which will
activate side-by-side, in addition to your usual features.
Store less history file in a better location on Windows. Thanks @rashil2000 for
this work!
Fix performance issue affecting some linux users (#839)
What's Changed
-Bump sysinfo from 0.19.2 to 0.20.5 by @dependabot in #811
-#833 refactoring by @dandavison in #834
-Store history file in data_local_dir for Windows by @rashil2000 in #847
-Query fewer processes when searching for the parent by @th1000s in #841
-Do not query CPU data when querying process data by @dandavison in #845
-Fix --word-diff / --color-words handling by @dandavison in #833
-Add features from DELTA_FEATURES env var instead of replacing with them by
@dandavison in #849
-Fix raw line styles by @dandavison in #850
-Fix side-by-side syntax ANSI test failure by @dandavison in #852
-DeltaTest inspect() additions by @dandavison in #853
-Line state refactor by @dandavison in #851
Despite the momentous version number, this is a fairly minor update.
There is no shlib major bump.
Upstream chagnes:
The license has changed from "LGPLv3+ or GPLv2" to "LGPLv3+ or GPLv2+".
The data tables and algorithms have been updated to Unicode version 14.0.0.
The functions u8_uctomb, u16_uctomb, u32_uctomb now support
strings larger than 2 GiB by taking an 'n' argument of type
ptrdiff_t (instead of int).
The functions u*_possible_linebreaks and u*_width_linebreaks now
make it easier to work with strings that contain CR-LF sequences:
In this case, in the returned array, it will return
UC_BREAK_CR_BEFORE_LF followed by UC_BREAK_MANDATORY (instead of
twice UC_BREAK_MANDATORY).
There are new properties for recognizing pictographic symbols and regional indicators:
- UC_PROPERTY_EMOJI uc_is_property_emoji
- UC_PROPERTY_EMOJI_PRESENTATION uc_is_property_emoji_presentation
- UC_PROPERTY_EMOJI_MODIFIER uc_is_property_emoji_modifier
- UC_PROPERTY_EMOJI_MODIFIER_BASE uc_is_property_emoji_modifier_base
- UC_PROPERTY_EMOJI_COMPONENT uc_is_property_emoji_component
- UC_PROPERTY_EXTENDED_PICTOGRAPHIC uc_is_property_extended_pictographic
- UC_PROPERTY_REGIONAL_INDICATOR uc_is_property_regional_indicator
Fixed multithread-safety bugs on Cygwin, native Windows, and Haiku.
TOML Kit is a 1.0.0-compliant TOML library. It includes a parser that preserves
all comments, indentations, whitespace and internal element ordering, and makes
them accessible and editable via an intuitive API. You can also create new TOML
documents from scratch using the provided helpers.
21.12b0
Black
Fix determination of f-string expression spans
Fix bad formatting of error messages about EOF in multi-line statements
Functions and classes in blocks now have more consistent surrounding spacing
from __future__ import annotations statement now implies Python 3.7+
Jupyter Notebook support
Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with %%writefile.
Fix assignment to environment variables in Jupyter Notebooks
Python 3.10 support
Point users to using --target-version py310 if we detect 3.10-only syntax
Fix match statements with open sequence subjects, like match a, b: or match a, *b:
Fix match/case statements that contain match/case soft keywords multiple times, like match re.match()
Fix case statements with an inline body
Fix styling of starred expressions inside match subject
Fix parser error location on invalid syntax in a match statement
Fix Python 3.10 support on platforms without ProcessPoolExecutor
Improve parsing performance on code that uses match under --target-version py310 up to ~50%
Packaging
Remove dependency on regex
21.11b1
Black
Bumped regex version minimum to 2021.4.4 to fix Pattern class usage
21.11b0
Black
Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection
Add experimental PyPy support
Add partial support for the match statement. As it's experimental, it's only enabled when --target-version py310 is explicitly specified
Add support for parenthesized with
Declare support for Python 3.10 for running Black
Integrations
Fixed vim plugin with Python 3.10 by removing deprecated distutils import
The vim plugin now parses skip_magic_trailing_comma from pyproject.toml
21.10b0
Black
Document stability policy, that will apply for non-beta releases
Add new --workers parameter
Fixed feature detection for positional-only arguments in lambdas
Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility
Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed
Deprecate Python 2 formatting support
Blackd
Remove dependency on aiohttp-cors
Bump required aiohttp version to 3.7.4
Black-Primer
Add primer support for --projects
Print primer summary after individual failures
Integrations
Allow to pass target_version in the vim plugin
Install build tools in docker file and use multi-stage build to keep the image size down
21.9b0
Packaging
Fix missing modules in self-contained binaries
Fix missing toml extra used during installation
21.8b0
Black
Add support for formatting Jupyter Notebook files
Move from appdirs dependency to platformdirs
Present a more user-friendly error if .gitignore is invalid
The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization
Avoid changing a function return type annotation's type to a tuple by adding a trailing comma
Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices
Pin setuptools-scm build-time dependency version
Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10
Blackd
Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages
Integrations
The provided pre-commit hooks no longer specify language_version to avoid overriding default_language_version
21.7b0
Black
Configuration files using TOML features higher than spec v0.5.0 are now supported
Add primer support and test for code piped into black via STDIN
Fix internal error when FORCE_OPTIONAL_PARENTHESES feature is enabled
Accept empty stdin
Provide a more useful error when parsing fails during AST safety checks
Docker
Add new latest_release tag automation to follow latest black release on docker images
Integrations
The vim plugin now searches upwards from the directory containing the current buffer instead of the current working directory for pyproject.toml.
The vim plugin now reads the correct string normalization option in pyproject.toml
The vim plugin no longer crashes Black when there's boolean values in pyproject.toml
21.6b0
Black
Fix failure caused by fmt: skip and indentation
Account for += assignment when deciding whether to split string
Correct max string length calculation when there are string operators
Fixed option usage when using the --code flag
Do not call uvloop.install() when Black is used as a library
Added --required-version option to require a specific version to be running
Fix incorrect custom breakpoint indices when string group contains fake f-strings
Fix regression where R prefixes would be lowercased for docstrings
Fix handling of named escapes (\N{...}) when --experimental-string-processing is used
Integrations
The official Black action now supports choosing what version to use, and supports the major 3 OSes.
21.5b2
Black
A space is no longer inserted into empty docstrings
Fix handling of .gitignore files containing non-ASCII characters on Windows
Respect .gitignore files in all levels, not only root/.gitignore file (apply .gitignore rules like git does)
Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used
Add extra uvloop install + import support if in python env
Fix --experimental-string-processing crash when matching parens are not found
Make sure to split lines that start with a string operator
Fix regular expression that black uses to identify f-expressions
Blackd
Add a lower bound for the aiohttp-cors dependency. Only 0.4.0 or higher is supported.
Packaging
Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline
Always build binaries with the latest available Python
Documentation
Add discussion of magic comments to FAQ page
--experimental-string-processing will be enabled by default in the future
Fix typos discovered by codespell
Fix Vim plugin installation instructions.
Add new Frequently Asked Questions page
Fix encoding + symlink issues preventing proper build on Windows
21.5b1
Black
Refactor src/black/__init__.py into many files
Documentation
Replaced all remaining references to the master branch with the main branch. Some additional changes in the source code were also made.
Sigificantly reorganized the documentation to make much more sense. Check them out by heading over to the stable docs on RTD.
21.5b0
Black
Set --pyi mode if --stdin-filename ends in .pyi
Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments
Black-Primer
Add --no-diff to black-primer to suppress formatting changes
21.4b2
Black
Fix crash if the user configuration directory is inaccessible.
Clarify circumstances in which Black may change the AST
Allow .gitignore rules to be overridden by specifying exclude in pyproject.toml or on the command line.
Packaging
Install primer.json (used by black-primer by default) with black.
21.4b1
Black
Fix crash on docstrings ending with "\ ".
Fix crash when atypical whitespace is cleaned out of dostrings
Reflect the --skip-magic-trailing-comma and --experimental-string-processing flags in the name of the cache file. Without this fix, changes in these flags would not take effect if the cache had already been populated.
Don't remove necessary parentheses from assignment expression containing assert / return statements.
Packaging
Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by Black and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue 1629 and all of its many many duplicates.
Black now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """".
Black now cleans up leading non-breaking spaces in comments
Black now respects --skip-string-normalization when normalizing multiline docstring quotes
Black no longer removes all empty lines between non-function code and decorators when formatting typing stubs. Now Black enforces a single empty line.
Black no longer adds an incorrect space after a parenthesized assignment expression in if/while statements
Added --skip-magic-trailing-comma / -C to avoid using trailing commas as a reason to split lines
fixed a crash when PWD=/ on POSIX
fixed "I/O operation on closed file" when using --diff
Prevent coloured diff output being interleaved with multiple files
Added support for PEP 614 relaxed decorator syntax on python 3.9
Added parsing support for unparenthesized tuples and yield expressions in annotated assignments
added --extend-exclude argument
speed up caching by avoiding pathlib
--diff correctly indicates when a file doesn't end in a newline
Added --stdin-filename argument to allow stdin to respect --force-exclude rules
Lines ending with fmt: skip will now be not formatted
Black no longer relies on typed-ast for Python 3.8 and higher
Python 2 support is now optional, install with python3 -m pip install black[python2] to maintain support.
Exclude venv directory by default
Fixed "Black produced code that is not equivalent to the source" when formatting Python 2 docstrings
Packaging
Self-contained native Black binaries are now provided for releases via GitHub Releases
20.8b1
Packaging
explicitly depend on Click 7.1.2 or newer as Black no longer works with versions older than 7.0
Tomli-W is a Python library for writing TOML. It is a write-only counterpart to
Tomli, which is a read-only TOML parser. Tomli-W is fully compatible with TOML
v1.0.0.
Changes since 0.18.2:
v0.19.0
Performance
* Reduce startup time in loop-through mode (e.g. when redirecting output) by
90%. See #1747 (@Enselic)
* Load themes lazily to make bat start 25% faster when disregarding syntax load
time. See #1969 (@Enselic)
* Python syntax highlighting no longer suffers from abysmal performance in
specific scenarios. See #1688 (@keith-hall)
* Fix for poor performance when ANSI escape sequences are piped to bat, see
#1596 (@eth-p)
* Fix for incorrect handling of ANSI escape sequences when using --wrap=never,
see #1596 (@eth-p)
* Load custom assets as fast as integrated assets, see #1753 (@Enselic)
Features
* Support for x:-delta (minus) syntax in line ranges (e.g. 20:-10). See #1901
(@bojan88)
* Support for --ignored-suffix argument. See #1892 (@bojan88)
* $BAT_CONFIG_DIR is now a recognized environment variable. It has precedence
over $XDG_CONFIG_HOME, see #1727 (@billrisher)
* Support for x:+delta syntax in line ranges (e.g. 20:+10). See #1810
(@bojan88)
* Add new --acknowledgements option that gives credit to theme and syntax
definition authors. See #1971 (@Enselic)
* Include git hash in bat -V and bat --version output if present. See #1921
(@Enselic)
Bugfixes
* First line not shown in diff context. See #1891 (@divagant-martian)
* Do not ignore syntaxes that handle file names with a *.conf extension. See
#1703 (@cbolgiano)
Other
* Add PowerShell completion, see #1826 (@rashil2000)
* Minimum supported Rust version (MSRV) bumped to 1.51, see #1994 (@mdibaiee)
Syntaxes
* Groff, see #1685 (@scop)
* HTTP Requests and Responses, see #1748 (@keith-hall)
* LLVM, see #1777 (@ioncodes)
* Highlight for vimrc and gvimrc files, see #1763 (@SuperSandro2000)
* Syslog highlighting improvements, see #1793 (@scop)
* Added support for slim syntax, see #1693 (@mfinelli)
* Racket, see #1884 (@jubnzv)
* LiveScript, see #1915 (@Enselic)
* MediaWiki, see #1925 (@sorairolake)
* The requirements.txt syntax has been removed due to incompatible license
requirements.
* Dart, new highlighter, see #1959 (@Ersikan)
* SCSS and Sass syntaxes updated, see #1766 (@Enselic)
* PowerShell syntax updated, see #1935 (@Enselic)
* TypeScript syntax updated, see #1834 (@Enselic)
bat as a library
* Deprecate HighlightingAssets::syntaxes() and
HighlightingAssets::syntax_for_file_name(). Use
HighlightingAssets::get_syntaxes() and
HighlightingAssets::get_syntax_for_path() instead. They return a Result which
is needed for upcoming lazy-loading work to improve startup performance. They
also return which SyntaxSet the returned SyntaxReference belongs to. See
#1747, #1755, #1776, #1862 (@Enselic)
* Remove HighlightingAssets::from_files and
HighlightingAssets::save_to_cache. Instead of calling the former and then the
latter you now make a single call to bat::assets::build. See #1802, #1971
(@Enselic)
* Replace the error::Error(error::ErrorKind, _) struct and enum with an
error::Error enum. Error(ErrorKind::UnknownSyntax, _) becomes
Error::UnknownSyntax, etc. Also remove the error::ResultExt trait. These
changes stem from replacing error-chain with thiserror. See #1820 (@Enselic)
* Add new MappingTarget enum variant MapExtensionToUnknown. Refer to its
documentation for more information. Also mark MappingTarget as
#[non_exhaustive] since more enum variants might be added in the future. See
#1703 (@cbolgiano), #2012 (@Enselic)
v0.18.3
Bugfixes
* Bump git2 dependency to fix build with Rust 1.54, see #1761
Upstream changes:
https://github.com/sparklemotion/nokogiri/releases/tag/v1.13.0
1.13.0 / 2022-01-06
Notes
Ruby
This release introduces native gem support for Ruby 3.1. Please note that
Windows users should use the x64-mingw-ucrt platform gem for Ruby 3.1, and
x64-mingw32 for Ruby 2.6-3.0 (see RubyInstaller 3.1.0 release notes).
This release ends support for:
* Ruby 2.5, for which official support ended 2021-03-31.
* JRuby 9.2, which is a Ruby 2.5-compatible release.
Faster, more reliable installation: Native Gem for ARM64 Linux
This version of Nokogiri ships experimental native gem support for the
aarch64-linux platform, which should support AWS Graviton and other ARM Linux
platforms. We don't yet have CI running for this platform, and so we're
interested in hearing back from y'all whether this is working, and what
problems you're seeing. Please send us feedback here: Feedback: Have you used
the aarch64-linux native gem?
Publishing
This version of Nokogiri opts-in to the "MFA required to publish" setting on
Rubygems.org. This and all future Nokogiri gem files must be published to
Rubygems by an account with multi-factor authentication enabled. This should
provide some additional protection against supply-chain attacks.
A related discussion about Trust exists at #2357 in which I invite you to
participate if you have feelings or opinions on this topic.
Dependencies
* [CRuby] Vendored libiconv is updated from 1.15 to 1.16. (Note that libiconv
is only redistributed in the native windows and native darwin gems, see
LICENSE-DEPENDENCIES.md for more information.) [#2206]
* [CRuby] Upgrade mini_portile2 dependency from ~> 2.6.1 to ~> 2.7.0. ("ruby"
platform gem only.)
Improved
* {XML,HTML4}::DocumentFragment constructors all now take an optional parse
options parameter or block (similar to Document constructors). [#1692]
(Thanks, @JackMc!)
* Nokogiri::CSS.xpath_for allows an XPathVisitor to be injected, for
finer-grained control over how CSS queries are translated into XPath.
* [CRuby] XML::Reader#encoding will return the encoding detected by the
parser when it's not passed to the constructor. [#980]
* [CRuby] Handle abruptly-closed HTML comments as recommended by WHATWG.
(Thanks to tehryanx for reporting!)
* [CRuby] Node#line is no longer capped at 65535. libxml v2.9.0 and later
support a new parse option, exposed as
Nokogiri::XML::ParseOptions::PARSE_BIG_LINES, which is turned on by default
in ParseOptions::DEFAULT_{XML,XSLT,HTML,SCHEMA} (Note that JRuby already
supported large line numbers.) [#1764, #1493, #1617, #1505, #1003, #533]
* [CRuby] If a cycle is introduced when reparenting a node (i.e., the node
becomes its own ancestor), a RuntimeError is raised. libxml2 does no
checking for this, which means cycles would otherwise result in infinite
loops on subsequent operations. (Note that JRuby already did this.) [#1912]
* [CRuby] Source builds will download zlib and libiconv via HTTPS. ("ruby"
platform gem only.) [#2391] (Thanks, @jmartin-r7!)
* [JRuby] Node#line behavior has been modified to return the line number of
the node in the final DOM structure. This behavior is different from CRuby,
which returns the node's position in the input string. Ideally the two
implementations would be the same, but at least is now officially
documented and tested. The real-world impact of this change is that the
value returned in JRuby is greater by 1 to account for the XML prolog in
the output. [#2380] (Thanks, @dabdine!)
Fixed
* CSS queries on HTML5 documents now correctly match foreign elements (SVG,
MathML) when namespaces are not specified in the query. [#2376]
* XML::Builder blocks restore context properly when exceptions are raised.
[#2372] (Thanks, @ric2b and @rinthedev!)
* The Nokogiri::CSS::Parser cache now uses the XPathVisitor configuration as
part of the cache key, preventing incorrect cache results from being
returned when multiple XPathVisitor options are being used.
* Error recovery from in-context parsing (e.g., Node#parse) now always uses
the correct DocumentFragment class. Previously
Nokogiri::HTML4::DocumentFragment was always used, even for XML documents.
[#1158]
* DocumentFragment#> now works properly, matching a CSS selector against only
the fragment roots. [#1857]
* XML::DocumentFragment#errors now correctly contains any parsing errors
encountered. Previously this was always empty. (Note that
HTML::DocumentFragment#errors already did this.)
* [CRuby] Fix memory leak in Document#canonicalize when inclusive namespaces
are passed in. [#2345]
* [CRuby] Fix memory leak in Document#canonicalize when an argument type
error is raised. [#2345]
* [CRuby] Fix memory leak in EncodingHandler where iconv handlers were not
being cleaned up. [#2345]
* [CRuby] Fix memory leak in XPath custom handlers where string arguments
were not being cleaned up. [#2345]
* [CRuby] Fix memory leak in Reader#base_uri where the string returned by
libxml2 was not freed. [#2347]
* [JRuby] Deleting a Namespace from a NodeSet no longer modifies the href to
be the default namespace URL.
* [JRuby] Fix XHTML formatting of closing tags for non-container elements.
[#2355]
Deprecated
* Passing a Nokogiri::XML::Node as the second parameter to Node.new is
deprecated and will generate a warning. This parameter should be a kind of
Nokogiri::XML::Document. This will become an error in a future version of
Nokogiri. [#975]
* Nokogiri::CSS::Parser, Nokogiri::CSS::Tokenizer, and Nokogiri::CSS::Node
are now internal-only APIs that are no longer documented, and should not be
considered stable. With the introduction of XPathVisitor injection into
Nokogiri::CSS.xpath_for there should be no reason to rely on these internal
APIs.
* CSS-to-XPath utility classes Nokogiri::CSS::XPathVisitorAlwaysUseBuiltins
and XPathVisitorOptimallyUseBuiltins are deprecated. Prefer
Nokogiri::CSS::XPathVisitor with appropriate constructor arguments. These
classes will be removed in a future version of Nokogiri.
8.1.1 - 2022-01-06
------------------
* Restored ABI compatibility with version 8.0.x
* Fixed chorno formatting on big endian systems
* Fixed a linkage error with mingw
8.1.0 - 2022-01-02
------------------
* Optimized chrono formatting
Processing of some specifiers such as ``%z`` and ``%Y`` is now up to 10-20
times faster, for example on GCC 11 with libstdc++::
----------------------------------------------------------------------------
Benchmark Before After
----------------------------------------------------------------------------
FMTFormatter_z 261 ns 26.3 ns
FMTFormatterCompile_z 246 ns 11.6 ns
FMTFormatter_Y 263 ns 26.1 ns
FMTFormatterCompile_Y 244 ns 10.5 ns
----------------------------------------------------------------------------
* Implemented subsecond formatting for chrono durations
For example (`godbolt <https://godbolt.org/z/es7vWTETe>`__):
.. code:: c++
#include <fmt/chrono.h>
int main() {
fmt::print("{:%S}", std::chrono::milliseconds(1234));
}
prints "01.234".
* Fixed handling of precision 0 when formatting chrono durations
* Fixed an overflow on invalid inputs in the ``tm`` formatter
* Added ``fmt::group_digits`` that formats integers with a non-localized digit
separator (comma) for groups of three digits.
For example (`godbolt <https://godbolt.org/z/TxGxG9Poq>`__):
.. code:: c++
#include <fmt/format.h>
int main() {
fmt::print("{} dollars", fmt::group_digits(1000000));
}
prints "1,000,000 dollars".
* Added support for faint, conceal, reverse and blink text styles
* Added experimental support for compile-time floating point formatting
It is currently limited to the header-only mode.
* Added UDL-based named argument support to compile-time format string checks
For example (`godbolt <https://godbolt.org/z/ohGbbvonv>`__):
.. code:: c++
#include <fmt/format.h>
int main() {
using namespace fmt::literals;
fmt::print("{answer:s}", "answer"_a=42);
}
gives a compile-time error on compilers with C++20 ``consteval`` and non-type
template parameter support (gcc 10+) because ``s`` is not a valid format
specifier for an integer.
* Implemented escaping of string range elements.
For example (`godbolt <https://godbolt.org/z/rKvM1vKf3>`__):
.. code:: c++
#include <fmt/ranges.h>
#include <vector>
int main() {
fmt::print("{}", std::vector<std::string>{"\naan"});
}
is now printed as::
["\naan"]
instead of::
["
aan"]
* Switched to JSON-like representation of maps and sets for consistency with
Python's ``str.format``.
For example (`godbolt <https://godbolt.org/z/seKjoY9W5>`__):
.. code:: c++
#include <fmt/ranges.h>
#include <map>
int main() {
fmt::print("{}", std::map<std::string, int>{{"answer", 42}});
}
is now printed as::
{"answer": 42}
* Extended ``fmt::join`` to support C++20-only ranges
* Optimized handling of non-const-iterable ranges and implemented initial
support for non-const-formattable types.
* Disabled implicit conversions of scoped enums to integers that was
accidentally introduced in earlier versions
* Deprecated implicit conversion of ``[const] signed char*`` and
``[const] unsigned char*`` to C strings.
* Deprecated ``_format``, a legacy UDL-based format API
* Marked ``format``, ``formatted_size`` and ``to_string`` as ``[[nodiscard]]``
* Added missing diagnostic when trying to format function and member pointers
as well as objects convertible to pointers which is explicitly disallowed
* Optimized writing to a contiguous buffer with ``format_to_n``
* Optimized writing to non-``char`` buffers
* Decimal point is now localized when using the ``L`` specifier.
* Improved floating point formatter implementation
* Fixed handling of very large precision in fixed format
* Made a table of cached powers used in FP formatting static
* Resolved a lookup ambiguity with C++20 format-related functions due to ADL
* Removed unnecessary inline namespace qualification
* Implemented argument forwarding in ``format_to_n``
* Fixed handling of implicit conversions in ``fmt::to_string`` and format string
compilation
* Changed the default access mode of files created by ``fmt::output_file`` to
``-rw-r--r--`` for consistency with ``fopen``
* Make ``fmt::ostream::flush`` public
* Improved C++14/17 attribute detection
* Improved documentation
* Improved fuzzers and added a fuzzer for chrono timepoint formatting
* Added the ``FMT_SYSTEM_HEADERS`` CMake option setting which marks {fmt}'s
headers as system. It can be used to suppress warnings
* Added the Bazel build system support
* Improved build configuration and tests
* Fixed various warnings and compilation issues
2.0.0
Removed
Python 3.6 support
Support for text file objects as load input. Use binary file objects instead.
First argument of load and loads can no longer be passed by keyword.
Fixed
Allow lower case "t" and "z" in datetimes
Improved
Raise an error when dotted keys define values outside the "current table". Technically speaking TOML v1.0.0 does allow such assignments but that isn't intended by specification writers, and will change in a future specification version (see the pull request).
changes from changelog:
2022-01-06 -- 0.9.6
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* Fixed: [CVE-2021-46141]
Fix a bug affecting both uriNormalizeSyntax* and uriMakeOwner*
functions where the text range in .hostText would not be duped using
malloc but remain unchanged (and hence "not owned") for URIs with
an IPv4 or IPv6 address hostname; depending on how an application
uses uriparser, this could lead the application into a use-after-free
situation.
As the second half, fix uriFreeUriMembers* functions that would not
free .hostText memory for URIs with an IPv4 or IPv6 address host;
also, calling uriFreeUriMembers* multiple times on a URI of this
very nature would result in trying to free pointers to stack
(rather than heap) memory (GitHub #121, GitHub #124)
Commit 987b046e41f407d17c622e580fc82a5e834b4329
Commit b1a34743bc1472e055d886e29e9b53f670eb3282
* Fixed: [CVE-2021-46142]
Fix functions uriNormalizeSyntax* for out-of-memory situations
(i.e. malloc returning NULL) for URIs containing empty segments
(any of user info, host text, query, or fragment) where previously
pointers to stack (rather than heap) memory were freed (GitHub #122,
GitHub #124)
Commit c0483990e6b5b454f7c8752b36760cfcb0d093f5
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* Fixed: CMake: Call "enable_language(CXX)" prior to tinkering with
CMAKE_CXX_* variables (GitHub #110)
Thanks to Alexander Richardson for the patch (originally at libexpat)
* Fixed: CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
and CMAKE_INSTALL_INCLUDEDIR (GitHub #114)
Thanks to Rafael Fontenelle for bringing this up (originally at libexpat)
* Fixed: Windows: Address MSVC compiler warnings (GitHub #111, GitHub #113)
* Fixed: Documentation: Space requirements for uriUriStringToUnixFilename
did not take into account short form "file:/bin/bash" of RFC 8089 of 2017
(with prefix "file:/" rather than "file:///") that uriparser supports
since release 0.8.6 in 2018 (GitHub #118, GitHub #119)
* Fixed: Compile error with MinGW GCC 9 related to a mismatched prototype
for function inet_ntop (GitHub #117, GitHub #120)
Thanks to Sandro Mani for the report!
* Fixed: Compile warnings in test suite code (GitHub #120)
* Improved: Respect variable ${CPP} in doc/preprocess.sh (GitHub #115)
* Added: Test suite invocation for MinGW using Wine (GitHub #120)
* Soname: 1:29:0 see https://verbump.de/ for what these numbers do
Version 2.11.2
--------------
- Updated lexers:
* C-family: Fix incorrect handling of labels
* Java: Fixed an issue with ``record`` keywords result in ``Error`` tokens in some cases
- Fix links to line numbers not working correctly
- Remove ``underline`` from ``Whitespace`` style in the ``Tango`` theme
- Fix ``IRC`` and ``Terminal256`` formatters not backtracking correctly for custom token types, resulting in some unstyled tokens
Version 2.11.1
--------------
- Updated lexers:
* C-family: Handle return types with multiple tokens (e.g. ``unsigned int``)
* JSON: Fix a regression which caused whitespace before ``:`` to result in ``Error`` tokens
* SPICE: Various improvements
v2.3.0
======
#7: Add support for a ``calc()`` within a ``calc()``.
v2.2.0
======
Minor cleanup.
Restored package version reporting when fetching URLs.
v2.1.0
======
Adopted `jaraco/skeleton <https://github.com/jaraco/skeleton>`_.
Delinted codebase.
Removed ``cssutils.VERSION`` and ``cssutils.__version__``.
Consumers wishing to know the version should use
``importlib.metadata.version('cssutils')``.
v2.0.0
======
New `maintainer <https://pypi.org/user/jaraco>`_ revives the project
and moves `hosting <https://github.com/jaraco/cssutils>`_ with
continuous integration testing.
Refreshed packaging.
Project now requires Python 3.6 or later.
This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.
Set this flag for packages that need it and bump PKGREVISION.