Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configures to actually select Lua 5.3 - again? #272

Closed

Conversation

goekesmi
Copy link

This commit updates the haproxy build options to make sure it uses Lua 5.3. Otherwise, the build options were selecting Lua 5.2, and that's not compatible with haproxy.

jperkin pushed a commit that referenced this pull request Jun 30, 2020
@jperkin jperkin self-assigned this Jun 30, 2020
@jperkin
Copy link
Collaborator

jperkin commented Jun 30, 2020

I merged a variant of the upstream change to fix this, thanks!

@jperkin jperkin closed this Jun 30, 2020
@goekesmi
Copy link
Author

I'm very sorry to report that your fix does not seem to have fixed the problem.

I'm building from the pkgsrc-19.4 image, updated from the github 2019Q4 branch, with your fix.

--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--
-> git status                                          
On branch joyent/release/2019Q4
Your branch is up to date with 'origin/joyent/release/2019Q4'.

--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--
-> cat options.mk 
# $NetBSD: options.mk,v 1.7 2019/08/03 20:37:19 morr Exp $

PKG_OPTIONS_VAR=        PKG_OPTIONS.haproxy
PKG_SUPPORTED_OPTIONS=  pcre ssl deviceatlas lua prometheus
PKG_SUGGESTED_OPTIONS=  pcre ssl

.include "../../mk/bsd.options.mk"

###
### Use libpcre rather than libc for header processing regexp
###
.if !empty(PKG_OPTIONS:Mpcre)
.  include "../../devel/pcre/buildlink3.mk"
BUILD_MAKE_FLAGS+=      USE_PCRE=1
.endif

###
### Use LUA
###
.if !empty(PKG_OPTIONS:Mlua)
LUA_VERSION_ACCEPTED=   53
.  include "../../lang/lua/luaversion.mk"
BUILD_MAKE_FLAGS+=      USE_LUA=1
BUILD_MAKE_FLAGS+=      LUA_LIB_NAME=lua5.3
.  include "../../lang/lua/buildlink3.mk"
.endif

###
### Use Prometheus
###
.if !empty(PKG_OPTIONS:Mprometheus)
BUILD_MAKE_FLAGS+=      EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
.endif


###
### Support DeviceAtlas detection.
###
.if !empty(PKG_OPTIONS:Mpcre) && !empty(PKG_OPTIONS:Mdeviceatlas)
DEVICEATLAS_VERSION=    2.1
DEVICEATLAS_DISTFILE=   deviceatlas-enterprise-c-${DEVICEATLAS_VERSION}
DISTFILES=              ${DISTNAME}.tar.gz ${DEVICEATLAS_DISTFILE}.zip
DEVICEATLAS_HOMEPAGE=   https://www.deviceatlas.com/deviceatlas-haproxy-module

BUILD_MAKE_FLAGS+=      USE_DEVICEATLAS=1 DEVICEATLAS_SRC=../${DEVICEATLAS_DISTFILE}

.  if !exists(${DISTDIR}/${DEVICEATLAS_DISTFILE}.zip)
FETCH_MESSAGE=          "Please fetch ${DEVICEATLAS_DISTFILE}.zip manually from"
FETCH_MESSAGE+=         "${DEVICEATLAS_HOMEPAGE}"
FETCH_MESSAGE+=         "and put into"
FETCH_MESSAGE+=         "${DISTDIR}"
.  endif
.endif

###
### Support OpenSSL for termination.
###
.if !empty(PKG_OPTIONS:Mssl)
.  include "../../security/openssl/buildlink3.mk"
BUILD_MAKE_FLAGS+=      USE_OPENSSL=1
.endif
--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--

--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--
-> bmake PKG_OPTIONS.haproxy="pcre ssl lua prometheus" 
=> Bootstrap dependency digest>=20010302: found digest-20190127
=> Checksum SHA1 OK for haproxy-2.0.13.tar.gz
=> Checksum RMD160 OK for haproxy-2.0.13.tar.gz
=> Checksum SHA512 OK for haproxy-2.0.13.tar.gz
===> Installing dependencies for haproxy-2.0.13
==========================================================================
The supported build options for haproxy are:

        deviceatlas lua pcre prometheus ssl

The currently selected options are:

        lua pcre prometheus ssl

You can select which build options to use by setting PKG_DEFAULT_OPTIONS
or the following variable.  Its current value is shown:

        PKG_OPTIONS.haproxy = pcre ssl lua prometheus

==========================================================================
==========================================================================
The following variables will affect the build process of this package,
haproxy-2.0.13.  Their current value is shown below:

        * CURSES_DEFAULT = ncurses
        * LUA_VERSION_DEFAULT = 52
        * READLINE_DEFAULT = readline
        * SSLBASE (defined)
        * SSLCERTS = /opt/local/etc/openssl/certs
        * SSLDIR = /opt/local/etc/openssl
        * SSLKEYS = /opt/local/etc/openssl/private

Based on these variables, the following variables have been set:

        * CURSES_TYPE = ncurses
        * LUA_PACKAGE = lua52
        * READLINE_TYPE = readline
        * TERMCAP_TYPE = curses

You may want to abort the process now with CTRL-C and change their value
before continuing.  Be sure to run `/opt/local/bin/bmake clean' after
the changes.
==========================================================================
=> Tool dependency gmake>=3.81: found gmake-4.2.1nb1
=> Tool dependency checkperms>=1.1: found checkperms-1.12
=> Build dependency gcc7>=7.3: NOT found
=> Verifying bin-install for ../../lang/gcc7
^C

You will note that it selected LUA_PACKAGE = lua52, and then the compile fails.

I don't claim to know what the right way is, but I know that the patch I submitted does get the build system to pick the right lua package.

--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--
-> git checkout haproxy-lua
M       joyent
Switched to branch 'haproxy-lua'
--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--
-> bmake clean
===> Cleaning for haproxy-2.0.13
--<root@b15377e8-5814-49df-bc05-b19c169c5e47>-(/data/chroot/dev-2019Q4-x86_64)-</data/pkgsrc/net/haproxy>--
-> bmake PKG_OPTIONS.haproxy="pcre ssl lua prometheus" 
=> Bootstrap dependency digest>=20010302: found digest-20190127
=> Checksum SHA1 OK for haproxy-2.0.13.tar.gz
=> Checksum RMD160 OK for haproxy-2.0.13.tar.gz
=> Checksum SHA512 OK for haproxy-2.0.13.tar.gz
===> Installing dependencies for haproxy-2.0.13
==========================================================================
The supported build options for haproxy are:

        deviceatlas lua pcre prometheus ssl

The currently selected options are:

        lua pcre prometheus ssl

You can select which build options to use by setting PKG_DEFAULT_OPTIONS
or the following variable.  Its current value is shown:

        PKG_OPTIONS.haproxy = pcre ssl lua prometheus

==========================================================================
==========================================================================
The following variables will affect the build process of this package,
haproxy-2.0.13.  Their current value is shown below:

        * CURSES_DEFAULT = ncurses
        * LUA_VERSION_DEFAULT = 52
        * READLINE_DEFAULT = readline
        * SSLBASE (defined)
        * SSLCERTS = /opt/local/etc/openssl/certs
        * SSLDIR = /opt/local/etc/openssl
        * SSLKEYS = /opt/local/etc/openssl/private

Based on these variables, the following variables have been set:

        * CURSES_TYPE = ncurses
        * LUA_PACKAGE = lua53
        * READLINE_TYPE = readline
        * TERMCAP_TYPE = curses

You may want to abort the process now with CTRL-C and change their value
before continuing.  Be sure to run `/opt/local/bin/bmake clean' after
the changes.
==========================================================================
=> Tool dependency gmake>=3.81: found gmake-4.2.1nb1
=> Tool dependency checkperms>=1.1: found checkperms-1.12
=> Build dependency gcc7>=7.3: NOT found
=> Verifying bin-install for ../../lang/gcc7
===> Binary install for gcc7>=7.3
=> Installing gcc7>=7.3 from /data/packages/SmartOS/2019Q4/x86_64/All;http://0.0.0.0:8080/packages/SmartOS/2019Q4/x86_64//All
^C

Thus I'm re-opening this merge request.

@goekesmi goekesmi changed the title Configures to actually select Lua 5.3 Configures to actually select Lua 5.3 - again? Jun 30, 2020
@jperkin
Copy link
Collaborator

jperkin commented Jul 1, 2020

Heh oops, looks like I can't spell LUA_VERSIONS_ACCEPTED correctly, will push a fix for this shortly.

@goekesmi goekesmi deleted the haproxy-lua branch July 2, 2020 15:41
@goekesmi
Copy link
Author

goekesmi commented Jul 2, 2020

I've tested and that works. Thanks.

jperkin pushed a commit that referenced this pull request Aug 19, 2020
Change MASTER_SITE to author's github.

