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

mosh-server needs libutempter #284

Closed
bahamat opened this issue Sep 25, 2020 · 2 comments
Closed

mosh-server needs libutempter #284

bahamat opened this issue Sep 25, 2020 · 2 comments
Assignees

Comments

@bahamat
Copy link
Member

bahamat commented Sep 25, 2020

Users logged in with mosh don't get added to utmpx due to missing libutempter. Illumos-gate recently added it, so SmartOS would get that automatically but to take advantage of it we'd need to up the minimum PI, which is probably a bit much for an issue affecting a single package.

Bringing our own should solve this problem.

jperkin pushed a commit that referenced this issue Sep 28, 2020
(pkgsrc)
 - Add  TEST_DEPENDS+, but still fails at pdLaTeX

(upstream)
# fs 1.5.0
----------

* The libuv release used by fs was updated to 1.38.1

* `dir_create()` now consults the process umask so the mode during
  directory creation works like `mkdir` does (#284).

* `fs_path`, `fs_bytes` and `fs_perms` objects are now compatible with vctrs 0.3.0 (#266)

* `fs_path` objects now sort properly when there is a mix of ASCII and
  unicode elements (#279)

# fs 1.4.2
----------
* `file_info(..., follow = TRUE)`, `is_dir()`, and `is_file()`
  follow relative symlinks in non-current directories (@heavywatal, #280)

* `dir_map()` now grows its internal list safely, the 1.4.0 release
  introduced an unsafe regression (#268)

* `file_info()` returns a tibble if the tibble package is installed,
  and subsets work when it is a `data.frame` (#265)

* `path_real()` always fails if the file does not exist. Thus it can no longer
  be used to resolve symlinks further up the path hierarchy for files that do not
  yet exist. This reverts the feature introduced in 1.2.7 (#144, #221, #231)

# fs 1.4.1
----------
* Fix compilation on Solaris.

# fs 1.4.0
----------
* `[[.fs_path`, `[[.fs_bytes` and `[[.fs_perms` now preserve their
  classes after subsetting (#254).

* `path_has_parent()` now recycles both the `path` and `parent` arguments (#253).
* `path_ext_set()` now recycles both the `path` and `ext` arguments (#250).
* Internally fs no longer depends on Rcpp

# fs 1.3.2
----------
* fs now passes along `CPPFLAGS` during compilation of libuv, fixing an issue that could
  prevent compilation from source on macOS Catalina. (@kevinushey, #229)

* fs now compiles on alpine linux (#210)

* `dir_create()` now works with absolute paths and `recurse = FALSE` (#204).

* `dir_tree()` now works with paths that need tilde expansion (@dmurdoch, @jennybc, #203).

* `file_info()` now returns file sizes with the proper classes
  ("fs_bytes" and "numeric"), rather than just "fs_bytes" (#239)

* `get_dirent_type()` gains a `fail` argument (@bellma-lilly, #219)

* `Is_Dir()`, `is_file()`, `is_file_empty()` and `file_info()` gain a
  `follow` argument, to follow links and return information about the
  linked file rather than the link itself (#198)

* `path()` now follows "tidy" recycling rules, namely only consistent
  or length 1 inputs are recycled. (#238)

* `path()` now errors if the path given or constructed will exceed `PATH_MAX` (#233).

* `path_ext_set()` now works with multiple paths (@maurolepore, #208).
jperkin pushed a commit that referenced this issue Sep 28, 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 to TritonDataCenter/pkgsrc-joyent that referenced this issue Sep 29, 2020
This is a copy of libutempter straight from illumos-gate, with only a
couple of minor modifications (remove __unused).

Resolves part of TritonDataCenter/pkgsrc#284.
jperkin pushed a commit that referenced this issue Sep 29, 2020
@jperkin jperkin self-assigned this Sep 29, 2020
@jperkin
Copy link
Collaborator

jperkin commented Sep 29, 2020

Everything is now in place, I'll push these changes to trunk later when the 2020Q3 builds have finished. At least in my limited testing they all built correctly against libutempter, and the packages that I was able to test in a sandbox did start creating correct utmpx entries.

Will close this once the packages are available for wider testing.

jperkin pushed a commit that referenced this issue Sep 30, 2020
@jperkin
Copy link
Collaborator

jperkin commented Oct 5, 2020

Ok these are now all available in trunk and 2020Q3, let me know if things don't work as expected.

@jperkin jperkin closed this as completed Oct 5, 2020
jperkin pushed a commit that referenced this issue 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 issue Oct 12, 2020
jperkin pushed a commit that referenced this issue Nov 6, 2020
Version 1.64.1
--------------

- The BigInt type is now _actually_ available, as it wasn't enabled in the
  1.64.0 release even though it was mentioned in the release notes.

- Closed bugs and merge requests:
  * testCommandLine's Unicode tests failing on Alpine Linux [Philip Chimento,
    #296, !399]
  * build: Various clean-ups [Jan Tojnar, !403]
  * Correctly handle vfunc inout parameters [Marco Trevisan, !404]
  * Fix failed redirect of output in CommandLine tests [Liban Parker, !409]

Version 1.58.6
--------------

- Various backports:
  * Correctly handle vfunc inout parameters [Marco Trevisan]
  * Fix failed redirect of output in CommandLine tests [Liban Parker]
  * Avoid filename conflict when tests run in parallel [Philip Chimento]

Version 1.64.0
--------------

- No change from 1.63.92.

Version 1.63.92
---------------

- Closed bugs and merge requests:
  * object: Use g_irepository_get_object_gtype_interfaces [Colin Walters, Philip
    Chimento, #55, !52]
  * Add -fno-semantic-interposition to -Bsymbolic-functions [Jan Alexander
    Steffens (heftig), #303, !397]
  * examples: add a dbus-client and dbus-service example [Andy Holmes, !398]
  * Various GNOME Shell crashes during GC, mozjs68 regression [Jan Alexander
    Steffens (heftig), Philip Chimento, #301, !396]

Version 1.63.91
---------------

- Closed bugs and merge requests:
  * [mozjs68] Reorganize modules for ESM. [Evan Welsh, Philip Chimento, !383]
  * Various maintenance [Philip Chimento, !388]
  * Fix building GJS master with Visual Studio and update build instructions
    [Chun-wei Fan, !389]
  * Resolve "Gnome Shell crash on GC run with mozjs68" [Philip Chimento, !391]
  * installed-tests/js: Add missing dep on warnlib_typelib [Jan Alexander
    Steffens, !393]
  * object: Cache known unresolvable properties [Daniel van Vugt, Philip
    Chimento, !394, #302]

Version 1.58.5
--------------

- Closed bugs and merge requests:
  * Fix Visual Studio builds of gnome-3-34 (1.58.x) branch [Chun-wei Fan, !392]
  * Can not access GObject properties of classes without GI information [Juan
    Pablo Ugarte, !385, #299]

Version 1.63.90
---------------

- New JS API: The GObject module has gained new overrides:
  GObject.signal_handler_find(), GObject.signal_handlers_block_matched(),
  GObject.signal_handlers_unblock_matched(), and
  GObject.signal_handlers_disconnect_matched(). These overrides replace the
  corresponding C API, which was not idiomatic for JavaScript and was not fully
  functional because it used bare C pointers for some of its functionality.
  See modules/overrides/GObject.js for API documentation.

- New JavaScript features! This version of GJS is based on SpiderMonkey 68, an
  upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 60.
  Here are the highlights of the new JavaScript features.
  For more information, look them up on MDN or devdocs.io.

  * New language features
    + The BigInt type, currently a stage 3 proposal in the ES standard, is now
      available.

  * New syntax
    + `globalThis` is now the ES-standard supported way to get the global
      object, no matter what kind of JS environment. The old way, `window`, will
      still work, but is no longer preferred.
    + BigInt literals are expressed by a number with "n" appended to it: for
      example, `1n`, `9007199254740992n`.

  * New APIs
    + String.prototype.trimStart() and String.prototype.trimEnd() now exist and
      are preferred instead of trimLeft() and trimRight() which are nonstandard.
    + String.prototype.matchAll() allows easier access to regex capture groups.
    + Array.prototype.flat() flattens nested arrays, well-known from lodash and
      similar libraries.
    + Array.prototype.flatMap() acts like a reverse filter(), allowing adding
      elements to an array while iterating functional-style.
    + Object.fromEntries() creates an object from iterable key-value pairs.
    + Intl.RelativeTimeFormat is useful for formatting time differences into
      human-readable strings such as "1 day ago".
    + BigInt64Array and BigUint64Array are two new typed array types.

  * New behaviour
    + There are a lot of minor behaviour changes as SpiderMonkey's JS
      implementation conforms ever closer to existing ECMAScript standards and
      adopts new ones. For complete information, read the Firefox developer
      release notes:
      https://developer.mozilla.org/en-US/Firefox/Releases/61#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/62#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/63#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/64#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/65#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/66#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/67#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/68#JavaScript

  * Backwards-incompatible changes
    + The nonstandard String generics were removed. These had only ever been
      implemented by Mozilla and never made it into a standard. (An example of a
      String generic is calling a string method on something that might not be a
      string like this: `String.endsWith(foo, 5)`. The proper way is
      `String.prototype.endsWith.call(foo, 5)` or converting `foo` to a string.)
      This should not pose much of a problem for existing code, since in the
      previous version these would already print a deprecation warning whenever
      they were used.
      You can use `moz68tool` from mozjs-deprecation-tools
      (https://gitlab.gnome.org/ptomato/moz60tool) to scan your code for this
      nonstandard usage.

- Closed bugs and merge requests:
  * invalid import on signal.h [#295, !382, Philip Chimento]
  * SpiderMonkey 68 [#270, !386, Philip Chimento]
  * GObject: Add override for GObject.handler_block_by_func [#290, !371, Philip
    Chimento]

Version 1.63.3
--------------

- Closed bugs and merge requests:
  * JS ERROR: TypeError: this._rooms.get(...) is undefined [Philip Chimento,
    #289, !367]
  * Run CI build with --werror [Philip Chimento, #286, !365]
  * build: Remove Autotools build system [Philip Chimento, !364]
  * gjs-symlink script is incompatible with distro builds [Michael Catanzaro,
    Bastien Nocera, #291, !369, !370]
  * installed-tests: Don't hardcode the path of bash [Ting-Wei Lan, !372]
  * Update Visual Studio build instructions (after migrating to full Meson-based
    builds) [Chun-wei Fan, !375]
  * object: Warn when setting a deprecated property [Florian Müllner, !378]
  * CI: Create mozjs68 CI images [Philip Chimento, !379]
  * Various maintenance [Philip Chimento, !374, !380, !381]

Version 1.58.4
--------------

- Now prints a warning when constructing an unregistered object inheriting from
  GObject (i.e. if you forgot to use GObject.registerClass.) In 1.58.2 this
  would throw an exception, which broke some existing code, so that change was
  reverted in 1.58.3. In this version the check is reinstated, but we log a
  warning instead of throwing an exception, so that people know to fix their
  code, but without breaking things.
  NOTE: In 1.64 (the next stable release) the warning will be changed back into
  an exception, because code with this problem can be subtly broken and cause
  unexpected errors elsewhere. So make sure to fix your code if you get this
  warning.

- Closed bugs and merge requests:
  * GSettings crash fixes [Andy Holmes, !373]

- Memory savings for Cairo objects [Philip Chimento, !374]

- Fix for crash in debug functions [Philip Chimento, !374]

Version 1.63.2
--------------

- There is an option for changing the generated GType name for GObject classes
  created in GJS to a new scheme that is less likely to have collisions. This
  scheme is not yet the default, but you can opt into it by setting
  `GObject.gtypeNameBasedOnJSPath = true;` as early as possible in your
  prograṁ. Doing this may require some changes in Glade files if you use
  composite widget templates.

  We recommend you make this change in your codebase as soon as possible, to
  avoid any surprises in the future.

- New JS API: GObject.Object has gained a stop_emission_by_name() method which
  is a bit more idiomatic than calling GObject.signal_stop_emission_by_name().

- It's now supported to use the "object" attribute in a signal connection in a
  composite widget template in a Glade file.

- Closed bugs and merge requests:
  * CI: Tweak eslint rule for unneeded parentheses [Florian Müllner, !353]
  * Smarter GType name computation [Marco Trevisan, !337]
  * Meson CI [Philip Chimento, !354]
  * Visual Studio builds using Meson [Chun-wei Fan, !355]
  * Hide internal symbols from ABI [Marco Trevisan, #194, !352]
  * Allow creating custom tree models [Giovanni Campagna, #71]
  * build: Fix dist files [Florian Müllner, !357]
  * GObject: Add convenience wrapper for signal_stop_emission_by_name() [Florian
    Müllner, !358]
  * Various maintenance [Philip Chimento, !356]
  * object_instance_props_to_g_parameters should do more check on argv [Philip
    Chimento, #63, !359]
  * Support flat C arrays of structures [Philip Chimento, !361]
  * Gtk Templates: support connectObj argument [Andy Holmes, !363]

- Various build fixes [Philip Chimento]

Version 1.58.2
--------------

- Closed bugs and merge requests:
  * GObject based class initialization checks [Marco Trevisan, Philip Chimento,
    !336]
  * Silently leaked return value of callbacks [Xavier Claessens, Philip
    Chimento, #86, !44]
  * Crash when calling Gio.Initable.async_init with not vfunc_async_init
    implementation [Philip Chimento, #287, !362]
  * [cairo] insufficient checking [Philip Chimento, #49, !360]

- Various crash fixes backported from the development branch that didn't close
  a bug or merge request.

Version 1.63.1
--------------

- Note that the 1.59, 1.60, 1.61, and 1.62 releases are hereby skipped, because
  we are calling the next stable series 1.64 to match gobject-introspection and
  GLib.

- GJS now includes a Meson build system. This is now the preferred way to build
  it; however, the old Autotools build system is still available for a
  transitional period.

- Closed bugs and merge requests:
  * GObject: Add convenience wrapper for signal_handler_(un)block() [Florian
    Müllner, !326]
  * GObject based class initialization checks [Marco Trevisan, Philip Chimento,
    !336]
  * Meson port [Philip Chimento, !338]
  * add http client example [Sonny Piers, !342]
  * Smaller CI, phase 2 [Philip Chimento, !343]
  * add websocket client example [Sonny Piers, !344]
  * Fix Docker images build [Philip Chimento, !345]
  * CI: Use new Docker images [Philip Chimento, !346]
  * docs: Update internal links [Andy Holmes, !348]
  * Don't pass generic marshaller to g_signal_newv() [Niels De Graef, !349]
  * tests: Fail debugger tests if command failed [Philip Chimento, !350]
  * Minor CI image fixes [Philip Chimento, !351]
  * Various fixes [Marco Trevisan, Philip Chimento]

Version 1.58.1
--------------

- Closed bugs and merge requests:
  * Import wiki documentation [Sonny Piers, !341]
  * Smaller CI, phase 1 [Philip Chimento, !339]
  * Crashes after setting child property 'icon-name' on GtkStack then displaying
    another GtkStack [Florian Müllner, #284, !347]
  * GLib.strdelimit crashes [Philip Chimento, #283, !340]

Version 1.58.0
--------------

- No change from 1.57.92.

Version 1.57.92
---------------

- Closed bugs and merge requests:
  * tests: Enable regression test cases for GPtrArrays and GArrays of structures
    [Stéphane Seng, !334]
  * Various maintenance [Philip Chimento, !333, !335]

Version 1.57.91
---------------

- GJS no longer links to libgtk-3. This makes it possible to load the Gtk-4.0
  typelib in GJS and write programs that use GTK 4.

- The heapgraph tool has gained some improvements; it is now possible to print a
  heap graph of multiple targets. You can also mark an object for better
  identification in the heap graph by assigning a magic property: for example,
  myObject.__heapgraph_name = 'Button' will make that object identify itself as
  "Button" in heap graphs.

- Closed bugs and merge requests:
  * Remove usage of Lang in non legacy code [Sonny Piers, !322]
  * GTK4 [Florian Müllner, #99, !328, !330]
  * JS syntax fixes [Marco Trevisan, Philip Chimento, !306, !323]
  * gi: Avoid infinite recursion when converting GValues [Florian Müllner, !329]
  * Implement all GObject-introspection test suites [Philip Chimento, !327,
    !332]
  * Heapgraph improvements [Philip Chimento, !325]

Version 1.57.90
---------------

- New JS API: GLib.Variant has gained a recursiveUnpack() method which
  transforms the variant entirely into a JS object, discarding all type
  information. This can be useful for dealing with a{sv} dictionaries, where
  deepUnpack() will keep the values as GLib.Variant instances in order to
  preserve the type information.

- New JS API: GLib.Variant has gained a deepUnpack() method which is exactly the
  same as the already existing deep_unpack(), but fits with the other camelCase
  APIs that GJS adds.

- Closed bugs and merge requests:
  * Marshalling of GPtrArray broken [#9, !311, Stéphane Seng]
  * Fix locale chooser [!313, Philip Chimento]
  * dbus-wrapper: Remove interface skeleton flush idle on dispose [!312, Marco
    Trevisan]
  * gobject: Use auto-compartment when getting property as well [!316, Florian
    Müllner]
  * modules/signals: Use array destructuring in _emit [!317, Jonas Dreßler]
  * GJS can't call glibtop_init function from libgtop [#259, !319,
    Philip Chimento]
  * GLib's VariantDict is missing lookup [#263, !320, Sonny Piers]
  * toString on an object implementing an interface fails [#252, !299, Marco
    Trevisan]
  * Regression in GstPbutils.Discoverer::discovered callback [#262, !318, Philip
    Chimento]
  * GLib.Variant.deep_unpack not working properly with a{sv} variants [#225,
    !321, Fabián Orccón, Philip Chimento]
  * Various maintenance [!315, Philip Chimento]

- Various CI fixes [Philip Chimento]

Version 1.57.4
--------------

- Closed bugs and merge requests:
  * gjs 1.57 requires a recent sysprof version for sysprof-capture-3 [#258,
    !309, Olivier Fourdan]

- Misc documentation changes [Philip Chimento]

Version 1.57.3
--------------

- The GJS profiler is now integrated directly into Sysprof 3, via the
  GJS_TRACE_FD environment variable. Call stack information and garbage
  collector timing will show up in Sysprof. See also GNOME/Initiatives#10

- New JS API: System.addressOfGObject(obj) will return a string with the hex
  address of the underlying GObject of `obj` if it is a GObject wrapper, or
  throw an exception if it is not. This is intended for debugging.

- New JS API: It's now possible to pass a value from Gio.DBusProxyFlags to the
  constructor of a class created by Gio.DBusProxy.makeProxyWrapper().

- Backwards-incompatible change: Trying to read a write-only property on a DBus
  proxy object, or write a read-only property, will now throw an exception.
  Previously it would fail silently. It seems unlikely any code is relying on
  the old behaviour, and if so then it was probably masking a bug.

- Closed bugs and merge requests:
  * Build failure on Continuous [#253, !300, Philip Chimento]
  * build: Bump glib requirement [!302, Florian Müllner]
  * profiler: avoid clearing 512 bytes of stack [!304, Christian Hergert]
  * system: add addressOfGObject method [!296, Marco Trevisan]
  * Add support for GJS_TRACE_FD [!295, Christian Hergert]
  * Gio: Make possible to pass DBusProxyFlags to proxy wrapper [!297, Marco
    Trevisan]
  * Various maintenance [!301, Philip Chimento]
  * Marshalling of GPtrArray broken [#9, !307, Stéphane Seng]
  * Build fix [!308, Philip Chimento]
  * Gio: sync dbus wrapper properties flags [!298, Marco Trevisan]
  * GjsMaybeOwned: Reduce allocation when used as Object member [!303, Marco
    Trevisan]

Version 1.57.2
--------------

- There are now overrides for Gio.SettingsSchema and Gio.Settings which avoid
  aborting the whole process when trying to access a nonexistent key or child
  schema. The original API from GLib was intended for apps, since apps should
  have complete control over which settings keys they are allowed to access.
  However, it is not a good fit for shell extensions, which may need to access
  different settings keys depending on the version of GNOME shell they're
  running on.

  This feature is based on code from Cinnamon which the copyright holders have
  kindly agreed to relicense to GJS's license.

- New JS API: It is now possible to pass GObject.TypeFlags to
  GObject.registerClass(). For example, passing
  `GTypeFlags: GObject.TypeFlags.ABSTRACT` in the class info object, will create
  a class that cannot be instantiated. This functionality was present in
  Lang.Class but has been missing from GObject.registerClass().

- Closed bugs and merge requests:
  * Document logging features [#230, !288, Andy Holmes]
  * Support optional GTypeFlags value in GObject subclasses [!290, Florian
    Müllner]
  * Ensure const-correctness in C++ objects [#105, !291, Onur Şahin]
  * Programmer errors with GSettings cause segfaults [#205, !284, Philip
    Chimento]
  * Various maintenance [!292, Philip Chimento]
  * debugger: Fix summary help [!293, Florian Müllner]
  * context: Use Heap pointers for GC objects stored in vectors [!294, Philip
    Chimento]

Version 1.56.2
--------------

- Closed bugs and merge requests:
  * Crash in BoxedInstance when struct could not be allocated directly [#240,
    !285, Philip Chimento]
  * Cairo conversion bugs [!286, Philip Chimento]
  * Gjs crashes when binding inherited property to js added gobject-property
    [#246, !289, Marco Trevisan]
  * console: Don't accept --profile after the script name [!287, Philip
    Chimento]

Version 1.57.1
--------------

- Closed bugs and merge requests:
  * Various maintenance [!279, Philip Chimento]
  * mainloop: Assign null to property instead of deleting [!280, Jason Hicks]
  * Added -d version note README.md [!282, Nauman Umer]
  * Extra help for debugger commands [#236, !283, Nauman Umer]
  * Crash in BoxedInstance when struct could not be allocated directly [#240,
    !285, Philip Chimento]
  * Cairo conversion bugs [!286, Philip Chimento]

Version 1.56.1
--------------

- Closed bugs and merge requests:
  * Calling dumpHeap() on non-existent directory causes crash [#134, !277,
    Philip Chimento]
  * Using Gio.MemoryInputStream.new_from_data ("string") causes segfault [#221,
    !278, Philip Chimento]
  * Fix gjs_context_eval() for non-zero-terminated strings [!281, Philip
    Chimento]

Version 1.56.0
--------------

- No change from 1.55.92.

Version 1.55.92
---------------

- Closed bugs and merge requests:
  * Fix CI failures [!269, Philip Chimento]
  * Possible memory allocation/deallocation bug (possibly in js_free() in GJS)
    [!270, Chun-wei Fan, Philip Chimento]
  * cairo-context: Special-case 0-sized vector [!271, Florian Müllner]
  * Add some more eslint rules [!272, Florian Müllner]
  * win32/NMake: Fix introspection builds [!274, Chun-wei Fan]
  * NMake/libgjs-private: Export all the public symbols there [!275, Chun-wei
    Fan]

Version 1.55.91
---------------

- The problem of freezing while running the tests using GCC's sanitizers was
  determined to be a bug in GCC, which was fixed in GCC 9.0.1.

- Closed bugs and merge requests:
  * gnome-sound-recorder crashes deep inside libgjs [#223, !266, Philip
    Chimento]
  * Various maintenance [!267, Philip Chimento]
  * wrapperutils: Define $gtype property as non-enumerable [!268, Philip
    Chimento]

Version 1.55.90
---------------

- New JS API: It's now possible to call and implement DBus methods whose
  parameters or return types include file descriptor lists (type signature 'h'.)
  This involves passing or receiving a Gio.UnixFDList instance along with the
  parameters or return values.

  To call a method with a file descriptor list, pass the Gio.UnixFDList along
  with the rest of the parameters, in any order, the same way you would pass a
  Gio.Cancellable or async callback.

  For return values, things are a little more complicated, in order to avoid
  breaking existing code. Previously, synchronously called DBus proxy methods
  would return an unpacked GVariant. Now, but only if called with a
  Gio.UnixFDList, they will return [unpacked GVariant, Gio.UnixFDList]. This
  does not break existing code because it was not possible to call a method with
  a Gio.UnixFDList before, and the return value is unchanged if not calling with
  a Gio.UnixFDList. This does mean, unfortunately, that if you have a method
  with an 'h' in its return signature but not in its argument signatures, you
  will have to call it with an empty FDList in order to receive an FDList with
  the return value, when calling synchronously.

  On the DBus service side, when receiving a method call, we now pass the
  Gio.UnixFDList received from DBus to the called method. Previously, sync
  methods were passed the parameters, and async methods were passed the
  parameters plus the Gio.DBusInvocation object. Appending the Gio.UnixFDList to
  those parameters also should not break existing code.

  See the new tests in installed-tests/js/testGDBus.js for examples of calling
  methods with FD lists.

- We have observed on the CI server that GJS 1.55.90 will hang forever while
  running the test suite compiled with GCC 9.0.0 and configured with the
  --enable-asan and --enable-ubsan arguments. This should be addressed in one of
  the following 1.55.x releases.

- Closed bugs and merge requests:
  * GDBus proxy overrides should support Gio.DBusProxy.call_with_unix_fd_list()
    [#204, !263, Philip Chimento]
  * Add regression tests for GObject vfuncs [!259, Jason Hicks]
  * GjsPrivate: Sources should be C files [!262, Philip Chimento]
  * build: Vendor last-good version of AX_CODE_COVERAGE [!264, Philip Chimento]

Version 1.55.4
--------------

- Closed bugs and merge requests:
  * Various maintenance [!258, Philip Chimento]
  * Boxed copy constructor should not be called, split Boxed into prototype and
    instance structs [#215, !260, Philip Chimento]

Version 1.55.3
--------------

- Closed bugs and merge requests:
  * Manually constructed ByteArray toString segfaults [#219, !254, Philip
    Chimento]
  * signals: Add _signalHandlerIsConnected method [!255, Jason Hicks]
  * Various maintenance [!257, Philip Chimento]

Version 1.52.5
--------------

- This was a release consisting only of backports from the GNOME 3.30 branch to
  the GNOME 3.28 branch.

- This release includes the "Big Hammer" patch from GNOME 3.30 to reduce memory
  usage. For more information, read the blog post at
  https://feaneron.com/2018/04/20/the-infamous-gnome-shell-memory-leak/
  It was not originally intended to be backported to GNOME 3.28, but in practice
  several Linux distributions already backported it, and it has been working
  well to reduce memory usage, and the bugs have been ironed out of it.

  It does decrease performance somewhat, so if you don't want that then don't
  install this update.

- Closed bugs and merge requests:

  * Ensure not to miss the force_gc flag [#150, !132, Carlos Garnacho]
  * Make GC much more aggressive [#62, !50, Giovanni Campagna, Georges Basile
    Stavracas Neto, Philip Chimento]
  * Queue GC when a GObject reference is toggled down [#140, !114, !127, Georges
    Basile Stavracas Neto]
  * Reduce memory overhead of g_object_weak_ref() [#144, !122, Carlos Garnacho,
    Philip Chimento]
  * context: Defer and therefore batch forced GC runs [performance] [!236,
    Daniel van Vugt]
  * context: use timeout with seconds to schedule a gc trigger [!239, Marco
    Trevisan]
  * Use compacting GC on RSS size growth [!133, #151, Carlos Garnacho]
  * GType memleak fixes [!244, Marco Trevisan]

Version 1.55.2
--------------

- Closed bugs and merge requests:
  * Gnome-shell crashes on destroying cached param specs [#213, !240, Marco
    Trevisan]
  * Various maintenance [!235, !250, Philip Chimento]
  * Auto pointers builder [!243, Marco Trevisan]
  * configure.ac: Update bug link [!245, Andrea Azzarone]
  * SIGSEGV when exiting gnome-shell [#212, !247, Andrea Azzarone, Philip
    Chimento]
  * Fix build with --enable-dtrace and create CI job to ensure it doesn't break
    in the future [#196, !237, !253, Philip Chimento]
  * Delay JSString-to-UTF8 conversion [!249, Philip Chimento]
  * Annotate return values [!251, Philip Chimento]
  * Fix a regression with GError toString() [!252, Philip Chimento]
  * GType memleak fixes [!244, Marco Trevisan]
  * Atoms refactor [!233, Philip Chimento, Marco Trevisan]
  * Write a "Code Hospitable" README file [#17, !248, Philip Chimento, Andy
    Holmes, Avi Zajac]
  * object: Method lookup repeatedly traverses introspection [#54, !53, Colin
    Walters, Philip Chimento]
  * Handler of GtkEditable::insert-text signal is not run [#147, !143, Tomasz
    Miąsko, Philip Chimento]

Version 1.54.3
--------------

- Closed bugs and merge requests:
  * object: Fix write-only properties [!246, Philip Chimento]
  * SIGSEGV when exiting gnome-shell [#212, !247, Andrea Azzarone]
  * SelectionData.get_targets crashes with "Unable to resize vector" [#201,
    !241, Philip Chimento]
  * Gnome-shell crashes on destroying cached param specs [#213, !240, Marco
    Trevisan]
  * GType memleak fixes [!244, Marco Trevisan]
  * Fix build with --enable-dtrace and create CI job to ensure it doesn't break
    in the future [#196, !253, Philip Chimento]

Version 1.54.2
--------------

- Closed bugs and merge requests:
  * context: Defer and therefore batch forced GC runs [performance] [!236,
    Daniel van Vugt]
  * context: use timeout with seconds to schedule a gc trigger [!239, Marco
    Trevisan]
  * fundamental: Check if gtype is valid before using it [!242, Georges Basile
    Stavracas Neto]

- Backported a fix for a crash in the interactive interpreter when executing
  something like `throw "foo"` [Philip Chimento]

- Backported various maintenance from 3.31 [Philip Chimento]

Version 1.55.1
--------------

- New API for programs that embed GJS: gjs_memory_report(). This was already an
  internal API, but now it is exported.

- Closed bugs and merge requests:

  * object: Implement newEnumerate hook for GObject [!155, Ole Jørgen Brønner]
  * Various maintenance [!228, Philip Chimento]
  * ByteArray.toString should stop at null bytes [#195, !232, Philip Chimento]
  * Byte arrays that represent encoded strings should be 0-terminated [#203,
    !232, Philip Chimento]
  * context: Defer and therefore batch forced GC runs [performance] [!236,
    Daniel van Vugt]
  * context: use timeout with seconds to schedule a gc trigger [!239, Marco
    Trevisan]
  * arg: Add special-case for byte arrays going to C [#67, !49, Jasper
    St. Pierre, Philip Chimento]

Version 1.52.4
--------------

- This was a release consisting only of backports from the GNOME 3.30 branch to
  the GNOME 3.28 branch.

- Closed bugs and merge requests:

  * `ARGV` encoding issues [#22, !108, Evan Welsh]
  * Segfault on enumeration of GjSFileImporter properties when a searchpath
    entry contains a symlink [#154, !144, Ole Jørgen Brønner]
  * Possible refcounting bug around GtkListbox signal handlers [#24, !154,
    Philip Chimento]
  * Fix up GJS_DISABLE_JIT flag now the JIT is enabled by default in
    SpiderMonkey [!159, Christopher Wheeldon]
  * Expose GObject static property symbols. [!197, Evan Welsh]
  * Do not run linters on tagged commits [!181, Claudio André]
  * gjs-1.52.0 fails to compile against x86_64 musl systems [#132, !214, Philip
    Chimento]
  * gjs no longer builds after recent autoconf-archive updates [#149, !217,
    Philip Chimento]

Version 1.54.1
--------------

- Closed bugs and merge requests:
  * legacy: Ensure generated GType names are valid [!229, Florian Müllner]
  * Fix GJS profiler with MozJS 60 [!230, Georges Basile Stavracas Neto]
  * Regression with DBus proxies [#202, !231, Philip Chimento]

Version 1.54.0
--------------

- Compatibility fix for byte arrays: the legacy toString() behaviour of byte
  arrays returned from GObject-introspected functions is now restored. If you
  use the functionality, a warning will be logged asking you to upgrade your
  code.

- Closed bugs and merge requests:
  * byteArray: Add compatibility toString property [Philip Chimento, !227]

Version 1.53.92
---------------

- Technology preview of a GNOME 3.32 feature: native Promises for GIO-style
  asynchronous operations. This is the result of Avi Zajac's summer internship.
  To use it, you can opt in once for each specific asynchronous method, by
  including code such as the following:

      Gio._promisify(Gio.InputStream.prototype, 'read_bytes_async',
          'read_bytes_finish');

  After executing this, you will be able to use native Promises with the
  Gio.InputStream.prototype.read_async() method, simply by not passing a
  callback to it:

      try {
          let bytes = await stream.read_bytes_async(count, priority, cancel);
      } catch (e) {
          logError(e, 'Failed to read bytes');
      }

  Note that any "success" boolean return values are deleted from the array of
  return values from the async method. That is,

      let [contents, etag] = file.load_contents_async(cancel);

  whereas the callback version still returns a useless [ok, contents, etag]
  that can never be false, since on false an exception would be thrown. In the
  callback version, we must keep this for compatibility reasons.

  Note that due to a bug in GJS (https://gitlab.gnome.org/GNOME/gjs/issues/189),
  promisifying methods on Gio.File.prototype and other interface prototypes will
  not work. We provide the API Gio._LocalFilePrototype on which you can
  promisify methods that will work on Gio.File instances on the local disk only:

      Gio._promisify(Gio._LocalFilePrototype, 'load_contents_async',
          'load_contents_finish');

  We estimate this will cover many common use cases.

  Since this is a technology preview, we do not guarantee API stability with
  the version coming in GNOME 3.32. These APIs are marked with underscores to
  emphasize that they are not stable yet. Use them at your own risk.

- Closed bugs and merge requests:
  * Added promisify to GJS GIO overrides [!225, Avi Zajac]
  * Temporary fix for Gio.File.prototype [!226, Avi Zajac]

Version 1.53.91
---------------

- Closed bugs and merge requests:
  * CI: add webkit and gtk-app tests [!222, Claudio André]
  * Fix example eslint errors [!207, Claudio André, Philip Chimento]
  * Fix more "lost" GInterface properties [!223, Florian Müllner]
  * Fix --enable-installed-tests when built from a tarball [!224, Simon
    McVittie]

Version 1.53.90
---------------

- GJS now depends on SpiderMonkey 60 and requires a compiler capable of C++14.

- GJS includes a simple debugger now. It has basic stepping, breaking, and
  printing commands, that work like GDB. Activate it by running the GJS console
  interpreter with the -d or --debugger flag before the name of the JS program
  on the command line.

- New API for programs that embed GJS: gjs_context_setup_debugger_console().
  To integrate the debugger into programs that embed the GJS interpreter, call
  this before executing the JS program.

- New JavaScript features! This version of GJS is based on SpiderMonkey 60, an
  upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 52.
  Here are the highlights of the new JavaScript features.
  For more information, look them up on MDN or devdocs.io.

  * New syntax
    + `for await (... of ...)` syntax is used for async iteration.
    + The rest operator is now supported in object destructuring: e.g.
      `({a, b, ...cd} = {a: 1, b: 2, c: 3, d: 4});`
    + The spread operator is now supported in object literals: e.g.
      `mergedObject = {...obj1, ...obj2};`
    + Generator methods can now be async, using the `async function*` syntax,
      or `async* f() {...}` method shorthand.
    + It's now allowed to omit the variable binding from a catch statement, if
      you don't need to access the thrown exception: `try {...} catch {}`

  * New APIs
    + Promise.prototype.finally(), popular in many third-party Promise
      libraries, is now available natively.
    + String.prototype.toLocaleLowerCase() and
      String.prototype.toLocaleUpperCase() now take an optional locale or
      array of locales.
    + Intl.PluralRules is now available.
    + Intl.NumberFormat.protoype.formatToParts() is now available.
    + Intl.Collator now has a caseFirst option.
    + Intl.DateTimeFormat now has an hourCycle option.

  * New behaviour
    + There are a lot of minor behaviour changes as SpiderMonkey's JS
      implementation conforms ever closer to ECMAScript standards. For complete
      information, read the Firefox developer release notes:
      https://developer.mozilla.org/en-US/Firefox/Releases/53#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/54#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/55#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/56#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/57#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/58#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/59#JavaScript
      https://developer.mozilla.org/en-US/Firefox/Releases/60#JavaScript

  * Backwards-incompatible changes
    + Conditional catch clauses have been removed, as they were a Mozilla
      extension which will not be standardized. This requires some attention in
      GJS programs, as previously we condoned code like `catch (e if
      e.matches(Gio.IOError, Gio.IOError.EXISTS))`  with a comment in
      overrides/GLib.js, so it's likely this is used in several places.
    + The nonstandard `for each (... in ...)` loop was removed.
    + The nonstandard legacy lambda syntax (`function(x) x*x`) was removed.
    + The nonstandard Mozilla iteration protocol was removed, as well as
      nonstandard Mozilla generators, including the Iterator and StopIteration
      objects, and the Function.prototype.isGenerator() method.
    + Array comprehensions and generator comprehensions have been removed.
    + Several nonstandard methods were removed: ArrayBuffer.slice() (but not
      the standard version, ArrayBuffer.prototype.slice()),
      Date.prototype.toLocaleFormat(), Function.prototype.isGenerator(),
      Object.prototype.watch(), and Object.prototype.unwatch().

- Many of the above backwards-incompatible changes can be caught by scanning
  your source code using https://gitlab.gnome.org/ptomato/moz60tool, or
  https://extensions.gnome.org/extension/1455/spidermonkey-60-migration-validator/

- Deprecation: the custom ByteArray is now discouraged. Instead of ByteArray,
  use Javascript's native Uint8Array. The ByteArray module still contains
  functions for converting between byte arrays, strings, and GLib.Bytes
  instances.

  The old ByteArray will continue to work as before, except that Uint8Array
  will now be returned from introspected functions that previously returned a
  ByteArray. To keep your old code working, change this:

      let byteArray = functionThatReturnsByteArray();

  to this:

      let byteArray = new ByteArray.ByteArray(functionThatReturnsByteArray());

  To port to the new code:

  * ByteArray.ByteArray -> Uint8Array
  * ByteArray.fromArray() -> Uint8Array.from()
  * ByteArray.ByteArray.prototype.toString() -> ByteArray.toString()
  * ByteArray.ByteArray.prototype.toGBytes() -> ByteArray.toGBytes()
  * ByteArray.fromString(), ByteArray.fromGBytes() remain the same

  * Unlike ByteArray, Uint8Array's length is fixed. Assigning an element past
    the end of a ByteArray would lengthen the array. Now, it is ignored.
    Instead use Uint8Array.of(), for example, this code:

        let a = ByteArray.fromArray([97, 98, 99, 100]);
        a[4] = 101;

    should be replaced by this code:

        let a = Uint8Array.from([97, 98, 99, 100]);
        a = Uint8Array.of(...a, 101);

    The length of the byte array must be set at creation time. This code will
    not work anymore:

        let a = new ByteArray.ByteArray();
        a[0] = 255;

    Instead, use "new Uint8Array(1)" to reserve the correct length.

- Closed bugs and merge requests:

  * Run tests using real software [#178, !192, Claudio André]
  * Script tests are missing some errors [#179, !192, Claudio André]
  * Create a '--disable-readline' option and use it [!196, Claudio André]
  * CI: stop using Fedora for clang builds [!198, Claudio André]
  * Expose GObject static property symbols. [!197, Evan Welsh]
  * CI fixes [!200, Claudio André]
  * Docker images creation [!201, Claudio André]
  * Get Docker images built and stored in GJS registry [#185, !203, !208,
    Claudio André, Philip Chimento]
  * Clear the static analysis image a bit more [!205, Claudio André]
  * Rename the packaging job to flatpak [!210, Claudio André]
  * Create SpiderMonkey 60 docker images [!202, Claudio André]
  * Debugger [#110, !204, Philip Chimento]
  * Add convenience g_object_set() replacement [!213, Florian Müllner]
  * Add dependencies of the real tests (examples) [!215, Claudio André]
  * CWE-126 [#174, !218, Philip Chimento]
  * gjs no longer builds after recent autoconf-archive updates [#149, !217,
    Philip Chimento]
  * gjs-1.52.0 fails to compile against x86_64 musl systems [#132, !214, Philip
    Chimento]
  * Run the GTK real tests (recently added) [!212, Claudio André]
  * Fix thorough tests failures [!220, Philip Chimento]
  * Port to SpiderMonkey 60 [#161, !199, Philip Chimento]
  * Replace ByteArray with native ES6 TypedArray [#5, !199, Philip Chimento]
  * Overriding GInterface properties broke [#186, !216, Florian Müllner, Philip
    Chimento]
  * Avoid segfault when checking for GByteArray [!221, Florian Müllner]

- Various build fixes [Philip Chimento]
jperkin pushed a commit that referenced this issue Jan 4, 2021
jperkin pushed a commit that referenced this issue Jan 14, 2021
jperkin pushed a commit that referenced this issue Jan 25, 2021
2.7.1 / 2020-10-18

Development Fixes
* refactor: mutate site payload instead of duplicating it (#419)

2.7.0 / 2020-10-18

Minor Enhancements
* Change pagination message with seo_paginator_message option (#324)
* Make Twitter Summary Card without having Twitter account (#284)
* Prefer site.tagline to site.description for page title (#356)
* Render og:locale meta only when defined explicitly (#388)

Bug Fixes
* Ensure a single leading @ for twitter usernames (#367)

Development Fixes
* chore(deps): require Ruby > 2.4.0 EOL
* test: fix locale specs that use the fallback locale (#360)
* refactor: Replace read-only empty hash with private constant (#418)
* refactor: Mutate hash literals instead of duplicating them (#417)
* refactor: Reduce allocations of instance-agnostic objects (#376)
* refactor: Memoize #author_hash in SeoTag::AuthorDrop (#342)
* refactor: simplify conditional in SeoTag::Drop#date_modified (#343)
* chore(ci): profile seo-tag plugin on a third-party repository (#414)
* chore(ci): Jekyll v4.0 (#372)
* chore(ci): test against current stable Ruby 2.5 and 2.7 (#385)
* style: align with latest jekyll-rubocop (#382)
* fix: Travis builds for Jekyll 3.x (#415)

Documentation
* Structured Data Testing Tool is deprecated (#409)
* Rename Google webmaster tools to Google Search Console (#403)
* Improve documentation on plugin usage (#399)
* remove Google+ from example snippet (#358)
* HTTPS link to https://ogp.me/ (#359)
* HTTPS links to schema.org (#350)
* use example.com for example URL (#351)
jperkin added a commit that referenced this issue Mar 11, 2021
pkgsrc changes:

  * Stop pretending that share/bash-completion.d is supported, it isn't.
    Packages that are installing files there should install them into
    share/bash-completion/completions instead.

  * Stop installing profile.d script, only really makes sense under /etc,
    and it wasn't correctly handled as a configuration file anyway.

bash-completion (2.11)

  [ Alexander Meshcheryakov ]
  * _known_hosts_real: check that ruptime is present before calling
    (#390)

  [ Andrew Gaul ]
  * totem: reuse kaffeine completions (#372)

  [ Damien Nadé ]
  * __reassemble_comp_words_by_ref: avoid triggering nounset on
    indirect references

  [ Felix Lechner ]
  * lintian: complete paths for Ubuntu's .ddeb and Debian's buildinfo
    files (#397)

  [ Felix Yan ]
  * ip: complete route add table arg
  * ip: style fixes similar to ip-netns
  * ip: add more completions for ip-rule
  * ip: add support for netns (#391)
  * ip: improve completion of route subcommands (#326)

  [ Hans-Christoph Steiner ]
  * unzip, zipinfo: complete *.aar (#428)

  [ Jakub Jelen ]
  * ssh: add new -Q completions in OpenSSH 8.2p1 (#400)

  [ Kevin Locke ]
  * python: support executables with minor version (#389)

  [ Michal Suchánek ]
  * insmod, modinfo, modprobe: support xz compressed modules (#401)

  [ Phan Duc Nhat Minh ]
  * tshark: complete -r arg with all filenames (#422)

  [ Sebastian Jakubiak ]
  * openssl: update -starttls completions (#403)
  * _filedir*: update link to bug-bash discussion on -X (#404)
  * test/python: add testcase for submodule completion

  [ Ville Skyttä ]
  * Release 2.11
  * extra/make-changelog: check and output usage message
  * pre-commit: anchor exclude patterns
  * pytest: rewrite in bash, support toplevel funcs, avoid nondef ones
    and classes
  * test/xfreerdp: skip --help failure cases
  * test/tshark: fix multiple -O completion with no http2 support
  * test/ant: avoid complete-ant-cmd.pl interference with ANT_ARGS
  * _xinetd_services: avoid nounset error on bash 4.2
  * pre-commit: upgrade isort to 5.1.4
  * pre-commit: upgrade pyupgrade to 2.7.2
  * pre-commit: add pyupgrade, run it
  * test/ant: gitignore all target cache files
  * _known_hosts_real: exclude Host negations
  * pre-commit: upgrade isort to 5.0.7
  * pre-commit: update shellcheck-py URL
  * test/inputrc: do not set print-completions-horizontally
  * test/inputrc: comment typo fix
  * pytest: complete async test class methods
  * __get_cword_at_cursor_by_ref: fix regression on bash 4.2
  * test: upgrade markdownlint-cli to 0.23.2
  * _known_hosts_real: avoid errors in nounset mode on Ubuntu 14 and
    16
  * _longopt: exclude too many dashes, allow underscores, require ends
    with alnum
  * _included_ssh_config_files: support globs
  * _known_hosts_real: prevent unwanted pathname expansion on host
    entries
  * test/shfmt: upgrade to 3.1.2, reformat with it
  * test/_known_hosts_real: add explicit no globbing test case
  * test: upgrade mypy to 0.782
  * CONTRIBUTING.md: add posix and nounset mode item
  * test: upgrade mypy to 0.781
  * test: upgrade perltidy to 20200619
  * _known_hosts_real: fix completion of Host entries after a wildcard
    etc
  * _known_hosts_real: fix # handling in ssh configs
  * test: upgrade flake8 to 3.8.3
  * test/xhost: multiple expected result handling fixes
  * test/slapt-src: single expected result handling fixes
  * test: partial hostname completion fixes
  * test: simplify completion parsing
  * test/dpkg-query: mark as xfail on non-Debian based systems
  * .gitignore: clean up some no longer needed ignores
  * test/lspci: skip -A arg test if lspci fails -A help, e.g. busybox
    lspci
  * test: regex escape our magic mark for completeness
  * test: upgrade mypy to 0.780
  * test/_known_hosts_real: don't modify class scoped base expected
    list
  * test/_known_hosts_real: reset COMP_KNOWN_HOSTS_WITH_HOSTFILE
    between tests
  * test/_known_hosts_real: tolerate duplicates
  * bash_completion: trivial cleanups
  * gcc: avoid errors in nounset mode
  * pytest: fix test class method completion with BSD awk
  * man, mutt: avoid errors in nounset mode on Ubuntu 14 and 16
  * java, make: avoid errors in nounset mode on Ubuntu 14 and 16
  * README: document GNU make build requirement
  * pytest: add test class method completion
  * _known_hosts: avoid errors in nounset mode and no arguments
  * bash_completion: fix array set checks with empty elements in them
  * *: avoid more errors in nounset mode
  * cfrun: fix $hostfile leak
  * _command_offset, route: cleanups
  * *: avoid more errors in nounset mode
  * qemu: add -machine arg completion
  * qemu, sbopkg: avoid unintentional globbing on option arg
    completions
  * test: enable shellcheck SC2035
  * *: drop support for bash 4.1
  * _init_completion: fix unassigned redirect completion in nounset
    mode
  * ip: route shfmt, arithmetic evaluation
  * _filedir: avoid unbound variable error on Ubuntu 14 and 16
  * _pids, _pgids, _pnames: improve shfmt formatting
  * scp, sftp, ssh: fix completion on options bundled with -4/-6
  * modprobe, tshark, _included_ssh_config_files: use [[ ]] instead of
    [ ]
  * test/runLint: warn about [ ] instead of [[ ]] use
  * test: skip various tests if we don't get a useful usage message
  * *: mark nounset mode as supported, issues with it are bugs now
  * *: avoid more errors in nounset mode
  * *: avoid more errors in nounset mode
  * *: avoid more errors in nounset mode
  * test/inputrc: comment and whitespace tweaks
  * *: avoid more errors in nounset mode
  * test/unit: sort files included in dist
  * test/unit: include test_unit_known_hosts_real.py in dist
  * bash_completion: line wrapping tweaks, NFC
  * 7z: fix -o/-w attached arg completion
  * postfix: try to arrange a fake tty so we can tickle the usage
    message out
  * _bashcomp_try_faketty: new function to try running command with a
    fake tty
  * mr: avoid herestrings, simplify command parsing
  * test/mr: handle missing "clean" with skipif
  * test: mark known non-ASCII issues with test suite as xfail
  * dpkg-deb: add --raw-extract and -X arg completions
  * test: add some dpkg-query test cases
  * dpkg-deb: fix --show/-W completion
  * test: upgrade markdownlint-cli to 0.23.1
  * *: use more arithmetic evaluation
  * test: try harder to restore environment and cwd on failures
  * *: use $ifs for storing/restoring $IFS
  * test/irb: xfail options test if --help is not available
  * test: upgrade flake8 to 3.8.1
  * test: pre-commit config cleanups, ordering
  * test: upgrade pre-commit to 2.4.0+, drop shfmt kludge
  * test: sync shfmt and shellcheck configs
  * test: shfmt bashrc
  * test: remove unused run-shellcheck, shellcheck is in pre-commit
    now
  * test: remove old test suite code no longer used \o/
  * test/_known_hosts_real: port remaining test cases to
    pytest+pexpect
  * test: remove more no longer needed old test suite code
  * test/_known_hosts_real: port more test cases to pytest+pexpect
  * test/_get_cword: port remaining test case to pytest+pexpect
  * test: replace some echos with printfs
  * test/_filedir: fix shutil.rmtree on Python < 3.6
  * test/_expand: port remaining test cases to pytest+pexpect
  * test: drop some no longer needed old test suite code
  * test/_filedir: port remaining test cases to pytest+pexpect
  * test: run all Travis jobs on dist: bionic
  * test: drop not needed sudo on Travis
  * test/_filedir: port more test cases to pytest+pexpect
  * test/__expand_tilde_by_ref: port remaining test cases to
    pytest+pexpect
  * test/_get_comp_words_by_ref: convert remaining test cases to
    pytest+pexpect
  * test: run pytest --verbose in docker
  * lftp: use "bookmark list" command to list bookmarks
  * test: drop some no longer needed old test suite code
  * test/slapt-src: convert remaining test case to pytest+pexpect
  * _xfunc: simplify
  * apt-cache: avoid nonzero exit code from _apt_cache_packages
  * test/slapt-get: convert remaining test case to pytest+pexpect
  * test/secret-tool: add to test command list
  * test/scp: port remaining test case to pytest+pexpect
  * test/umount: convert remaining test case to pytest+pexpect
  * secret-tool: new completion
  * apt-get: complete build-dep with dirs
  * travis: use golang 1.14 for shfmt
  * *: run all shell code through shfmt -s
  * pre-commit etc: add shfmt
  * test: fix incorrect fixtures/shared/default xfails/expectations
  * test: upgrade markdownlint to 0.23.0
  * nmap: simplify help scraping a bit, don't try to emit unnecessary
    newlines
  * test: prefix fake test commands with underscore
  * test: port most umount test cases to pytest+pexpect
  * test: add note about unescaped assert_complete single return
    values
  * editorconfig: apply yaml settings to .yaml too
  * pre-commit: use local perlcritic hook
  * *: doc and comment link updates
  * pre-commit, *.md: add markdownlint, address findings
  * README: clarify loading automatically on demand
  * ssh-keygen: -O arg updates and improvements
  * ssh-keygen: add -b arg completions according to specified -t
  * ssh-keygen: option and arg completion updates for new versions
  * _command: improve commentary
  * reportbug, scp, sftp, svn: use compgen -c instead of _command
  * find: fix -exec etc argument and its completion
  * extra: trigger docker builds only on test-cmd-list.txt changes
  * test: add script to maintain list of executables for full test
    coverage
  * test: run lint tests on Travis in a quickish separate first stage
  * test/make: mark more cases as requiring command
  * make: add bmake alias
  * test: run pre-commit on host instead of docker
  * test: add perlcritic to pre-commit, run on all perl
  * *: remove some unused variables, thanks to shellcheck SC2034
  * *: various loop iteration improvements
  * crontab: fix loop over already given args
  * apt-cache: fix command mode handling
  * doc: add loop variable naming guideline
  * test: make at-point completion tests easier
  * ssh, xsltproc: address shellcheck SC2006
  * scp: work around shellcheck SC1003
  * mutt: address shellchec SC2236
  * wget: address shellcheck SC2116
  * pytest: address shellcheck SC2002
  * bash_completion, java, tipc: for loop whitespace consistency
    tweaks
  * *: more arithmetic evaluation cleanups, thanks to shellcheck
    SC2004
  * __reassemble_comp_words_by_ref, java: address and work around
    shellcheck SC2102
  * test: enable parallel pre-commit shellcheck
  * test: remove shellcheck severity filter, add explicit disables
    instead
  * doc: recommend arithmetic evaluation
  * *: array subscript cleanups
  * ssh-keygen: -s and -n completion improvements
  * *: enable and address shellcheck SC2053
  * bash_completion, invoke-rc.d, svcadm: trivial cleanups
  * *: replace various conditional expressions with arithmetic
    evaluation
  * carton: fix command parsing with BSD sed
  * nmap: fix option parsing with BSD sed
  * test/alias: port remaining test case to pytest+pexpect
  * test: generalize complete at point test
  * test/cd: fix test_dir_at_point for setups that repeat "trailer"
  * pytest: add some option arg (non-)completions
  * pytest: complete test classes
  * pgrep, pkill: add --ns and --nslist arg completions
  * test: run skipif and xfail commands without caring if they output
    or not
  * test: make it possible to not care whether command did output or
    not
  * test/xfreerdp: skip xfreerdp kbd test if kbd-list returns empty
  * test: tolerate duplicates from compgen actions
  * test: bump shellcheck severity to warning + some disables
  * *: address shellcheck SC2046
  * test/lib/library.sh: address shellcheck SC2125
  * java, pkgadd, sysbench: address shellchec SC2124
  * scp: address shellcheck SC2089 and SC2090
  * _filedir_xspec: address shellcheck SC2140
  * rpm, ssh, umount.linux: address shellcheck SC2120
  * cvs, modprobe, sh: address shellcheck SC2209
  * mutt: address shellcheck SC2088
  * _upvar, _upvars, _variables, rpm: address shellcheck SC1083
  * test/run: address shellcheck SC2164
  * renice: address shellcheck SC2254
  * tipc: comment grammar and spelling fixes
  * man, perl, route, tipc: address shellcheck SC2053
  * info, java: address shellcheck SC2153
  * quote_readline: fix $ret leak
  * test: upgrade shellcheck to 0.7.1
  * test/printenv: xfail if --help doesn't contain options (e.g.
    busybox)
  * test/aptitude: require command where necessary
  * _known_hosts_real, op: address shellcheck SC2184
  * test: don't run shellcheck on completions/.gitignore
  * protoc: complete all --*_out without more specific handling with
    dirs
  * sysbench: add --test= deprecation TODO
  * pkgadd: indentation fix
  * chronyc, wvdial: address shellcheck SC2178
  * java, pkgadd, sysbench: address shellcheck SC2124
  * mplayer: address shellcheck SC1078 false positive
  * smartctl: hush shellcheck SC2054 false positives
  * *: address shellcheck SC2221 and SC2222
  * bash_completion: address shellcheck SC2220
  * crontab, wodim: silence shellcheck SC2191 and SC2192
  * aptitude: add some option arg (non)completions
  * aptitude: parse options list from --help, hardcode less
  * test/aptitude: add some test cases
  * *: argument interation improvements
  * *: whitespace tweaks
  * apt-get etc: use _apt_cache_packages from apt-cache
  * pre-commit: run most python checks on helpers/python too
  * test/ldd: xfail if --help is not implemented
  * test/printenv: require command for arg completion test
  * printenv: indentation fixes
  * test: upgrade mypy to 0.770
  * test: split dependencies requiring Python 3.6.1+ to requirements-
    dev.txt
  * git: trigger docker rebuild on pre-commit config change
  * test: require openssl command for option argument tests
  * test: move perltidy to pre-commit, run with --converge
  * test: move shellcheck to pre-commit
  * test: ignore flake8 messages that are in black's domain
  * _xinetd_services: look up from $BASHCOMP_XINETDDIR, add some unit
    tests
  * printenv: new completion
  * copyright: add 2020
  * test: fix CompletionResult.__eq__ UnboundLocalError
  * test: run pre-commit in tools container
  * test: shellcheck tweaks
  * test: add isort to pre-commit, run it
  * test: add flake8-bugbear
  * test: install black for Python 3.6 too
  * pre-commit: add config with black, flake8, and mypy
  * test: drop redundant black args from docker runs
  * *: python type hint fixes and improvements
  * extra/make-changelog: run through black
  * test/totem: add basic test case
  * test/cd: remove unused import
  * openssl: complete -writerand with filenames
  * openssl: parse available options from $command -help
  * openssl: support getting digest list from more recent openssl
    versions
  * nmap: handle options split on equals sign
  * nmap: parse options from -h output
  * test/cd: make dir_at_point produce better debuggable failures
  * test/cd: convert remaining test case to pytest+pexpect
  * test: remove some no longer needed old test suite code
  * test/chown,sudo: parametrize special case test, improve xfail
    targeting
  * test/tsig-keygen: require command for test_options
  * test/upgradepkg: port remaining test case to pytest+pexpect
  * tsig-keygen: new completion
  * test: host helper lint and usage fixes
  * test: port some _known_hosts_real unit tests to pytest+pexpect
  * test: remove some no longer needed tcl/expect code
  * test: fix spurious hosts fixture failure without avahi-browse
    installed
  * test: port some scp test cases to pytest+pexpect
  * test: port remaining finger, sftp, ssh, and xhost cases to
    pytest+pexpect
  * lilo: work around shellcheck false positive
  * test/ipcalc: fix tests with busybox ipcalc
  * chromium-browser, firefox: complete on *.txt (#379)
  * README.md: add introduction
  * ipcalc: new completion
  * *: complete commands when prefixed with a backslash
  * test/wol: don't fail MAC test if test system has /etc/ethers
    entries
  * test/dnssec-keygen: allow more alternatives in algorithm
    completion
  * lilo: don't complete on commented out labels
  * lilo: honor -C when completing labels
  * lilo: add -B and -E completions

  [ beantaxi ]
  * Source user completion only if it's a file (#409)

  [ hugoziviani ]
  * jarsigner: complete on *.apk too (#386)
  * cryptsetup: add luksChangeKey arg completion (#380)

 -- Ville Skyttä <[email protected]>  Sat, 25 Jul 2020 11:25:09 +0300

bash-completion (2.10)

  [ Felix Lechner ]
  * perltidy: associate *.t (#338)

  [ Gabriel F. T. Gomes ]
  * perl: fix completion with space between option and argument

  [ Grisha Levit ]
  * _variables: add TERM and LC_* completion (#353)

  [ Iñigo Martínez ]
  * autotools: Replace pkgdatadir with datadir
  * pkg-config: Relative paths
  * pkg-config: generate Name from autotools PACKAGE

  [ Jakub Jelen ]
  * ssh: option and argument completion updates (#332)

  [ Michał Górny ]
  * test_arp: Skip if ARP tables are empty
  * test_chromium_browser: Skip test_2 if 'chromium-browser --help'
    fails
  * test_rpm2tgz: Fix expected output

  [ Sebastian ]
  * cppcheck: Add new standards to --std option. (#356)

  [ Tomasz N ]
  * apt-get: fix pkg version completion if it contains a colon (#351)

  [ Ville Skyttä ]
  * test: bump black to >=19.10b0
  * ssh, scp, sftp, ssh-copy-id, curl: improve identity file
    completion
  * update-rc.d: indentation fix
  * update-rc.d: remove dead code
  * screen: add serial device basic arg (non)completion
  * screen: add //telnet completion
  * test: add some trivial perl -E/-e cases
  * perl: indentation fixes
  * curl: make @filename completion do the right thing with dirs
  * _filedir: avoid duplicate dirs internally, and a compgen -d call
    for files
  * _filedir: remove unused $x
  * bash_completion.sh: shellcheck SC2086 fixes
  * test: shellcheck config cleanups
  * shellcheck: add some option arg (non)completions
  * test: fix cpio users test in presence of usernames with whitespace
  * test: python typing fixes
  * test: add minimal mypy config
  * .gitignore: mypy cache
  * makepkg: fix option completion
  * test: mark dcop and mr testcases requiring the cmd as such
  * CONTRIBUTING: disable e-mail bug gateway due to spam
  * carton: new completion
  * op: direct command parsing stderr to /dev/null
  * test: adjust java expectations based on whether jars can be listed
  * valgrind: look tool names from lib/*-linux-gnu dirs too
  * test: xfail locale-gen option completion if --help is not
    available
  * _sysvdirs: always return 0
  * java: don't assume jar is installed
  * travis: test with Debian 10
  * wine: install for wine-development and wine-stable too
  * travis: generate dist tarball on alpine
  * dmypy: new completion
  * test: add require_longopt xfail helper, use it
  * test: mark more tests that parse command output as requiring
    command
  * sysctl: invoke completed sysctl instead of one from path to get
    variables
  * screen, smartctl, update-alternatives: _parse_help, drop hardcoded
    option list
  * lintian-info: _parse_help, add more option arg (non)completions
  * gprof: _parse_usage, drop hardcoded option list
  * test: fix retrieving command to test from request
  * travis: pass NETWORK as env var, so we can actually use it
  * test: xfail MAC address completion without networking
  * test: ignore _makepkg_bootstrap in makepkg test env
  * test: hush flake8-bugbear B010
  * test: don't sort expected completion lists under the hood
  * test: add bunch of basic option parsing test cases
  * test: always run tests which don't require tested command
  * test: explodepkg and upgradepkg test fixes
  * test: mark sbcl-mt xfail due to whitespace split issues
  * _terms: search directly from various terminfo dirs
  * _terms: combine and simplify somewhat
  * pkg-get: fix $i leak
  * pkgutil: fix $i leak
  * test: portinstall/upgrade test case and setup fixes
  * lvm pv*, vg*: parse help instead of hardcoding option list
  * ipv6calc: parse help instead of hardcoding option list
  * test: avoid some sed -r/-E runLint false positives
  * test: use sh +* as ccache command test case
  * java: make jar/zip listing work with unzip
  * test: installpkg test fixes
  * test: fix acroread fixture dir
  * test: remove unnecessary returns after pytest.skip
  * test: avoid gnome-mplayer core dump on Ubuntu 14
  * xvfb-run: new completion
  * test: skip gssdp-discover --message-type when option not available
  * test: expect failures for bc without --help useful with _longopt
  * test: don't expect a .tox dir in fixture
  * test: drop sourcing our no longer existing profile.d script
  * tox: include -- in option completions
  * tox: complete defaults after a --
  * gssdp-discover: new completion
  * test: register our pytest markers to hush warnings from 4.5+
  * test: fix required pytest version
  * ip: invoke the tool as $1
  * README: drop distro badges, link to Repology instead
  * chromium-browser: add --proxy-server arg completion
  * test: source our profile.d test env script in docker
  * influx: new completion
  * README: badge title tweaks
  * tox: do simple parse on tox.ini if --listenvs* yields nothing
  * test: add basic tox fixture
  * man: fall back to _parse_usage for _parse_help
  * test_wsimport: xfail options test on unparseable -help
  * test: don't try to install black on Python < 3.6
  * pgrep: fix fallback to _parse_usage
  * test: xfail unparseable mock and munin-node-configure --help cases
  * test_pwdx: xfail more unparseable help cases
  * build: make pytest executable configurable, look for pytest-3 too
  * test: enforce minimum pytest version
  * test: zopflipng flake8 fix
  * test: xfail getent and pwdx option completions with unparseable
    --help
  * test: add more basic _parse_help use test cases
  * test: add bunch of basic _parse_help use test cases
  * .gitignore: add configure.lineno
  * badblocks: fix $i leak
  * postfix: option completion is expected to fail at the moment
  * cal: try _parse_help before _parse_usage
  * test: add bunch of basic _parse_usage use test cases
  * chsh, pwck: try _parse_help before _parse_usage
  * test: add basic autossh test
  * test: convert more _filedir unit tests to pytest+pexpect
  * test: flake8 fix
  * test: convert bunch of _filedir unit tests to pytest+pexpect
  * test: convert finger partial test case to pytest+pexpect
  * README: add some badges, tweak existing
  * test: port _variables unit tests to pytest+pexpect
  * test: port compgen and quote tests to pytest+pexpect
  * iconv, lz4, tipc, xsltproc: replace some seds with compgen -X
  * test: disallow Alpine failure on Travis
  * _pnames: adapt for busybox ps, rewrite in pure bash
  * test: run our docker script in test containers by default
  * test: use one Dockerfile for all dists
  * test_ifup: accept short option completions too
  * timeout: fallback to _parse_usage from _parse_help
  * test_wget: test --s instead of --h
  * test_lsusb: xfail with unparseable --help
  * test: expect failures for various completions without useful
    --help
  * test: support xfail in our markers like skipif, use it a lot
  * test: add Alpine Linux container, allow failures for now
  * iconv: weed out ... from encoding completions
  * test_iconv: add basic file completion test
  * test_iconv: skip option completion if --help fails
  * test_getconf: skip if -a doesn't output any POSIX_V*
  * test_feh, test_makepkg: invoke grep as "command grep"
  * test: generalize check whether we're being run in a container
  * tar: simplify locating tarball from command line
  * pkg_delete: don't limit to FreeBSD
  * test: reformat test_chromium_browser.py source
  * test: set up BASH_COMPLETION_COMPAT_DIR in bashrc (only)
  * test: more thorough system location interference avoidance
  * test: bashrc comment and whitespace tweaks
  * build: makefile whitespace tweaks
  * build: really reset return value before completions check
  * build: simplify symlink setup
  * tar: add missing bsdtar, gtar, and star symlinks
  * README: use light gray badges for unknown versions
  * README: link to cygwin package

  [ Wolf ]
  * ri: hush some warnings

  [ andreabravetti ]
  * unrar: complete on *.exe (#337)

  [ ezr ]
  * chromium-browser: Add support for .mhtml files

  [ jerkey ]
  * screen: complete first arg with serial devices

  [ marxin ]
  * gcc: support new --completion option (#222)

  [ pcc ]
  * unzip, zipinfo: complete *.aab (#340)

  [ versat ]
  * cppcheck: Remove deprecated option 'posix'  for '--std='

 -- Ville Skyttä <[email protected]>  Thu, 05 Dec 2019 17:04:26 +0200

bash-completion (2.9)

  [ Antonio Terceiro ]
  * dpkg-source: Add --before-build --after-build --commit, and
    --print-format

  [ Gabriel F. T. Gomes ]
  * xm: Deprecate completion for obsolete command (#284)
  * _filedir_xspec: Fallback to suggesting all files if requested
    (#260)
  * tar: Support completions for zstd compression extensions (#255)
  * dpkg: List held packages (#250)
  * cvs: Add completion for the log command

  [ Guillaume Mella ]
  * unzip, zipinfo: Associate with *.xar (eXist-db application
    package) (#257)

  [ Igor Susman ]
  * mplayer: Associate with *.w64

  [ Jaak Ristioja ]
  * okular: Added support for xz-compressed files.

  [ John Swinbank ]
  * _xspecs: Declare as global on bash >= 4.2

  [ Kevin Locke ]
  * test: Increase expect pty to 160 columns
  * test: avoid interrupting magic mark output

  [ Per Lundberg ]
  * 7z: add .msi support

  [ Peter Wu ]
  * tshark: speed up tshark -O completion
  * tshark: fix completion of -Xlua_script option
  * tshark: Support preferences (-o) completion with memoization
  * test: fix misinterpretation of completion output in tests
  * test: fix flake8 complaints about unused imports
  * conftest: fix RemovedInPytest4Warning due to use of
    node.get_marker
  * chromium-browser: consider chrome and chromium as aliases
  * tshark: support .gz and .cap files for -r expansion
  * tshark: prevent a single-character file from breaking -G
    completion
  * tshark: update -T and -t completions

  [ Russell Davis ]
  * man: Fix completion when failglob option is enabled (#225)

  [ Timo Taipalus ]
  * mplayer: Add common supported module music formats

  [ Tomasz N ]
  * _longopt: pick first long option on a line, not last

  [ Ville Skyttä ]
  * *: avoid shellcheck SC1007 and SC1010
  * 7z: add some TODO notes on parsing "i" output for extensions
  * ssh: make -o protocol completion less hardcoded
  * ssh: make option completion case insensitive
  * ssh: fix suboption completion with combined -*o
  * xvnc4viewer: code cleanups
  * doc/testing: remove lots of legacy info, add some new
  * CONTRIBUTING: add upstream vs bash-completion considerations
  * CONTRIBUTING: note runLint and run-shellcheck
  * __parse_options, 7z: avoid herestrings
  * arp, ccze, ifstat, inotifywait, makepkg: invoke sed with "command"
  * shellcheck: disable bunch of warnings when in "-S warning" mode
  * test: move default shell option from run-shellcheck to
    .shellcheckrc
  * test: make runLint search for herestrings
  * tar, valgrind: avoid some herestrings
  * travis: run shellcheck on bash_completion.sh.in too
  * travis: fail on shellcheck errors
  * make: quote eval array definitions to work around shellcheck
    SC1036 bug
  * test: add make -C test case
  * *: shellcheck error fixes
  * _included_ssh_config_files: store found included files in an array
  * _included_ssh_config_files: doc grammar fixes
  * test: add invoke-rc.d test case for not repeating already given
    options
  * ebtables: improve existing table arg parsing
  * test: add script to run shellcheck, run it in Travis, allowing
    failure for now
  * iptables: improve existing table arg parsing
  * test: shorten long gdb test core file name so tar doesn't croak on
    it
  * AUTHORS: remove unrelated project association from my entry
  * apt-get: protect source against regex specials
  * mypy, mysql, xmms: don't complete unknown split long option args
  * synclient: remove unused local variable "split"
  * test: adjust _get_comp_words_by_ref test to changed error output
  * apt-cache: protect showsrc against regex specials
  * test: improve tshark -O arg completion test
  * tshark: ignore stderr when parsing -G, -L, and -h output
  * *: error output consistency, use bash_completion prefix
  * _upvar: deprecate in favor of _upvars
  * *: add missing "ex: filetype=sh"
  * phing: fix getting just a tab for options on CentOS 6
  * phing: don't complete -l with files
  * various: apply file vs dir special cases also when invoked with
    full path
  * *: whitespace tweaks
  * ssh: don't offer protocol v1 specific options if it's not
    supported
  * test: add some gdb non-core files
  * _parse_help: look for long options somewhat more eagerly
  * gdb: relax core filename pattern
  * test/tools: fix exit status incrementation
  * *: arithmetic expression related cleanups
  * test/tools: run all tools, don't stop at first failure
  * test: check for perltidy errors and warnings
  * *: format Perl code with perltidy
  * *: format Python code with black
  * .dir-locals.el: use flycheck-sh-bash-args
  * valgrind: look up tools from libexec dirs too
  * *: make _parse_usage fallbacks more concise
  * svn, svk, wget: use _iconv_charsets
  * *: spelling fixes
  * msynctool: code cleanups
  * *: remove whitespace after redirections
  * *: remove spaces immediately within $()
  * bzip2: recognize *.tbz2 as bzipped
  * modprobe: module parameter boolean values
  * ping, tracepath: parse options primarily with _parse_help
  * ulimit: new completion
  * shellcheck: new completion
  * dnssec-keygen: new completion
  * modprobe: append = to module parameter completions
  * test: include test_unit_longopt.py in dist
  * test: add some _longopt unit tests
  * _longopt: simplify regex, use printf instead of echo, drop
    unnecessary sort
  * nsupdate: new completion
  * _longopt: don't complete --no-* with file/dirname arg
  * copyright: add 2019
  * pytest: complete --pythonwarnings/-W arg
  * python: make warning action list reusable
  * test: use pytest-xdist
  * extra: add git pre-push hook for triggering Docker Hub builds
  * post-commit: trigger on test/requirements.txt too
  * pytest: complete pytest-xdist --dist, --numprocesses, and
    --rsyncdir
  * test: remove no longer needed completion/*.exp
  * xfreerdp: reinstate support for old versions with dash option
    syntax
  * test: rewrite "generate" in Python, fix trailing backslash in
    EXTRA_DIST
  * test: sort t/Makefile.am EXTRA_DIST in C locale
  * ssh: support RemoteCommand and SyslogFacility options
  * test: Expect failure for chown all users test as non-root
  * test: Fix declare test case with bash 5.0
  * adb: Deprecate in favor of one shipped with the Android SDK
  * xfreerdp: Update for more modern xfreerdp
  * jsonschema: New completion
  * test: Remove unnecessary ri xfail
  * test: Clean up man tmp dir
  * .gitignore: Add .python-version (for pyenv)
  * test: Remove unnecessary autouse=True from fixtures
  * ifstat: Make work with iproute2 version
  * iperf, iperf3: Add some option arg (non-)completions
  * test: Fix test generation wrt results checking improvements
  * ifstat: New completion
  * __parse_options: Avoid non-zero exit status
  * test: Refactor/improve completion results checking
  * test: Match Python's default locale unaware sort in bash setup
  * test: Rename completion.line to .output
  * test: Add man failglob test case
  * test: Add pre_cmds support for completion fixture
  * inotifywatch: New completion, common with inotifywait
  * inotifywait: Fix -e completion with BSD sed
  * inotifywait: Avoid some false positive event names
  * test: extend _ip_addresses unit tests some
  * _ip_addresses: Avoid completing ipv4 ones with -6
  * inotifywait: New completion
  * test: Mark some xfails based on if in docker instead of in CI
  * test: Skip ifup options test if it doesn't grok --help, not in CI
  * test: Clean up and docker-ignore __pycache__ dirs
  * build: Include test/t in dist tarball
  * test/t: Avoid trailing backslash in Makefile.am's to appease
    automake
  * test: Remove some no longer used old test suite code
  * _xspecs: Simplify bash version check
  * chmod: Fix "-" completion
  * sysctl: Treat -f as alias for -p/--load
  * .gitignore: Add pytestdebug.log
  * chmod: Fix file completion after modes starting with a dash
  * _count_args: Add 3rd arg for treating option-like things as args
  * test: Fix _count_args test_7 to test intended case
  * pydocstyle: New completion
  * Travis: Remove unused PYTEST env var
  * doc: Note email issues gateway
  * tcpdump: Various option and their arg completion updates
  * test: Fix arp CI (non)expectations, remove redundant test case
  * test: Be more consistent with "CI" env var examination and xfails
  * arp: New completion, somewhat incomplete
  * test: Expect failure in gkrellm if there's no X display
  * doc: Update docs on generating simple tests
  * doc: Some test dependency doc updates
  * test: Add requirements.txt for installing dependencies
  * grpck: Parse options with _parse_help, falling back to
    _parse_usage
  * grpck: Add --root/-R arg completion
  * test suite: Ignore _scp_path_esc in env for ssh-copy-id
  * ssh-copy-id: Add -i and -o arg (non-)completions
  * tar: Clean up some redundant code
  * cancel: Split long line
  * cancel: Add some option arg (non-)completions
  * locale-gen: New completion
  * makepkg: Don't apply to other than Slackware makepkg
  * test: Allow unknowns options in makepkg option completion
  * makepkg: Use _parse_help instead of hardcoding option list
  * mypy: New completion
  * op: New completion
  * hunspell: New completion
  * xmllint: Improve --encode, --pretty, and --xpath arg
    (non-)completions
  * test: Remove leftover completion/ls.exp
  * gcc: Add g++, gcc, gccgo, and gfortran *-[568] aliases
  * perlcritic: New completion
  * gnome-screenshot: New completion
  * isort: New completion
  * freeciv: Option and arg completion updates
  * freeciv-gtk2: Install for freeciv and freeciv-gtk3, rename to
    freeciv
  * mplayer etc: Complete on *.crdownload partial downloads in
    addition to *.part
  * chromium-browser, google-chrome*: New non-xspec completion
  * firefox etc: New non-xspec completion
  * Merge branch 'master' into wip-pexpect
  * nc: Add some more option (non-)completions
  * test: Mark MANPATH without leading/trailing colons test an xfail
    on CI CentOS 6
  * test: Remove kill, killall remnants
  * test: Make case specific env entries shell code, not escaped
  * Merge branch 'master' into wip-pexpect
  * unzip, zipinfo: Associate with *.whl
  * __load_completion: Avoid unnecessary lookups from nonexistent dirs
  * Merge branch 'master' into wip-pexpect
  * gcc: Add g++, gcc, gccgo, and gfortran *-7 aliases
  * test: Use test_unit_* prefix for unit tests, to avoid name clashes
  * test: Support setting cmd=None to require no command, for unit
    tests
  * test: Misc test suite fixes
  * test: Fix jq and scrub skipif commands
  * test: Don't require complete marker on test methods
  * test: Add support for per-test env modifications
  * test: Use more conventional Python file names for tests
  * test: Sort completion results in Python for ease of use in Python
    tests
  * test: Allow __load_completion to fail
  * test: chdir to fixtures dir in Python as well
  * test: Mark xfreerdp as expected failure for now
  * test: Replace + with Plus in test class names
  * test: Implement load_completion_for using assert_bash_exec
  * test: Add ability to selectively ignore diffs in environment
  * test: Fixture reorganization
  * test: Pass through $HOME and $DISPLAY to test bash
  * test: Log pexpect interaction to $BASHCOMP_TEST_LOGFILE if set
  * test: Rename BASHCOMP_* test env variables to BASHCOMP_TEST_*
  * test: Add python3 test case
  * test: Add class level skipif based on bash exec result
  * test: Include command name in test class name, use numbered test
    method names
  * test: Fix some regressions introduced in recent test conversions
  * test: Add support for running test case in a specified dir
  * test: Add support for skipping individual tests based on shell
    command status
  * test: Make test base work with Python 3.3+
  * test: Add some iperf, iperf3 and xmodmap test cases
  * xmodmap: Use _parse_help instead of hardcoded option list
  * iperf: Improve client/server specific option parsing
  * iperf: Install for iperf3 too
  * iperf: Add g/G to --format completions
  * xmodmap: Use _parse_help instead of hardcoded option list
  * iperf: Improve client/server specific option parsing
  * iperf: Install for iperf3 too
  * iperf: Add g/G to --format completions
  * test: Use /root/.local/bin/pytest on ubuntu14 by default
  * test: Add generated test files to t/Makefile.am automatically
  * test: Add new test files to EXTRA_DIST
  * test: Use /root/.local/bin/pytest on centos6 by default
  * test: Use make pytest docker executable env-configurable, default
    pytest-3
  * test: Update generate for pytest+pexpect
  * test: Convert majority of test cases to pytest+pexpect
  * tox: Fall back to --listenvs for env list if --listenvs-all fails
  * git-post-commit: Avoid some error trash when HEAD is not a
    symbolic ref
  * test: Add pylint-3 test case
  * test: Limit number of pylint option completions
  * pydoc, pylint: Determine python2/3 based on command basename only
  * pylint: Bring -f/--format arg completion up to date with pylint
    1.9.2
  * pylint: Implement comma separated --confidence arg completion
  * test: Fix buffer size option listing in run --help
  * test: Bump expect's match_max to 20000 by default
  * test: Run docker tests with --verbose
  * _services: Try systemctl list-unit-files if systemctl list-units
    fails
  * extra/git-post-commit.sh: Add git post-commit Docker Hub trigger
    hook
  * gpgv: New completion
  * pydoc, pylint: Skip module completion if current looks like a path
  * travis: Run ubuntu14/bsd with no network
  * travis: Split long lines in script
  * test: Limit number of wget option completions to avoid unresolved
    result
  * test: Mark flake8 untested if it seems broken
  * pylint: Option arg completion improvements
  * tshark: Get available interfaces from -D output
  * ngrep: Add "any" to -d arg completions
  * fio: New completion
  * test: Fix iwspy test case
  * uscan: Use _parse_help instead of hardcoded option list
  * urlsnarf: Add -p arg completion
  * tracepath: Add -m and -p arg non-completions
  * tracepath: Actually use our separate completion instead of
    _known_hosts
  * test: Skip jq option completion test if its --help doesn't list
    them
  * xdg-settings: Make help parsing work on BSD
  * test: Support running with local BSD binaries, do it w/ ubuntu14
    in CI
  * jq, sqlite3: Protect against negative array subscripts
  * sudo: Improve long option arg handling
  * sysctl: Recognize --pattern/-r and --load options
  * test: Add sysctl option parsing test case
  * sudo: Parse options from help/usage output, add some long option
    support
  * strace: Use _parse_help instead of hardcoded option list
  * sshow: Add -p arg completion
  * sqlite3: Add some option arg (non-)completions
  * tune2fs: Update -o/-O argument lists
  * jq: New completion
  * reportbug: Run _parse_help and apt-cache more selectively
  * querybts: Use _parse_help, not hardcoded option list, misc
    improvements
  * pyvenv: Support versioned 3.6-3.8 executables
  * passwd: Try _parse_help before _parse_usage to parse options
  * profile.d: Avoid tested variable values being confused as [ ]
    operators
  * cryptsetup: Add some option arg (non-)completions
  * cryptsetup, nc, sh: Skip option args when counting arguments
  * modinfo: Fall back to _parse_usage if _parse_help yields no
    results
  * mysql, mysqladmin: Complete --ssl-{ca,cert,key} option arg
  * mysqladmin: Reuse --default-character-set completion from mysql
  * modinfo: Use _parse_help instead of hardcoded option list
  * minicom: Use _parse_help instead of hardcoded option list
  * mplayer: Associate with *.S[3T]M, *.med, *.MED
  * completions/Makefile.am: Use install-data-hook, not install-data-
    local
  * ifup etc: Add option and option argument completion
  * _count_args: Add support for not counting specified option args
  * ifquery: New ifup alias completion
  * ngrep, tshark: Complete on *.pcapng too
  * rpm: Complete --licensefiles with -q
  * pytest: Rename from py.test to follow upstream recommended name
  * README: Add instructions for overriding completions system wide
  * README: Note $BASH_COMPLETION_USER_DIR
  * test: Mark psql etc test cases untested if --help doesn't work
  * aclocal, automake: Support versioned 1.16 executables
  * __load_completion: Avoid bad array subscript on "commands" ending
    with slash
  * lzma: Use _parse_help instead of hardcoded option list
  * test: Run perlcritic and flake8 on perl and python helpers in
    Travis
  * build: Improve cleanup of test/log and test/tmp dirs
  * pkg-config: Complete on *.pc files
  * build: Use AC_PROG_SED to locate sed
  * build: Do cmake, pc, and profile variable replacements in Makefile
  * README: Add Q/A on overriding a completion, modernize local
    install answer
  * json_xs: New completion
  * chmod: New completion
  * iperf, nc: Include IPv6 addresses in bind address completions
  * links: Major rework, parse options from --help, add option arg
    completion
  * _ip_addresses: Add option to complete all/v4/v6 addresses, add
    unit test
  * wget: Remove nonexistent arg to _ip_addresses
  * _filedir: Drop unnecessary evals
  * iconv: Split charset completion to _iconv_charsets, add test case
  * links: Install completion for links2 too
  * xgamma: Comment spelling fix
  * lftp: handle -s
  * test: Skip scrub -p test when its --help doesn't list available
    patterns
  * ecryptfs-migrate-home: New completion
  * scrub: New completion
  * ether-wake: Install for etherwake as well
  * *: Support completing arg of last bundled short option
  * dselect: Parse options with _parse_help
  * dhclient: Add some option arg (non-)completions
  * dhclient: Parse options with _parse_usage
  * chage, chpasswd: Add -R/--root arg completion
  * reportbug: Add bunch of option arg (non-)completions
  * .dir-locals.el: Set -O extglob for flycheck bash checks
  * mount, umount: Deprecate on Linux in favor of util-linux >= 2.28
    ones
  * _known_hosts_real: Reimplement known hosts file parsing in pure
    bash
  * test: Add comment line to fixtures/_known_hosts_real/known_hosts
  * ssh: Complete all *File option args with _filedir
  * README: Point Debian and openSUSE badges towards unstable and
    Tumbleweed
  * README: Link to various distro packages
  * apt-get: Add -h/-v/-o non-completions
  * apt-get: Sync option list with apt 1.5.1
  * apt-get: Simplify -t and friends completion, support Ubuntu
  * apt-get: Add indextargets to list of suggested commands
  * apt-get: Complete install package=versions
  * ssh: Sync config option lists with OpenSSH 7.5p1, add some value
    completions
  * ssh: Sync query type list with OpenSSH 7.5p1
  * ssh: Order various switch cases closer to alphabetical
  * completions/Makefile: Fix check-local in VPATH builds

  [ dmerge ]
  * _filedir: Refactor to remove heredoc-dependent loop

  [ marxin ]
  * gccgo: Add as a GCC completion target (#227)

  [ ovf ]
  * xrandr: match the output name exactly for --mode

 -- Ville Skyttä <[email protected]>  Sat, 27 Apr 2019 11:50:12 +0300
jperkin pushed a commit that referenced this issue 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 issue 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 issue Aug 25, 2021
# rvest 1.0.1

* `html_table()` correctly handles tables with cells that contain blank values
  for `rowspan` and/or `colspan`, so that e.g. `<td rowspan="">` is parsed as
  `<td rowspan=1>` (@epiben, #323).

* Fix broken example

# rvest 1.0.0

## New features

* New `html_text2()` provides a more natural rendering of HTML nodes into text,
  converting `<br>` into "\n", and removing non-significant whitespace (#175).
  By default, it also converts `&nbsp;` into regular spaces, which you can
  suppress with `preserve_nbsp = TRUE` (#284).

* `html_table()` has been re-written from scratch to more closely mimic the
  algorithm that browsers use for parsing tables. This should mean that there
  are far fewer tables for which it fails to produce some output (#63, #204,
  #215). The `fill` argument has been deprecated since it is no longer needed.
  `html_table()` now returns a tibble rather than a data frame to be compatible
  with the rest of the tidyverse (#199). Its performance has been considerably
  improved (#237). It also gains a `na.strings` argument to control what values
  are converted to `NA` (#107), and a `convert` argument to control whether to
  run the conversion (#311).

* New `html_form_submit()` allows you to submit a form directly, without
  needing to create a session (#300).

* rvest is now licensed as MIT (#287).

## API changes

Since this is the 1.0.0 release, I included a large number of API changes to make rvest more compatible with current tidyverse conventions. Older functions have been deprecated, so existing code will continue to work (albeit with a few new warnings).

* rvest now imports xml2 rather than depending on it. This is cleaner because
  it avoids attaching all the xml2 functions that you're less likely to use.
  To reduce the change of breakages, rvest re-exports xml2 functions
  `read_html()` and `url_absolute()`, but your code may now need an explicit
  `library(xml2)`.

* `html_form()` now returns an object with class `rvest_form` (instead of form).
   Fields within a form now have class `rvest_field`, instead of a
  variety of classes that were lacking the `rvest_` prefix. All functions for
  working with forms have a common `html_form_` prefix: `set_values()` became
  `html_form_set()`. `submit_form()` was renamed to `session_submit()` because
  it returns a session.

* `html_node()` and `html_nodes()` have been superseded in favor of
  `html_element()`  and `html_elements()` since they (almost) always return
  elements, not nodes (#298).

* `html_session()` is now `session()` and returns an object of class
  `rvest_session` (instead of `session`). All functions that work with session
  objects now have a common `session_` prefix.

* Long deprecated `html()`, `html_tag()`, `xml()` functions have been removed.

* `minimal_html()` (which doesn't appear to be used by any other package)
  has had its arguments flipped to make it more intuitive.

* `guess_encoding()` has been renamed to `html_encoding_guess()` to avoid
  a clash with `stringr::guess_encoding()` (#209). `repair_encoding()` has
  been deprecated because it doesn't appear to work.

* `pluck()` is no longer exported to avoid a clash with `purrr::pluck()`;
  if you need it use `purrr::map_chr()` and friends instead (#209).

* `xml_tag()`, `xml_node()`, and `xml_nodes()` have been formally deprecated
  in favor of their `html_` equivalents.

## Minor improvements and bug fixes

* The "harvesting the web" vignette has been rewritten to focus more on basics
  rvest, eliminating the screenshots to keep the installed package as svelte as
  possible. It's also been renamed to `vignette("rvest")` since it's the
  vignette that you should read first.

* The SelectorGadget vignette is now a web-only article,
  <https://rvest.tidyverse.org/articles/articles/selectorgadget.html>,
  so we can be more generous with screenshots since they're no longer bundled
  with every install of the package. Together with the rewrite of the other
  vignette, this means that rvest is now ~90 Kb instead of ~1.1 Mb.

* All uses of IMDB have been eliminated since the site explicitly prohibits
  scraping (#195).

* `session_submit()` errors if `form` doesn't have a `url` (#288).

* New `session_forward()` function to complement `session_back()`.
  It now allows you to pick the submission button by position (#156).
  The `...` argument is deprecated; please use `config` instead.

* `html_form_set()` can now accept character vectors allowing you to select
  multiple checkboxes in a set or select multiple values from a multi-`<select>`
  (#127, with help from @juba). It also uses dynamic dots so that you can use
  `!!!` if you have a list of values (#189).

# rvest 0.3.6

* Remove failing example
jperkin pushed a commit that referenced this issue Sep 17, 2021
HANGES IN VERSION 1.1-27.1:

  USER-VISIBLE CHANGES:

         * 'influence.merMod' allows user-specified starting parameters

         * cleaned up performance vignette

  BUG FIXES:

         * 'cooks.distance' now works with objects computed by
           'influence' method

         * 'influence.merMod' now works with 'glmer' models using
           'nAGQ=0'

         * 'predict' (with new data) and 'simulate' methods now work
           for models with >100 levels in a random effect grouping
           variable (GH #631)

CHANGES IN VERSION 1.1-27 (2021-05-15):

  USER-VISIBLE CHANGES:

         * improvements from Lionel Henry (via
           lme4/lme4#587) to fix corner cases
           in data checking; also resolves GH #601 (allFit scoping)

         * 'getME(., "lower")' now has names (request of GH #609)

         * improved detection of 'NaN' in internal calculations
           (typically due to underflow/overflow or out-of-bounds linear
           predictors from non-constraining link functions such as
           identity-link Gamma models)

         * 'influence.merMod' allows parallel computation

         * the 'statmod' package is no longer required unless
           attempting to simulate results from a model with an inverse
           Gaussian response

  BUG FIXES:

         * long formulas work better in 'anova' headings (GH #611)

CHANGES IN VERSION 1.1-26 (2020-11-30):

  BUG FIXES:

         * 'predict', 'model.frame(.,fixed.only=TRUE)' work with
           variable names containing spaces (GH #605)

         * 'simulate' works when original response variable was logical

         * 'densityplot' handles partly broken profiles more robustly

  NEW FEATURES:

         * 'thpr' method for 'densityplot()' (for plotting profiles
           scaled as densities) gets new arguments

CHANGES IN VERSION 1.1-25 (2020-10-23):

        * Set more tests to run only if environment variable
          'LME4_TEST_LEVEL'>1

CHANGES IN VERSION 1.1-24 (never on CRAN):

  USER-VISIBLE CHANGES:

         * 'anova()' now returns a p-value of 'NA' if the df difference
           between two models is 0 (implying they are equivalent
           models) (GH#583, @MetaEntropy)

         * speedup in 'coef()' for large models, by skipping
           conditional variance calculation (Alexander Bauer)

         * 'simulate.formula' machinery has changed slightly, for
           compatibility with the 'ergm' package (Pavel Krivitsky)

         * informational messages about (non-)convergence improved (GH
           #599)

         * improved error messages for 0 non-NA cases in data (GH #533)

  NEW FEATURES:

         * 'getME(.,"devfun")' now works for 'glmer' objects.
           Additionally, 'profile'/'confint' for GLMMs no longer depend
           on objects in the fitting environment remaining unchanged
           (GH #589). This change also affects likelihood profiling
           machinery; results of 'glmer' profiling/CIs may not match
           results from previous versions exactly.

  BUG FIXES:

         * improved handling/documentation of 'glmer.nb' controls (GH
           #556)

         * 'predict' works better for 'gamm4' objects (GH #575)

         * resolved some long-standing UBSAN issues (GH #561)

CHANGES IN VERSION 1.1-23 (2020-03-06):

     This is primarily for CRAN compliance (previous submission was
     retracted to allow time for downstream package adjustments).

        * Some PROTECT/UNPROTECT fixes

CHANGES IN VERSION 1.1-22 (never on CRAN):

  USER-VISIBLE CHANGES:

         * prediction now works better for factors with many levels
           (GH#467, solution by @sihoward)

         * minor changes to argument order in '[g]lmerControl'; default
           tolerance for convergence checks increased from 0.001 to
           0.002 for 'glmerControl' (now consistent with 'lmerControl')

         * 'lmer(*, family="<fam>")' is no longer valid; it had been
           deprecated since 2013-06.

         * 'lmer()', 'glmer()', and 'nlmer()' no longer have a formal
           '...' argument.  This defunctifies the use of a 'sparseX =
           .' argument and will reveal some user errors, where
           extraneous arguments were previously disregarded.

         * In 'isSingular(x, tol)', the default tolerance ('tol') has
           been increased from '1e-5' to '1e-4', the default of
           'check.conv.singular' in 'g?lmerControl()'.

         * for clarity and consistency with base R methods, some column
           names of 'anova()' output are changed: "Df" becomes "npar",
           "Chi Df" becomes "Df" (GH #528)

         * 'simulate()' now works with inverse-Gaussian models (GH #284
           revisited, @nahorp/Florian Hartig)

         * single-model mode of 'anova()' now warns about unused
           arguments in ...  (e.g. 'type="III"')

         * default tolerances for 'nloptwrap'/BOBYQA optimizer
           tightened ('xtol_abs' and 'ftol_abs' were 1e-6, now 1e-8).
           (To revert to former tolerances, use
           'control=lmerControl(optimizer="nloptwrap",
           optCtrl=list(xtol_abs=1e-6, ftol_abs=1e-6))'.)

  BUG FIXES:

         * improved checking for missing data (@lionel-)

         * internal 'checkZrank()' should be able to deal with
           ('Matrix' package) 'rankMatrix()' returning 'NA'.

         * 'allFit(fm)' now works for a model that had an explicit
           'control = lmerControl(..)' call.

         * internal 'getStart()' now works when model's 'start' was
           specified as a list, and when called from 'drop1()' on a
           submodel, fixing GH #521.

         * internal function 'mkdevfun' now works even if there is an
           extraneous 'getCall' function defined in the global
           environment (GH #535)

         * 'allFit()' works even if a variable with symbol 'i' is used
           somewhere in the original model call (GH #538, reported by
           Don Cohen); generally more robust

         * 'glmer.nb' works even if an alternative version of
           'negative.binomial' (other than the one from 'MASS') is
           loaded in the workspace (e.g. by the 'GLMMadaptive' package)
           (GH#516)

         * 'level' argument is now honoured by 'confint(...,
           type="boot", level=...)' (GH #543)
jperkin pushed a commit that referenced this issue Oct 12, 2021
jperkin pushed a commit that referenced this issue Oct 15, 2021
jperkin pushed a commit that referenced this issue Nov 29, 2021
jperkin pushed a commit that referenced this issue Nov 29, 2021
jperkin pushed a commit that referenced this issue Jan 4, 2022
jperkin pushed a commit that referenced this issue Jan 4, 2022
jperkin pushed a commit that referenced this issue Jan 24, 2022
# 0.66

Asciidoc:
 * Support empty cells in tablecells mode (GitHub's #343) [J.N. Avila]
 * Disable tablecells when table is not in PSV format (GitHub's #343 too)
   [J.N. Avila]

Yaml:
 * New option "paths" to select the full paths to extract.
   The old "key" option (that allows to select any path ending with
   the given key) still works as previously (thanks Oliver Rahner).

Tests:
 * Make the SGML tests use valid input files to fix brekages on
   paranoid OSes (GitHub's#327 -- thanks newbluemoon for report and fix).
 * Add a new tests that fixes the weird permission settings of the
   other tests, and prevent the users from running the tests as root.
   (GitHub's #332 -- thanks Oliver Rahner for stepping on that trap)
 * Fix the testsuite so that it works even if the source is checkouted
   in an arbitrary directory (GitHub's #338).

po4a-gettextize:
 * Use UTF-8 by default for localized charset.

# 0.65

Asciidoc:
 * Ensure that comments appear in the translated contents, to preserve
   the document structure (Github's #307 and #308). Thanks Jean-Noël
   Avila for the fix!
 * Add an "nolinting" option to disable lint messages.

po4a runner:
 * In split mode, allow to group several files within the same POT file.
 * Rename the option 'master:file' to 'pot' for clarity. The old name
   still works (with a warning).

Tex:
 * Don't use the full absolute file path in #: references of PO files.
   (Debian's #998196, Github's #281)

# 0.64

Asciidoc:
 * Detect sublevel description lists with :::
 * Don't split in attributes include:: and ifeval:: lines (Github's #298)

Pod:
 * Don't wrap textblocks, as it may break C<> markup (similar to Github's #242)

Core:
 * Mitigate Perl bug #18604 (simplify a regexp into a substring index) (Github's #302)
 * Improve the consistency of all our module lists (related to Github's #136)
   Thanks Viet Than.

# 0.63

A bug in v0.62 removed all binary translations :(

Asciidoc:
 * Properly deal with the YAML Front Matter, when one is found.

Texinfo:
 * Add support for @tindex (Github's #284)

Yaml:
 * Follow the reference style of YAML Front Matter in Markdown module to
   fix the GitHub issue #289. (GitHub's #292)

Portability:
 * Fix po4a(1) on Windows (GitHub's #293)

Build scripts:
 * Fix Po4aBuilder to use -I instead of reseting PERL5LIB (Github's #286)
 * Fix Po4aBuilder to actually install the mo files (GitHub's #294)
jperkin pushed a commit that referenced this issue 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 issue Feb 1, 2022
New features:

- mold now automatically falls back to ld.bfd or ld.lld if GCC-based LTO
  (link time optimization) or LLVM-based LTO are requested, respectively.
  This is a temporary hack until mold gains native LTO support. (a5029d1)
- The following flags have been added: -z ibt (9ca6a9d), -z cet-report
  (31a43a7), -z shstk (e29bd8f), -z ibtplt (fbfa01d)
- [ARM64] Range extension thunks are now supported. Previously, mold
  reported "relocation overflow" errors when the output file's text
  segment is larger than some threshold (~60 MiB). Now, it can link large
  programs just fine. (9287682)
- [NetBSD] mold is now usable on NetBSD. (948248b)
- [x86-64] mold now emits compact 8-byte PLT entries instead of the
  regular 16-byte PLT entries if -z now is given. (0370e7f)
- RELR-type packed dynamic relocations are now supported. You can enable
  it by passing -z pack-dyn-relocs=relr. The good news is that it can
  typically reduce PIE (position-independent executable) size by a few
  percent. This is not a negligible saving because PIE is now default on
  many systems for security reasons. The bad news is that it needs a
  runtime support. To our knowledge, it's supported only on ChromeOS,
  Android, Fuchsia and SerenityOS at this moment. We need to wait for a
  while for other systems to catch up. (bd6afa1)

Performance improvements:

- Version script processor was rewritten with the Aho-Corasick string
  matching algorithm. If your program uses a version script that contains
  lots of glob patterns with the * metacharacter, you'll likely to see a
  significant speedup. (d0c1c4d)
- Relocation processing for non-memory-allocated sections has been
  optimized. You'll likely to see a speedup if your binary contains large
  size of debug info. (d8dc8a6)

Bug fixes and compatibility improvements:

- mold can now link ICC-generated object files with GCC-generated ones
  even if the -static flag is given. (#271, be6ae07)
- mold can now handle archive files (.a files) larger than 4 GiB.
  (bba506d)
- mold no longer have "GNU gold" in its --version string. We had this
  identification string for some ./configure scripts that didn't work
  without it, but it causes other compatibility issue such as #284. Now,
  mold --version prints out something like mold 1.0.2 (compatible with
  GNU ld). We still need "GNU ld" for many ./configure scripts. (cea6a56)
- Symbol resolution algorithm has been completely rewritten. The previous
  implementation was non-deterministic in some edge cases, meaning that
  outcomes from multiple runs of the linker with the same command line
  parameters could be different due to thread scheduling randomness or
  some other internal randomness. Now it is guaranteed to be
  deterministic. (ce5749c)
- mold now try to pull out an object file from an archive if it's needed
  to resolve an undefined symbol with a common symbol. mold used to
  ignore common symbols in archives, so it could fail with an unresolved
  symbol error even if the undefined symbol could be resolved using a
  file in an archive. (27d8361)
- mold no longer converts .ctors/.dtors sections into
  .init_array/.fini_array sections. mold used to convert them but in a
  wrong way. Since .ctors/.dtors have been superseded by
  .init_array/.fini_array long ago, it should be fine to stop doing this
  now. (4348417)
- [i386] mold now ignores some legacy symbols in an i386 CRT files to
  avoid duplicate symbol errors. (#270, 0c19046)
jperkin pushed a commit that referenced this issue Feb 3, 2022
github-actions bot pushed a commit that referenced this issue Nov 12, 2024
github-actions bot pushed a commit that referenced this issue Nov 12, 2024
github-actions bot pushed a commit that referenced this issue Nov 12, 2024
github-actions bot pushed a commit that referenced this issue Nov 12, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 13, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 14, 2024
github-actions bot pushed a commit that referenced this issue Nov 15, 2024
github-actions bot pushed a commit that referenced this issue Nov 15, 2024
github-actions bot pushed a commit that referenced this issue Nov 15, 2024
github-actions bot pushed a commit that referenced this issue Nov 15, 2024
github-actions bot pushed a commit that referenced this issue Nov 15, 2024
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

No branches or pull requests

2 participants