Breaking changes:
  GNU Emacs 25.1 or later is required. And xemacs support has been dropped
  Face variables, such as markdown-italic-face are now
  obsolete. Use face names directly in code and customizations.
  The face names themselves are unaffected, so this shouldn't
  affect most users.
  Delete obsoleted aliases
  Internal variables markdown-font-lock-keywords-basic and
  gfm-font-lock-keywords are now obsolete.
  markdown-font-lock-keywords is now used instead, but users
  should use font-lock-add-keywords instead of modifying this
  variable.
  markdown-mode now adds entries to the beginning of
  auto-mode-alist rather than the end. If you were relying on
  the previous behavior in order to override these entries, you
  should fix the problem by following best practice and ensuring
  that your user configuration is loaded after the autoloads for
  markdown-mode are evaluated. (GH-331, GH-335)
  Point at the end of fenced code blocks is no-longer considered
  part of the code block ([GH-#349][]).
  Enable markdown-fontify-code-blocks-natively in gfm-view-mode. ([GH-#451][])

New features:
  GFM task list item (checkbox) insertion with C-c C-s [, or
  as a final fallback for markdown-do (C-c C-d). Thanks to
  Akinori Musha for a patch. (GH-229)
  Optionally move leading atx heading markup to the left margin
  when markdown-marginalize-headers is non-nil. Thanks to
  Alexis Gallagher for a patch. (GH-272, GH-274)
  Added pipe table editing features. Thanks to Dmitry Safronov
  for a patch. (GH-171, GH-266)
  Font lock for HTML tags and attributes, with new faces
  markdown-html-tag-name-face,
  markdown-html-tag-delimiter-face,
  markdown-html-attr-name-face, and
  markdown-html-attr-value-face. (GH-249)
  Font lock for HTML entities, with a new face
  markdown-html-entity-face.
  Scale down large inline images using markdown-max-image-size,
  a cons cell of the form (max-width . max-height).
  Added read-only viewing modes markdown-view-mode and
  gfm-view-mode with keymaps similar to view-mode and
  help-mode. (GH-296)
  Optionally add footnote definitions to the end of the imenu
  index using markdown-add-footnotes-to-imenu. (GH-235)
  Add custom variables markdown-xhtml-body-preamble and
  markdown-xhtml-body-epilogue for wrapping additional XHTML
  tags around the output. (GH-280, GH-281)
  Add markdown-unused-refs command to list and clean up unused
  references (available via C-c C-c u). (GH-322)
  Add markdown-insert-table (C-c C-s t) for interactive
  table insertion. (GH-369)
  Add markdown-kill-outline and markdown-kill-block functions.
  Added markdown-display-remote-images for viewing remote
  images. Thanks to Sean Allread for the patch. (GH-378)
  markdown-back-to-heading can be used as command (GH-415)
jperkin pushed a commit that referenced this pull request Sep 16, 2020
Update ruby-recog package to 2.3.14.


2.3.14 - 2020.08.07

Highlights:

* HTTP: Improved coverage of VNC related web services (#282)
* HTTP: Improved coverage and CPEs of SonicWall and Cisco Expressway (#283)

2.3.13 - 2020.08.03

Highlights:

* Improving coverage of Moxa devices (#280)
* Adding fingerprints for certain high volume services as observed by
  Project Sonar (#280, #281)
* CPE: Improving the number of fingerprints and Project Sonar matches that
  returned CPEs (#281)

2.3.12 - 2020.07.23

Highlights:

* HTTP: Additional SAP NetWeaver and Glassfish coverage and fixes (#279)
* FTP: Serv-U and Filezilla improvements (#279)
* CPE: Tweaks to vendor, service, and cpe-remap.yaml which resulted in much
  better coverage for services frequently seen on the Internet. See PR for
  stats. (#279)

2.3.11 - 2020.07.16

Highlights:

* HTTP: Adjust banner for $ProjectRevision (Treck TCP/IP) by Anderson Luan
  (#272)
* HTTP: SAP Internet Graphics Server and Message Server fingerprints (#275)
* DNS: Windows Server 2008 SP2, performance and other coverage tweaks (#276)
* DNS: Avoid spoofed Microsoft DNS Server, add Debian Buster (#277)
* CPE: Correct CPE generating automation (#278)

2.3.10 - 2020.07.14

Highlights:

* SAP NetWeaver: Telnet and HTTP tweaks (#274)

2.3.9 - 2020.07.14

Highlights:

* Upgrade lxml, improve fingerprint readability (#268)
* New fingerprints and completed normalization by HD Moore (#269)
* New Database: favicons.xml (MD5 fingerprints for favicon.ico files) by HD
  Moore (#270)
* HTTP: Project Sonar HTTP updates (including SAP Netweaver / Oracle) (#273)
jperkin pushed a commit that referenced this pull request Sep 21, 2020
2.0.3 (2020-08-22)
~~~~~~~~~~~~~~~~~~

- Fix issues when building re2c as a CMake subproject
  (`#302 <https://github.com/skvadrik/re2c/pull/302>`_:

- Final corrections in the SIMPA article "RE2C: A lexer generator based on
  lookahead-TDFA", https://doi.org/10.1016/j.simpa.2020.100027

2.0.2 (2020-08-08)
~~~~~~~~~~~~~~~~~~

- Enable re2go building by default.

- Package CMake files into release tarball.

2.0.1 (2020-07-29)
~~~~~~~~~~~~~~~~~~

- Updated version for CMake build system (forgotten in release 2.0).

- Added a short article about re2c for the Software Impacts journal.

2.0 (2020-07-20)
~~~~~~~~~~~~~~~~

- Added new code generation backend for Go and a new ``re2go`` program
  (`#272 <https://github.com/skvadrik/re2c/issues/272>`_: Go support).
  Added option ``--lang <c | go>``.

- Added CMake build system as an alternative to Autotools
  (`#275 <https://github.com/skvadrik/re2c/pull/275>`_:
  Add a CMake build system (thanks to ligfx),
  `#244 <https://github.com/skvadrik/re2c/issues/244>`_: Switching to CMake).

- Changes in generic API:

  + Removed primitives ``YYSTAGPD`` and ``YYMTAGPD``.
  + Added primitives ``YYSHIFT``, ``YYSHIFTSTAG``, ``YYSHIFTMTAG``
    that allow to express fixed tags in terms of generic API.
  + Added configurations ``re2c:api:style`` and ``re2c:api:sigil``.
  + Added named placeholders in interpolated configuration strings.

- Changes in reuse mode (``-r, --reuse`` option):

  + Do not reset API-related configurations in each `use:re2c` block
    (`#291 <https://github.com/skvadrik/re2c/issues/291>`_:
    Defines in rules block are not propagated to use blocks).
  + Use block-local options instead of last block options.
  + Do not accumulate options from rules/reuse blocks in whole-program options.
  + Generate non-overlapping YYFILL labels for reuse blocks.
  + Generate start label for each reuse block in storable state mode.

- Changes in start-conditions mode (``-c, --start-conditions`` option):

  + Allow to use normal (non-conditional) blocks in `-c` mode
    (`#263 <https://github.com/skvadrik/re2c/issues/263>`_:
    allow mixing conditional and non-conditional blocks with -c,
    `#296 <https://github.com/skvadrik/re2c/issues/296>`_:
    Conditions required for all lexers when using '-c' option).
  + Generate condition switch in every re2c block
    (`#295 <https://github.com/skvadrik/re2c/issues/295>`_:
    Condition switch generated for only one lexer per file).

- Changes in the generated labels:

  + Use ``yyeof`` label prefix instead of ``yyeofrule``.
  + Use ``yyfill`` label prefix instead of ``yyFillLabel``.
  + Decouple start label and initial label (affects label numbering).

- Removed undocumented configuration ``re2c:flags:o``, ``re2c:flags:output``.

- Changes in ``re2c:flags:t``, ``re2c:flags:type-header`` configuration:
  filename is now relative to the output file directory.

- Added option ``--case-ranges`` and configuration ``re2c:flags:case-ranges``.

- Extended fixed tags optimization for the case of fixed-counter repetition.

- Fixed bugs related to EOF rule:

  + `#276 <https://github.com/skvadrik/re2c/issues/276>`_:
    Example 01_fill.re in docs is broken
  + `#280 <https://github.com/skvadrik/re2c/issues/280>`_:
    EOF rules with multiple blocks
  + `#284 <https://github.com/skvadrik/re2c/issues/284>`_:
    mismatched YYBACKUP and YYRESTORE
    (Add missing fallback states with EOF rule)

- Fixed miscellaneous bugs:

  + `#286 <https://github.com/skvadrik/re2c/issues/286>`_:
    Incorrect submatch values with fixed-length trailing context.
  + `#297 <https://github.com/skvadrik/re2c/issues/297>`_:
    configure error on ubuntu 18.04 / cmake 3.10

- Changed bootstrap process (require explicit configuration flags and a path to
  re2c executable to regenerate the lexers).

- Added internal options ``--posix-prectable <naive | complex>``.

- Added debug option ``--dump-dfa-tree``.

- Major revision of the paper "Efficient POSIX submatch extraction on NFA".

----
1.3x
----

1.3 (2019-12-14)
~~~~~~~~~~~~~~~~

- Added option: ``--stadfa``.

- Added warning: ``-Wsentinel-in-midrule``.

- Added generic API primitives:

  + ``YYSTAGPD``
  + ``YYMTAGPD``

- Added configurations:

  + ``re2c:sentinel = 0;``
  + ``re2c:define:YYSTAGPD = "YYSTAGPD";``
  + ``re2c:define:YYMTAGPD = "YYMTAGPD";``

- Worked on reproducible builds
  (`#258 <https://github.com/skvadrik/re2c/pull/258>`_:
  Make the build reproducible).

----
1.2x
----

1.2.1 (2019-08-11)
~~~~~~~~~~~~~~~~~~

- Fixed bug `#253 <https://github.com/skvadrik/re2c/issues/253>`_:
  re2c should install unicode_categories.re somewhere.

- Fixed bug `#254 <https://github.com/skvadrik/re2c/issues/254>`_:
  Turn off re2c:eof = 0.

1.2 (2019-08-02)
~~~~~~~~~~~~~~~~

- Added EOF rule ``$`` and configuration ``re2c:eof``.

- Added ``/*!include:re2c ... */`` directive and ``-I`` option.

- Added ``/*!header:re2c:on*/`` and ``/*!header:re2c:off*/`` directives.

- Added ``--input-encoding <ascii | utf8>`` option.

  + `#237 <https://github.com/skvadrik/re2c/issues/237>`_:
    Handle non-ASCII encoded characters in regular expressions
  + `#250 <https://github.com/skvadrik/re2c/issues/250>`_
    UTF8 enoding

- Added include file with a list of definitions for Unicode character classes.

  + `#235 <https://github.com/skvadrik/re2c/issues/235>`_:
    Unicode character classes

- Added ``--location-format <gnu | msvc>`` option.

  + `#195 <https://github.com/skvadrik/re2c/issues/195>`_:
    Please consider using Gnu format for error messages

- Added ``--verbose`` option that prints "success" message if re2c exits
  without errors.

- Added configurations for options:

  + ``-o --output`` (specify output file)
  + ``-t --type-header`` (specify header file)

- Removed configurations for internal/debug options.

- Extended ``-r`` option: allow to mix multiple ``/*!rules:re2c*/``,
  ``/*!use:re2c*/`` and ``/*!re2c*/`` blocks.

  + `#55 <https://github.com/skvadrik/re2c/issues/55>`_:
    allow standard re2c blocks in reuse mode

- Fixed ``-F --flex-support`` option: parsing and operator precedence.

  + `#229 <https://github.com/skvadrik/re2c/issues/229>`_:
    re2c option -F (flex syntax) broken
  + `#242 <https://github.com/skvadrik/re2c/issues/242>`_:
    Operator precedence with --flex-syntax is broken

- Changed difference operator ``/`` to apply before encoding expansion of
  operands.

  + `#236 <https://github.com/skvadrik/re2c/issues/236>`_:
    Support range difference with variable-length encodings

- Changed output generation of output file to be atomic.

  + `#245 <https://github.com/skvadrik/re2c/issues/245>`_:
    re2c output is not atomic

- Authored research paper "Efficient POSIX Submatch Extraction on NFA"
  together with Dr Angelo Borsotti.

- Added experimental libre2c library (``--enable-libs`` configure option) with
  the following algorithms:

  + TDFA with leftmost-greedy disambiguation
  + TDFA with POSIX disambiguation (Okui-Suzuki algorithm)
  + TNFA with leftmost-greedy disambiguation
  + TNFA with POSIX disambiguation (Okui-Suzuki algorithm)
  + TNFA with lazy POSIX disambiguation (Okui-Suzuki algorithm)
  + TNFA with POSIX disambiguation (Kuklewicz algorithm)
  + TNFA with POSIX disambiguation (Cox algorithm)

- Added debug subsystem (``--enable-debug`` configure option) and new debug
  options:

  + ``-dump-cfg`` (dump control flow graph of tag variables)
  + ``-dump-interf`` (dump interference table of tag variables)
  + ``-dump-closure-stats`` (dump epsilon-closure statistics)

- Added internal options:

  + ``--posix-closure <gor1 | gtop>`` (switch between shortest-path algorithms
    used for the construction of POSIX closure)

- Fixed a number of crashes found by American Fuzzy Lop fuzzer:

  + `#226 <https://github.com/skvadrik/re2c/issues/226>`_,
    `#227 <https://github.com/skvadrik/re2c/issues/227>`_,
    `#228 <https://github.com/skvadrik/re2c/issues/228>`_,
    `#231 <https://github.com/skvadrik/re2c/issues/231>`_,
    `#232 <https://github.com/skvadrik/re2c/issues/232>`_,
    `#233 <https://github.com/skvadrik/re2c/issues/233>`_,
    `#234 <https://github.com/skvadrik/re2c/issues/234>`_,
    `#238 <https://github.com/skvadrik/re2c/issues/238>`_

- Fixed handling of newlines:

  + correctly parse multi-character newlines CR LF in ``#line`` directives
  + consistently convert all newlines in the generated file to Unix-style LF

- Changed default tarball format from .gz to .xz.

  + `#221 <https://github.com/skvadrik/re2c/issues/221>`_:
    big source tarball

- Fixed a number of other bugs and resolved issues:

  + `#2 <https://github.com/skvadrik/re2c/issues/2>`_: abort
  + `#6 <https://github.com/skvadrik/re2c/issues/6>`_: segfault
  + `#10 <https://github.com/skvadrik/re2c/issues/10>`_:
    lessons/002_upn_calculator/calc_002 doesn't produce a useful example program
  + `#44 <https://github.com/skvadrik/re2c/issues/44>`_:
    Access violation when translating the attached file
  + `#49 <https://github.com/skvadrik/re2c/issues/49>`_:
    wildcard state \000 rules makes lexer behave weard
  + `#98 <https://github.com/skvadrik/re2c/issues/98>`_:
    Transparent handling of #line directives in input files
  + `#104 <https://github.com/skvadrik/re2c/issues/104>`_:
    Improve const-correctness
  + `#105 <https://github.com/skvadrik/re2c/issues/105>`_:
    Conversion of pointer parameters into references
  + `#114 <https://github.com/skvadrik/re2c/issues/114>`_:
    Possibility of fixing bug 2535084
  + `#120 <https://github.com/skvadrik/re2c/issues/120>`_:
    condition consisting of default rule only is ignored
  + `#167 <https://github.com/skvadrik/re2c/issues/167>`_:
    Add word boundary support
  + `#168 <https://github.com/skvadrik/re2c/issues/168>`_:
    Wikipedia's article on re2c
  + `#180 <https://github.com/skvadrik/re2c/issues/180>`_:
    Comment syntax?
  + `#182 <https://github.com/skvadrik/re2c/issues/182>`_:
    yych being set by YYPEEK () and then not used
  + `#196 <https://github.com/skvadrik/re2c/issues/196>`_:
    Implicit type conversion warnings
  + `#198 <https://github.com/skvadrik/re2c/issues/198>`_:
    no match for ‘operator!=’ in ‘i != std::vector<_Tp, _Alloc>::rend() [with _Tp = re2c::bitmap_t, _Alloc = std::allocator<re2c::bitmap_t>]()’
  + `#210 <https://github.com/skvadrik/re2c/issues/210>`_:
    How to build re2c in windows?
  + `#215 <https://github.com/skvadrik/re2c/issues/215>`_:
    A memory read overrun issue in s_to_n32_unsafe.cc
  + `#220 <https://github.com/skvadrik/re2c/issues/220>`_:
    src/dfa/dfa.h: simplify constructor to avoid g++-3.4 bug
  + `#223 <https://github.com/skvadrik/re2c/issues/223>`_:
    Fix typo
  + `#224 <https://github.com/skvadrik/re2c/issues/224>`_:
    src/dfa/closure_posix.cc: pack() tweaks
  + `#225 <https://github.com/skvadrik/re2c/issues/225>`_:
    Documentation link is broken in libre2c/README
  + `#230 <https://github.com/skvadrik/re2c/issues/230>`_:
    Changes for upcoming Travis' infra migration
  + `#239 <https://github.com/skvadrik/re2c/issues/239>`_:
    Push model example has wrong re2c invocation, breaks guide
  + `#241 <https://github.com/skvadrik/re2c/issues/241>`_:
    Guidance on how to use re2c for full-duplex command & response protocol
  + `#243 <https://github.com/skvadrik/re2c/issues/243>`_:
    A code generated for period (.) requires 4 bytes
  + `#246 <https://github.com/skvadrik/re2c/issues/246>`_:
    Please add a license to this repo
  + `#247 <https://github.com/skvadrik/re2c/issues/247>`_:
    Build failure on current Cygwin, probably caused by force-fed c++98 mode
  + `#248 <https://github.com/skvadrik/re2c/issues/248>`_:
    distcheck still looks for README
  + `#251 <https://github.com/skvadrik/re2c/issues/251>`_:
    Including what you use is find, but not without inclusion guards

- Updated documentation and website.
jperkin pushed a commit that referenced this pull request Oct 9, 2020
Pkgsrc changes:
 * Add option for doh (DNS-over-HTTPS), default enabled.

Upstream changes:

This release contains the DNS Flag Day 2020 changes.  This sets the
default EDNS buffer size to 1232, that should reduce fragmentation.
https://dnsflagday.net/2020/

There is inclusive language in the configuration.  There is caps-exempt,
ipsecmod-allow and primary server options for auth-zones.  The older
terms are accepted to keep configuration working.

DNS-over-HTTPS is supported in this release.  The DoH is enabled when
Unbound is compiled with the nghttp2 library, with configure
--with-libnghttp2.  Then have an interface on the https port, that can
be configured with the https-port option.  Also have a cert and key
available with the tls-service-key and tls-service-pem options.  Further
settings can be configured for the http-endpoint, http-max-streams,
http-query-buffer-size, http-response-buffer-size and http-nodelay
options.  The max streams sets the maximum concurrent streams, the
buffer size options the number of bytes in buffers, and the nodelay
option can turn on TCP_NODELAY for DNS-over-HTTPS service.  In the
statistics the memory used is reported in mem.http.query_buffer and
mem.http.response_buffer.  The number of queries is reported in
num.query.https, they are also included in the tcp and tls counts
because https uses TLS and TCP.

The DLV options and code to handle DLV lookups have been removed from
the code base.  The DLV repository is empty nowadays, it has been
decommissioned.

There is a new feature where it is possible to use interface names to
bind to the IP addresses on that interface.  It pulls in the addresses
at the start of the server, if the addresses change, use the existing
freebind and other socket options to register for addresses before they
appear, or the interface-automatic option that copies them from queries
to answers with ancillary data.

There is a new option for the edns-tag draft specification.  It can be
enabled if you need the tentative implementation to add those tags to
outgoing messages.

Features
- DNS Flag Day 2020: change edns-buffer-size default to 1232.
- Merge PR #255: DNS-over-HTTPS support.
- Use inclusive language in configuration
- Merge PR #284 and Fix #246: Remove DLV entirely from Unbound.
  The DLV has been decommisioned and in unbound 1.5.4, in 2015, there
  was advise to stop using it.  The current code base does not contain
  DLV code any more.  The use of dlv options displays a warning.
- Similar to NSD PR#113, implement that interface names can be used,
  eg. something like interface: eth0 is resolved at server start and
  uses the IP addresses for that named interface.
- Merge PR #272: Add EDNS client tag functionality.
- Add edns-client-tag-opcode option

Bug Fixes
- Merge PR #270 from cgzones: munin plugin: always exit 0 in autoconf
- Merge PR #269, Fix python module len() implementations, by Torbjörn
  Lönnemark
- Merge PR #268, draft-ietf-dnsop-serve-stale-10 has become RFC 8767 on
  March 2020, by and0x000.
- Fix doxygen comment for no ssl for tls session ticket key callback
  routine.
- Fix mini_event.h on OpenBSD cannot find fd_set.
- Improve error log message when inserting rpz RR.
- Merge PR #280, Make tvOS & watchOS checks verify truthiness as well as
  definedness, by Felipe Gasper.
- contrib/aaaa-filter-iterator.patch file renewed diff content to
  apply cleanly to the current coderepo for the current code version.
- Fix #287: doc typo: "Additionaly".
- Merge (modified) PR #277, use EVP_MAC_CTX_set_params if available,
  by Vít#zslav #í#ek.
- Create and init edns tags data for libunbound.
- Fix stats double count issue (#289).
- Fix that dnstap reconnects do not spam the log with the repeated
  attempts.  Attempts on the timer are only logged on high verbosity,
  if they produce a connection failure error.
- Fix to apply chroot to dnstap-socket-path, if chroot is enabled.
- Change configure to use EVP_sha256 instead of HMAC_Update for
  openssl-3.0.0.
- Update documentation in python example code.
- Review fix interface, doxygen and assign null in case of error free.
- Merge PR #293: Add missing prototype.  Also refactor to use the new
  shorthand function to clean up the code.
- Refactor to use sock_strerr shorthand function.
- Fix #296: systemd nss-lookup.target is reached before unbound can
  successfully answer queries. Changed contrib/unbound.service.in.
- Fix num.expired statistics output.
- Remove x file mode on ipset/ipset.c and h files.
- Spelling fix.
- Introduce test for statistics.
- Fix that prefer-ip4 and prefer-ip6 can be get and set with
  unbound-control, with libunbound and the unbound-checkconf option
  output function.
- Merge PR #311 by luismerino: Dynlibmod leak.
- Error message is logged for dynlibmod malloc failures.
- iana portlist updated.
- Fix #304: dnstap logging not recovering after dnstap process restarts
- Fix edns-client-tags get_option typo
- Fix #305: dnstap logging significantly affects unbound performance
  (regression in 1.11).
- Fix #305: only wake up thread when threshold reached.
- Fix to ifdef fptr wlist item for dnstap.
- Fix memory leak of edns tags at libunbound context delete.
- Fix double loopexit for unbound-dnstap-socket after sigterm.
jperkin pushed a commit that referenced this pull request Oct 19, 2020
0.25.9          (2019-06-18):

* Bugfix: %GITHUB%/issues/261
       Issue with iterating Python sequences
* Bugfix: %GITHUB%/issues/271
       Chose cell coordinates on "Make Cell"
* Bugfix: %GITHUB%/issues/272
       Error message if trying to run macros in unsupported languages
* Bugfix: %GITHUB%/issues/275
       "Write without context" did not have an effect with OASIS
* Bugfix: %GITHUB%/issues/276
       LayerPropertiesNodeRef was not working as documented
* Bugfix: %GITHUB%/issues/278
       Lost reference with ObjectInstPath#shape
* Bugfix: %GITHUB%/issues/281
       Width and space violations are reported now also for
       the "kissing corners" case

0.25.8          (2019-02-23):

* Bugfix: %GITHUB%/issues/234
       Issues with LayoutView#save_image_with_options
* Bugfix: %GITHUB%/issues/232
       Crash on reading .lyp files with big stipple pattern
* Bugfix: %GITHUB%/issues/228
       Bug in Region#interact and DRC's "interact" function.
* Bugfix: %GITHUB%/issues/225
       Mirrored custom stipple pattern

0.25.7          (2019-01-09):

* Bugfix: %GITHUB%/issues/200
       Safer iteration of cell instances and shapes (with
       modifications of container during iteration) - in this
       case while flattening instances
* Bugfix: %GITHUB%/issues/209
       Reader options were grayed out in stream import feature.
* Bugfix: %GITHUB%/issues/207
       Basic.TEXT PCell was rounding bias a spacing values to
       integer multiples.
* Bugfix: %GITHUB%/issues/203
       A segfault was fixed that happend on certain platforms
       when closing the application (e.g. CentOS7).
* Bugfix: (RBA/pya) Technology#load was not working
       Instead of load, the technology was saved.
jperkin pushed a commit that referenced this pull request Oct 28, 2020
0.2.4
Features
-Highlight search query matches
-Add Similar tracks feature in context menu (#186)
-Create new empty playlist via command newplaylist (#272)
-Make volume up/down steps configurable via keybinding (#298)
-Show dialog when adding duplicate tracks to a playlist (#299)

Maintenance
-Replace directories with platform_dirs create (#285)
 (This moves the application folders to ~/.config/ncspot and ~/.cache/ncspot
 on macOS)
-Fix: handle overlapping texts when displaying longer titles/album names
-Make album column for tracks configurable (album_column) (fixes #267)
-Fix: update playlist changes in local store (fixes #302)
-Many third-party dependency updates
jperkin pushed a commit that referenced this pull request Feb 23, 2021
Changelog:
## [1.7.2](rime/librime@1.7.1...1.7.2) (2021-02-07)


### Bug Fixes

* **chord_composer:** should clear raw input after committing text ([79b34ab](rime/librime@79b34ab))



## [1.7.1](rime/librime@1.7.0...1.7.1) (2021-02-06)


### Bug Fixes

* **chord_composer:** press Return key to commit raw key sequence ([2b25861](rime/librime@2b25861))



# [1.7.0](rime/librime@1.6.1...1.7.0) (2021-01-17)


### Bug Fixes

* **chord_composer:** more safely handle the placeholder ZWSP ([025d9fb](rime/librime@025d9fb))
* **cmake:** use full paths defined by GNUInstallDirs ([bb8c263](rime/librime@bb8c263)), closes [#424](rime/librime#424)
* **opencc:** update submodule to fix [#425](rime/librime#425) ([3fa1571](rime/librime@3fa1571))
* **script_translator:** always_show_comments also applies to phrases ([440a97c](rime/librime@440a97c)), closes [#272](rime/librime#272) [#419](rime/librime#419)
* **table_translator:** index out of bound access in string ([ff7acdc](rime/librime@ff7acdc))


### Features

* **chareset_filter:** add CJK Compatibility Ideographs in is_extended_cjk() ([3cb1128](rime/librime@3cb1128)), closes [#305](rime/librime#305)
* **setup:** find and load external RIME plugins as shared libs [#431](rime/librime#431) ([b2abd09](rime/librime@b2abd09))



## [1.6.1](rime/librime@1.6.0...1.6.1) (2020-09-21)


### Bug Fixes

* **rime_api.cc:** dangling pointer returned from RimeGetSharedDataDir ([78abaa8](rime/librime@78abaa8))



# [1.6.0](rime/librime@1.5.3...1.6.0) (2020-09-20)


### Bug Fixes

* **ascii_composer:** do not comsume Shift key release ([debc2c0](rime/librime@debc2c0))
* **ascii_composer:** first read ascii_composer/good_old_caps_lock from schema config ([3fc56c4](rime/librime@3fc56c4))
* **chord_composer:** commit raw input with uppercase letters ([cc983d5](rime/librime@cc983d5))
* **CMakeLists.txt:** ensure paths in pkgconfig file are absolute ([0e96e51](rime/librime@0e96e51))
* **CMakeLists.txt:** would not use signals v1 due to a typo ([6662a28](rime/librime@6662a28)), closes [#225](rime/librime#225)
* **custom_settings:** accept "*.schema" as config id ([604da0b](rime/librime@604da0b))
* **dict:** issues with user db recovery ([0f3d0df](rime/librime@0f3d0df))
* **dict_compiler:** build prism with loaded syllabary when not rebuilding primary table ([93fe827](rime/librime@93fe827))
* **plugins/CMakeLists.txt:** avoid rime_library linking to itself via rime_plugins_deps ([fe744db](rime/librime@fe744db))
* **rime_api.cc:** check struct has member of non-pointer type ([090dfa4](rime/librime@090dfa4))
* **rime_api.cc:** using unchecked fields introduced an ABI breakage ([62bbead](rime/librime@62bbead)), closes [/github.com/rime/librime/pull/328#pullrequestreview-335125464](https://github.com//github.com/rime/librime/pull/328/issues/pullrequestreview-335125464)
* **rime_test:** set data directories to working directory using rime::SetupDeployer API ([7c08a90](rime/librime@7c08a90))
* **simplifier:** opencc::DictEntry::Values() type change in opencc 1.1.0 ([beae5b1](rime/librime@beae5b1)), closes [#367](rime/librime#367)
* **user_db:** pointer cast error caused by multiple inheritance ([2ed780b](rime/librime@2ed780b))
* use official emoji 12.0 data ([#304](rime/librime#304)) ([75a60dc](rime/librime@75a60dc))


### Features

* **api:** implement capnproto api ([873f648](rime/librime@873f648))
* **api:** include candidate labels in proto message ([aae7a0c](rime/librime@aae7a0c))
* **charset_filter:** support charset options with emoji ([#293](rime/librime#293)) ([943c95b](rime/librime@943c95b))
* **charset_filter:** support CJK Unified Ideographs Extension G ([#393](rime/librime#393)) ([0a1573d](rime/librime@0a1573d))
* **chord_composer:** support chording with Shift keys ([94cf479](rime/librime@94cf479))
* **chord_composer:** use Control, Alt, Shift to input chord ([f3a2ad0](rime/librime@f3a2ad0))
* **dictionary:** packs extends the dictionary with extra binary table files ([930074c](rime/librime@930074c))
* **key_binder:** bind key to a key sequence ([3b5dbf6](rime/librime@3b5dbf6)), closes [#301](rime/librime#301)
* **logging:** setup min log level, log dir and set file mode to log files ([90839b0](rime/librime@90839b0))
* **selector:** support 4 combinations of horizontal/vertical text orientation and stacked/linear candidate list layout ([c498f71](rime/librime@c498f71))
* **selector:** support vertical UI ([dbb35c6](rime/librime@dbb35c6))
* **switcher:** enable schema in cases where conditions are met ([217c72b](rime/librime@217c72b))
* **tools/rime_proto_console:** demo for proto api ([d88ef9f](rime/librime@d88ef9f))


### Performance Improvements

* **poet:** optimize for performance in making sentences (~40% faster) ([0853465](rime/librime@0853465))



## [1.5.3](rime/librime@1.5.2...1.5.3) (2019-06-22)


### Bug Fixes

* **cmake, xcode.mk:** find optional dependency icu, while building xcode/release-with-icu target  [skip appveyor] ([17a80f8](rime/librime@17a80f8))
* **single_char_filter:** broken in librime 1.5.2 ([6948a62](rime/librime@6948a62))


### Features

* **appveyor:** build variant "rime-with-plugins" for tagged commits  [skip travis] ([eef8c30](rime/librime@eef8c30))
* **travis-ci:** build variant "rime-with-plugins" for tagged commits  [skip appveyor] ([cf11c27](rime/librime@cf11c27))
* **travis-ci:** deploy artifacts for macOS to GitHub releases  [skip appveyor] ([3f03784](rime/librime@3f03784))



## [1.5.2](rime/librime@1.5.1...1.5.2) (2019-06-17)


### Bug Fixes

* **user_dictionary, contextual_translation:** fix user phrase quality; order contextual suggestions by type ([69d5c32](rime/librime@69d5c32))



## [1.5.1](rime/librime@1.5.0...1.5.1) (2019-06-16)


### Bug Fixes

* **user_dictionary:** make user phrases comparable in weight to system words ([982f69d](rime/librime@982f69d))



# [1.5.0](rime/librime@1.4.0...1.5.0) (2019-06-06)


### Bug Fixes

* **ci:** update build script ([84a1a1b](rime/librime@84a1a1b))
* **ci:** use submodules in AppVeyor CI build script ([7b515b4](rime/librime@7b515b4))
* **cmake:** libboost Windows XP compatibility fix ([#270](rime/librime#270)) ([fecfe39](rime/librime@fecfe39)), closes [rime/weasel#337](rime/weasel#337)
* **CMakeLists.txt:** install header files in all platforms ([821d563](rime/librime@821d563))
* **CMakeLists.txt:** set "-std=c++11" in CMAKE_CXX_FLAGS ([5d8a836](rime/librime@5d8a836))
* **config/plugins.h:** memory leak caused by non-virtual destructor ([316a659](rime/librime@316a659)), closes [#259](rime/librime#259)
* **deploy:** treat schema dependencies as optional; do not report errors if missing ([ff3d5e9](rime/librime@ff3d5e9))
* **engine:** schema doesn't match the one used by switcher ([e41bb63](rime/librime@e41bb63)), closes [#269](rime/librime#269)
* **rime_levers_api.h:** customize_bool() misused `bool` type ([42bacc5](rime/librime@42bacc5))
* **syllabifier:** enable_completion not working ([2714131](rime/librime@2714131)), closes [#343](rime/librime#343)
* **table_translator:** null pointer exception when dict entries are filtered ([77438a9](rime/librime@77438a9))
* **test:** compile error in unit test ([7076d9e](rime/librime@7076d9e))
* **travis-install.sh:** working directory ([97220ce](rime/librime@97220ce))


### Features

* **appveyor:** install RIME_PLUGINS  [skip travis] ([c7ce66f](rime/librime@c7ce66f))
* **CMakeList.txt:** add plugin build support ([#257](rime/librime#257)) ([dfa341b](rime/librime@dfa341b))
* **contextual_translation:** weight and re-order phrases by context ([2390da3](rime/librime@2390da3))
* **dict:** specify vocabulary db name in dict settings ([dcdc301](rime/librime@dcdc301))
* **grammar:** compare homophones/homographs in sentence ([9248a6b](rime/librime@9248a6b))
* **install-plugins.sh:** git-clone or update plugins ([70483b4](rime/librime@70483b4))
* **poet:** find best sentence candidates ([b3f4005](rime/librime@b3f4005))
* **rime_api:** get candidate list from index ([c587900](rime/librime@c587900))
* **translator:** contextual suggestions in partially selected sentence ([12a7501](rime/librime@12a7501))
* **translator:** look at preceding text when making sentence ([6ae34de](rime/librime@6ae34de))
* **travis-ci:** install plugins specified in envvar RIME_PLUGINS ([c857639](rime/librime@c857639))


### Performance Improvements

* **dictionary:** refactor DictEntryIterator and do partial sort ([0258c7f](rime/librime@0258c7f))


### BREAKING CHANGES

* **rime_levers_api.h:** in signature of C API function `customize_bool()`,
change type `bool` to `Bool` (alias of `int`).

Impact: the changed function is not in use by any first party code,
known to be in use by osfans/trime.



# [1.4.0](rime/librime@1.3.2...1.4.0) (2019-01-16)


### Bug Fixes

* **config:** user_config should not fall back to shared data ([68c8a34](rime/librime@68c8a34)), closes [#271](rime/librime#271)
* **SymlinkingPrebuiltDictionaries:** remove dangling symlinks ([5ad333d](rime/librime@5ad333d)), closes [#241](rime/librime#241)
* **SymlinkingPrebuiltDictionaries:** remove dangling symlinks ([f8e4ebf](rime/librime@f8e4ebf)), closes [#241](rime/librime#241)


### Features

* spelling correction ([#228](rime/librime#228)) ([ad3638a](rime/librime@ad3638a))
* **Dockerfile:** for build ([#246](rime/librime#246)) ([cafd0d5](rime/librime@cafd0d5))



## [1.3.2](rime/librime@1.3.1...1.3.2) (2018-11-12)


### Bug Fixes

* **CMakeLists.txt:** do not link binaries when building static library ([99573e3](rime/librime@99573e3))
* **CMakeLists.txt:** do not require boost::signals, which will be deprecated in Boost 1.69 ([8a9ef3b](rime/librime@8a9ef3b)), closes [#225](rime/librime#225)
* **config_compiler:** ambiguous operator overload with cmake option ENABLE_LOGGING=OFF ([b86b647](rime/librime@b86b647)), closes [#211](rime/librime#211)
* **config_compiler:** support creating list in-place by __patch and __merge ([0784eb0](rime/librime@0784eb0))
* **table_translator:** enable encoding uniquified commit history ([74e31bc](rime/librime@74e31bc))


### Features

* **language:** shared user dictionary per language (Closes [#184](rime/librime#184)) ([#214](rime/librime#214)) ([9f774e7](rime/librime@9f774e7))
* always_show_comments option ([#220](rime/librime#220)) ([19cea07](rime/librime@19cea07))



## [1.3.1](rime/librime@1.3.0...1.3.1) (2018-04-01)


### Bug Fixes

* **config_file_update:** clean up deprecated user copy ([#193](rime/librime#193)) ([8d8d2e6](rime/librime@8d8d2e6))
* **thirdparty/src/leveldb:** do not link to snappy library ([6f6056a](rime/librime@6f6056a))



# 1.3.0 (2018-03-09)


### Bug Fixes

* **CMakeLists.txt, build.bat:** install header files (public API) ([06c9e86](rime/librime@06c9e86))
* **config_compiler:** "/" mistaken as path separator in merged map key ([#192](rime/librime#192)) ([831ffba](rime/librime@831ffba)), closes [#190](rime/librime#190)
* **ConfigFileUpdate:** no need to create user build if shared build is up-to-date ([cafd5c4](rime/librime@cafd5c4))
* **SchemaUpdate:** read compiled schema from shared build if there is no user build ([45a04dd](rime/librime@45a04dd))
* **simplifier:** fix typo ([9e1114e](rime/librime@9e1114e)), closes [#183](rime/librime#183)
* **user_db:** unwanted implicit instantiation of UserDbFormat template ([3cbc9cb](rime/librime@3cbc9cb)), closes [#188](rime/librime#188)


### Chores

* **release tag:** deprecating tag name prefix 'rime-' in favor of semver 'X.Y.Z'


### BREAKING CHANGES

* **release tag:** After 1.3.0 release, we'll no longer be creating tags in the format 'rime-X.Y.Z'. Downstream packagers please change automated scripts accordingly.



## 1.2.10 (2018-02-21)


### Bug Fixes

* **config_compiler:** linking failure on blocking root node of a dependency resource ([ecf3397](rime/librime@ecf3397))
* table_translator not making sentence if table entry is hidden by charset filter. ([77eb12e](rime/librime@77eb12e))
* **appveyor.install.bat:** switch to a more stable download server for libboost ([bcc4d10](rime/librime@bcc4d10))
* **appveyor.yml:** archive header files ([c8b1e67](rime/librime@c8b1e67))
* **ascii_composer:** support key binding Shift+space in ascii mode ([7077389](rime/librime@7077389))
* **build.bat:** fix build errors with VS2015 build tools ([ec940c6](rime/librime@ec940c6))
* **calculus, recognizer:** memory leak due to unchecked regex error ([19ddc1e](rime/librime@19ddc1e)), closes [#171](rime/librime#171)
* **chord_composer:** allow editor to define BackSpace key behavior ([7f41f65](rime/librime@7f41f65))
* **chord_composer:** letters with modifier keys should not be committed by a following enter key ([aab5eb8](rime/librime@aab5eb8))
* **ci:** call cmake under /usr/local with sudo by passing $PATH environment variable ([a0e6d2f](rime/librime@a0e6d2f))
* **cmake:** fix build break for mingw ([939893c](rime/librime@939893c))
* **config:** auto save modified config data; fixes [#144](rime/librime#144) ([2736f4b](rime/librime@2736f4b))
* **config:** treat "@" as map key rather than list index ([a1df9c5](rime/librime@a1df9c5))
* **config_compiler:** duplicate PendingChild dependencies happen from multiple commands on the same node ([25c28f8](rime/librime@25c28f8))
* **config_compiler:** enforce dependency priorities ([69a6f3e](rime/librime@69a6f3e))
* **config_compiler:** null value should not overwrite a normal key in a merged tree ([4ecae44](rime/librime@4ecae44))
* **config_compiler:** template operator overload had compile error with NDK ([71817a0](rime/librime@71817a0))
* **config/build_info_plugin:** referenced but unavailable resources should also be recorded ([cd46f7a](rime/librime@cd46f7a))
* **ConfigFileUpdate:** should succeed if shared copy does not exist ([8a3e25c](rime/librime@8a3e25c))
* **custom_settings:** fall back to $shared_data_dir/build when loading config ([caf8ebb](rime/librime@caf8ebb))
* **custom_settings:** load built settings from $user_data_dir/build directory ([463dc09](rime/librime@463dc09))
* **deployment_tasks:** symbols.yaml is no longer a build target ([f920e4f](rime/librime@f920e4f))
* **dict_compiler:** prism should load compiled schema ([c2fd0cf](rime/librime@c2fd0cf)), closes [#176](rime/librime#176)
* **key_event:** KeySequence::repr() prefer unescaped punctuation characters ([aa43e5e](rime/librime@aa43e5e))
* **levers:** update deployment tasks for copy-free resource resolution ([1f86413](rime/librime@1f86413))
* **Makefile:** make install-debug; do return error code on mac ([1177142](rime/librime@1177142))
* **rime_api:** use user_config_open() to access user.yaml ([4e4a491](rime/librime@4e4a491))
* **rime_console:** not showing switcher's context ([632cf4b](rime/librime@632cf4b))
* **schema:** create a "schema" component that opens Config by schema_id ([555f990](rime/librime@555f990))
* **simplifier:** fix crash if no opencc file ([091cb9d](rime/librime@091cb9d))
* **simplifier:** tips option for show_in_comment simplifier ([e7bb757](rime/librime@e7bb757))
* **uniquifier:** half of the duplicate candidates remain after dedup [Closes [#114](rime/librime#114)] ([2ab76bc](rime/librime@2ab76bc))


### Features

* **build.bat:** customize build settings via environment variables ([#178](rime/librime#178)) ([1678b75](rime/librime@1678b75))
* **chord_composer:** accept escaped chording keys ([79a32b2](rime/librime@79a32b2))
* **chord_composer:** support chording with function keys ([48424d3](rime/librime@48424d3))
* **config:** add config compiler plugin that includes default:/menu into schema ([b51dda8](rime/librime@b51dda8))
* **config:** best effort resolution for circurlar dependencies ([2e52d54](rime/librime@2e52d54))
* **config:** build config files if source files changed ([0d79712](rime/librime@0d79712))
* **config:** config compiler plugins that port legacy features to the new YAML syntax ([a7d253e](rime/librime@a7d253e))
* **config:** config_builder saves output to $rime_user_dir/build/ ([e596155](rime/librime@e596155))
* **config:** references to optional config resources, ending with "?" ([14ec858](rime/librime@14ec858))
* **config:** save __build_info in compiled config ([45a7337](rime/librime@45a7337))
* **config:** separate out config_builder and user_config components ([9e9493b](rime/librime@9e9493b))
* **config:** support append and merge syntax ([04dcf42](rime/librime@04dcf42))
* **customizer:** disable saving patched config files ([88f5a0c](rime/librime@88f5a0c))
* **detect_modifications:** quick test based on last write time of files ([285fbcc](rime/librime@285fbcc))
* **dict:** no conditional compilation on arm ([85b945f](rime/librime@85b945f))
* **dict:** relocate binary files to $user_data_dir/build ([bc66a47](rime/librime@bc66a47))
* **dict:** use resource resolver to find dictionary files ([8ea08b3](rime/librime@8ea08b3))
* add property notifier ([fa7b5a5](rime/librime@fa7b5a5))
* **resource_resolver:** add class and unit test ([03ee8b4](rime/librime@03ee8b4))
* **resource_resolver:** fallback root path ([02151da](rime/librime@02151da))
* **translator:** add history_translator ([#115](rime/librime#115)) ([ae13354](rime/librime@ae13354))



## 1.2.9 (2014-12-14)

* **rime_api.h:** add `RIME_MODULE_LIST`, `RIME_REGISTER_MODULE_GROUP`.
* **Makefile:** add make targets `thirdparty/*` to build individual libraries.
* **legacy/src/legacy_module.cc:** plugin module `rime-legacy` for GPL code,
  providing component `legacy_userdb` for user dictionary upgrade.
* **src/setup.cc:** define module groups `"default"` and `"deployer"`, to avoid
	naming a list of built-bin modules in `RimeTraits::modules`.
* **test/table_test.cc:** fix random segment faults when run shuffled.
* **thirdparty/src/leveldb:** new dependency LevelDB, replacing Kyoto Cabinet.
* **dict/level_db:** userdb implementation based on LevelDB, replacing treeDb.
* **dict/tree_db:** moved to `legacy/src/`.
* **dict/user_db:** refactored and modularized to ease adding implementations.
* **gear/cjk_minifier:** support CJK Extension E.
* **gear/memory:** save cached phrases as soon as the next composition begins.
* **gear/recognizer:** match space iff set `recognizer/use_space: true`.
* **gear/simplifier:** catch and log OpenCC exceptions when loading.
* **gear/single_char_filter:** bring single character candidates to the front.
* **gear/simplifier:** adapt to OpenCC 1.0 API.
* **thirdparty/src/opencc:** update OpenCC to v1.0.2 (incompatible with v0.4).
* **lever/deployment_tasks:** update and rename task `user_dict_upgrade`.



## 1.2 (2014-07-15)

* **rime_api:** add API functions to access complex structures in config;
  add API to get the raw input and cursor position, or to select a candidate.
* **config:** support references to list elements in key paths.
  eg. `schema_list/@0/schema` is the id of the first schema in schema list.
* **switcher:** enable folding IME options in the switcher menu.
* **dict_compiler:** also detect changes in essay when updating a dictionary;
  support updating prism without the source file of the dictionary.
* **preset_vocabulary:** load `essay.txt` instead of `essay.kct`.
* **reverse_lookup_dictionary:** adopt a new file format with 50% space saving.
* **table:** add support for a new binary format with 20% space saving;
  fix alignment on ARM.
* **ascii_composer:** do not toggle IME states when long pressing `Shift` key;
  support discarding unfinished input when switching to ASCII mode.
* **affix_segmentor:** fix issues with selecting a partial-match candidate.
* **chord_composer:** commit raw input composed with original key strokes.
* **cjk_minifier:** a filter to hide characters in CJK extension set, works
  with `script_translator`.
* **navigator:** do not use `BackSpace` to revert selecting a candidate but to
  edit the input after moving the cursor left or right.
* **punctuator:** support `ascii_punct` option for switching between Chinese and
  Western (ASCII) punctuations.
* **speller:** auto-select candidates by pattern matching against the code;
  fix issues to cooperate with punctuator.
* **CMakeLists.txt:** add options `ENABLE_LOGGING` and `BOOST_USE_CXX11`;
  introduce a new dependency: `libmarisa`.
* **cmake/FindYamlCpp.cmake:** check the availability of the new (v0.5) API.
* **sample:** the directory containing a sample plug-in module.
* **tools/rime_patch.cc:** a command line tool to create patches.
* **thirdparty:** include source code of third-party libraries to ease
  building librime on Windows and Mac.



## 1.1 (2013-12-26)

* **new build dependency:** compiler with C++11 support.
  tested with GCC 4.8.2, Apple LLVM version 5.0, MSVC 12 (2013).
* **encoder:** disable warnings for phrase encode failures in log output;
  limit the number of results in encoding a phrase with multiple solutions.
* **punctuator:** fixed a bug in matching nested "pairs of 'symbols'".
* **speller:** better support for auto-committing, allowing users of table
  based input schema to omit explicitly selecting candidates in many cases.
* **schema_list_translator:** option for static schema list order.
* **table_translator:** fixed the range of CJK-D in charset filter.
jperkin pushed a commit that referenced this pull request Mar 30, 2021
Packaging changes:
 - Some patches got upstreamed
 - Upstream now defaults to name=sc-im so it no longer needs to be set

Changes, (reformatted) from the official changelog:

New features:
 - New motions in edit mode: df cf F dF cF d0 d$ c0 c$ t T dt dT ct cT ^
   g_ d^ dg_ c^ cg_
 - Simple mouse support. Can handle selection of single cells and scroll.
 - Added markdown export.
 - Add custom colors with RGB definitions.
 - Add support for italic attribute to be appled to cells.
 - Added digraphs.
 - Added EXECUTE command.
 - Added --export_csv --export_tab --export_txt parameters.
 - New input_bar_bottom config variable.
 - New underline_grid config variable.
 - Added filename in status bar (filename_with_mode config variable).
 - Added option to truncate cells.
 - Added xlsx sheet parameter.
 - New @fact function.

Other:
 - modified config and history file locations
 - renamed winch to sig_winch.
 - current fg and bg colors are kept if they are not specified in
 :cellcolor.
 - OpenBSD support (mostly wordexp() workaround)
 - Correct lua api function names in doc
 - always generate backup file when opening file
 - renamed scim to sc-im in Makefile
 - Document trigger return value convention

Issues fixed:
 - fix bug when deleting an ent that for instance has a @sum()... it
   used to remove its vertex and THE ENTS LINKED to THEM!
 - fix error messages when using "scim --version" and color definitions
   are intented to be applied from .scimrc.
 - fix in waiting for valid command to complete after pressing ESC key.
 - fix in parse_str so a word with white space can be stored in
   dictionary value
 - fix when setting default_paste_from_clipboard_cmd
 - Don't clobber startup message w/ err opening file
 - Allow for lua scripts in local .sc directory #259
 - Send informational messages to stderr rather than the output when
   used in non-interactive mode   #263
 - fixed cell_negative color      #271
 - fixed locked cells when saving #261
 - fixed DEL key in insert mode   #272
 - fix when resizing column       #266
 - "Autobackup - case insensitive QER options when backup exists"
 - fixed segfault when fcopy'ing with no selection while on first column
 - Call write triggers on value clear
 - Use sc_info to report trigger exit code
 - fixed #277
 - Grow table up to MAXROWS exactly
 - Remove redundant if clause (God only knows where that was).
 - fix in getVertex that prevented rebuild_graph to work properly.
 - fix annoying bug because of not resetting inputline_pos to 0 when
   confirming a command in COMMAND_MODE
 - fix in let and slet. existing vertexs should not be removed.
 - added "eval_visited" in vertex struct for not to collide with
   current "visited", since:
     EvalAll uses EvalBottomUp
     EvalBottomUp uses EvalJustOneVertex
     EvalJustOneVertex uses eval
     eval uses GraphAddEdge
     GraphAddEdge uses GraphIsReachable
     GraphIsReachable uses visited
     and EvalBottomUp also uses uses visited!
 - Also changed markAllVerticesNotVisited and
   All_vertexs_of_edges_visited functions.
 - Some other issues fixed: #228, #234, #239, #240, #244, #246, #260,
   #295, #308
 - .. and many other fixes and improvements!

Pending:
  The most significative issue is regarding circular references.
  This have to be deeply analyzed and with the collaboration of the
  community
  it would be hopefully fixed by v0.9.
jperkin pushed a commit that referenced this pull request Jun 15, 2021
httpuv 1.6.1
============

* The `timegm()` function is a non-standard GNU extension, so it has
  been replaced with an internal `timegm2()` function. (#300)

httpuv 1.6.0
============

* Remove BH dependency. httpuv now requires a compiler which supports
  C++11. (#297)

httpuv 1.5.5
============

* Fix SHA1 calculation, and thus WebSocket server handshakes, on
  big-endian systems. (#284)

* Fixed #195: Responses required `headers` to be a named list. Now it
  can also be `NULL`, an empty unnamed list, or it can be
  unset. (#289)

* Allow responses to omit `body` (or set it as `NULL`) to avoid
  sending a body or setting the `Content-Length` header. This is
  intended for use with HTTP 204/304 responses. (#288)

httpuv 1.5.4
============

* Fixed #275: Large HTTP request headers could get truncated if they
  spanned more than one TCP message. (#277)

* Fixed build for Solaris. (#271)

* Fixed a test that had incorrect logic. (#272)

httpuv 1.5.3.1
==============

* Updated libuv to version 1.37.0. (#266)

* Fixed #204: On UBSAN builds of R, there were warnings about
  unaligned memory access. (#246)

* Avoid creating a new Rook error stream object for each request. This
  should improve performance. (#245)

* Resolved #247: httpuv no longer returns a HTTP 400 code for static
  files when the "Content-Length" header is 0. This Content-Length
  header is inserted by some proxies even for messages without
  payloads. (#248)

* Resolved #253: Setting the FRAMEWORK environment variable would
  break compilation.  This change removes any dependency on that
  variable. (#254)

httpuv 1.5.2
============

* In the static file-serving code path, httpuv previously looked for a
  `Connection: upgrade` header; if it found this header, it would not
  try to serve a static file, and it would instead forward the HTTP
  request to the R code path. However, some proxies are configured to
  always set this header, even when the connection is not actually
  meant to be upgraded. Now, instead of looking for a `Connection:
  upgrade` header, httpuv looks for the presence of an `Upgrade`
  header (with any value), and should be more robust to
  incorrectly-configured proxies. (#215)

* Fixed handling of messages without payloads: (#219)

* Fixed #224: Static file serving on Windows did not work correctly if
  it was from a path that contained non-ASCII characters. (#227)

* Resolved #194, #233: Added a `quiet` option to `startServer`, which
  suppresses startup error messages that are normally printed to
  console (and can't be intercepted with `capture.output()`). (#234)

* Added a new function `randomPort()`, which returns a random
  available port for listening on. (#234)

* Added a new (unexported) function `logLevel()`, for controlling
  debugging information that will be printed to the
  console. Previously, httpuv occasionally printed messages like
  `ERROR: [uv_write] broken pipe` and `ERROR: [uv_write] bad file
  descriptor` by default. This happened when the server tried to write
  to a pipe that was already closed, but the situation was not
  harmful, and was already being handled correctly. Now these messages
  are printed only if the log level is set to `INFO` or
  `DEBUG`. (#223)

* If an application's `$call()` method is missing, it will now give a
  404 response instead of a 500 response. (#237)

* Disallowed backslash in static path, to prevent path traversal attacks. (#235)

* Static file serving on Windows could fail if multiple requests
  accessed the same file simultaneously. (#239)
jperkin pushed a commit that referenced this pull request Jun 15, 2021
# version 0.7-1

* allow longer units grouping; #270 addressing #269 @bart1

* fix regression in `set_units` method for `mixed_units` to ensure that
  ordering is preserved; #272 addressing #271

# version 0.7-0

* add `load_units_xml` to enable database reloading as well as loading
  user-provided unit systems; #254 addressing #243, #244

* add `install_unit` and `remove_unit` for adding/removing custom user-defined
  symbols or names, with optional mapping to existing units;
  `install_symbolic_unit`, `remove_symbolic_unit`, `install_conversion_constant`,
  `install_conversion_offset` are deprecated; #261 addressing #89

* add `keep_units`, a helper to apply functions that do not preserve units;
  #255 addressing #252

* fix `as_units("")`, which is now equivalent to `unitless`; #199

* fix plot axes for `plot.formula` and `plot.data.frame`; #213

* fix arithmetic for powers above 1 and below -1; #264

* improve arithmetic of logarithms; #249

* export `ud_are_convertible`; #263 addressing #258 @cregouby

* remove deprecations: `as.units`, `as_cf`, `make_unit`, `parse_unit`; #259

* remove deprecated pre-computed `ud_units` database; #259

# version 0.6-7

* port `isFALSE` to fix regression in old R versions; #230 addressing #229

* fix replacement operation for `units` objects; #233 addressing #232

* fix compatibility with dplyr 1.0; #247 addressing #239

# version 0.6-6

* prettier `str` print for units and mixed units; #228 addressing #227

* add compatibility with upcoming tibble v3.0.0; #225
jperkin pushed a commit that referenced this pull request Jul 1, 2021
Changes since v3.18:

- Fixes a variable-font interpolation bug with Roman numeral eight. #382
- Fixes spacing of the latin epsilon glyph thanks to @hcsch. #377
- Adds new glyph U+25AA "blackSmallSquare" including calt mappings for
  case sensitivity. #373
- Removes U+20E3 "uni20E3" COMBINING ENCLOSING KEYCAP which triggers a
  bug in chromium, causing certain emoji to not render properly. #371
- Improvements to Roman numerals

Changes since v3.17:

- Adjusts vertical metrics metadata to that of v3.15 and older. This
  should fix any vertical alignment issues that might have occurred with
  v3.17. #361
- Fixes several issues with italics introduced by Glyphs 3 upgrade:
- Fixes an issue with backslash in Italic masters. #362
- Fixes issues with afii10026 and uni0376 in italic masters
- Fixes issue with italic q U+0071 by inlining the shape instead of
  using components. #360
- Fixes issue with U+035E COMBINING DOUBLE MACRON and U+20F0 COMBINING
  ASTERISK ABOVE in Thin Italic. #363
- Fixes positioning issue with U+0358 COMBINING DOT ABOVE RIGHT
- Improvements to U+20DC COMBINING FOUR DOTS ABOVE and U+20DB COMBINING
  THREE DOTS ABOVE
- Improvements to U+204E LOW ASTERISK
- Improved positioning via mark anchors of combining glyphs U+20F0,
  U+035E and U+035F. #363
- Changes glyph shape of Latin upper-case iota. #359
- Improved glyph composition via ccmp for enclosed glyphs like
  U+0041,U+20DD. #335

Changes since v3.15:

- Fixes issues with appearance in Microsoft Word. #352 (note that #156
  is still unresolved although we have made some progress in v3.16 toward
  developing workarounds for certain printers.)
- Fixes double grave interpolation issue. #317
- Fixes design issue with glyphs acutedblnosp, dblgravecmb, uni02F6 and
  uni02F5. #339
- Fixes missing or incorrect mark anchors in several turn* glyphs. #336
- Adds Baht currency glyph U+0E3F. #323
- Improvement to Latin iota (lower and upper case) glyphs. #340
- Improvement to some numerical fraction glyphs
- Adds a dummy DSIG table to address issues with Microsoft Office 2003
  and older
- Improvements when using Inter with certain older Microsoft products
  by decomposing any nested components which some of that software has
  issues with
- Addresses a major regression in v3.16 where several italic glyphs got
  messed up due to a Glyphs 3 version upgrade of the source file. This
  only affected users of v3.16 which was only released for about 12 hours
  before being replaced with this release v3.17. #360

Changes since v3.14:

- Fixes an issue with the variable font, where some software would not
  list the various weights correctly. #308
- Fixes an issue with rendering on Windows with ClearType where some
  glyphs using advanced OpenType features (component transformations)
  would render incorrectly, with a slight vertical offset. #251
- Improvements to Elfdalian, improving the /yogonek and /eth glyphs #285
- Improvements to /eth U+00F0 glyph f7924a2#commitcomment-41610142

Changes since v3.13:

- Fixes position of ring at bottom of /Aringbelow U+1E00. #266
- Fixes interpolation issues with /omegatitlocyrillic /omega and
  /pisymbolgreek. #272
- Fixes an issue with /dotmacroncomb.cn used by glyphs like
  /Adotmacron. #298
- Adds /bitcoin glyph U+20BF. #284
- Adds /insertionsymbol U+2380. #290
- Adds specialized glyphs /Aringogonek, /aringogonek, /Yogonek and
  /yogonek to fully support Elfdalian script. #285
- Adds U+EE01, a vertically-centered colon used by Android on the lock
  screen #212
- Improves kerning of /quotedblright,/quoteright and /period,/comma. #299
- Improves design of "Theta" U+03F4, U+0398 and "Fita" U+0472,
  U+0473. #263, #264
- Improves design of /yhook and use /ucyrillic in /Ukcyrillic
  /ukcyrillic. #273
- Improves design of /dzaltone and /dzcurl. #268
- Improves design of /percent, /perthousand and /pertenthousand
  glyphs. #237
- Improves variable-font metadata (STAT table). #265
- Improves (tunes) calt case substitutions, e.g. "x -X". #251
- Changes codepoint mapping of /q.sups from U+146B to private-area
  U+E163. #275

Changes since v3.12:

- Improvements to Greek and Cyrillic glyphs #240
- New stylistic set ss04 which is almost identical to ss02 with the
  exception of no slashed zero #252
- Fixes interpolation issues with several diacritics in the light
  weights #257
- Removes codepoint mappings for some math-related enclosed glyphs that
  would be too large when using the circle-enclosed glyphs #250
- Various improvements and adjustments to glyph shapes, spacing and
  kerning
- Improves OpenType feature name metadata

Changes since v3.11:

- This release includes major improvements Thin, Light and ExtraLight
  styles (including italic counterparts) incorporating months of work
  by @KatjaSchimmel
jperkin pushed a commit that referenced this pull request Sep 8, 2021
jperkin pushed a commit that referenced this pull request Jan 27, 2022
v4.10.1
=======

* #361: Avoid potential REDoS in ``EntryPoint.pattern``.

v4.10.0
=======

* #354: Removed ``Distribution._local`` factory. This
  functionality was created as a demonstration of the
  possible implementation. Now, the
  `pep517 <https://pypi.org/project/pep517>`_ package
  provides this functionality directly through
  `pep517.meta.load <https://github.com/pypa/pep517/blob/a942316305395f8f757f210e2b16f738af73f8b8/pep517/meta.py#L63-L73>`_.

v4.9.0
======

* Require Python 3.7 or later.

v4.8.3
======

* #357: Fixed requirement generation from egg-info when a
  URL requirement is given.

v4.8.2
======

v2.1.2
======

* #353: Fixed discovery of distributions when path is empty.

v4.8.1
======

* #348: Restored support for ``EntryPoint`` access by item,
  deprecating support in the process. Users are advised
  to use direct member access instead of item-based access::

  - ep[0] -> ep.name
  - ep[1] -> ep.value
  - ep[2] -> ep.group
  - ep[:] -> ep.name, ep.value, ep.group

v4.8.0
======

* #337: Rewrote ``EntryPoint`` as a simple class, still
  immutable and still with the attributes, but without any
  expectation for ``namedtuple`` functionality such as
  ``_asdict``.

v4.7.1
======

* #344: Fixed regression in ``packages_distributions`` when
  neither top-level.txt nor a files manifest is present.

v4.7.0
======

* #330: In ``packages_distributions``, now infer top-level
  names from ``.files()`` when a ``top-level.txt``
  (Setuptools-specific metadata) is not present.

v4.6.4
======

* #334: Correct ``SimplePath`` protocol to match ``pathlib``
  protocol for ``__truediv__``.

v4.6.3
======

* Moved workaround for #327 to ``_compat`` module.

v4.6.2
======

* bpo-44784: Avoid errors in test suite when
  DeprecationWarnings are treated as errors.

v4.6.1
======

* #327: Deprecation warnings now honor call stack variance
  on PyPy.

v4.6.0
======

* #326: Performance tests now rely on
  `pytest-perf <https://pypi.org/project/pytest-perf>`_.
  To disable these tests, which require network access
  and a git checkout, pass ``-p no:perf`` to pytest.

v4.5.0
======

* #319: Remove ``SelectableGroups`` deprecation exception
  for flake8.

v4.4.0
======

* #300: Restore compatibility in the result from
  ``Distribution.entry_points`` (``EntryPoints``) to honor
  expectations in older implementations and issuing
  deprecation warnings for these cases:

  - ``EntryPoints`` objects are once again mutable, allowing
    for ``sort()`` and other list-based mutation operations.
    Avoid deprecation warnings by casting to a
    mutable sequence (e.g.
    ``list(dist.entry_points).sort()``).

  - ``EntryPoints`` results once again allow
    for access by index. To avoid deprecation warnings,
    cast the result to a Sequence first
    (e.g. ``tuple(dist.entry_points)[0]``).

v4.3.1
======

* #320: Fix issue where normalized name for eggs was
  incorrectly solicited, leading to metadata being
  unavailable for eggs.

v4.3.0
======

* #317: De-duplication of distributions no longer requires
  loading the full metadata for ``PathDistribution`` objects,
  entry point loading performance by ~10x.

v4.2.0
======

* Prefer f-strings to ``.format`` calls.

v4.1.0
======

* #312: Add support for metadata 2.2 (``Dynamic`` field).

* #315: Add ``SimplePath`` protocol for interface clarity
  in ``PathDistribution``.

v4.0.1
======

* #306: Clearer guidance about compatibility in readme.

v4.0.0
======

* #304: ``PackageMetadata`` as returned by ``metadata()``
  and ``Distribution.metadata()`` now provides normalized
  metadata honoring PEP 566:

  - If a long description is provided in the payload of the
    RFC 822 value, it can be retrieved as the ``Description``
    field.
  - Any multi-line values in the metadata will be returned as
    such.
  - For any multi-line values, line continuation characters
    are removed. This backward-incompatible change means
    that any projects relying on the RFC 822 line continuation
    characters being present must be tolerant to them having
    been removed.
  - Add a ``json`` property that provides the metadata
    converted to a JSON-compatible form per PEP 566.


v3.10.1
=======

* Minor tweaks from CPython.

v3.10.0
=======

* #295: Internal refactoring to unify section parsing logic.

v3.9.1
======

* #296: Exclude 'prepare' package.
* #297: Fix ValueError when entry points contains comments.

v3.9.0
======

* Use of Mapping (dict) interfaces on ``SelectableGroups``
  is now flagged as deprecated. Instead, users are advised
  to use the select interface for future compatibility.

  Suppress the warning with this filter:
  ``ignore:SelectableGroups dict interface``.

  Or with this invocation in the Python environment:
  ``warnings.filterwarnings('ignore', 'SelectableGroups dict interface')``.

  Preferably, switch to the ``select`` interface introduced
  in 3.7.0. See the
  `entry points documentation <https://importlib-metadata.readthedocs.io/en/latest/using.html#entry-points>`_ and changelog for the 3.6
  release below for more detail.

  For some use-cases, especially those that rely on
  ``importlib.metadata`` in Python 3.8 and 3.9 or
  those relying on older ``importlib_metadata`` (especially
  on Python 3.5 and earlier),
  `backports.entry_points_selectable <https://pypi.org/project/backports.entry_points_selectable>`_
  was created to ease the transition. Please have a look
  at that project if simply relying on importlib_metadata 3.6+
  is not straightforward. Background in #298.

* #283: Entry point parsing no longer relies on ConfigParser
  and instead uses a custom, one-pass parser to load the
  config, resulting in a ~20% performance improvement when
  loading entry points.

v3.8.2
======

* #293: Re-enabled lazy evaluation of path lookup through
  a FreezableDefaultDict.

v3.8.1
======

* #293: Workaround for error in distribution search.

v3.8.0
======

* #290: Add mtime-based caching for ``FastPath`` and its
  lookups, dramatically increasing performance for repeated
  distribution lookups.

v3.7.3
======

* Docs enhancements and cleanup following review in
  `GH-24782 <https://github.com/python/cpython/pull/24782>`_.

v3.7.2
======

* Cleaned up cruft in entry_points docstring.

v3.7.1
======

* Internal refactoring to facilitate ``entry_points() -> dict``
  deprecation.

v3.7.0
======

* #131: Added ``packages_distributions`` to conveniently
  resolve a top-level package or module to its distribution(s).

v3.6.0
======

* #284: Introduces new ``EntryPoints`` object, a tuple of
  ``EntryPoint`` objects but with convenience properties for
  selecting and inspecting the results:

  - ``.select()`` accepts ``group`` or ``name`` keyword
    parameters and returns a new ``EntryPoints`` tuple
    with only those that match the selection.
  - ``.groups`` property presents all of the group names.
  - ``.names`` property presents the names of the entry points.
  - Item access (e.g. ``eps[name]``) retrieves a single
    entry point by name.

  ``entry_points`` now accepts "selection parameters",
  same as ``EntryPoint.select()``.

  ``entry_points()`` now provides a future-compatible
  ``SelectableGroups`` object that supplies the above interface
  (except item access) but remains a dict for compatibility.

  In the future, ``entry_points()`` will return an
  ``EntryPoints`` object for all entry points.

  If passing selection parameters to ``entry_points``, the
  future behavior is invoked and an ``EntryPoints`` is the
  result.

* #284: Construction of entry points using
  ``dict([EntryPoint, ...])`` is now deprecated and raises
  an appropriate DeprecationWarning and will be removed in
  a future version.

* #300: ``Distribution.entry_points`` now presents as an
  ``EntryPoints`` object and access by index is no longer
  allowed. If access by index is required, cast to a sequence
  first.

v3.5.0
======

* #280: ``entry_points`` now only returns entry points for
  unique distributions (by name).

v3.4.0
======

* #10: Project now declares itself as being typed.
* #272: Additional performance enhancements to distribution
  discovery.
* #111: For PyPA projects, add test ensuring that
  ``MetadataPathFinder._search_paths`` honors the needed
  interface. Method is still private.

v3.3.0
======

* #265: ``EntryPoint`` objects now expose a ``.dist`` object
  referencing the ``Distribution`` when constructed from a
  Distribution.

v3.2.0
======

* The object returned by ``metadata()`` now has a
  formally-defined protocol called ``PackageMetadata``
  with declared support for the ``.get_all()`` method.
  Fixes #126.

v3.1.1
======

v2.1.1
======

* #261: Restored compatibility for package discovery for
  metadata without version in the name and for legacy
  eggs.

v3.1.0
======

* Merge with 2.1.0.

v2.1.0
======

* #253: When querying for package metadata, the lookup
  now honors
  `package normalization rules <https://packaging.python.org/specifications/recording-installed-packages/>`_.

v3.0.0
======

* Require Python 3.6 or later.
jperkin pushed a commit that referenced this pull request Feb 1, 2022
6.36.1 - 2022-01-31

This patch fixes some deprecation warnings from pytest 7.0, along with
some code formatting and docs updates.

6.36.0 - 2022-01-19

This release disallows using typing.Final with from_type() and
register_type_strategy().

Why? Because Final can only be used during class definition. We don’t
generate class attributes.

It also does not make sense as a runtime type on its own.

6.35.1 - 2022-01-17

This patch fixes hypothesis write output highlighting with rich
version 12.0 and later.

6.35.0 - 2022-01-08

This release disallows using typing.ClassVar with from_type() and
register_type_strategy().

Why? Because ClassVar can only be used during class definition. We
don’t generate class attributes.

It also does not make sense as a runtime type on its own.

6.34.2 - 2022-01-05

This patch updates our vendored list of top-level domains, which is
used by the provisional domains() strategy.

6.34.1 - 2021-12-31

This patch fixes issue #3169, an extremely rare bug which would
trigger if an internal least-recently-reused cache dropped a newly
added entry immediately after it was added.

6.34.0 - 2021-12-31

This release fixes issue #3133 and issue #3144, where attempting to
generate Pandas series of lists or sets would fail with confusing
errors if you did not specify dtype=object.

6.33.0 - 2021-12-30

This release disallows using typing.TypeAlias with from_type() and
register_type_strategy().

Why? Because TypeAlias is not really a type, it is a tag for type
checkers that some expression is a type alias, not something else.

It does not make sense for Hypothesis to resolve it as a
strategy. References issue #2978.

6.32.1 - 2021-12-23

This patch updates our autoformatting tools, improving our code style
without any API changes.

6.32.0 - 2021-12-23

This release drops support for Python 3.6, which reached end of life
upstream on 2021-12-23.

6.31.6 - 2021-12-15

This patch adds a temporary hook for a downstream tool, which is not
part of the public API.

6.31.5 - 2021-12-14

This release updates our copyright headers to use a general authorship
statement and omit the year.

6.31.4 - 2021-12-11

This patch makes the .example() method more representative of
test-time data generation, albeit often at a substantial cost to
readability (issue #3182).

6.31.3 - 2021-12-10

This patch improves annotations on some of Hypothesis’ internal
functions, in order to deobfuscate the signatures of some
strategies. In particular, strategies shared between
hypothesis.extra.numpy and the hypothesis.extra.array_api extra will
benefit from this patch.

6.31.2 - 2021-12-10

This patch fix invariants display in stateful falsifying examples
(issue #3185).

6.31.1 - 2021-12-10

This patch updates xps.indices() so no flat indices are generated,
i.e. generated indices will now always explicitly cover each axes of
an array if no ellipsis is present. This is to be consistent with a
specification change that dropped support for flat indexing (#272).

6.31.0 - 2021-12-09

This release makes us compatible with Django 4.0, in particular by
adding support for use of zoneinfo timezones (though we respect the
new USE_DEPRECATED_PYTZ setting if you need it).

6.30.1 - 2021-12-05

This patch updates our vendored list of top-level domains, which is
used by the provisional domains() strategy.

6.30.0 - 2021-12-03

This release adds an allow_subnormal argument to the floats()
strategy, which can explicitly toggle the generation of subnormal
floats (issue #3155). Disabling such generation is useful when testing
flush-to-zero builds of libraries.

nps.from_dtype() and xps.from_dtype() can also accept the
allow_subnormal argument, and xps.from_dtype() or xps.arrays() will
disable subnormals by default if the array module xp is detected to
flush-to-zero (like is typical with CuPy).
jperkin pushed a commit that referenced this pull request Oct 6, 2022
v1.6.0 (2022-10-02)

It's been 9 months since the last release already! This is not a huge update
feature-wise, but it still contains a few nice new improvements and a few
bugfixes, contributed by 11 different people. The most important new feature
is probably the option to override the cache directory through the config file.
The TEALDEER_CACHE_DIR env variable is now deprecated.

A note to packagers: Shell completions have been moved to the
completion/ subdirectory! Packaging scripst might need to be updated.

Changes:
 [added] Allow overriding cache directory through config (#276)
 [added] Add --no-auto-update CLI flag (#257)
 [added] Show note about auto-updates when cache is missing (#254)
 [added] Add support for android platform (#274)
 [added] Add custom pages to list output (#285)
 [fixed] Cache: Return error if HTTP client cannot be created (#247)
 [fixed] Handle cache download errors (#253)
 [fixed] Do not page output of tldr --update (#231)
 [fixed] Create macOS release builds with bundled root certificates (#272)
 [fixed] Clean up and fix shell completions (#262)
 [deprecated] The TEALDEER_CACHE_DIR env variable is now deprecated (#276)
 [removed] The --config-path command was removed, use --show-paths instead (#290)
 [removed] The -o/--os command was removed, use -p/--platform instead (#290)
 [removed] The -m/--markdown command was removed, use -r/--raw instead (#290)
 [chore] Move shell completion scripts to their own directory (#259)
 [chore] Update dependencies (#271, #287, #291)
 [chore] Use anyhow for error handling (#249)
 [chore] Switch to Rust 2021 edition (#284)
jperkin pushed a commit that referenced this pull request Jun 2, 2023
# pillar 1.9.0

## Features

- Math operations on `num()` objects no longer perform type
  checks. This allows, e.g., multiplying a `num()` with a logical
  (#630, #632).

## Printing

- The Default For The `Pillar.Min_Title_Chars` Option Has been bumped
  up to 20 characters so that title truncuation only affects very long
  variables. Use `options(pillar.min_title_chars = 5)` to reset to the
  previous default (#582, #620).

- Use info bullets to format details (#582, #617, #627, #635).

## Breaking changes

- `colonnade()`, `extra_cols()` and `squeeze()` are now
  hard-deprecated (#272, #374, #631).

## Bug fixes

- Show `colnames()` hint only when needed (tidyverse/tibble#1488, #622).

- Fix printing of very small numbers (#615, #619).

- Shortened list columns are also shown with a subtle style (#628, #634).

- Avoid warning with S4 character classes (tidyverse/tibble#1367, #625).

- Fix method consistency, checked by R-devel (#633).

## Documentation

- Polish `?pillar_options` (#583).

- Fix typo & missing quote in digits vignette stub (@gavinsimpson, #629).

## Internal

- Require vctrs >= 0.5.0
jperkin pushed a commit that referenced this pull request Jun 8, 2023
## 3.0.0 - 2023-06-03

⚠️ This release contains some minor breaking changes in the internal API and improvements to the parsing strictness.

**Full Changelog**: <executablebooks/markdown-it-py@v2.2.0...v3.0.0>

### ⬆️ UPGRADE: Drop support for Python 3.7

Also add testing for Python 3.11

### ⬆️ UPGRADE: Update from upstream markdown-it `12.2.0` to `13.0.0`

A key change is the addition of a new `Token` type, `text_special`, which is used to represent HTML entities and backslash escaped characters.
This ensures that (core) typographic transformation rules are not incorrectly applied to these texts.
The final core rule is now the new `text_join` rule, which joins adjacent `text`/`text_special` tokens,
and so no `text_special` tokens should be present in the final token stream.
Any custom typographic rules should be inserted before `text_join`.

A new `linkify` rule has also been added to the inline chain, which will linkify full URLs (e.g. `https://example.com`),
and fixes collision of emphasis and linkifier (so `http://example.org/foo._bar_-_baz` is now a single link, not emphasized).
Emails and fuzzy links are not affected by this.

* ♻️ Refactor backslash escape logic, add `text_special` [#276](executablebooks/markdown-it-py#276)
* ♻️ Parse entities to `text_special` token [#280](executablebooks/markdown-it-py#280)
* ♻️ Refactor: Add linkifier rule to inline chain for full links [#279](executablebooks/markdown-it-py#279)
* ‼️ Remove `(p)` => `§` replacement in typographer [#281](executablebooks/markdown-it-py#281)
* ‼️ Remove unused `silent` arg in `ParserBlock.tokenize` [#284](executablebooks/markdown-it-py#284)
* 🐛 FIX: numeric character reference passing [#272](executablebooks/markdown-it-py#272)
* 🐛 Fix: tab preventing paragraph continuation in lists [#274](executablebooks/markdown-it-py#274)
* 👌 Improve nested emphasis parsing [#273](executablebooks/markdown-it-py#273)
* 👌 fix possible ReDOS in newline rule [#275](executablebooks/markdown-it-py#275)
* 👌 Improve performance of `skipSpaces`/`skipChars` [#271](executablebooks/markdown-it-py#271)
* 👌 Show text of `text_special` in `tree.pretty` [#282](executablebooks/markdown-it-py#282)

### ♻️ REFACTOR: Replace most character code use with strings

The use of `StateBase.srcCharCode` is deprecated (with backward-compatibility), and all core uses are replaced by `StateBase.src`.

Conversion of source string characters to an integer representing the Unicode character is prevalent in the upstream JavaScript implementation, to improve performance.
However, it is unnecessary in Python and leads to harder to read code and performance deprecations (during the conversion in the `StateBase` initialisation).

See [#270](executablebooks/markdown-it-py#270), thanks to [@hukkinj1](https://github.com/hukkinj1).

### ♻️ Centralise indented code block tests

For CommonMark, the presence of indented code blocks prevent any other block element from having an indent of greater than 4 spaces.
Certain Markdown flavors and derivatives, such as mdx and djot, disable these code blocks though, since it is more common to use code fences and/or arbitrary indenting is desirable.
Previously, disabling code blocks did not remove the indent limitation, since most block elements had the 3 space limitation hard-coded.
This change centralised the logic of applying this limitation (in `StateBlock.is_code_block`), and only applies it when indented code blocks are enabled.

This allows for e.g.

```md
<div>
  <div>

    I can indent as much as I want here.

  <div>
<div>
```

See [#260](executablebooks/markdown-it-py#260)

### 🔧 Maintenance changes

Strict type annotation checking has been applied to the whole code base,
[ruff](https://github.com/charliermarsh/ruff) is now used for linting,
and fuzzing tests have been added to the CI, to integrate with Google [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/markdown-it-py) testing, thanks to [@DavidKorczynski](https://github.com/DavidKorczynski).

* 🔧 MAINTAIN: Make type checking strict [#](executablebooks/markdown-it-py#267)
* 🔧 Add typing of rule functions [#283](executablebooks/markdown-it-py#283)
* 🔧 Move linting from flake8 to ruff [#268](executablebooks/markdown-it-py#268)
* 🧪 CI: Add fuzzing workflow for PRs [#262](executablebooks/markdown-it-py#262)
* 🔧 Add tox env for fuzz testcase run [#263](executablebooks/markdown-it-py#263)
* 🧪 Add OSS-Fuzz set up by @DavidKorczynski in [#255](executablebooks/markdown-it-py#255)
* 🧪 Fix fuzzing test failures [#254](executablebooks/markdown-it-py#254)
jperkin pushed a commit that referenced this pull request Jun 30, 2023
40.0 (2023-06-16)
-----------------

* Add CLI option to render package README. (#271)
* Adapt tests to pygments 2.14.0 (#272)
* Update release process to use Trusted Publishing (#276)
* Replace usage of deprecated `pkg_resources` with `importlib.metadata` (#281)
* Drop support for Python 3.7 (#282), Test against Python 3.11 (#280)
jperkin pushed a commit that referenced this pull request Aug 19, 2023
Upstream's changelog:

Version 1.2.3 (released 04-Jan-2023)

  * security fix: escape revision view copy paths (#311) [CVE-2023-22464]

Version 1.2.2 (released 03-Jan-2023)

  * security fix: escape revision view changed paths (#311) [CVE-2023-22456]
  * standalone.py defaults to UTF-8 output now, too
  * fix viewvc-install error handling bug
  * fix a problem on CVS checkout files with rcsparse (#272)
jperkin pushed a commit that referenced this pull request Oct 1, 2023
1.3.1 - 2023-09-30
⛰️ Features
 - (args) Support tilde for options (#266) - (8698bc2)
 - (ci) Distribute RPM package (#159) - (baf4da8)

🐛 Bug Fixes
 - (ci) Update cargo-tarpaulin arguments - (83a0371)

🚜 Refactor
 - (ci) Simplify cargo-tarpaulin installation - (95f8d53)

📚 Documentation
 - (installation) Update instructions for Arch Linux - (291a928)
 - (installation) Add instructions for Alpine Linux - (3199bba)
 - (license) Re-license under the MIT + Apache 2.0 license (#303) - (cd56344)
 - Update Tera links to the new URL (#272) - (890de00)

⚙️ Miscellaneous Tasks
 - Remove GPL code (#293) - (e3606ba)

◀️ Revert
 - (args) Update clap and clap extras to v4 (#137) (#292) - (fb4c733)
jperkin pushed a commit that referenced this pull request Oct 23, 2023
This is the biggest update ever, with 36 new features, 24 bug fixes,
and 3 performance improvements.

Thank you to every contributor for making Yazi better and better!
What's Changed

    feat: add Mintty (Git Bash) image preview support by @sxyazi in #103
    refactor: use Url instead of PathBuf by @sxyazi in #107
    fix: mime of javascript by @XYenon in #106
    perf: load large folders in chunks by @sxyazi in #117
    fix: set cursor block after closing input prompt from insert mode
         by @auvred in #109
    fix: doesn't redirect the stderr of the clipboard command to null
         by @sxyazi in #119
    feat: suspend process (Ctrl-Z) by @sxyazi in #120
    fix: notification of file changes in linked directories by @sxyazi in #121
    feat: file size sorting under the simplified file system by @sxyazi in #123
    fix: show_hidden not properly applied to hovered folder by @sxyazi in #124
    fix: recognize symlink directories as files by @sxyazi in #125
    fix: respect symlink paths without canonicalizing them by @sxyazi in #126
    feat: make Input streamable by @sxyazi in #127
    perf: doesn't wait for the process of killing by @sxyazi in #128
    feat: find by @sxyazi in #104
    feat: tab-specific sorting by @sxyazi in #131
    feat: new V, D, C keybinding for Input component by @sxyazi in #139
    fix: swap description for search commands by @knutwalker in #141
    fix: image position calculation by @sxyazi in #144
    feat: support for image preview within tmux by @sxyazi in #147
    feat: show keywords when in search mode by @sxyazi in #152
    feat: fallback to built-in highlighting if jq is not installed
          by @ndtoan96 in #151
    feat: make the glob expr case insensitive by default, and prepend \s to
          make it sensitive by @sxyazi in #156
    fix: check relative path on expand_path by @sxyazi in #165
    feat: support for FreeBSD permission type by @yggdr in #169
    feat: multiple openers for a single rule by @Linus789 in #154
    fix: leave upwards only if an IO error occurs in current by @sxyazi in #172
    docs: add archlinuxcn installation guide by @Integral-Tech in #176
    fix: image preview not working on Zellij by @Eric-Song-Nop in #181
    feat: make trash optional by @sxyazi in #178
    fix: inconsistent Shift key behavior on Unix and Windows
         by @ndtoan96 in #174
    feat: new force option added for the remove command, which does not show
          the confirmation dialog on trashing/deleting by @sxyazi in #173
    fix: typo of LICENSE file by @conradojordan in #201
    feat: add flake.nix by @XYenon in #205
    feat: include ignored files on search when hidden files are shown
          by @PhotonQuantum in #212
    feat: new orphan option for opener rules, to keep the process running even
          when Yazi exited by @sxyazi in #216
    feat: scroll half/full page with arrow percentage supported, and new
          Vi-like <C-u>, <C-d>, <C-b>, and <C-f> keybindings added by
          @TD-Sky in #213
    feat: highlight matching words on finding by @PhotonQuantum in #211
    feat: add BackTab support by @sxyazi in #209
    fix: set stdio to null when orphan is true by @sxyazi in #229
    feat: new force option for creating and renaming by @sxyazi in #208
    feat: loop through to find by @ndtoan96 in #234
    feat: backward/forward by @ndtoan96 in #230
    perf: reimplement optimized natural sorting algorithm, speed up ~6 times
          for case-insensitive sorting by @sxyazi in #237
    chore: changing the finding key to n/N to keep with Vim's conventions
           by @sxyazi in #238
    feat: added new options to the `find' command for smart-case/
          case-insensitive finds by @ndtoan96 in #240
    feat: add new --no-cwd-file option to quit command for flexible cwd-file
          setting by @XOR-op in #245
    fix: avoid adding non-regular paths to backstack by @ndtoan96 in #249
    fix: support RGBA16 images by @sxyazi in #250
    feat: support trash for NetBSD by @sxyazi in #251
    feat: support environment variable in cd path by @ndtoan96 in #241
    feat: new theme system by @sxyazi in #161
    fix: cannot cd if there is whitespace in path by @ndtoan96 in #255
    fix: add application/x-wine-extension-ini to text mime by @ndtoan96 in #259
    fix: collect and fix all hard coded themes and color
         by @Eric-Song-Nop in #221
    fix: some colors not readable in light mode by @sxyazi in #264
    feat: better file hover state by @sxyazi in #269
    refactor: split commands into separate files by @sxyazi in #272
    feat: cancel selected items automatically on entering, leaving, copying, or
          cutting by @sxyazi in #273
    feat: add a new Bar component, and make border styles customizable
          by @sxyazi in #278
    fix: adapt another $TERM value of foot-extra for foot by @sxyazi in #277
    refactor: simplify building conditions by @sxyazi in #280
    chore: add git rev to nix pkg version by @XYenon in #206
    feat: new Manager component for better style extensions by @sxyazi in #284
    feat: cross-system opener rule support by @sxyazi in #289
    fix: delegate the SIGINT signal of processes with orphan=true to their
    parent by @sxyazi in #290
    feat: line mode by @sxyazi in #291
    feat: shell completions & auto releasing by @TD-Sky in #282
jperkin pushed a commit that referenced this pull request Nov 9, 2023
[1.0.0] - 2023-11-07

A quick note to any packages. The generated shell completions and man page are
now in the gen directory of the repo. They're also included in the pre-built
release artifacts on the releases page.

Improvements
 #115 Do not replace symlink with output file (@SimplyDanny)
      Fixes an issue where a symlink would be replaced with a regular file
 #124 Fix tests (@Linus789)
      Removed displaying the file path when passing the --preview flag and fixed how text coloring was handled in tests

Breaking
 #192 Rename --string-mode to --fixed-strings (@CosmicHorrorDev)
      Renamed -s --string-mode to -f --fixed-strings to better match similar
      tools
      -s and --string-mode will still continue to work for backwards
      compatibility, but are no longer documented
 #258 Error on $<num><non_num> capture replacement names (@CosmicHorrorDev)
      Previously when you tried to use a numbered capture group right before
      some letters in the replacement text (e.g. $1foo) then it would be
      considered the impossible-to-use 1foo capture. The correct way to pass
      the numbered capture group in this case would be to surround the number
      with curly braces like so ${1}foo. The error just detects this case and
      informs the user of the issue

Docs
 #93 Add note about in-place file modification to --help output (@jchook)
 #148 Doc: nitpick -- has no special meaning to shells (@hexagonrecursion)
 #181 Fix man page -f flag help text (@ulope)
      Fixed copy-pasted text in the man page's -f flag's help text
 #186 Improve error message for failed replacements (@CosmicHorrorDev)
 #187 Freshen up README (@CosmicHorrorDev)
      Added a repology badge to document different installation methods
      Improved the formatting of the benchmarks
 #207 Documenting $ escape (@yahkbar)
      Adds a section in the README that covers that $$ is a literal $ in the
      replacement text
 #227 Improve README readability (@vassudanagunta)
      Various formatting improvements
 #231 Use clap_mangen and roff to generate manpage (@nc7s)
      This change ensures the man page contents stay in sync with the CLI
      automatically, and fixes some broken rendering of the existing manpage
 #243 Exclude unsupported packages from the repology badge (@CosmicHorrorDev)

Pre-built Releases
 (11295fb) Add ARM target (@chmln)
           Added the arm-unknown-linux-gnueabihf target to CI and releases
 #114 Adding aarch64-apple-darwin target (@yahkbar)
 #143 Fix paths to release binary in "publish" action (@skrattaren)
 #179 Build Adjustments (@yahkbar)
      striped release binaries and added the aarch64-ubuntu-linux-musl target
 #204 Adding armv7-unknown-linux-gnueabihf target (@yahkbar)
      Added the armv7-unknown-linux-gnueabihf target to the list of targets to
      build in CI and for each release
 #205 Resolving broken aarch64-apple-darwin tests (@yahkbar)
      Switched aarch64-apple-darwin to only try building the executable without
      running the tests since there seems to be no easy way to test for ARM
      Apple targets
 #206 Adding Windows builds back (@yahkbar)
      Added the x86_64-pc-windows-gnu and x86_64-windows-musl targets back to
      the list of targets to build in CI and for each release

Internal
 #118 Fix master (@SimplyDanny)
      Fixes several cross-compilation issues that effected different targets
      in CI
 #182 cargo update (@CosmicHorrorDev)
      Bumps dependencies to their latest compatible versions
 #183 Switch memmap -> memmap2 (@CosmicHorrorDev)
      Switches away from an unmaintained crate
 #184 Add editor config file matching rustfmt config (@CosmicHorrorDev)
      Adds an .editorconfig file matching the settings listed in the
      .rustfmt.toml file
 #185 Fix warnings and clippy lints (@CosmicHorrorDev)
 #188 Switch atty for is-terminal (@CosmicHorrorDev)
      Switches away from an unmaintained crate
 #189 Replace structopt with clap v4 (@CosmicHorrorDev)
      Switches away from a defacto deprecated crate
 #190 Change how all shell variants are expressed (@CosmicHorrorDev)
      Tiny tidying up PR
 #196 Move generating static assets to a cargo-xtask task (@CosmicHorrorDev)
      Moves the generation of the man page and shell completions from a build
      script to a cargo-xtask task
 #197 Add a release checklist (@CosmicHorrorDev)
 #209 Dependency updates (@yahkbar)
 #235 Update generated assets (@CosmicHorrorDev)
 #236 Tone down dependabot (@CosmicHorrorDev)
 #245 Update sd to 2021 edition (@CosmicHorrorDev)
      Updates sd to the Rust 2021 edition
 #248 Misc Cargo.toml tweaks (@CosmicHorrorDev)
      Switches to use workspace edition and dependencies where appropriate
 #249 Resolve CI warnings (@CosmicHorrorDev)
      Switched from actions-rs actions to dtolnay@rust-toolchain
      Switched from using ::set-output to $GITHUB_ENV
 #251 Update dependencies (@CosmicHorrorDev)
 A lot of sad CI tweaking:
      #252 Fix build target usage in CI (@CosmicHorrorDev)
      #253 Improve publishing CI job (@CosmicHorrorDev)
      #256 More CI tweaks (@CosmicHorrorDev)
      #257 Fix publish action (@CosmicHorrorDev)
 #267 Rework the replacements flag (@CosmicHorrorDev)
 #269 Make modified text blue instead of green (@CosmicHorrorDev)
 #271 Fix release checklist indentation (@CosmicHorrorDev)
 #272 Remove outdated release checklist step (@CosmicHorrorDev)
 #274 Prepare 1.0.0-beta.0 release (@CosmicHorrorDev)
 #275 Update sd version in lockfile (@CosmicHorrorDev)
jperkin pushed a commit that referenced this pull request Dec 4, 2023
Highlights
v0.16.0 is a big release with some new features:

 - CLI now doesn't require a running instance to handle commands (#290)
 - add file cache support for user's data (liked tracks, saved albums, followed
   artists, etc) (#306)
 - add support for opening a Spotify link from clipboard (#307)

What's Changed
 - Add Scoop installation instruction to Readme by @rashil2000 in #263
 - Improve lyrics lookup by removing remix & remaster info in query.
   by @Icelk in #266
 - Fix typos by @kianmeng in #267
 - fix: missing https for song links by @sjdonado in #269
 - map media control Pause and Resume to PlayerRequests by @SebRollen in #272
 - Allow shuffling context playback from CLI by @rudiejd in #275
 - add explicit tags to track information by @SebRollen in #276
 - Clamped progress bars to solve problems with -ve numbers
   by @whiskyplausible in #274
 - Miscellaneous refactor and improvement by @aome510 in #287
 - use track's id of linked_from if exists by @aome510 in #286
 - Support handling CLI commands without a running application instance
   by @aome510 in #290
 - Allow disabling notify when client is not streaming by @VenMolom in #298
 - support disabling notification from config by @aome510 in #303
 - bind C-z to AddSelectedItemToQueue by @aome510 in #304
 - Cache user's data into files (liked tracks, saved albums, followed artists,
   etc) by @aome510 in #306
 - Support open spotify link by @aome510 in #307
jperkin pushed a commit that referenced this pull request Jan 25, 2024
# glue 1.7.0

* If rlang is installed, glue will generate more informative errors if an
  interpolated expression either can't be parsed or fails to evaluate (#229).

* `+` now works in more situations, and gives errors when one side isn't a
  character vector. It no longer automatically applies glue interpolation to
  a non-glue input, if there is one. You'll need to do that yourself (#286).

* `glue_collapse(character())` (and hence `glue_sql_collapse(character())`) now
  return `""`, so that they always return a single string (#88).

* `glue_sql()` now collapses an empty vector to `""` not `"NULL"` (#272).

* `glue_sql()` now uses `DBI::dbQuoteLiteral()` for all object types. This
  should increase fidelity of escaping for different object types (#279).

* The "Speed of glue" vignette has been converted to an article, which allows
  several package to be removed from `Suggests` (and re-located to
  `Config/Needs/website`). The code got a light refresh, including a switch
  from microbenchmark to bench and more modern use of ggplot2.

* Add `$(C_VISIBILITY)` to compiler flags to hide internal symbols from the dll (#284 @lionel-).
jperkin pushed a commit that referenced this pull request Apr 3, 2024
0.10.0 - 2024-03-31
Added
    Added support for calculating and displaying jitter (#39)
    Added support for customizing columns (#757)
    Added support for reordering and toggling column visibility in Tui (#1026)
    Added support for dublin ECMP routing for IPv6/udp (#272)
    Added support for IPinfo flavoured mmdb files (#862)
    Added support for IPv4->IPv6 and IPv6->IPv4 DNS fallback modes (#864)
    Added TUN based simulation tests (#908)
    Added support for last src port (S) and last dest port (P) custom columns (#974)
    Added support for last sequence (Q) custom columns (#976)
    Added support for more named theme colors (#1011)

Changed
    Ensure paris and dublin ECMP strategy are only used with supported protocols (#848)
    Restrict flows to paris and dublin ECMP strategies (#1007)
    Improved Tui table column layout logic (#925)
    Use exclusive reference &mut for all Socket operations (#843)
    Reduced maximum sequence per round from 1024 to 512 (#1067)

Fixed
    Fixed off-by-one bug in max-rounds calculation (#906)
    Fixed panic with expand-hosts-max Tui command (#892)
    Fixed failure to parse generated config file on Windows (#958)
    Fixed tracer panic for icmp TimeExceeded "Fragment reassembly time exceeded" packets (#979)
    Fixed tracer not discarding unrelated icmp packets for udp and tcp protocols (#982)
    Fixed incorrect minimum packet size for IPv6 (#985)
    Fixed permission denied error reading configuration file from snap installation (#1058)
jperkin pushed a commit that referenced this pull request Jun 4, 2024
Tested only on netbsd/amd64, probably a regression for others, but newer VMs
don't work with old podman.
NOTE: if you have old config files, you will probably want to delete them.
Newer podman fails to read them.
I personally deleted my ~/.config/containers/podman

# Release Notes

## 5.0.3
### Security
- This release addresses CVE-2024-3727, a vulnerability in the containers/image library which allows attackers to trigger authenticated registry access on behalf of the victim user.

### Bugfixes
- Fixed a bug where `podman machine start` would fail if the machine had a volume with a long target path ([#22226](https://github.com/containers/podman/issues/22226)).
- Fixed a bug where `podman machine start` mounted volumes with paths that included dashes in the wrong location ([#22505](https://github.com/containers/podman/issues/22505)).

### Misc
- Updated Buildah to v1.35.4
- Updated the containers/common library to v0.58.3
- Updated the containers/image library to v5.30.1

## 5.0.2
### Bugfixes
- Fixed a bug that could leak IPAM entries when a network was removed ([#22034](https://github.com/containers/podman/issues/22034)).
- Fixed a bug that could cause the rootless network namespace to not be cleaned up on if an error occurred during setup resulting in errors relating to a missing resolv.conf being displayed ([#22168](https://github.com/containers/podman/issues/22168)).
- Fixed a bug where Podman would use rootless network namespace logic for nested containers ([#22218](https://github.com/containers/podman/issues/22218)).
- Fixed a bug where writing to volumes on a Mac could result in EACCESS failures when using the `:z` or `:Z` volume mount options on a directory with read only files ([#19852](https://github.com/containers/podman/issues/19852))

### API
- Fixed a bug in the Compat List endpoint for Networks which could result in a server crash due to concurrent writes to a map ([#22330](https://github.com/containers/podman/issues/22330)).

## 5.0.1
### Bugfixes
- Fixed a bug where rootless containers using the Pasta network driver did not properly handle localhost DNS resolvers on the host leading to DNS resolution issues ([#22044](https://github.com/containers/podman/issues/22044)).
- Fixed a bug where Podman would warn that cgroups v1 systems were no longer supported on FreeBSD hosts.
- Fixed a bug where HyperV `podman machine` VMs required an SSH client be installed on the system ([#22075](https://github.com/containers/podman/issues/22075)).
- Fixed a bug that prevented the remote Podman client's `podman build` command from working properly when connecting from a rootless client to a rootful server ([#22109](https://github.com/containers/podman/issues/22109)).

### Misc
- The HyperV driver to `podman machine` now fails immediately if admin privileges are not available (previously, it would only fail when it reached operations that required admin privileges).

## 5.0.0
### Security
- Fixed [CVE-2024-1753](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-1753) in Buildah and `podman build` which allowed a user to write files to the `/` directory of the host machine if selinux was not enabled.

### Features
- VMs created by `podman machine` can now use the native Apple hypervisor (`applehv`) when run on MacOS.
- A new command has been added, `podman machine reset`, which will remove all existing `podman machine` VMs and relevant configurations.
- The `podman manifest add` command now supports a new `--artifact` option to add OCI artifacts to a manifest list.
- The `podman create`, `podman run`, and `podman push` commands now support the `--retry` and `--retry-delay` options to configure retries for pushing and pulling images.
- The `podman run` and `podman exec` commands now support a new option, `--preserve-fd`, which allows passing a list of file descriptors into the container (as an alternative to `--preserve-fds`, which passes a specific number of file descriptors).
- Quadlet now supports templated units ([#17744](https://github.com/containers/podman/discussions/17744)).
- The `podman kube play` command can now create image-based volumes using the `volume.podman.io/image` annotation.
- Containers created with `podman kube play` can now include volumes from other containers (similar to the `--volumes-from` option) using a new annotation, `io.podman.annotations.volumes-from` ([#16819](https://github.com/containers/podman/issues/16819)).
- Pods created with `podman kube play` can now set user namespace options through the the `io.podman.annotations.userns` annotation in the pod definition ([#20658](https://github.com/containers/podman/issues/20658)).
- Macvlan and ipvlan networks can adjust the name of the network interface created inside containers via the new `containers.conf` field `interface_name` ([#21313](https://github.com/containers/podman/issues/21313)).
- The `--gpus` option to `podman create` and `podman run` is now compatible with Nvidia GPUs ([#21156](https://github.com/containers/podman/issues/21156)).
- The `--mount` option to `podman create` and `podman run` supports a new mount option, `no-dereference`, to mount a symlink (instead of its dereferenced target) into a container ([#20098](https://github.com/containers/podman/issues/20098)).
- Podman now supports a new global option, `--config`, to point to a Docker configuration where we can source registry login credentials.
- The `podman ps --format` command now supports a new format specifier, `.Label` ([#20957](https://github.com/containers/podman/issues/20957)).
- The `uidmapping` and `gidmapping` options to the `podman run --userns=auto` option can now map to host IDs by prefixing host IDs with the `@` symbol.
- Quadlet now supports systemd-style drop-in directories.
- Quadlet now supports creating pods via new `.pod` unit files ([#17687](https://github.com/containers/podman/discussions/17687)).
- Quadlet now supports two new keys, `Entrypoint` and `StopTimeout`, in `.container` files ([#20585](https://github.com/containers/podman/issues/20585) and [#21134](https://github.com/containers/podman/issues/21134)).
- Quadlet now supports specifying the `Ulimit` key multiple times in `.container` files to set more than one ulimit on a container.
- Quadlet now supports setting the `Notify` key to `healthy` in `.container` files, to only sdnotify that a container has started when its health check begins passing ([#18189](https://github.com/containers/podman/issues/18189)).

### Breaking Changes
- The backend for the `podman machine` commands has seen extensive rewrites. Configuration files have changed format and VMs from Podman 4.x and earlier are no longer usable. `podman machine` VMs must be recreated with Podman 5.
- The `podman machine init` command now pulls images as OCI artifacts, instead of using HTTP. As a result, a valid `policy.json` file is required on the host. Windows and Mac installers have been changed to install this file.
- QEMU is no longer a supported VM provider for `podman machine` on Mac. Instead, the native Apple hypervisor is supported.
- The `ConfigPath` and `Image` fields are no longer provided by the `podman machine inspect` command. Users can also no longer use `{{ .ConfigPath }}` or `{{ .Image }}` as arguments to `podman machine inspect --format`.
- The output of `podman inspect` for containers has seen a number of breaking changes to improve Docker compatibility, including changing `Entrypoint` from a string to an array of strings and StopSignal from an int to a string.
- The `podman inspect` command for containers now returns nil for healthchecks when inspecting containers without healthchecks.
- The `podman pod inspect` command now outputs a JSON array regardless of the number of pods inspected (previously, inspecting a single pod would omit the array).
- It is no longer possible to create new BoltDB databases; attempting to do so will result in an error. All new Podman installations will now use the SQLite database backend. Existing BoltDB databases remain usable.
- Support for CNI networking has been gated by a build tag and will not be enabled by default.
- Podman will now print warnings when used on cgroups v1 systems. Support for cgroups v1 is deprecated and will be removed in a future release. The `PODMAN_CGROUPSV1_WARNING` environment variable can be set to suppress warnings.
- Network statistics sent over the Docker API are now per-interface, and not aggregated, improving Docker compatibility.
- The default tool for rootless networking has been swapped from `slirp4netns` to `pasta` for improved performance. As a result, networks named `pasta` are no longer supported.
- The `--image` option replaces the now deprecated `--image-path` option for `podman machine init`.
- The output of `podman events --format "{{json .}}"` has been changed to improve Docker compatibility, including the `time` and `timeNano` fields ([#14993](https://github.com/containers/podman/issues/14993)).
- The name of `podman machine` VMs and the username used within the VM are now validated and must match this regex: `[a-zA-Z0-9][a-zA-Z0-9_.-]*`.
- Using multiple filters with the List Images REST API now combines the filters with AND instead of OR, improving Docker compatibility ([#18412](https://github.com/containers/podman/issues/18412)).
- The parsing for a number of Podman CLI options which accept arrays has been changed to no longer accept string-delineated lists, and instead to require the option to be passed multiple times. These options are `--annotation` to `podman manifest annotate` and `podman manifest add`, the `--configmap`, `--log-opt`, and `--annotation` options to `podman kube play`, the `--pubkeysfile` option to `podman image trust set`, the `--encryption-key` and `--decryption-key` options to `podman create`, `podman run`, `podman push` and `podman pull`, the `--env-file` option to `podman exec`, the `--bkio-weight-device`, `--device-read-bps`, `--device-write-bps` `--device-read-iops`, `--device-write-iops`, `--device`, `--label-file`, `--chrootdirs`, `--log-opt`, and `--env-file` options to `podman create` and `podman run`, and the `--hooks-dir` and `--module` global options.

### Changes
- The `podman system reset` command no longer waits for running containers to gracefully stop, and instead immediately sends SIGKILL ([#21874](https://github.com/containers/podman/issues/21874)).
- The `podman network inspect` command now includes running containers using the network in its output ([#14126](https://github.com/containers/podman/issues/14126)).
- The `podman compose` command is now supported on non-AMD64/ARM64 architectures.
- VMs created by `podman machine` will now pass HTTP proxy environment variables into the VM for all providers.
- The `--no-trunc` option to the `podman kube play` and `podman kube generate` commands has been deprecated. Podman now complies to the Kubernetes specification for annotation size, removing the need for this option.
- The `DOCKER_HOST` environment variable will be set by default for rootless users when podman-docker is installed.
- Connections from `podman system connection` and farms from `podman farm` are now written to a new configuration file called `podman-connections.conf`. As a result, Podman no longer writes to `containers.conf`. Existing connections from `containers.conf` will still be respected.
- Most `podman farm` subcommands (save for `podman farm build`) no longer need to connect to the machines in the farm to run.
- The `podman create` and `podman run` commands no longer require specifying an entrypoint on the command line when the container image does not define one. In this case, an empty command will be passed to the OCI runtime, and the resulting behavior is runtime-specific.
- The default SELinux label for content mounted from the host in `podman machine` VMs on Mac is now `system_u:object_r:nfs_t:s0` so that it can be shared with all containers without issue.
- Newly-created VMs created by `podman machine` will now share a single SSH key key for access. As a result, `podman machine rm --save-keys` is deprecated as the key will persist by default.

### Bugfixes
- Fixed a bug where the `podman stats` command would not show network statistics when the `pasta` network mode was used.
- Fixed a bug where `podman machine` VMs using the HyperV provider could not mount shares on directories that did not yet exist.
- Fixed a bug where the `podman compose` command did not respect the `--connection` and `--url` options.
- Fixed a bug where the `podman stop -t -1` command would wait for 0 seconds, not infinite seconds, before sending SIGKILL ([#21811](https://github.com/containers/podman/issues/21811)).
- Fixed a bug where Podman could deadlock when cleaning up a container when the `slirp4netns` network mode was used with a restart policy of `always` or `unless-stopped` or `on-failure` and a user namespace ([#21477](https://github.com/containers/podman/issues/21477)).
- Fixed a bug where uninstalling Podman on Mac did not remove the `docker.sock` symlink ([#20650](https://github.com/containers/podman/issues/20650)).
- Fixed a bug where preexisting volumes being mounted into a new container using a path that exists in said container would not be properly chowned ([#21608](https://github.com/containers/podman/issues/21608)).
- Fixed a bug where the `podman image scp` command could fail if there was not sufficient space in the destination machine's `/tmp` for the image ([#21239](https://github.com/containers/podman/issues/21239)).
- Fixed a bug where containers killed by running out of memory (including due to a memory limit) were not properly marked as OOM killed in `podman inspect` ([#13102](https://github.com/containers/podman/issues/13102)).
- Fixed a bug where `podman kube play` did not create memory-backed emptyDir volumes using a tmpfs filesystem.
- Fixed a bug where containers started with `--rm` were sometimes not removed after a reboot ([#21482](https://github.com/containers/podman/issues/21482)).
- Fixed a bug where the `podman events` command using the remote Podman client did not display the network name associated with network events ([#21311](https://github.com/containers/podman/issues/21311)).
- Fixed a bug where the `podman farm build` did not properly handle the `--tls-verify` option and would override server defaults even if the option was not set by the user ([#21352](https://github.com/containers/podman/issues/21352)).
- Fixed a bug where the `podman inspect` command could segfault on FreeBSD ([#21117](https://github.com/containers/podman/issues/21117)).
- Fixed a bug where Quadlet did not properly handle comment lines ending with a backslash ([#21555](https://github.com/containers/podman/issues/21555)).
- Fixed a bug where Quadlet would sometimes not report errors when malformed quadlet files were present.
- Fixed a bug where Quadlet could hang when given a `.container` file with certain types of trailing whitespace ([#21109](https://github.com/containers/podman/issues/21109)).
- Fixed a bug where Quadlet could panic when generating from Kubernetes YAML containing the `bind-mount-options` key ([#21080](https://github.com/containers/podman/issues/21080)).
- Fixed a bug where Quadlet did not properly strip quoting from values in `.container` files ([#20992](https://github.com/containers/podman/issues/20992)).
- Fixed a bug where the `--publish-all` option to `podman kube play` did not function when used with the remote Podman client.
- Fixed a bug where the `podman kube play --build` command could not build images whose Dockerfile specified an image from a private registry with a self-signed certificate in a `FROM` directive ([#20890](https://github.com/containers/podman/discussions/20890)).
- Fixed a bug where container remove events did not have the correct exit code set ([#19124](https://github.com/containers/podman/issues/19124)).

### API
- A new API endpoint, `/libpod/images/$name/resolve`, has been added to resolve a (potential) short name to a list of fully-qualified image references Podman which could be used to pull the image.
- Fixed a bug where the List API for Images did not properly handle filters and would discard all but the last listed filter.
- Fixed a bug in the Docker Create API for Containers where entries from `/etc/hosts` were copied into create containers, resulting in incompatibility with network aliases.
- Fixed a bug in the Libpod and Docker Exec APIs for Containers which caused incorrect header values to be set when upgrading a connection for an interactive exec session.
- The API bindings have been refactored to reduce code size, leading to smaller binaries ([#17167](https://github.com/containers/podman/issues/17167)).

### Misc
- Failed image pulls will now generate an event including the error.
- The gzip compression library used for sending build contexts, improving performance for remote `podman build`.
- Updated Buildah to v1.35.0
- Updated the containers/image library to v5.30.0
- Updated the containers/storage library to v1.53.0
- Updated the containers/common library to v0.58.0
- Updated the libhvee library to v0.7.0

## 4.9.3
### Features
- The `podman container commit` command now features a `--config` option which accepts a filename containing a JSON-encoded container configuration to be merged in to the newly-created image.

## 4.9.2
### Security
- This release addresses a number of Buildkit vulnerabilities including but not limited to: [CVE-2024-23651](https://github.com/advisories/GHSA-m3r6-h7wv-7xxv), [CVE-2024-23652](https://github.com/advisories/GHSA-4v98-7qmw-rqr8), and [CVE-2024-23653](https://github.com/advisories/GHSA-wr6v-9f75-vh2g).

### Misc
- Updated Buildah to v1.33.5
- Updated the containers/common library to v0.57.4

## 4.9.1
### Bugfixes
- Fixed a bug where the `--rootful` option to `podman machine set` would not set the machine to use the root connection ([#21195](https://github.com/containers/podman/issues/21195)).
- Fixed a bug where podman would crash when running in a containerized environment with `euid != 0` and capabilities set ([#20766](https://github.com/containers/podman/issues/20766)).
- Fixed a bug where the `podman info` command would crash on if called multiple times when podman was running as `euid=0` without `CAP_SYS_ADMIN` ([#20908](https://github.com/containers/podman/issues/20908)).
- Fixed a bug where `podman machine` commands were not relayed to the correct machine on AppleHV ([#21115](https://github.com/containers/podman/issues/21115)).
- Fixed a bug where the `podman machine list` and `podman machine inspect` commands would not show the correct `Last Up` time on AppleHV ([#21244](https://github.com/containers/podman/issues/21244)).

### Misc
- Updated the Mac pkginstaller QEMU to v8.2.1
- Updated Buildah to v1.33.4
- Updated the containers/image library to v5.29.2
- Updated the containers/common library to v0.57.3

## 4.9.0
### Features
- The `podman farm` suite of commands for multi-architecture builds is now fully enabled and documented.
- Add a network recovery service to Podman Machine VMs using the QEMU backend to detect and recover from an inoperable host networking issues experienced by Mac users when running for long periods of time.

### Bugfixes
- Fixed a bug where the HyperV provider for `podman machine` did not forward the API socket to the host machine.
- Fixed a bug where improperly formatted annotations passed to `podman kube play` could cause Podman to panic.
- Fixed a bug where `podman system reset` could fail if non-Podman containers (e.g. containers created by Buildah) were present.

### Misc
- Containers run in `podman machine` VMs now default to a PID limit of unlimited, instead of 2048.

## 4.8.3
### Security
- Fixed [GHSA-45x7-px36-x8w8](https://github.com/advisories/GHSA-45x7-px36-x8w8): CVE-2023-48795 by vendoring golang.org/x/crypto v0.17.0.

## 4.8.2
### Bugfixes
- Fixed a bug in the MacOS pkginstaller where Podman machine was using a different QEMU binary than the one installed using the installer, if it existed on the system ([#20808](https://github.com/containers/podman/issues/20808)).
- Fixed a bug on Windows (WSL) with the first-time install of user-mode networking when using the init command, as opposed to set ([#20921](https://github.com/containers/podman/issues/20921)).

### Quadlet
- Fixed a bug where Kube image build failed when starting service with missing image ([#20432](https://github.com/containers/podman/issues/20432)).

## 4.8.1
### Bugfixes
- Fixed a bug on Windows (WSL) where wsl.conf/resolv.conf was not restored when user-mode networking was disabled after being enabled ([#20625](https://github.com/containers/podman/issues/20625)).
- Fixed a bug where currently if user specifies `podman kube play --replace`, the pod is removed on the client side, not the server side ([#20705](https://github.com/containers/podman/discussions/20705)).
- Fixed a bug where `podman machine rm -f` would cause a deadlock when running with WSL.
- Fixed `database is locked` errors with the new sqlite database backend ([#20809](https://github.com/containers/podman/issues/20809)).
- Fixed a bug where `podman-remote exec` would fail if the server API version is older than 4.8.0 ([#20821](https://github.com/containers/podman/issues/20821)).
- Fixed a bug where Podman would not run any command on systems with a symlinked $HOME ([#20872](https://github.com/containers/podman/issues/20872)).

## 4.8.0
### Features
- Podman machine now supports HyperV as a provider on Windows. This option can be set via the `CONTAINERS_MACHINE_PROVIDER` environment variable, or via containers.conf. HyperV requires Powershell to be run as Admin. Note that running WSL and HyperV machines at the same time is not supported.
- The `podman build` command now supports Containerfiles with heredoc syntax.
- The `podman login` and `podman logout` commands now support a new option, `--compat-auth-file`, which allows for editing Docker-compatible config files ([#18617](https://github.com/containers/podman/issues/18617)).
- The `podman machine init` and `podman machine set` commands now support a new option, `--usb`, which sets allows USB passthrough for the QEMU provider ([#16707](https://github.com/containers/podman/issues/16707)).
- The `--ulimit` option now supports setting -1 to indicate the maximum limit allowed for the current process ([#19319](https://github.com/containers/podman/issues/19319)).
- The `podman play kube` command now supports the `BUILDAH_ISOLATION` environment variable to change build isolation when the `--build` option is set ([#20024](https://github.com/containers/podman/issues/20024)).
- The `podman volume create` command now supports `--opt o=size=XYZ` on tmpfs file systems ([#20449](https://github.com/containers/podman/issues/20449)).
- The `podman info` command for remote calls now reports client information even if the remote connection is unreachable
- Added a new field, `privileged`, to containers.conf, which sets the defaults for the `--privileged` flag when creating, running or exec'ing into a container.
- The `podman kube play` command now supports setting DefaultMode for volumes ([#19313](https://github.com/containers/podman/issues/19313)).
- The `--opt` option to the `podman network create` command now accepts a new driver specific option, `vrf`, which assigns a VRF to the bridge interface.
- A new option `--rdt-class=COS` has been added to the `podman create` and `podman run` commands that enables assigning a container to a Class Of Service (COS). The COS has to be pre-configured based on a pseudo-filesystem created by the *resctrl* kernel driver that enables interacting with the Intel RDT CAT feature.
- The `podman kube play` command now supports a new option, `--publish-all`, which exposes all containerPorts on the host.
- The --filter option now supports `label!=`, which filters for containers without the specified label.

### Upcoming Deprecations
- We are beginning development on Podman 5.0, which will include a number of breaking changes and deprecations. We are still finalizing what will be done, but a preliminary list is below. Please note that none of these changes are present in Podman 4.8; this is a preview of upcoming changes.
- Podman 5.0 will deprecate the BoltDB database backend. Exact details on the transition to SQLite are still being decided - expect more news here soon.
- The containers.conf configuration file will be broken up into multiple separate files, ensuring that it will never be rewritten by Podman.
- Support for the CNI network backend and Cgroups V1 are being deprecated and gated by build tags. They will not be enabled in Podman builds by default.
- A variety of small breaking changes to the REST API are planned, both to improve Docker compatibility and to better support `containers.conf` settings when creating and managing containers.

### Changes
- Podman now defaults to sqlite as its database backend. For backwards compatibility, if a boltdb database already exists on the system, Podman will continue using it.
- RHEL Subscriptions from the host now flow through to quay.io/podman/* images.
- The `--help` option to the `podman push` command now shows the compression algorithm used.
- The remote Podman client’s `commit` command now shows progress messages ([#19947](https://github.com/containers/podman/issues/19947)).
- The `podman kube play` command now sets the pod hostname to the node/machine name when hostNetwork=true in k8s yaml ([#19321](https://github.com/containers/podman/issues/19321)).
- The `--tty,-t` option to the `podman exec` command now defines the TERM environment variable even if the container is not running with a terminal ([#20334](https://github.com/containers/podman/issues/20334)).
- Podman now also uses the `helper_binaries_dir` option in containers.conf to lookup the init binary (catatonit).
- Podman healthcheck events are now logged as notices.
- Podman machines no longer automatically update, preventing accidental service interruptions ([#20122](https://github.com/containers/podman/issues/20122)).
- The amount of CPUs a podman machine uses now defaults to available cores/2 ([#17066](https://github.com/containers/podman/issues/17066)).
- Podman machine now prohibits using provider names as machine names. `applehv`, `qemu`, `wsl`, and `hyperv` are no longer valid Podman machine names

### Quadlet
- Quadlet now supports the `UIDMap`, `GIDMap`, `SubUIDMap`, and `SubGIDMap` options in .container files.
- Fixed a bug where symlinks were not resolved in search paths ([#20504](https://github.com/containers/podman/issues/20504)).
- Quadlet now supports the `ReadOnlyTmpfs` option.
- The VolatileTmpfs option is now deprecated.
- Quadlet now supports systemd specifiers in User and Group keys.
- Quadlet now supports `ImageName` for .image files.
- Quadlet now supports a new option, `--force`, to the stop command.
- Quadlet now supports the `oneshot` service type for .kube files, which allows yaml files without containers.
- Quadlet now supports podman level arguments ([#20246](https://github.com/containers/podman/issues/20246)).
- Fixed a bug where Quadlet would crash when specifying non key-value options ([#20104](https://github.com/containers/podman/issues/20104)).
- Quadlet now removes anonymous volumes when removing a container ([#20070](https://github.com/containers/podman/issues/20070)).
- Quadlet now supports a new unit type, `.image`.

### Bugfixes
- Fixed a bug where mounted volumes on Podman machines on MacOS would have a max open files limit ([#16106](https://github.com/containers/podman/issues/16106)).
- Fixed a bug where setting both the `--uts` and `--network` options to `host` did not fill /etc/hostname with the host's name ([#20448](https://github.com/containers/podman/issues/20448)).
- Fixed a bug where the remote Podman client’s `build` command would incorrectly parse https paths ([#20475](https://github.com/containers/podman/issues/20475)).
- Fixed a bug where running Docker Compose against a WSL podman machine would fail ([#20373](https://github.com/containers/podman/issues/20373)).
- Fixed a race condition where parallel tagging and untagging of images would fail ([#17515](https://github.com/containers/podman/issues/17515)).
- Fixed a bug where the `podman exec` command would leak sessions when the specified command does not existFixed a bug where the `podman exec` command would leak sessions when the specified command does not exist ([#20392](https://github.com/containers/podman/issues/20392)).
- Fixed a bug where the `podman history` command did not display the size of certain layers ([#20375](https://github.com/containers/podman/issues/20375)).
- Fixed a bug where a container with a custom user namespace and `--restart always/on-failure` would not correctly cleanup the netnsm on restart, resulting in leaked ips and network namespaces ([#18615](https://github.com/containers/podman/issues/18615)).
- Fixed a bug where remote calls to the `podman top` command would incorrectly parse options ([#19176](https://github.com/containers/podman/issues/19176)).
- Fixed a bug where the `--read-only-tmpfs` option to the `podman run` command was incorrectly handled when the `--read-only` option was set ([#20225](https://github.com/containers/podman/issues/20225)).
- Fixed a bug where creating containers in parallel may cause a deadlock if both containers attempt to use the same named volume ([#20313](https://github.com/containers/podman/issues/20313)).
- Fixed a bug where a container restarted by the Podman service would occasionally not mount its storage ([#17042](https://github.com/containers/podman/issues/17042)).
- Fixed a bug where the `--filter` option to the `podman images` command would not correctly filter ids, digests, or intermediates ([#19966](https://github.com/containers/podman/issues/19966)).
- Fixed a bug where setting the `--replace` option to the `podman run` command would print both the old and new container ID. Now, only the new container ID is printed.
- Fixed a bug where the `podman machine ls` command would show Creation time as LastUp time for machines that have never been booted. Now, new machines show `Never`, with the json value being ZeroTime.
- Fixed a bug in the `podman build` command where the default pull policy was not set to `missing` ([#20125](https://github.com/containers/podman/issues/20125)).
- Fixed a bug where setting the static or volume directory in `containers.conf` would lead to cleanup errors ([#19938](https://github.com/containers/podman/issues/19938)).
- Fixed a bug where the `podman kube play` command exposed all containerPorts on the host ([#17028](https://github.com/containers/podman/issues/17028)).
- Fixed a bug where the `podman farm update` command did not verify farm and connection existence before updating ([#20080](https://github.com/containers/podman/issues/20080)).
- Fixed a bug where remote Podman calls would not honor the `--connection` option while the `CONTAINER_HOST` environment variable was set. The active destination is not resolved with the correct priority, that is, CLI flags, env vars, ActiveService from containers.conf, RemoteURI ([#15588](https://github.com/containers/podman/issues/15588)).
- Fixed a bug where the `--env-host` option was not honoring the default from containers.conf

### API
- Fixed a bug in the Compat Image Prune endpoint where the dangling filter was set twice ([#20469](https://github.com/containers/podman/issues/20469)).
- Fixed a bug in the Compat API where attempting to connect a container to a network while the connection already exists returned a 200 status code. It now correctly returns a 500 error code.
- Fixed a bug in the Compat API where some responses would not have compatible error details if progress data had not been sent yet ([#20013](https://github.com/containers/podman/issues/20013)).
- The Libpod Pull endpoint now supports a new option, compatMode which causes the streamed JSON payload to be identical to the Compat endpoint.
- Fixed a bug in the Libpod Container Create endpoint where it would return an incorrect status code if the image was not found. The endpoint now correctly returns 404.
- The Compat Network List endpoint should see a significant performance improvement ([#20035](https://github.com/containers/podman/issues/20035)).

### Misc
- Updated Buildah to v1.33.2
- Updated the containers/storage library to v1.51.0
- Updated the containers/image library to v5.29.0
- Updated the containers/common library to v0.57.0
- Updated the containers/libhvee library to v0.5.0
- Podman Machine now runs with gvproxy v0.7.1

## 4.7.2
### Security
- Fixed [GHSA-jq35-85cj-fj4p](https://github.com/moby/moby/security/advisories/GHSA-jq35-85cj-fj4p).

### Bugfixes
- WSL: Fixed `podman compose` command.
- Fixed a bug in `podman compose` to try all configured providers before throwing an error ([#20502](https://github.com/containers/podman/issues/20502)).

## 4.7.1
### Bugfixes
- Fixed a bug involving non-English locales of Windows where machine installs using user-mode networking were rejected due to erroneous version detection ([#20209](https://github.com/containers/podman/issues/20209)).
- Fixed a regression in --env-file handling ([#19565](https://github.com/containers/podman/issues/19565)).
- Fixed a bug where podman inspect would fail when stat'ing a device failed.

### API
- The network list compat API endpoint is now much faster ([#20035](https://github.com/containers/podman/issues/20035)).

## 4.7.0
### Security
- Now the io.containers.capabilities LABEL in an image can be an empty string.

### Features
- New command set: `podman farm [create,list,remove,update]` has been created to "farm" out builds to machines running Podman for different architectures.
- New command: `podman compose` as a thin wrapper around an external compose provider such as docker-compose or podman-compose.
- FreeBSD: `podman run --device` is now supported.
- Linux: Add a new `--module` flag for Podman.
- Podmansh: Timeout is now configurable using the `podmansh_timeout` option in containers.conf.
- SELinux: Add support for confined users to create containers but restrict them from creating privileged containers.
- WSL: Registers shared socket bindings on Windows, to allow other WSL distributions easy remote access ([#15190](https://github.com/containers/podman/issues/15190)).
- WSL: Enabling user-mode-networking on older WSL2 generations will now detect an error with upgrade guidance.
- The `podman build` command now supports two new options: `--layer-label` and `--cw`.
- The `podman kube generate` command now supports generation of k8s DaemonSet kind ([#18899](https://github.com/containers/podman/issues/18899)).
- The `podman kube generate` and `podman kube play` commands now support the k8s `TerminationGracePeriodSeconds` field ([RH BZ#2218061](https://bugzilla.redhat.com/show_bug.cgi?id=2218061)).
- The `podman kube generate` and `podman kube play` commands now support `securityContext.procMount: Unmasked` ([#19881](https://github.com/containers/podman/issues/19881)).
- The `podman generate kube` command now supports a `--podman-only` flag to allow podman-only reserved annotations to be used in the generated YAML file. These annotations cannot be used by Kubernetes.
- The `podman kube generate` now supports a `--no-trunc` flag that supports YAML files with annotations longer than 63 characters. Warning: if an annotation is longer than 63 chars, then the generated yaml file is not Kubernetes compatible.
- An infra name annotation `io.podman.annotations.infra.name` is added in the generated yaml when the `pod create` command has `--infra-name` set. This annotation can also be used with `kube play` when wanting to customize the infra container name ([#18312](https://github.com/containers/podman/issues/18312)).
- The syntax of `--uidmap` and `--gidmap` has been extended to lookup the parent user namespace and to extend default mappings ([#18333](https://github.com/containers/podman/issues/18333)).
- The `podman kube` commands now support the `List` kind ([#19052](https://github.com/containers/podman/issues/19052)).
- The `podman kube play` command now supports environment variables in kube.yaml ([#15983](https://github.com/containers/podman/issues/15983)).
- The `podman push` and `podman manifest push` commands now support the `--force-compression` optionto prevent reusing other blobs ([#18860](https://github.com/containers/podman/issues/18660)).
- The `podman manifest push` command now supports `--add-compression` to push with compressed variants.
- The `podman manifest push` command now honors the `add_compression` field from containers.conf if `--add-compression` is not set.
- The `podman run` and `podman create --mount` commands now support the `ramfs` type ([#19659](https://github.com/containers/podman/issues/19659)).
- When running under systemd (e.g., via Quadlet), Podman will extend the start timeout in 30 second steps up to a maximum of 5 minutes when pulling an image.
- The `--add-host` option now accepts the special string `host-gateway` instead of an IP Address, which will be mapped to the host IP address.
- The `podman generate systemd` command is deprecated.  Use Quadlet for running containers and pods under systemd.
- The `podman secret rm` command now supports an `--ignore` option.
- The `--env-file` option now supports multiline variables ([#18724](https://github.com/containers/podman/issues/18724)).
- The `--read-only-tmpfs` flag now affects /dev and /dev/shm as well as /run, /tmp, /var/tmp ([#12937](https://github.com/containers/podman/issues/12937)).
- The Podman `--mount` option now supports bind mounts passed as globs.
- The `--mount` option can now be specified in containers.conf using the `mounts` field.
- The `podman stats` now has an `--all` option to get all containers stats ([#19252](https://github.com/containers/podman/issues/19252)).
- There is now a new `--sdnotify=healthy` policy where Podman sends the READY message once the container turns healthy ([#6160](https://github.com/containers/podman/issues/6160)).
- Temporary files created when dealing with images in `/var/tmp` will automatically be cleaned up on reboot.
- There is now a new filter option `since` for `podman volume ls` and `podman volume prune` ([#19228](https://github.com/containers/podman/issues/19228)).
- The `podman inspect` command now has tab-completion support ([#18672])(https://github.com/containers/podman/issues/18672)).
- The `podman kube play` command now has support for the use of reserved annotations in the generated YAML.
- The progress bar is now displayed when decompressing a Podman machine image ([#19240](https://github.com/containers/podman/issues/19240)).
- The `podman secret inspect` command supports a new option `--showsecret` which will output the actual secret.
- The `podman secret create` now supports a `--replace` option, which allows you to modify secrets without replacing containers.
- The `podman login` command can now read the secret for a registry from its secret database created with `podman secret create` ([#18667]](https://github.com/containers/podman/issues/18667)).
- The remote Podman client’s `podman play kube` command now works with the `--userns` option ([#17392](https://github.com/containers/podman/pull/17392)).

### Changes
- The `/tmp` and `/var/tmp` inside of a `podman kube play` will no longer be `noexec`.
- The limit of inotify instances has been bumped from 128 to 524288 for podman machine ([#19848](https://github.com/containers/podman/issues/19848)).
- The `podman kube play` has been improved to only pull a newer image for the "latest" tag ([#19801](https://github.com/containers/podman/issues/19801)).
- Pulling from an `oci` transport will use the optional name for naming the image.
- The `podman info` command will always display the existence of the Podman socket.
- The echo server example in socket_activation.md has been rewritten to use quadlet instead of `podman generate systemd`.
- Kubernetes support table documentation correctly show volumes support.
- The `podman auto-update` manpage and documentation has been updated and now includes references to Quadlet.

### Quadlet
- Quadlet now supports setting Ulimit values.
- Quadlet now supports setting the PidsLimit option in a container.
- Quadlet unit files allow DNS field in Network group and DNS, DNSSearch, and DNSOption field in Container group ([#19884](https://github.com/containers/podman/issues/19884)).
- Quadlet now supports ShmSize option in unit files.
- Quadlet now recursively calls in user directories for unit files.
- Quadlet now allows the user to set the service working directory relative to the YAML or Unit files ([17177](https://github.com/containers/podman/discussions/17177)).
- Quadlet now allows setting user-defined names for `Volume` and `Network` units via the `VolumeName` and `NetworkName` directives, respectively.
- Kube quadlets can now support autoupdate.

### Bugfixes
- Fixed an issue where containers were being restarted after a `podman kill`.
- Fixed a bug where events could report incorrect healthcheck results ([#19237](https://github.com/containers/podman/issues/19237).
- Fixed a bug where running a container in a pod didn't fail if volumes or mounts were specified in the containers.conf file.
- Fixed a bug where pod cgroup limits were not being honored after a reboot ([#19175](https://github.com/containers/podman/issues/19175)).
- Fixed a bug where `podman rm -af` could fail to remove containers under some circumstances ([#18874](https://github.com/containers/podman/issues/18874)).
- Fixed a bug in rootless to clamp oom_score_adj to current value if it is too low ([#19829](https://github.com/containers/podman/issues/19829)).
- Fixed a bug where `--hostuser` was being parsed in base 8 instead of base 10 ([#19800](https://github.com/containers/podman/issues/19800)).
- Fixed a bug where `kube down` would error when an object did not exist ([#19711](https://github.com/containers/podman/issues/19711)).
- Fixed a bug where containers created via DOCKER API without specifying StopTimeout had StopTimeout defaulting to 0 seconds ([#19139](https://github.com/containers/podman/issues/19139)).
- Fixed a bug in `podman exec` to set umask to match the container it's execing into ([#19713](https://github.com/containers/podman/issues/19713)).
- Fixed a bug where `podman kube play` failed to set a container's Umask to the default `0022`.
- Fixed a bug to automatically reassign Podman's machine ssh port on Windows when it conflicts with in-use system ports ([#19554](https://github.com/containers/podman/issues/19554)).
- Fixed a bug where locales weren't passed to conmon correctly, resulting in a crash if some characters were specified over CLI ([containers/common/#272](https://github.com/containers/conmon/issues/272)).
- Fixed a bug where `podman top` would sometimes not print the full output ([#19504](https://github.com/containers/podman/issues/19504)).
- Fixed a bug were `podman logs --tail` could return incorrect lines when the k8s-file logger is used ([#19545](https://github.com/containers/podman/issues/19545)).
- Fixed a bug where `podman stop` did not ignore cidfile not existing when user specified --ignore flag ([#19546](https://github.com/containers/podman/issues/19546)).
- Fixed a bug where a container with an image volume and an inherited mount from the `--volumes-from` option that used the same path could not be created ([#19529](https://github.com/containers/podman/issues/19529)).
- Fixed a bug where `podman cp` via STDIN did not delete temporary files ([#19496](https://github.com/containers/podman/issues/19496)).
- Fixed a bug where Compatibility API did not accept timeout=-1 for stopping containers ([#17542](https://github.com/containers/podman/issues/17542)).
- Fixed a bug where `podman run --rmi` did not remove the container ([#15640](https://github.com/containers/podman/issues/15640)).
- Fixed a bug to recover from inconsistent podman-machine states with QEMU ([#16054](https://github.com/containers/podman/issues/16054)).
- Fixed a bug where CID Files on remote clients are not removed when container is removed ([#19420](https://github.com/containers/podman/issues/19420)).
- Fixed a bug in `podman inspect` to show a `.NetworkSettings.SandboxKey` path for containers created with --net=none ([#16716](https://github.com/containers/podman/issues/16716)).
- Fixed a concurrency bug in `podman machine start` using the QEMU provider ([#18662](https://github.com/containers/podman/issues/18662)).
- Fixed a bug in `podman run` and `podman create` where the command fails if the user specifies a non-existent authfile path ([#18938](https://github.com/containers/podman/issues/18938)).
- Fixed a bug where some distributions added extra quotes around the distribution name removed from `podman info` output ([#19340](https://github.com/containers/podman/issues/19340)).
- Fixed a crash validating --device argument for create and run ([#19335](https://github.com/containers/podman/issues/19335)).
- Fixed a bug where `.HostConfig.PublishAllPorts` always evaluates to `false` when inspecting a container created with `--publish-all`.
- Fixed a bug in `podman image trust` command to allow using the local policy.json file ([#19073](https://github.com/containers/podman/issues/19073)).
- Fixed a bug where the cgroup file system was not correctly mounted when running without a network namespace in rootless mode ([#20073](https://github.com/containers/podman/issues/20073)).
- Fixed a bug where the `--syslog` flag was not passed to the cleanup process.

### API
- Fixed a bug with parsing of the pull query parameter for the compat /build endpoint ([#17778](https://github.com/containers/podman/issues/17778)).

### Misc
- Updated Buildah to v1.32.0.

## 4.6.2
### Changes
- Fixed a performance issue when calculating diff sizes in overlay. The `podman system df` command should see a significant performance improvement ([#19467](https://github.com/containers/podman/issues/19467)).

### Bugfixes
- Fixed a bug where containers in a pod would use pod the restart policy over the set container restart policy ([#19671](https://github.com/containers/podman/issues/19671)).

### API
- Fixed a bug in the Compat Build endpoint where the pull query parameter did not parse 0/1 as a boolean ([#17778](https://github.com/containers/podman/issues/17778)).

### Misc
- Updated the containers/storage library to v1.48.1

## 4.6.1
### Quadlet
- Quadlet now selects the first Quadlet file found when multiple Quadlets exist with the same name.

### API
- Fixed a bug in the container kill endpoint to correctly return 409 when a container is not running ([#19368](https://github.com/containers/podman/issues/19368)).

### Misc
- Updated Buildah to v1.31.2
- Updated the containers/common library to v0.55.3

## 4.6.0
### Features
- The `podman manifest inspect` command now supports the `--authfile` option, for authentication purposes.
- The `podman wait` command now supports `--condition={healthy,unhealthy}`, allowing waits on successful health checks.
- The `podman push` command now supports a new option, ` --compression-level`, which specifies the compression level to use ([#18939](https://github.com/containers/podman/issues/18939)).
- The `podman machine start` command, when run with `--log-level=debug`, now creates a console window to display the virtual machine while booting.
- Podman now supports a new option, `--imagestore`, which allows images to be stored in a different directory than the graphroot.
- The `--ip-range` option to the `podman network create` command now accepts a new syntax, `<startIP>-<endIP>`, which allows more flexibility when limiting the ip range that Podman assigns.
- [Tech Preview] A new command, `podmansh`, has been added, which executes a user shell within a container when the user logs into the system. The container that the users get added to can be defined via a Podman Quadlet file. This feature is currently a `Tech Preview` which means it's ready for users to try out but changes can be expected in upcoming versions.
- The `podman network create` command supports a new `--option`, `bclim`, for the `macvlan` driver.
- The `podman network create` command now supports adding static routes using the `--route` option.
- The `podman network create` command supports a new `--option`, `no_default_route` for all drivers.
- The `podman info` command now prints network information about the binary path, package version, program version and DNS information ([#18443](https://github.com/containers/podman/issues/18443)).
- The `podman info` command now displays the number of free locks available, helping to debug lock exhaustion scenarios.
- The `podman info` command now outputs information about pasta, if it exists in helper_binaries_dir or $PATH.
- The remote Podman client’s `podman build` command now accepts Containerfiles that are not in the context directory ([#18239](https://github.com/containers/podman/issues/18239)).
- The remote Podman client’s `podman play kube` command now supports the `--configmap` option ([#17513](https://github.com/containers/podman/issues/17513)).
- The `podman kube play` command now supports multi-doc YAML files for configmap arguments. ([#18537](https://github.com/containers/podman/issues/18537)).
- The `podman pod create` command now supports a new flag, `--restart`, which sets the restart policy for all the containers in a pod.
- The `--format={{.Restarts}}` option to the `podman ps` command now shows the number of times a container has been restarted based on its restart policy.
- The `--format={{.Restarts}}` option to the `podman pod ps` command now shows the total number of container restarts in a pod.
- The podman machine provider can now be specified via the `CONTAINERS_MACHINE_PROVIDER` environment variable, as well as via the `provider` field in `containers.conf` ([#17116](https://github.com/containers/podman/issues/17116)).
- A default list of pasta arguments can now be set in `containers.conf` via `pasta_options`.
- The `podman machine init` and `podman machine set` commands now support a new option, `--user-mode-networking`, which improves interops with VPN configs that drop traffic from WSL networking, on Windows.
- The remote Podman client’s `podman push` command now supports the `--digestfile` option ([#18216](https://github.com/containers/podman/issues/18216)).
- Podman now supports a new option, `--out`, that allows redirection or suppression of STDOUT ([#18120](https://github.com/containers/podman/issues/18120)).

### Changes
- When looking up an image by digest, the entire repository of the specified value is now considered. This aligns with Docker's behavior since v20.10.20. Previously, both the repository and the tag was ignored and Podman looked for an image with only a matching digest. Ignoring the name, repository, and tag of the specified value can lead to security issues and is considered harmful.
- The `podman system service` command now emits a warning when binding to a TCP socket. This is not a secure configuration and the Podman team recommends against using it.
- The `podman top` command no longer depends on ps(1) being present in the container image and now uses the one from the host ([#19001](https://github.com/containers/podman/issues/19001)).
- The `--filter id=xxx` option will now treat `xxx` as a CID prefix, and not as a regular expression ([#18471](https://github.com/containers/podman/issues/18471)).
- The `--filter` option now requires multiple `--filter` flags to specify multiple filters. It will no longer support the comma syntax (`--filter label=a,label=b`).
- The `slirp4netns` binary for will now be searched for in paths specified by the `helper_binaries_dir` option in `containers.conf` ([#18239](https://github.com/containers/podman/issues/18568)).
- Podman machine now updates `/run/docker.sock` within the guest to be consistent with its rootless/rootful setting ([#18480](https://github.com/containers/podman/issues/18480)).
- The `podman system df` command now counts files which podman generates for use with specific containers as part of the disk space used by those containers, and which can be reclaimed by removing those containers. It also counts space used by files it associates with specific images and volumes as being used by those images and volumes.
- The `podman build` command now returns a clearer error message when the Containerfile cannot be found. ([#16354](https://github.com/containers/podman/issues/16354)).
- Containers created with `--pid=host` will no longer print errors on podman stop ([#18460](https://github.com/containers/podman/issues/18460)).
- The `podman manifest push` command no longer requires a destination to be specified. If a destination is not provided, the source is used as the destination ([#18360](https://github.com/containers/podman/issues/18360)).
- The `podman system reset` command now warns the user that the graphroot and runroot directories will be deleted ([#18349](https://github.com/containers/podman/issues/18349)), ([#18295](https://github.com/containers/podman/issues/18295)).
- The `package` and `package-install` targets in Makefile have now been fixed and also renamed to `rpm` and `rpm-install` respectively for clarity ([#18817](https://github.com/containers/podman/issues/18817)).

### Quadlet
- Quadlet now exits with a non-zero exit code when errors are found ([#18778](https://github.com/containers/podman/issues/18778)).
- Rootless podman quadlet files can now be installed in `/etc/containers/systemd/users` directory.
- Quadlet now supports the `AutoUpdate` option.
- Quadlet now supports the `Mask` and `Unmask` options.
- Quadlet now supports the `WorkingDir` option, which specifies the default working dir in a container.
- Quadlet now supports the `Sysctl` option, which sets namespaced kernel parameters for containers ([#18727](https://github.com/containers/podman/issues/18727)).
- Quadlet now supports the `SecurityLabelNetsted=true` option, which allows nested SELinux containers.
- Quadlet now supports the `Pull` option in `.container` files ([#18779](https://github.com/containers/podman/issues/18779)).
- Quadlet now supports the `ExitCode` field in `.kube` files, which reflects the exit codes of failed containers.
- Quadlet now supports `PodmanArgs` field.
- Quadlet now supports the `HostName` field, which sets the container's host name, in `.container` files ([#18486](https://github.com/containers/podman/issues/18486)).

### Bugfixes
- Fixed a bug where the `podman machine start` command would fail with a 255 exit code. It now waits for systemd-user sessions to be up, and for SSH to be ready, addressing the flaky machine starts ([#17403](https://github.com/containers/podman/issues/17403)).
- Fixed a bug where the `podman auto update` command did not correctly use authentication files when contacting container registries.
- Fixed a bug where `--label` option to the `podman volume ls` command would return volumes that matched any of the filters, not all of them  ([#19219](https://github.com/containers/podman/issues/19219)).
- Fixed a bug where the `podman kube play` command did not recognize containerPort names inside Kubernetes liveness probes. Now, liveness probes support both containerPort names as well as port numbers ([#18645](https://github.com/containers/podman/issues/18645)).
- Fixed a bug where the `--dns` option to the `podman run` command was ignored for macvlan networks ([#19169](https://github.com/containers/podman/issues/19169)).
- Fixed a bug in the `podman system service` command where setting LISTEN_FDS when listening on TCP would misbehave.
- Fixed a bug where hostnames were not recognized as a network alias. Containers can now resolve other hostnames, in addition to their names ([#17370](https://github.com/containers/podman/issues/17370)).
- Fixed a bug where the `podman pod run` command would error after a reboot on a non-systemd system ([#19175](https://github.com/containers/podman/issues/19175)).
- Fixed a bug where the `--syslog` option returned a fatal error when no syslog server was found ([#19075](https://github.com/containers/podman/issues/19075)).
- Fixed a bug where the `--mount` option would parse the `readonly` option incorrectly ([#18995](https://github.com/containers/podman/issues/18995)).
- Fixed a bug where hook executables invoked by the `podman run` command set an incorrect working directory. It now sets the correct working directory pointing to the container bundle directory ([#18907](https://github.com/containers/podman/issues/18907)).
- Fixed a bug where the `-device-cgroup-rule` option was silently ignored in rootless mode ([#18698](https://github.com/containers/podman/issues/18698)).
- Listing images is now more resilient towards concurrently running image removals.
- Fixed a bug where the `--force` option to the `podman kube down` command would not remove volumes ([#18797](https://github.com/containers/podman/issues/18797)).
- Fixed a bug where setting the `--list-tags` option in the `podman search` command would cause the command to ignore the `--format` option ([#18939](https://github.com/containers/podman/issues/18939)).
- Fixed a bug where the `podman machine start` command did not properly translate the proxy IP.
- Fixed a bug where the `podman auto-update` command would not restart dependent units (specified via `Requires=`) on auto update ([#18926](https://github.com/containers/podman/issues/18926)).
- Fixed a bug where the `podman pull` command would print ids multiple times when using additional stores ([#18647](https://github.com/containers/podman/issues/18647)).
- Fixed a bug where creating a container while setting unmask option to an empty array would cause the create to fail ([#18848](https://github.com/containers/podman/issues/18848)).
- Fixed a bug where the propagation of proxy settings for QEMU VMs was broken.
- Fixed a bug where the `podman rm -fa` command could fail to remove dependency containers such as pod infra containers ([#18180](https://github.com/containers/podman/issues/18180)).
- Fixed a bug  where ` --tz` option to the `podman create ` and `podman run` commands would not create a proper localtime symlink to the zoneinfo file, which was causing some applications (e.g. java) to not read the timezone correctly.
- Fixed a bug where lowering the ulimit after container creation would cause the container to fail ([#18714](https://github.com/containers/podman/issues/18714)).
- Fixed a bug where signals were not forwarded correctly in rootless containers ([#16091](https://github.com/containers/podman/issues/16091)).
- Fixed a bug where the `--filter volume=` option to the `podman events` command would not display the relevant events ([#18618](https://github.com/containers/podman/issues/18618)).
- Fixed a bug in the `podman wait` command where containers created with the `--restart=always` option would result in the container staying in a stopped state.
- Fixed a bug where the `podman stats` command returned an incorrect memory limit after a `container update`. ([#18621](https://github.com/containers/podman/issues/18621)).
- Fixed a bug in the `podman run` command where the `PODMAN_USERNS` environment variable was not ignored when the `--pod` option was set, resulting in a container created in a different user namespace than its pod ([#18580](https://github.com/containers/podman/issues/18580)).
- Fixed a bug where the `podman run` command would not create the `/run/.containerenv` when the tmpfs is mounted on `/run` ([#18531](https://github.com/containers/podman/issues/18531)).
- Fixed a bug where the `$HOME` environment variable would be configured inconsistently between container starts if a new passwd entry had to be created for the container.
- Fixed a bug where the `podman play kube` command would restart initContainers based on the restart policy of the pod. initContainers should never be restarted.
- Fixed a bug in the remote Podman client’s `build` command where an invalid platform would be set.
- Fixed a bug where the `podman history` command did not display tags ([#17763](https://github.com/containers/podman/issues/17763)).
- Fixed a bug where the `podman machine init` command would create invalid machines when run with certain UIDs ([#17893](https://github.com/containers/podman/issues/17893)).
- Fixed a bug in the remote Podman client’s `podman manifest push` command where an error encountered during the push incorrectly claimed that the error occurred while adding an item to the list.
- Fixed a bug where the `podman machine rm` command would remove the machine connection before the user confirms the removal of the machine ([#18330](https://github.com/containers/podman/issues/18330)).
- Fixed a bug in the sqlite database backend where the first read access may fail ([#17859](https://github.com/containers/podman/issues/17859)).
- Fixed a bug where a podman machine could get stuck in the `starting` state ([#16945](https://github.com/containers/podman/issues/16945)).
- Fixed a bug where running a container with the `--network=container:` option would fail when the target container uses the host network mode. The same also now works for the other namespace options (`--pid`, `--uts`, `--cgroupns`, `--ipc`) ([#18027](https://github.com/containers/podman/issues/18027)).
- Fixed a bug where the `--format {{.State}}` option to the `podman ps` command would display the status rather than the state ([#18244](https://github.com/containers/podman/issues/18244)).
- Fixed a bug in the `podman commit` command where setting a `--message` while also specifying `--format=docker` options would incorrectly warn that setting a message is incompatible with OCI image formats ([#17773](https://github.com/containers/podman/issues/17773)).
- Fixed a bug in the `--format` option to the `podman history` command, where the `{{.CreatedAt}}` and `{{.Size}}` fields were inconsistent with Docker’s output ([#17767](https://github.com/containers/podman/issues/17767)), ([#17768](https://github.com/containers/podman/issues/17768)).
- Fixed a bug in the remote Podman client where filtering containers would not return all matching containers ([#18153](https://github.com/containers/podman/issues/18153)).

### API
- Fixed a bug where the Compat and Libpod Top endpoints for Containers did not correctly report errors.
- Fixed a bug in the Compat Pull and Compat Push endpoints where errors were incorrectly handled.
- Fixed a bug in the Compat Wait endpoint to correctly handle the "removed" condition ([#18889](https://github.com/containers/podman/issues/18889)).
- Fixed a bug in the Compat Stats endpoint for Containers where the `online_cpus` field was not set correctly ([#15754](https://github.com/containers/podman/issues/15754)).
- Fixed a bug in the Compat Build endpoint where the pull field accepted a boolean value instead of a string ([#17778](https://github.com/containers/podman/issues/17778)).
- Fixed a bug where the Compat History endpoint for Images did not prefix the image ID with `sha256:` ([#17762](https://github.com/containers/podman/issues/17762)).
- Fixed a bug in the Libpod Export endpoint for Images where exporting to an oci-dir or a docker-dir format would not export to the correct format ([#15897](https://github.com/containers/podman/issues/15897)).
- The Compat Create endpoint for Containers now supports the `platform` parameter ([#18951](https://github.com/containers/podman/issues/18951)).
- The Compat Remove endpoint for Images now supports the `noprune` query parameter, which ensures that dangling parents of the specified image are not removed
- The Compat Info endpoint now reports running rootless and SELinux enabled as security options.
- Fixed a bug in the Auth endpoint where a nil dereference could potentially occur.

### Misc
- The `podman system service` command is now supported on FreeBSD.
- Updated the Mac pkginstaller QEMU to v8.0.0
- Updated Buildah to v1.31.0
- Updated the containers/storage library to v1.48.0
- Updated the containers/image library to v5.26.1
- Updated the containers/common library to v0.55.2

## 4.5.1
### Security
- Do not include image annotations when building spec. These annotations can have security implications - crun, for example, allows rootless containers to preserve the user's groups through an annotation.

### Quadlet
- Fixed a bug in quadlet to recognize the systemd optional prefix '-'.

### Bugfixes
- Fixed a bug where fully resolving symlink paths included the version number, breaking the path to homebrew-installed qemu files ([#18111](https://github.com/containers/podman/issues/18111)).
- Fixed a bug where Podman was splitting the filter map slightly differently compared to Docker ([#18092](https://github.com/containers/podman/issues/18092)).
- Fixed a bug where running `make package` did not work on RHEL 8 environments ([#18421](https://github.com/containers/podman/issues/18421)).
- Fixed a bug to allow comma separated dns server IP addresses in `podman network create --dns` and `podman network update --dns-add/--dns-drop` ([#18663](https://github.com/containers/podman/pull/18663)).
- Fixed a bug to correctly stop containers created with --restart=always in all cases ([#18259](https://github.com/containers/podman/issues/18259)).
- Fixed a bug in podman-remote logs to cor…
jperkin pushed a commit that referenced this pull request Jul 20, 2024
pkgsrc change: fix CATEGORIES to stop pkglint warning.

3.1.0 (2024-07-15)

* PR #272 / I #271 - Readline is now completed deprecated over Reline
  (@abinoam, issue by @64kramsystem)

* PR #269 - Provide a 'Changelog' link on rubygems.org/gems/highline
  (@mark-young-atg)
jperkin pushed a commit that referenced this pull request Jul 31, 2024
## [0.18.0 - 2024-07-27]

### Added

- `image.info["heif"]` dictionary with `camera_intrinsic_matrix` HEIF specific metadata. Currently only reading is supported. #271

### Changed

- libheif updated from `1.17.6` to `1.18.1` version.  #249
- Python `3.13.0b3` wheels added; macOS **arm64** Python3.8 wheels dropped. #272
jperkin pushed a commit that referenced this pull request Aug 7, 2024
Changelog for rest-server 0.13.0 (2024-07-26)
============================================

The following sections list the changes in rest-server 0.13.0 relevant
to users. The changes are ordered by importance.

Summary
-------

 * Chg #267: Update dependencies and require Go 1.18 or newer
 * Chg #273: Shut down cleanly on TERM and INT signals
 * Enh #271: Print listening address after start-up
 * Enh #272: Support listening on a unix socket

Details
-------

 * Change #267: Update dependencies and require Go 1.18 or newer

   Most dependencies have been updated. Since some libraries require newer language
   features, support for Go 1.17 has been dropped, which means that rest-server now
   requires at least Go 1.18 to build.

   restic/rest-server#267

 * Change #273: Shut down cleanly on TERM and INT signals

   Rest-server now listens for TERM and INT signals and cleanly closes down the
   http.Server and listener when receiving either of them.

   This is particularly useful when listening on a unix socket, as the server will
   now remove the socket file when it shuts down.

   restic/rest-server#273

 * Enhancement #271: Print listening address after start-up

   When started with `--listen :0`, rest-server would print `start server on :0`

   The message now also includes the actual address listened on, for example `start
   server on 0.0.0.0:37333`. This is useful when starting a server with an
   auto-allocated free port number (port 0).

   restic/rest-server#271

 * Enhancement #272: Support listening on a unix socket

   It is now possible to make rest-server listen on a unix socket by prefixing the
   socket filename with `unix:` and passing it to the `--listen` option, for
   example `--listen unix:/tmp/foo`.

   This is useful in combination with remote port forwarding to enable a remote
   server to backup locally, e.g.:

   ```
   rest-server --listen unix:/tmp/foo &
   ssh -R /tmp/foo:/tmp/foo user@host restic -r rest:http+unix:///tmp/foo:/repo backup
   ```

   restic/rest-server#272


Changelog for rest-server 0.12.1 (2023-07-09)
============================================

The following sections list the changes in rest-server 0.12.1 relevant
to users. The changes are ordered by importance.

Summary
-------

 * Fix #230: Fix erroneous warnings about unsupported fsync
 * Fix #238: API: Return empty array when listing empty folders
 * Enh #217: Log to stdout using the `--log -` option

Details
-------

 * Bugfix #230: Fix erroneous warnings about unsupported fsync

   Due to a regression in rest-server 0.12.0, it continuously printed `WARNING:
   fsync is not supported by the data storage. This can lead to data loss, if the
   system crashes or the storage is unexpectedly disconnected.` for systems that
   support fsync. We have fixed the warning.

   restic/rest-server#230
   restic/rest-server#231

 * Bugfix #238: API: Return empty array when listing empty folders

   Rest-server returned `null` when listing an empty folder. This has been changed
   to returning an empty array in accordance with the REST protocol specification.
   This change has no impact on restic users.

   restic/rest-server#238
   restic/rest-server#239

 * Enhancement #217: Log to stdout using the `--log -` option

   Logging to stdout was possible using `--log /dev/stdout`. However, when the rest
   server is run as a different user, for example, using

   `sudo -u restic rest-server [...] --log /dev/stdout`

   This did not work due to permission issues.

   For logging to stdout, the `--log` option now supports the special filename `-`
   which also works in these cases.

   restic/rest-server#217
jperkin pushed a commit that referenced this pull request Aug 24, 2024
Features / Improvements ✨

    Support marking a room as a direct message room (#92)
    Add external_edit_file_suffix to config (#253)
    Allow typing newline with <S-Enter> and enable keyboard enhancement protocol (#272)
    Display file sizes for attachments (#278)
    Implement set/unset/show for alternative and canonical aliases (#279)
    Allow notifications on open room if terminal not focused (#281)
    Add command to set per-room notification levels (#305)
    Add message slash commands (#317)
    Support reacting literally with non-Emojis (#320)
    Include room name in desktop notifications (#326)
    Add ban/unban/kick room commands (#327)
    Add command for setting room history visibility (#328)
    Add commands for viewing and clearing unreads (#332)

Documentation / README updates 📚

    Update Welcome window to reference TOML instead of JSON (#254)
    Add FreeBSD installation instructions (#280)
    Fix openSUSE link and installation command in README (#283)
    Add Hombrew as install method on MacOS (#303)

Bug Fixes 🐞

    Fix reaction count when there are duplicate reaction events from a user (#239)
    Prevent sending duplicate reaction events (#240)
    Use color overrides for users when message_user_color is enabled (#245)
    Fix image preview placement when messages are preceded by a date in the timeline (#257)
    Trim :editor output and check if it's empty (#275)
    Add error for missing username on :logout (#277)
    Remove timeout for desktop notifications (#314)
    Fix underflow panics when using TextPrinter::push_span_nobreak (#322)
    Remove modifyOtherKeys enablement (#324)
    Avoid treating simple messages as Markdown (#325)
    Handle message marks on non-64-bit platforms (#329)

Building / Housekeeping 🧹

    Update to [email protected] (#241)
    Update Cargo.toml to v0.0.10-alpha.1 and update dependencies (#269)
    Update to modalkit{,-ratatui}@0.0.19 (#273)
    Fix LICENSE file (#274)
    Add missing darwin build dependency (#286)
    Fix newer Clippy warnings for 1.80 (#301)
    Add FreeDesktop MetaInfo file (#315)
    Update to modalkit{,-ratatui}@0.0.20 (#319)
    Add metadata for cargo-deb and cargo-generate-rpm (#321)
    Build cross-platform binaries and packages of main (#323)
github-actions bot pushed a commit that referenced this pull request Nov 3, 2024
# cpp11 0.5.0

## R non-API related changes

* Removed usage of the following R non-API functions:

  * `SETLENGTH()`

  * `SET_TRUELENGTH()`

  * `SET_GROWABLE_BIT()`

  These functions were used as part of the efficient growable vectors that
  cpp11 offered, i.e. what happens under the hood when you use `push_back()`.
  The removal of these non-API functions means that cpp11 writable vectors that
  have been pushed to with `push_back()` will likely force 1 extra allocation
  when the conversion from `cpp11::writable::r_vector<T>` to `SEXP` occurs
  (typically when you return a result back to R). This does not affect the
  performance of `push_back()` itself, and in general these growable vectors
  are still quite efficient (#362).

* The `environment` class no longer uses the non-API function
  `Rf_findVarInFrame3()` (#367).

  * The `exists()` method now uses the new `R_existsVarInFrame()` function.

  * The `SEXP` conversion operator now uses the new `R_getVar()` function. Note
    that this is stricter than `Rf_findVarInFrame3()` in 3 ways. The object
    must exist in the environment (i.e. `R_UnboundValue` is no longer returned),
    the object cannot be `R_MissingArg`, and if the object was a promise, that
    promise is now evaluated. We have backported this new strictness to older
    versions of R as well.

## New features

* `cpp11::writable::r_vector<T>::proxy` now implements copy assignment.
  Practically this means that `x[i] = y[i]` now works when both `x` and `y`
  are writable vectors (#300, #339).

* New `writable::data_frame` constructor that also takes the number of rows as
  input. This accounts for the edge case where the input list has 0 columns but
  you'd still like to specify a known number of rows (#272).

* `std::max_element()` can now be used with writable vectors (#334).

* Read only `r_vector`s now have a move constructor and move assignment
  operator (#365).

## Improvements and fixes

* Repeated assignment to a `cpp11::writable::strings` vector through either
  `x[i] = elt` or `x.push_back(elt)` is now more performant, at the tradeoff
  of slightly less safety (as long as `elt` is actually a `CHARSXP` and `i` is
  within bounds, there is no chance of failure, which are the same kind of
  invariants placed on the other vector types) (#378).

* Constructors for writable vectors from `initializer_list<named_arg>` now
  check that `named_arg` contains a length 1 object of the correct type, and
  throws either a `cpp11::type_error` or `std::length_error` if that is not the
  case (#382).

* `cpp11::package` now errors if given a package name that hasn't been loaded
  yet. Previously it would cause R to hang indefinitely (#317).

* `cpp11::function` now protects its underlying function, for maximum safety
  (#294).

* `cpp11::writable::r_vector<T>::iterator` no longer implicitly deletes its
  copy assignment operator (#360).

* Added the missing implementation for `x.at("name")` for read only vectors
  (#370).

* Fixed an issue with the `writable::matrix` copy constructor where the
  underlying SEXP should have been copied but was not. It is now consistent with
  the behavior of the equivalent `writable::r_vector` copy constructor.

* Fixed a memory leak with the `cpp11::writable::r_vector` move assignment
  operator (#338).

* Fixed an issue where writable vectors were being protected twice (#365).

* The approach for the protection list managed by cpp11 has been tweaked
  slightly. In 0.4.6, we changed to an approach that creates one protection list
  per compilation unit, but we now believe we've found an approach that is
  guaranteed by the C++ standard to create one protection list per package,
  which makes slightly more sense and still has all the benefits of the reduced
  maintanence burden mentioned in the 0.4.6 news bullet (#364).

  A side effect of this new approach is that the `preserved` object exposed
  through `protect.hpp` no longer exists. We don't believe that anyone was using
  this. This also means you should no longer see "unused variable" warnings
  about `preserved` (#249).

## Breaking changes

* R >=3.6.0 is now required. This is in line with (and even goes beyond) the
  tidyverse standard of supporting the previous 5 minor releases of R.

* Implicit conversion from `sexp` to `bool`, `size_t`, and `double` has been
  marked as deprecated and will be removed in the next version of cpp11. The 3
  packages that were using this have been notified and sent PRs. The recommended
  approach is to instead use `cpp11::as_cpp<T>`, which performs type and length
  checking, making it much safer to use.

* Dropped support for gcc 4.8, mainly an issue for extremely old CentOS 7
  systems which used that as their default compiler. As of June 2024, CentOS 7
  is past its vendor end of support date and therefore also out of scope for
  Posit at this time (#359).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants