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

GNU uname should identify OS as illumos #195

Closed
jclulow opened this issue May 1, 2019 · 4 comments
Closed

GNU uname should identify OS as illumos #195

jclulow opened this issue May 1, 2019 · 4 comments
Assignees

Comments

@jclulow
Copy link

jclulow commented May 1, 2019

As of bug 1956, the uname binary provided by the operating system will report illumos for uname -o instead of the traditional Solaris. Unfortunately in a pkgsrc-based zone, at least under some conditions the GNU uname appears first in PATH. A naive script may run uname -o and see the Solaris value.

We should patch the pkgsrc copy of uname to report illumos as the system version does.

See example with current trunk packages:

$ /usr/bin/uname -o
illumos
$ /opt/local/bin/uname -o
Solaris
@wiedi
Copy link

wiedi commented May 2, 2019

A long time ago I played with this and had the following:

diff --git a/sysutils/coreutils/Makefile b/sysutils/coreutils/Makefile
index 82c440e..cdf8ce7 100644
--- a/sysutils/coreutils/Makefile
+++ b/sysutils/coreutils/Makefile
@@ -43,6 +43,11 @@ SUBST_FILES.libname= Makefile.in
 SUBST_SED.libname=     -e '/^src_libstdbuf_so_LDFLAGS/s,$$, -install_name ${PREFIX}/libexec/coreutils/glibstdbuf.so,'
 .endif
 
+.if ${OPSYS} == "SunOS"
+CONFIGURE_ENV+=                gl_cv_host_operating_system=illumos
+.endif
+
+
 PROGS= [ base64 basename cat chcon chgrp chmod chown chroot cksum comm \
        cp csplit cut date dd df dir dircolors dirname du hostid echo env \
        expand expr factor false fmt fold groups head id install join kill \

But that is lazy way to fix it as it would be wrong when using pkgsrc on Oracle Solaris.
Propably should just try to shell out to /usr/bin/uname -o now?

@jperkin
Copy link
Collaborator

jperkin commented May 2, 2019

Older Solaris releases don't support -o so we'd need to handle that, but yeh that seems the simplest way to do it.

@jperkin
Copy link
Collaborator

jperkin commented May 2, 2019

Note that I will need to override this for our builds anyway as they are performed on a platform prior to 1956.

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue May 2, 2019
@jperkin jperkin self-assigned this May 2, 2019
@jperkin
Copy link
Collaborator

jperkin commented May 2, 2019

Fixed in trunk.

@jperkin jperkin closed this as completed May 2, 2019
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue May 19, 2019
jperkin pushed a commit that referenced this issue Jul 1, 2019
For a security fix.

Release 2.2.7 Wed June 19 2019
        Security fixes:
       #186 #262  Fix extraction of namespace prefixes from XML names;
                    XML names with multiple colons could end up in the
                    wrong namespace, and take a high amount of RAM and CPU
                    resources while processing, opening the door to
                    use for denial-of-service attacks

        Other changes:
       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
                    exporting non-API symbols
            #227  Autotools: Add --without-examples and --without-tests
            #228  Autotools: Modernize configure.ac
       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
            #219  Remove fallback to bcopy, assume that memmove(3) exists
            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
            #243  Windows: Fix syntax of .def module definition files
                  Version info bumped from 7:8:6 to 7:9:6

        Special thanks to:
            Benjamin Peterson
            Caolán McNamara
            Hanno Böck
            KangLin
            Kishore Kunche
            Marco Maggi
            Rhodri James
            Sebastian Dröge
            userwithuid
            Yury Gribov
jperkin pushed a commit that referenced this issue Jul 20, 2019
Changes:
1.9.0
-----
### Additions
- Support for
  - `erolord` (#326)
- Add login support for `instagram` (#195)
- Add `--no-download` and `extractor.*.download` disable file downloads (#220)
- Add `-A/--abort` to specify the number of consecutive download skips before
  aborting
- Interpret `-1` as infinite retries (#300)
- Implement custom log message formats per log-level (#304)
- Implement an `mtime` post-processor that sets file modification times
  according to metadata fields (#332)
- Implement a `twitter.content` option to enable tweet text extraction
  (#333, #338)
- Enable `date-min/-max/-format` options for `tumblr` (#337)

### Changes
- Set file modification times according to their `Last-Modified` header when
  downloading (#236, #277)
    - Use `--no-mtime` or `downloader.*.mtime` to disable this behavior
- Duplicate download URLs are no longer silently ignored (controllable with
  `extractor.*.image-unique`)
- Deprecate `--abort-on-skip`

### Fixes
- Retry downloads on OpenSSL exceptions (#324)
- Ignore unavailable pins on `sexcom` instead of raising an exception (#325)
- Use Firefox's SSL/TLS ciphers to prevent Cloudflare CAPTCHAs (#342)
- Improve folder name matching on `deviantart` (#343)
- Forward cookies to `youtube-dl` to allow downloading private videos
- Miscellaneous fixes for `35photo`, `500px`, `newgrounds`, `simplyhentai`
jperkin pushed a commit that referenced this issue Sep 18, 2019
== Version 2.6 (2019-09-08)

New features::

  * core: add support of 32767 color pairs (issue #1343, issue #1345)
  * core: add option "close" in command /window (issue #853)
  * api: add infos "term_colors" and "term_color_pairs"
  * api: add function list_user_data (issue #666)
  * api: add argument "strip_items" in function string_split
  * buflist: add infolist "buflist" with list of buffer pointers (issue #1375)
  * exec: evaluate option exec.command.shell, change default value to "${env:SHELL}" (issue #1356)
  * fset: add filters "h=xxx" and "he=xxx" to filter options by description (translated or in English)
  * irc: make command char optional in server option "command" (issue #615)
  * irc: add variables "user_max_length" and "host_max_length" in server structure (issue #1387)

Bug fixes::

  * core: use fixed-width integer for computing nick and hashtable DJB2 key hashes, add values "djb2_32" and "sum_32" for option weechat.look.nick_color_hash (issue #1394)
  * core: create or update option weechat.notify.xxx when function buffer_set is called with "notify" property (issue #1390)
  * core: fix memory leak in case of error when building content of bar item for display (issue #1384)
  * core: send command line parameter to plugins only if the name starts with the plugin name followed by a colon
  * core: auto disable upgrade process (command line option "--upgrade") if the file weechat.upgrade is not found
  * core: replace newlines by spaces in argument "completion" of function hook_command (issue #538)
  * core: replace char "," by "~" in color codes to separate foreground from background (issue #1264)
  * alias: remove default aliases /AME and /AMSG (issue #1355)
  * buflist: use extra variables in option buflist.look.display_conditions (issue #1393)
  * irc: fix parsing of messages 346 (invite list), 348 (exception list), 367 (ban list) and 728 (quiet list) when there is a colon before the timestamp (issue #1396)
  * irc: fix memory leak when removing a server
  * irc: fix length of user/nick/host in split of messages (issue #1387)
  * irc: quote NICK command argument sent to the server only if there's a ":" in the nick (issue #1376, issue #1319)
  * irc: return all arguments in the PONG response to a PING (issue #1369)
  * irc: disable server reconnection when the server buffer is closed (issue #236)
  * irc: strip spaces at beginning/end of addresses in server option "addresses" (issue #195)
  * irc: fix display of enabled/disabled client capabilities received in command CAP ACK (issue #151)
  * ruby: fix conversion of big integers on 32bit architecture (issue #1395)

Tests::

  * unit: add tests on IRC ignore, message and nick functions

Build::

  * core: fix compilation with autotools on FreeBSD 12.0
  * debian: disable Javascript plugin on Debian Buster/Bullseye (issue #1374)
  * python: compile with Python 3 by default
  * python: use pkg-config to detect Python (issue #1382)
jperkin pushed a commit that referenced this issue Mar 17, 2020
# v0.19.4

## Bugfix

- slack: fix regression with slack library (#264)
- slack: fix an unexpected panic (#263)


# v0.19.3

## Enhancement

* general: Add UPDATELASTVIEWED command, and make DisableAutoView work consistently (#255)
* slack: Handle message edits and deletion (#260)
* slack: Add handling of reactions, stars and pins (#229)

## Bugfix

* mattermost: Fix a panic #247
* mattermost: Fixes incorrect users because of paging. #244
* mattermost: Fix outdated channel issue
* mattermost: Add paging so we can see > 200 users in a channel #248
* mattermost: Fix expired session panic #259
* general: Fix datarace #246
* general: Fix empty JoinInclude
* general: Fix panic #257

This release couldn't exist without the following contributors:
@Aketzu, @bucko909, @42wim

# v0.19.2
## Enhancement
* general: Add a default value matterirc.toml for the '-conf' flag (#240)
* slack: library updated
* mattermost: library updated
* mattermost: Add support for channel created/deleted events

## Bugfix
* mattermost: Remove ourselves from the channel when removed in mattermost. Fixes #233
* mattermost: Add/remove ourselves to the channel if we join using the GUI. #239
* mattermost: Update topics in mattermost. Closes #241
* mattermost: Fix pastes and attachments in direct message. Closes #228
* mattermost: Update channels if not known on join yet

# v0.19.1
## New features
* mattermost: Added support for disabling of automatic view flag updates (#226). See DisableAutoView in matterircd.toml.example
* slack: Add message showing enhancements and add slackbot to all channels (#230)

## Bugfix
* general: Fix tight loop (100% CPU). Closes #231

# v0.19.0
## New features
* irc: Add support for spoofing query messages. #195
	* You can now see your own messages you've typed on slack/mattermost web in irc
* irc: Add PasteBufferTimeout option (send ascii-art!)
   	* See matterircd.toml.example for an example.
   	* PasteBufferTimeout specifies the amount of time in milliseconds that messages get kept in matterircd internal buffer before being sent to
   	 mattermost or slack.  Messages that will be received in this time will be concatenated together
   	 So this can be used to paste stuff like ascii-art or code.
   	 Default 0 (is disabled)
   	 Depending on how fast you type 2500 is a good number

## Bugfix
* slack: Correctly handle different nick and username #203
* slack: Ignore channel join messages #198
jperkin pushed a commit that referenced this issue Jun 14, 2020
Update ruby-faraday_middleware to 1.0.0.

pkgsrc change: add "USE_LANGUAGES=	# none".


1.0.0 (2020-03-29)
This is FaradayMiddleware 1.0 official release!

This release officially supports Faraday 1.0.
It contains all changes included in the 1.0.0.rc1 release, plus:

* Increase minimum rake version to 12.3.3 for security reasons

Special thanks to contributors who helped us push this over the line:
@BobbyMcWho, @onk and @d-m-u


1.0.0.rc1 (2020-02-28)

This is a prerelease. See #200 for details on the shipping plans for 1.0.0.

Changes

* Support Ruby 2.3+.
* Drop support for Faraday v0.7

Bugs fixed

* #198 Autoload an exception class correctly

Chores and misc

* Lint the codebase with RuboCop
* Closed the Wiki and turned it into Markdown files in docs/


0.14.0 (2020-01-10)

NOTE: This is the last minor release in the v0.x series, next release will
be 1.0 to match Faraday v1.0 release and from then on only fixes will be
applied to v0.14.x!

* Fix support for empty bodies having Content-Encoding Gzip (#192)
* RSpec: disable_monkey_patching (#191)
* Add ResponseMiddleware.define_parser unit test (#190)
* Use full URL (url.host + url.request_uri) as cache key (#195)


0.13.1 (2019-02-04)

* Clear Authorization header when redirecting cross-site (#183)
* Brotli is an optional dependency for Gzip (#186)


0.13.0 (2019-01-22)

* Adds support for Brotli decompression of responses (#134)
* Adds support for JSON 2 (#169)
* Hash request URIs before using them as a cache key (#181)
* Remove Addressable::URI query hack (#184)
jperkin pushed a commit that referenced this issue Aug 25, 2020
v1.4.0 (2020-06-07)
-------------------

Features
^^^^^^^^
* `#197 <https://github.com/readthedocs/sphinx-autoapi/issues/197>`: Added
  ``autoapi.__version__`` and ``autoapi.__version_info__`` attributes
  for accessing version information.
* `#201 <https://github.com/readthedocs/sphinx-autoapi/issues/201>`: (Python)
  Added the ``autoapi_member_order`` option to allow the order that members
  are documentated to be configurable.
* `#203 <https://github.com/readthedocs/sphinx-autoapi/issues/203>`: (Python)
  A class without a docstring inherits one from its parent.
  A methods without a docstring inherits one from the method that it overrides.
* `#204 <https://github.com/readthedocs/sphinx-autoapi/issues/204>`: (Python)
  Added the ``imported-members`` AutoAPI option to be able to enable or disable
  documenting objects imported from the same top-level package or module
  without needing to override templates.

Bug Fixes
^^^^^^^^^
* `#198 <https://github.com/readthedocs/sphinx-autoapi/issues/198>`:
  Documentation describes the required layout for template override directories.
* `#195 <https://github.com/readthedocs/sphinx-autoapi/issues/195>`: (Python)
  Fixed incorrect formatting when ``show-inheritance-diagram``
  and ``private-members`` are turned on.
* `#193 <https://github.com/readthedocs/sphinx-autoapi/issues/193>` and
* `#208 <https://github.com/readthedocs/sphinx-autoapi/issues/208>`: (Python)
  Inheritance diagrams can follow imports to find classes to document.
* `#213 <https://github.com/readthedocs/sphinx-autoapi/issues/213>`: (Python)
  Fixed module summary never showing.

Trivial/Internal Changes
^^^^^^^^^^^^^^^^^^^^^^^^
* black shows diffs by default
* `#207 <https://github.com/readthedocs/sphinx-autoapi/issues/207>`:
  Fixed a typo in the code of the golang tutorial.
jperkin pushed a commit that referenced this issue Sep 9, 2020
pkgsrc changes:
 - Fix a typo in DISTNAME/PKGNAME: it is now go-ffuf (instead of go-fuff)
 - Only installs bin/ffuf and its README
 - Reset MAINTAINERship, requested by <nikita>

Changes:
1.1.0
-----
 - Add unsupported arch/os to goreleaser ignore list (#267)
 - Release 1.1 (#266)
 - Fix crash with 3xx requests without location header (#265)
 - Update random seed logic (#262)
 - fix file get thing (#226)
 - Update CONTRIBUTORS.md to add bsysop (#258)
 - Fixed behavior of wordlist:keyword separator in Windows (#240)
 - Add Host information to JSON output file (#223)
 - Support outputting all file formats concurrently (#218)
 - Increase default rows per page on html report (#217)
 - Add the wordlists to the header information (#211)
 - Fix error with missing usage info (#195)
 - Feature178 (#186)
 - Fix for #193 (#194)
 - Fix for issue #179 (#180)
 - Prepare for 1.1.0-git (#176)
jperkin pushed a commit that referenced this issue Sep 18, 2020
0.60:

Asciidoc:
 * Introduce "compat" option to parse like asciidoc or asciidoctor.

Text (and Markdown):
 * Fix the support of nested lists (GitHub's #131).

Other:
 * Remove the experimental C extension that was never built,
   distributed, tested nor modified since 2007.

XML:
 * Provide a meaningful message when the translators butcher the
   <placeholder> attributes instead of truncating the file.
   (GitHub's #254)


0.59.1:

po4a tool:
 * Really fix --srcdir and --destdir handling (Debian's #960892 again).
   Even with the previous fix, the aptitude package was still broken.

Documentation:
 * Clarify the syntax of -o parameters (GitHub's #233).

Sgml:
 * Sort the attributes. Without this, msgids are randomly fuzzied.
   (Debian's #725931 and Debian's #810988)


0.59:

po4a tool:
 * Fix --srcdir handling (GitHub's #237 and Debian's #960892).
   This bug was breaking the build of several packages, including dpkg.

Addendum:
 * New mode 'eof' to easily add at the end of the file (Debian's #960949).

Documentation:
 * Fix many typos and glitches
 * Start a section about external projects using po4a

Tests:
 * po4a: Add a test for the [po_directory] feature

Overall:
 * Improve the displayed messages, don't translate debug messages.


0.58.1:

Documentation:
 * Document an option of the XML parser (GitHub's #223).
 * Small glitches found during the translations.

Tests:
 * Also ignore 'Project-Id-Version' when diffing PO files (GitHub's #224)
 * asciidoc: reactivate tablecells tests

AsciiDoc:
 * Fix management of images in tables (Github's #226)
 * Tolerate underline length variations in two lines titles (Github's #212)


0.58:

AsciiDoc:
 * Accept numbered list items beginning with any number of dots
   (GitHub's #210)

Markdown:
 * Avoid translating Markdown fenced code block info string (GitHub's #194)
 * List Markdown fenced code block info string as text type (GitHub's #195)
 * Support YAML Front Matter (GitHub's #196). This requires YAML::Tiny.
 * Introduce options yfm_keys and yfm_skip_array to respectively
   specify which YAML keys should be translated, and that the array
   content should not be translated.
 * Work around a bug in YAML::Tiny that quotes numbers (GitHub's #217)
 * Add gettext flag "markdown-text" for relevant entries (GitHub's #208)

Text:
 * Honor the (existing) --neverwrap option to handle every content verbatim.

Texinfo:
 * Add the comments starting with 'TRANSLATORS:' to the po file
   (GitHub's #162)

XHTML:
 * Don't fail nor warn when a closing tag is missing, that's legit in HTML.
   (GitHub's #179)

XML and DocBook:
 * Allow attributes with no value (GitHub's #178).
 * Processing Instructions are handled as inline tags by default, but
   you can change them back to breaking with '-o break-pi' (GitHub's #170)

Yaml:
 * Introduce option to skip array values. (GitHub's #187)

po4a tool:
 * Cleanups and fixups about options' parsing (now tested and documented)
     _
    / \  You may need to upgrage your po4a.conf if you were using
   /_!_\ "unwanted features" (ie, bugs) of the previous implementation.

 * Do not touch source dir when --destdir is provided (Debian #602387)
 * Pass --add-location=file to msgmerge when receiving option porefs.
   (requires gettext >= 0.19 -- June 2014)
 * Option --master-charset sets the charset of the generated POT file.
 * Option --master-language sets the language of the generated POT file.
 * Add support for addendum path in po4a_paths (Debian #823189)
 * Stop pretending that --porefs can control the wrapping of reference
   comments, as the gettext tools used internally always rewrap them.

Scripts:
 * Rename po4aman-display-po to po4a-display-man
 * Rename po4apod-display-po to po4a-display-pod

Core:
 * Use UTF-8 by default (the 20th century is over -- Debian #862460)
   po4a used to prefer ascii unless it proved impossible. But the
   underlying detection would fail, possibly for document containing
   UTF-8 chars composed on printable ascii chars only.
 * Add a --wrap-po option to control how the po file is wrapped, and
   chose between either nicely wrapped files that tend to produce git
   conflicts, or ugly files that are easy to automatically deal with.

Tests:
 * Completely refactor most tests. They are now more reliable and the
   error messages are much more useful to understand the issues.
 * Many bugs to po4a and the core were ironed out in the process.
 * PO files content are now tested too (GitHub's #67)

Documentation:
 * Various cleanups by Golubev Alexander (GitHub's #190 & #191)
jperkin pushed a commit that referenced this issue Sep 21, 2020
2.0.3 (2020-08-22)
~~~~~~~~~~~~~~~~~~

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

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

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

- Enable re2go building by default.

- Package CMake files into release tarball.

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

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

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

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

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

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

- Changes in generic API:

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

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

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

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

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

- Changes in the generated labels:

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

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

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

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

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

- Fixed bugs related to EOF rule:

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

- Fixed miscellaneous bugs:

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

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

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

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

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

----
1.3x
----

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

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

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

- Added generic API primitives:

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

- Added configurations:

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

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

----
1.2x
----

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Added configurations for options:

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

- Removed configurations for internal/debug options.

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

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

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

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

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

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

- Changed output generation of output file to be atomic.

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

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

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

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

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

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

- Added internal options:

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

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

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

- Fixed handling of newlines:

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

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

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

- Fixed a number of other bugs and resolved issues:

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

- Updated documentation and website.
jperkin pushed a commit that referenced this 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 Dec 14, 2020
# magrittr 2.0.1

* Fixed issue caused by objects with certain names being present in
  the calling environment (#233).

* Fixed regression in `freduce()` with long lists (kcf-jackson/sketch#5).


# magrittr 2.0.0

## Fast and lean implementation of the pipe

The pipe has been rewritten in C with the following goals in mind:

- Minimal performance cost.
- Minimal impact on backtraces.
- No impact on reference counts.

As part of this rewrite we have changed the behaviour of the pipe to
make it closer to the implementation that will likely be included in a
future version of R. The pipe now evaluates piped expressions lazily (#120).
The main consequence of this change is that warnings and errors can
now be handled by trailing pipe calls:

```r
stop("foo") %>% try()
warning("bar") %>% suppressWarnings()
```


## Breaking changes

The pipe rewrite should generally not affect your code. We have
checked magrittr on 2800 CRAN packages and found only a dozen of
failures. The development version of magrittr has been advertised on
social media for a 3 months trial period, and no major issues were
reported. However, there are some corner cases that might require
updating your code. Below is a report of the backward
incompatibilities we found in real code to help you transition, should
you find an issue in your code.


### Behaviour of `return()` in a pipeline

In previous versions of magrittr, the behaviour of `return()` within
pipe expressions was undefined. Should it return from the current pipe
expression, from the whole pipeline, or from the enclosing function?
The behaviour that makes the most sense is to return from the
enclosing function. However, we can't make this work easily with the
new implementation, and so calling `return()` is now an error.

```r
my_function <- function(x) {
  x %>% {
    if (.) return("true")
    "false"
  }
}

my_function(TRUE)
#> Error: no function to return from, jumping to top level
```

In magrittr 1.5, `return()` used to return from the current pipe
expression. You can rewrite this to the equivalent:

```r
my_function <- function(x) {
  x %>% {
    if (.) {
      "true"
    } else {
      "false"
    }
  }
}

my_function(TRUE)
#> [1] "true"
```

For backward-compatibility we have special-cased trailing `return()`
calls as this is a common occurrence in packages:

```r
1 %>% identity() %>% return()
```

Note however that this only returns from the pipeline, not the
enclosing function (which is the historical behaviour):

```r
my_function <- function() {
  "value" %>% identity() %>% return()
  "wrong value"
}

my_function()
#> [1] "wrong value"
```

It is generally best to avoid using `return()` in a pipeline, even if
trailing.


### Failures caused by laziness

With the new lazy model for the evaluation of pipe expressions,
earlier parts of a pipeline are not yet evaluated when the last pipe
expression is called. They only get evaluated when the last function
actually uses the piped arguments:

```r
ignore <- function(x) "return value"
stop("never called") %>% ignore()
#> [1] "return value"
```

This should generally not cause problems. However we found some
functions with special behaviour, written under the assumption that
earlier parts of the pipeline were already evaluated and had already
produced side effects. This is generally incorrect behaviour because
that means that these functions do not work properly when called
with the nested form, e.g. `f(g(1))` instead of `1 %>% g() %>% f()`.

The solution to fix this is to call `force()` on the inputs to force
evaluation, and only then check for side effects:

```r
my_function <- function(data) {
  force(data)
  peek_side_effect()
}
```

Another issue caused by laziness is that if any function in a pipeline
returns invisibly, than the whole pipeline returns invisibly as well.

```r
1 %>% identity() %>% invisible()
1 %>% invisible() %>% identity()
1 %>% identity() %>% invisible() %>% identity()
```

This is consistent with the equivalent nested code. This behaviour can
be worked around in two ways. You can force visibility by wrapping the
pipeline in parentheses:

```r
my_function <- function(x) {
  (x %>% invisible() %>% identity())
}
```

Or by assigning the result to a variable and return it:

```r
my_function <- function(x) {
  out <- x %>% invisible() %>% identity()
  out
}
```


### Incorrect call stack introspection

The magrittr expressions are no longer evaluated in frames that can be
inspected by `sys.frames()` or `sys.parent()`. Using these functions
for implementing actual functionality (as opposed as debugging tools)
is likely to produce bugs. Instead, you should generally use
`parent.frame()` which works even when R code is called from
non-inspectable frames. This happens with e.g. `do.call()` and the new
C implementation of magrittr.


### Incorrect assumptions about magrittr internals

Some packages were depending on how magrittr was internally
structured. Robust code should only use the documented and exported
API of other packages.


## Bug fixes

* Can now use the placeholder `.` with the splicing operator `!!!`
  from rlang (#191).

* Piped arguments are now persistent. They can be evaluated after the
  pipeline has returned, which fixes subtle issues with function
  factories (#159, #195).
jperkin pushed a commit that referenced this issue Dec 28, 2020
Change since 1.3.1 from RELEASE_NOTES

1.4.0           2018/06/??
        Add ARC support.  Extensive work contributed by ValiMail.
        Add "DomainWhitelist" and "DomainWhitelistFile" config options.
        Extract client IP address for ARC reports when provided via
                Authentication-Results.
        Update SQL schema to support new reporting functionality for DKIM
                selectors and ARC local policy overrides (refer to the example
                schema.mysql file).
        Add experimental support for reporting of ARC local policy overrides.
        Add support for recording and reporting of DKIM selectors.
        Override a DMARC "fail" if an ARC "pass" is recorded in conjunction with
                an ARC policy pass.
        Fix bug #137: Handle base64 inside AR tokens that are values.
                Problem reported by Joseph Coffland.
        LIBOPENDMARC: Fix bug #203: Reject DMARC records that have duplicate
                tags in them.  Reported by Dirk Stoecker.
        REPORTS: Feature request #146: Add option to pull input from a file.
        REPORTS: Fix bug #153: Suppress duplicate results from the same
                domain.  Patch from Tomki Camp.

1.3.2           2017/03/04
        Feature request #86: Change meaning of "RequiredHeaders" such that
                header validity is always checked, but messages are only
                rejected on that basis when the flag is set.  Based
                on a patch from Andreas Schulze.
        Feature request #127: Log SPF results when rejecting.  Requested
                by Patrick Wagner; patch from Andreas Schulze, follow-up
                patch from Juri Haberland.
        Feature request #138: Inculde policy and disposition information
                in an Authentication-Results comment.  Based on a patch
                from Juri Haberland.
        Feature request #139: Include the client host name if known
                in failure reports.  Suggested by Roland Turner;
                patch by Andreas Schulze.
        Fix bug #95: Assume IPv6 for SPF operations.  Patch from Juri Haberland.
        Fix bug #120: Fix control logic around the SPF result.
                Reported by Christophe Wolfhugel; patch from Andreas Schulze.
        Fix bug #122: Don't skip the HELO milter phase when SPF is enabled.
                Reported by Christophe Wolfhugel.
        Fix bug #157: Fix logging of implicit authserv-ids.  Reported
                by Andreas Schulze; patch from Juri Haberland.
        Fix bug #158: Log ignored connections.  Patch from Andreas Schulze.
        Fix bug #160: Fix "SyslogFacility" handling.  Patch from
                Juri Haberland.
        Fix bug #163: Use a larger buffer for the raw MAIL FROM value.
                Based on a patch from Andreas Schulze.
        Fix bug #174: Trim "!" suffixes from reporting addresses.  Problem
                noted by Juri Haberland.
        Fix bug #186: When reloading the configuration file, the public
                suffix list was read in with the wrong comment indicator.
                Patch from Federico Omoto.
        Fix bug #194: Fix inappropriate DMARC status when "p=none" is
                discovered.  Patch from Juri Haberland.
        Fix bug #195: When parsing Received-SPF, use the correct constants
                in the history file entries.  Patch from Juri Haberland.
        LIBOPENDMARC: Fix bug #115: Fix type mismatch.  Patch from
                Sebastian A. Siewior via Scott Kitterman.
        LIBOPENDMARC: Fix bug #121: Fix IPv6 CIDR matching in SPF code.
                Patch from Christophe Wolfhugel.
        LIBOPENDMARC: Fix bug #125: Compile time IPv6 fix.  Reported by
                Christophe Wolfhugel.
        LIBOPENDMARC: Fix bug #131: Fix alignment bug.  Patch from
                Andreas Schulze.
        LIBOPENDMARC: Fix bug #147: Fix stripping of whitespace from
                DMARC DNS records.  Based on a patch from Job Noorman.
        LIBOPENDMARC: Fix bug #149: Apply "sp" setting, if present and
                applicable.  Patch from Petr Novak.
        LIBOPENDMARC: Fix bug #154: Fix "rf" and "fo" processing logic.
        LIBOPENDMARC: Fix bug #156: Fix variable name.  Patch by
                Andreas Schulze.
        LIBOPENDMARC: Fix bug #165: Fix logic in checking which SPF
                identifier was used.  Patches from Marco Favero and
                Juri Haberland.
        LIBOPENDMARC: Fix bug #167: Don't return "fail" when we should
                return "none".  Patch from Marco Favero.
        REPORTS: Fix bug #134: Handle SMTP errors correctly.  Patch from
                Andreas Schulze.
        REPORTS: Fix bug #141: Set the HELO parameter correctly.
                Reported by Alan Smith; patch from Andreas Schulze.
        REPORTS: Fix bug #143: Fix logic in table truncation.
                Reported by Wayne Andersen; patch from Juri Haberland.
        REPORTS: Fix bug #162: Always report "sp" in aggregate reports.
                Patch from Juri Haberland.
        REPORTS: Fix bug #166: Fix report start/end time logic.
                Patch from Juri Haberland.
        REPORTS: Fix bug #188: Don't delete inputs too early in
                opendmarc-reports.  Patch from Juri Haberland.
        TOOLS: Fix bug #161: "Forensic" reports were renamed "Failure"
                reports.  Patch from Andreas Schulze.
        TOOLS: Fix bug #164: Handle IPv6 test addresses.  Reported by
                Andreas Schulze; patch from Juri Haberland.
        DOCS: Patch #189: Replace the DMARC RFC with an HTML page
                referencing the relevant specs, since Debian doesn't
                consider RFCs to be "free".  Patch from Scott Kitterman
                via Juri Haberland.
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 Aug 23, 2021
# rio 0.5.27
* Documentation fixes for CRAN.

# rio 0.5.26
* Added support for "zsav" format. (#273)

# rio 0.5.25
* Modified tests per email request from CRAN.
* Added `coerce_character` argument (default FALSE) to `factorize()`
  to enable coercing character columns to factor. (#278)

# rio 0.5.24
* Fix handling of "label" and "labels" attributes when exporting using
  haven methods (SPSS, Stata, SAS). (#268, h/t Ruben Arslan)
* Fix (a different bug?) handling factors by haven::labelled() (#271,
  Alex Bokov)
* HTML import can now handle multiple tbody elements within a single
  table, a th element in a non-header row, and empty elements in
  either the header or data. (#260, #263, #264 Bill Denney)

# rio 0.5.23
* CSVY support is now provided by `data.table::fread()` and
  `data.table::fwrite()`, providing significant performance gains.
* Added an internal `arg_reconcile()` function to streamline the task
  of removing/renaming arguments for compatibility with various
  functions (#245, Alex Bokov)

# rio 0.5.22
* Added an `export_list()` function to write a list of data frames to
  multiple files using a vector of file names or a file
  pattern. (#207, h/t Bill Denney)
* Added an `is_file_text()` function to determine whether a file is in
  a plain-text format. Optionally narrower subsets of characters can
  be specified, e.g. ASCII. (#236 Alex Bokov)

# rio 0.5.21
* Added support for Apache Arrow (Parquet) files. (#214)
* Fix dropping of variable label in `characterize()` and
  `factorize()`. (#204, h/t David Armstrong)
* `import_list()` now returns a `filename` attribute for each data
  frame in the list (when importing from multiple files), in order to
  distinguish files with the same base name but different extensions
  (e.g., `import_list(c("foo.csv", "foo.tsv"))`). (#208, h/t Vimal
  Rawat)
* Import of DBF files now does not convert strings to factors. (#202,
  h/t @jllipatz)
* Implemented `import()` method for .dump R files. (#240)

# rio 0.5.20
* Additional pointers were added to indicate how to load .doc, .docx,
  and .pdf files (#210, h/t Bill Denney)
* Ensure that tests only run if the corresponding package is
  installed.  (h/t Bill Denney)
* Escape ampersands for html and xml export (#234 Alex Bokov)

# rio 0.5.19
* Fix behavior of `export()` to plain text files when `append = TRUE`
  (#201, h/t Juli�$BC!�(Bn Urbano)
* `import_list()` now preserve names of Excel sheets, etc. when the
  'which' argument is specified. (#162, h/t Danny Parsons)
* Modify message and errors when working with unrecognized file
  formats. (#195, h/t Trevor Davis)
* Add support for GraphPad Prism .pzfx files (#205, h/t Bill Denney)

# rio 0.5.18
* Adjust `import()`/`export()` for JSON file formats to allow non-data
  frame objects. Behavior modeled after RDS format. (#199 h/t Nathan
  Day)

# rio 0.5.17
* Fix `the condition has length > 1 and only the first element will be
  used` warning in `gather_attributes()`. (#196, h/t Ruben Arslan)
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 Nov 28, 2021
Changes since 0.1.1:

> This version has some breaking changes in the config file and, you will
need to regenerate the config for all features to work.

## Notable changes
- The tool is now compatible with next-gen/team-managed project.
- New filters when listing issues, viz:
  - Filter by parent: This will allow you to list all sub-tasks of a task.
  - Order by filter: This will allow you to display a list sorted by their
    rank for example.
- You can now assign epic to the issue on creation.
- You can add issues to the sprint with `jira sprint add`

## What's added?
- feat: Allow to assign epic on create #194
- feat: Cmd to add issues to sprint #205
- feat: Allow to filter by parent #197
- feat: Add order-by filter #206
- feat: Add type on project listing #190

## What's fixed?
- fix: Make epic add work in next-gen project #195
- fix: Epic creation for next-gen project #192
- fix: Make epic remove work in next-gen project #196
- fix: Make epic list work for next-gen project #201
- fix: Segmentation fault on view #202
- fix(tui): Link/key copy is broken for altered key col #204

## Config changes
- cfg!: Expand config to include project type #191
- cfg!: Rename field to name and add link field to epic #193

## Dependency updates
- dep: Upgrade rivo/tview #176
- dep: Upgrade outdated deps to latest #177
- dep: Use Go 1.17 #178


**Full Changelog**: ankitpokhrel/jira-cli@v0.1.1...v0.2.0
jperkin pushed a commit that referenced this issue Mar 10, 2022
Update eog to 40.3

Highlights:
- !106, EogImage: Do not crash if content type or filesize cannot be
        detected (Felix Riemann)
- #195, Critical warning after closing EOG (invalid unclassed pointer;
        assertion 'EOG_IS_IMAGE (img)' failed) (Felix Riemann)
- !100, Remove directories when unmount external drive (Krifa75)
- #189, Crash Report: eog_thumb_view_clear_range: assertion failed:
        (start_thumb <= end_thumb) (Andrew Consroe)
- #146, Part of a large image (exceeding certain dimensions)
        does not display (Felix Riemann)
- #181, docs: Remove PicasaWeb support (Andre Klapper)
- !83, Re-detect mimetype from data if loading fails the first time (Krifa75)
- !89, Update EogWindow and EogListStore when deleting
       a monitored directory (Krifa75)
- !85, Fix several image reference counting issues (Felix Riemann)
- many new and updated translations
jperkin pushed a commit that referenced this issue Jun 2, 2022
Upstream changes:
R6 2.5.1

    Removed unused packages from Suggests section in DESCRIPTION.

R6 2.5.0

    Resolved #195: Slightly clearer message when there is an error in the initialize() method.

    Fixed #214: When a non-portable object inheritance was cloned, methods that were inherited (and not overridden) had the wrong environment. (#215, #217)

    Printing R6 objects, no longer includes .__active__.
jperkin pushed a commit that referenced this issue Jun 6, 2022
0.5.0 - 2022-06-02
Added
    Added support for tracing using IPv6 for icmp and udp (#35)
    Added BSOD error reporting to Tui (#179)
    Added Ctrl-C keyboard command to quit the Tui (#91)

Changed
    Rewrite of network code to use RAW sockets (#195, #192)

Fixed
    Setting -c (--report-cycles) to 1 returns no traces (#189)
    Tracer failures not being shown for reports (#183)
jperkin pushed a commit that referenced this issue Jul 5, 2022
pysmb-1.2.8, 12 Jun 2022
========================
- Fix issue with listPath based on recommendation in #195
- Fix embedded MD4 algorithm
- Add SMB UTF-16 surrogate exception workaround policy
jperkin pushed a commit that referenced this issue Sep 4, 2022
pkgsrc change: remove redundant PKGNAME.

2.3.0 (2022-06-19)

Minor Enhancements

* Separate tokenizer from hasher, allowing custom tokenizers. (#162)
* Improved handling of Zero division and Zero vector normalization. (#173)
* Support Numo Gem for performing SVD (#198)

Development Fixes

* remove deprecated has_rdoc in gemspec
* auto-gen-config for Rubocop
* auto-correct offenses
* Freeze all Ruby string literals (#190)
* Migrate TravisCI to GitHub Actions & Update Tested Ruby Versions (#195)
* Test Native and GSL Implementations (#196)
* Actually Use GSL in CI Tests (#197)

Documentation

* Updated Bayes docs for filters (#191)
jperkin pushed a commit that referenced this issue Dec 3, 2022
1.53      2022-10-08 12:26:55-07:00 America/Los_Angeles
	* dist.ini - changed bugtracker.web to
	  https://github.com/finance-quote/finance-quote/issues
	* DWS.pm - Set $info{$symbol, 'symbol'} to $symbol.
	* Union.pm - #231 - reworked for a different CSV file.
        * CurrencyRates/AlphaVantage.pm - API CURRENCY_EXCHANGE_RATE
          no longer accepts free API keys. Changed to use FX_DAILY API.
          Issue #229 PR #230
        * Set minimum version for LWP::UserAgent in dist.ini to
          honor redirects.
        * CurrencyRates/AlphaVantage.pm - Added logic to account
          for empty JSON returned from currency exchange fetch.
        * Bourso.pm - Added Europe and France back as failover
          methods. These were removed some time ago in commit e26484b.
        * Tradeville.pm - Changed hostname in URL to tradeville.ro.
          Added logic to better account for the symbol not being
          found.
        * YahooJSON.pm - #202 - Account for symbols with '&'.
        * Minor change to isoTime function in Quote.pm.
        * Updated TSP.pm - PR #227 - update URL and handling of dates.

1.52      2022-07-03 15:15:38-07:00 America/Los_Angeles
        * Quote.pm - Fixed logic for FQ_LOAD_QUOTELET starting with "-defaults"
          reported in issue #197. PR #199.
        * AlphaVantage currency module: Don't recurse infinitely when exchange
          rate is less than .001 (PR 193)
        * Bourso.pm - Fixed data bug reported in issue #174 with PR #194.
        * TSP.pm - Minor fix for URL used to retrieve data. PR #195.
          Note: URL was changed after the PR was merged.
          Module remains in a non-working status.
        * TesouroDireto.pm - New module for Brazilian's National Treasury
          public bounds. PR #198.
        * Bloomberg.pm - Update Bloomberg class names #205. Correct html
          parsing errors.
        * MorningstarCH.pm - Re-enabled and fixed in #207.
        * ZA.pm - Change to return price from sharenet in major denomination.
          PR #208.
        * Changes to SourceForge project website HTML files.
        * Add [Prereqs] to dist.ini. #215

1.51      2021-07-04 14:41:59-07:00 America/Los_Angeles
        * Fix bugs in t/fq-object-methods.t
        * Add code to hide warning in t/currency_lookup.t

1.50      2021-06-26 20:52:16-07:00 America/Los_Angeles
        * New modules: CurrencyRates
        * Updated modules: ASX, TIAA-CREF, Fool, Currencies
        * Corrected some POD issues (thanks to the Debian Perl Group)
jperkin pushed a commit that referenced this issue Jan 12, 2023
2022-11-04 1.9
- FIX: fix reading of long lines from stdin (mk 2) (#195)
- FIX: add missing test files (#196)

2022-11-04 1.8
- FIX: fix reading of long lines from stdin (mk 2) (#195)
jperkin pushed a commit that referenced this issue Feb 21, 2023
pkgsrc change: avoid use empty in options.mk.

What's new in Sudo 1.9.13 (2023-02-14)

 * Fixed a bug running relative commands via sudo when "log_subcmds"
   is enabled.  GitHub issue #194.
 * Fixed a signal handling bug when running sudo commands in a shell
   script.  Signals were not being forwarded to the command when
   the sudo process was not run in its own process group.
 * Fixed a bug in cvtsudoers' LDIF parsing when the file ends without
   a newline and a backslash is the last character of the file.
 * Fixed a potential use-after-free bug with cvtsudoers filtering.
   GitHub issue #198.
 * Added a reminder to the default lecture that the password will
   not echo. This line is only displayed when the pwfeedback option
   is disabled. GitHub issue #195.
 * Fixed potential memory leaks in error paths.  GitHub issues #199,
   #202.
 * Fixed potential NULL dereferences on memory allocation failure.
   GitHub issues #204, #211.
 * Sudo now uses C23-style attributes in function prototypes instead
   of gcc-style attributes if supported.
 * Added a new "list" pseudo-command in sudoers to allow a user to
   list another user's privileges.  Previously, only root or a user
   with the ability to run any command as either root or the target
   user on the current host could use the -U option.  This also
   includes a fix to the log entry when a user lacks permission to
   run "sudo -U otheruser -l command".  Previously, the logs would
   indicate that the user tried to run the actual command, now the
   log entry includes the list operation.
 * JSON logging now escapes control characters if they happen to
   appear in the command or environment.
 * New Albanian translation from translationproject.org.
 * Regular expressions in sudoers or logsrvd.conf may no longer
   contain consecutive repetition operators.  This is implementation-
   specific behavior according to POSIX, but some implementations
   will allocate excessive amounts of memory.  This mainly affects
   the fuzzers.
 * Sudo now builds AIX-style shared libraries and dynamic shared
   objects by default instead of svr4-style. This means that the
   default sudo plugins are now .a (archive) files that contain a
   .so shared object file instead of bare .so files.  This was done
   to improve compatibility with the AIX Freeware ecosystem,
   specifically, the AIX Freeware build of OpenSSL.  Sudo will still
   load svr4-style .so plugins and if a .so file is requested,
   either via sudo.conf or the sudoers file, and only the .a file
   is present, sudo will convert the path from plugin.so to
   plugin.a(plugin.so) when loading it.  This ensures compatibility
   with existing configurations.  To restore the old, pre-1.9.13
   behavior, run configure using the --with-aix-soname=svr4 option.
 * Sudo no longer checks the ownership and mode of the plugins that
   it loads.  Plugins are configured via either the sudo.conf or
   sudoers file which are trusted configuration files.  These checks
   suffered from time-of-check vs. time-of-use race conditions and
   complicate loading plugins that are not simple paths.  Ownership
   and mode checks are still performed when loading the sudo.conf
   and sudoers files, which do not suffer from race conditions.
   The sudo.conf "developer_mode" setting is no longer used.
 * Control characters in sudo log messages and "sudoreplay -l"
   output are now escaped in octal format.  Space characters in the
   command path are also escaped.  Command line arguments that
   contain spaces are surrounded by single quotes and any literal
   single quote or backslash characters are escaped with a backslash.
   This makes it possible to distinguish multiple command line
   arguments from a single argument that contains spaces.
 * Improved support for DragonFly BSD which uses a different struct
   procinfo than either FreeBSD or 4.4BSD.
 * Fixed a compilation error on Linux arm systems running older
   kernels that may not define EM_ARM in linux/elf-em.h.
   GitHub issue #232.
 * Fixed a compilation error when LDFLAGS contains -Wl,--no-undefined.
   Sudo will now link using -Wl,--no-undefined by default if possible.
   GitHub issue #234.
 * Fixed a bug executing a command with a very long argument vector
   when "log_subcmds" or "intercept" is enabled on a system where
   "intercept_type" is set to "trace".  GitHub issue #194.
 * When sudo is configured to run a command in a pseudo-terminal
   but the standard input is not connected to a terminal, the command
   will now be run as a background process.  This works around a
   problem running sudo commands in the background from a shell
   script where changing the terminal to raw mode could interfere
   with the interactive shell that ran the script.
   GitHub issue #237.
 * A missing include file in sudoers is no longer a fatal error
   unless the error_recovery plugin argument has been set to false.

What's new in Sudo 1.9.13p1 (2023-02-17)

 * Fixed a typo in the configure script that resulted in a line
   like "]: command not found" in the output.  GitHub issue #238.
 * Corrected the order of the C23 [[noreturn]] attribute in function
   prototypes.  This fixes a build error with GCC 13.  GitHub issue
   #239.
 * The "check" make target misbehaved when there was more than
   one version of the UTF-8 C locale in the output of "locale -a".
   GitHub issue #241.
 * Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
   This was added in autoconf 2.72 but sudo's configure.ac only
   required autoconf 2.70.
 * Relaxed the autoconf version requirement to version 2.69.
jperkin pushed a commit that referenced this issue Apr 28, 2023
v12.5.0
-------

- #195: Project now depends on ``path``.

v12.4.0
-------

- #169: Project now depends on ``path < 13.2``.
- Fixed typo in README.

v12.3.0
-------

- #169: Project is renamed to simply ``path``. This release of
  ``path.py`` simply depends on ``path < 13.1``.

v12.2.0
-------

- #169: Moved project at GitHub from ``jaraco/path.py`` to
  ``jaraco/path``.

v12.1.0
-------

- #171: Fixed exception in ``rmdir_p`` when target is not empty.
- #174: Rely on ``importlib.metadata`` on Python 3.8.

v12.0.2
-------

- Refreshed package metadata.

12.0.1
------

- #166: Removed 'universal' wheel support.

12.0
---

- #148: Dropped support for Python 2.7 and 3.4.
- Moved 'path' into a package.
jperkin pushed a commit that referenced this issue May 18, 2023
Release 0.20 (2023-05-09)
=========================

* General

  - Docutils 0.20 is the last version supporting Python 3.7 and 3.8.
  - Support Python 3.11 (patch #198 by Hugo van Kemenade).

* docutils/core.py

  - New functions `rst2…()` for use as "console_scripts" `entry points`_.
    (cf. `Future changes` in the RELEASE-NOTES_).

* docutils/frontend.py

  - New configuration setting "output_". Obsoletes the ``<destination>``
    positional argument (cf. `Future changes` in the RELEASE-NOTES_).

* docutils/languages/
  docutils/parsers/rst/languages/

  - Support Ukrainian. Patch by Dmytro Kazanzhy.

* docutils/nodes.py

  - Fix `previous_sibling()` method that led to invalid HTML in some cases
    (cf. patch #195).
  - Fix bug #463. Spurious comma in deprecation warning.

* docutils/parsers/recommonmark_wrapper.py

  - Improved mock Sphinx module.

* docutils/transforms/__init__.py

  - `Transformer.populate_from_components()` now silently ignores
    components that are not instances of `docutils.TransformSpec`.

* docutils/transforms/frontmatter.py

  - Accept author names with initials like ``A. Einstein`` in the "author"
    `bibliographic field`_ instead of rising an error
    (generally, such names are `parsed as enumerated list`__).

    .. _bibliographic field:
        docs/ref/rst/restructuredtext.html#bibliographic-fields
    __ docs/ref/rst/restructuredtext.html#enumerated-lists

* docutils/transforms/references.py

  - `DanglingReferences` ignores `citation_reference` nodes if the
    "use_bibex" setting is active. (In this case, citations are provided
    by LaTeX/BibTeX.) Fixes bug #384.

* docutils/utils/__init__.py

  - New utility function `xml_declaration()`.
  - `DependencyList.add()` accepts `pathlib.Path` instances.
  - `find_file_in_dirs()` now returns a POSIX path also on Windows;
    `get_stylesheet_list()` no longer converts ``\`` to ``/``.

* docutils/utils/math/latex2mathml.py

  - Support "mod" notation for modulo operation / modulus arithmetic.

* docutils/utils/math/tex2mathml_extern.py

  - Support `Pandoc` as alternative LaTeX to MathML converter.
    Patch by Ximin Luo.

* docutils/writers/_html_base.py

  - Refactoring of `HTMLTranslator` initialization and collecting of
    document "parts". Adapt HTML writers importing `_html_base`.

    Changes to the HTML output (no space character before closing tag of
    XML declaration, order of metadata elements)
    don't affect the HTML semantics, styling, and rendering.

  - Wrap definition lists with "details" class argument in a <div>
    with the "id" and "class" values of the list node.

  - Use dpub-ARIA role "doc-footnote__" (instead of ARIA role "note")
    for footnotes.

    __ https://www.w3.org/TR/dpub-aria-1.1/#doc-footnote

* docutils/writers/latex2e/__init__.py

  - Do not load the `inputenc` package in UTF-8 encoded LaTeX sources.
    (UTF-8 is the default encoding for LaTeX2e since 2018).
  - Fix behaviour of the use_bibtex_ setting.
  - Outsource parts of `depart_document()` to new auxiliary methods
    `make_title()` and `append_bibliography()`.
  - Ensure POSIX paths in stylesheet loading macros.

* docutils/writers/latex2e/titlepage.tex

  - Drop ``\usepackage{fixltx2e}`` from template.
    (Obsolete since 2015 and dropped from other templates in Docutils 0.14.)

* docutils/writers/manpage.py

  - Do not output empty "manual" in ``.TH``.

* docutils/writers/xetex/__init__.py

  - Ignore settings in the [latex2e writer] configuration file section.
    Place common settings in section [latex writers].

* setup.py

  - Fix SetuptoolsDeprecationWarning: ``Installing '' as data is deprecated``
    by adding data directories to package_data.packages list.

* tox.ini

  - Extracted flake8 configuration and moved to ``.flake8``.
  - changedir to directory ``test`` to avoid path problems.

* test/

  - Refactored tests to use common `unittest` idioms.
    Fixes errors when running the test suite with ``python -m unittest``
    or external test frameworks, such as Pytest_.

  .. _pytest: https://pypi.org/project/pytest/

* test/coverage.sh

  - Removed. Use the coverage.py_ project instead,
    ``coverage run test/alltests.py`` and ``coverage report``.

  .. _coverage.py: https://pypi.org/project/coverage/

* tools/

  - Moved ``quicktest.py`` to ``tools/dev/``.
jperkin pushed a commit that referenced this issue May 25, 2023
What's Changed

    Fix building without duktape by @mattst88 in #180
    Fix WITH_GNOME2 documentation by @mattst88 in #181
    bindings: perl: Use ccflags from %Config for libproxy module compilation by @Vogtinator in #183
    Use XDG_CURRENT_DESKTOP to detect GNOME desktop like systems by @janbrummer in #192
    Enable the use of ducktape in Windows systems by @illera88 in #194
    Enable static builds for libproxy by @illera88 in #195
    Fix build on macOS by @wegank in #189
    Complete rewrite by @janbrummer in #201
    kde: Remove line breaks in values by @janbrummer in #203
    Add man page for proxy tool by @janbrummer in #204
    Add PX_FORCE_CONFIG env by @janbrummer in #205
    add alert function to pacrunners by @multiSnow in #196
    Update architecture documentation by @janbrummer in #206
    Check for valid uri_host in ignore_ip() by @janbrummer in #210
    Remove line break in debug output by @janbrummer in #211
    Improve GNOME/KDE get_config() execution by @janbrummer in #212
jperkin pushed a commit that referenced this issue Jun 11, 2023
# gargle 1.4.0

## Google Compute Engine

* `credentials_gce(scopes = NULL)` is now equivalent to
  `credentials_gce(scopes =
  "https://www.googleapis.com/auth/cloud-platform")`, i.e. there's an
  even stronger current towards the recommended "cloud-platform"
  scope.

* `credentials_gce(scopes =)` now includes those `scopes` in its
  request to the metadata server for an access token (#216). Note that
  the scopes for a GCE access token are generally pre-determined for
  the instance and its associated service account at creation/launch
  time and these requested `scopes` will have no effect. But this
  seems to do no harm and it is possible that there are contexts where
  this is useful.

* `credentials_gce()` now emits considerably more information when the
  `"gargle_verbosity"` option is set to `"debug"`. For example, it
  reports mismatches between requested scopes and instance scopes and
  between requested scopes and the access token's actual scopes.

* `credentials_gce()` stores the actual scopes of the received access
  token, which can differ from the requested scopes. This is also
  noted when the `"gargle_verbosity"` option is set to `"debug"`.

* The `GceToken` R6 class gains a better `$print()` method that is
  more similar to gargle's treatment of tokens obtained with other
  flows.

## Behaviour in a cloud/server context

* gargle is better able to detect when it's running on Posit Workbench
  or RStudio Server, e.g., in a subprocess.

* `gargle_oauth_client_type()` is a new function that returns either
"installed" or "web".  It returns the value of the new global option
by the same name (`"gargle_oauth_client_type"`), if defined.  If the
option is not defined, returns "web" on RStudio Server, Posit
Workbench, Posit Cloud, or Google Colaboratory and "installed"
otherwise.  In the context of out-of-band (OOB) auth, an "installed"
client type leads to the conventional OOB flow (only available for GCP
projects in testing mode) and a "web" client leads to the new
pseudo-OOB flow.  The option and accessor have been added to cover
contexts other than those mentioned above where it is helpful to
request a "web" client.

* `credentials_user_oauth2()` now works in Google Colaboratory (#140).

## Everything else

* gargle now elicits user input via `readline()`, instead of via
  `utils::menu()`, which is favorable for interacting with the user in
  a Jupyter notebook (#242).

* The roxygen templating functions that wrapper packages can use to
generate standardized documentation around auth have been updated to
reflect gargle's pivot from OAuth "app" to "client".  Changes of note:

  - `PREFIX_auth_configure_description()` crosslinks to `PREFIX_oauth_client()`
    now, not `PREFIX_oauth_app()`. So this assumes the package has indeed
    introduced the `PREFIX_oauth_client()` function (and, presumably, has
    deprecated `PREFIX_oauth_app()`).
  - `PREFIX_auth_configure_params()` gains `client` argument.
  - `PREFIX_auth_configure_params()` deprecates the `app` argument and uses a
    lifecycle badge. It is assumed that the badge SVG is present, which can be
    achieved with `usethis::use_lifecycle()`.
  - `PREFIX_auth_configure_params()` crosslinks to
    `gargle::gargle_oauth_client_from_json()`. The wrapper package therefore
    needs to state a minimum version for gargle, e.g. `gargle (>= 1.3.0)` (or
    higher).

* `credentials_byo_oauth2()` works now for (variations of) service
  account tokens, as intended, not just for user tokens (#250). It
  also emits more information about scopes when the
  `"gargle_verbosity"` option is set to `"debug"`.

# gargle 1.3.0

## (Partial) deprecation out-of-band (OOB) auth flow

On February 16, 2022, Google announced the gradual deprecation of the
out-of-band (OOB) OAuth flow.  OOB **still works** if the OAuth client
is associated with a GCP project that is in testing mode and this is
not going away.  But OOB is no longer supported for projects in
production mode.  To be more accurate, some production-mode projects
have gotten an extension to permit the use of OOB auth for a bit
longer, but that's just a temporary reprieve.

The typical user who will (eventually) be impacted is:

* Using R via RStudio Server, Posit Workbench, or Posit Cloud.
* Using tidyverse packages such as googledrive, googlesheets4, or bigrquery.
* Relying on the built-in OAuth client. Importantly, this client is associated
  with a GCP project that is in production mode.

The phased deprecation of OOB is nearly complete and we expect
conventional OOB to stop working with the built-in tidyverse OAuth
client on February 1, 2023, at the latest.

**In preparation for this, gargle has gained support for a new flow,
which we call pseudo-OOB (in contrast to conventional OOB)**.  The
pseudo-OOB flow is triggered when `use_oob = TRUE` (an existing
convention in gargle and gargle-using packages) and the configured
OAuth client is of "Web application" type.  The
gargle/googledrive/googlesheets4/bigrquery packages should now default
to a "Web application" client on RStudio Server, Posit Workbench and
Posit Cloud, leading the user through the pseudo-OOB flow.  Other than
needing to re-auth once, affected users should still find that things
"just work".

Read the `vignette("auth-from-web")` for more.

## gargle-specific notion of OAuth client

`gargle_oauth_client()` is a new constructor for an S3 class by the same name.
There are two motivations:

  - To adjust to Google's deprecation of conventional OOB and to support
    gargle's new pseudo-OOB flow, it is helpful for gargle to know whether an
    OAuth client ID is of type "Web application" or "Desktop app". That means we
    need a Google- and gargle-specific notion of an OAuth client, so we can
    introduce a `type` field.
  - A transition from httr to httr2 is on the horizon, so it makes sense to
    look more toward `httr2:oauth_client()` than to `httr::oauth_app()`.
    gargle's vocabulary is generally shifting towards "client" and away from
    "app".

`oauth_app_from_json()` has therefore been (soft) deprecated, in favor
of a new function `gargle_oauth_client_from_json()`, which is the
preferred way to instantiate an OAuth client, since the downloaded
JSON conveys the client type and redirect URI(s).  As a bridging
measure, `gargle_oauth_client` currently inherits from httr's
`oauth_app`, but this probably won't be true in the long-term.

`gargle_client(type =)` replaces `gargle_app()`.

## Google Compute Engine and Google Kubernetes Engine

`credentials_gce()` no longer asks the user about initiating an OAuth
cache, which is not relevant to that flow (#221).

`gce_instance_service_accounts()` is a newly exported utility that
exposes the service accounts available from the metadata server for
the current instance (#234).

The global option `"gargle.gce.timeout"` is newly documented in
`credentials_gce()`.  This controls the timeout, in seconds, for
requests to the metadata server.  The default value (or strategy) for
setting this should often suffice, but the option exists for those
with an empirical need to increase the timeout (#186, #195).

`vignette("non-interactive-auth")` has a new section "Workload
Identity on Google Kubernetes Engine (GKE)" that explains how gargle
supports the use of workload identity for applications running on
GKE. This is the recommended method of auth in R code running on GKE
that needs to access other Google Cloud services, such as the BigQuery
API (#197, #223, @MarkEdmondson1234).

## Credential function registry

It's gotten a bit easier to work with the credential registry.
The primary motivation is that, for example, on Google Compute Engine, you might
actually want to suppress auth with the default service account and auth as a
normal user instead.
This is especially likely to come up with gmailr / the Gmail API.

* The credential-fetcher `credentials_byo_oauth2()` has been moved to the very
  beginning of the default registry. The logic is that a user who has specified
  a non-`NULL` value of `token` must mean business and does not want automagic
  auth methods like ADC or GCE to be tried before using their `token`
  (#187, #225).

* The `...` in `cred_funs_all()` are now
  [dynamic dots](https://rlang.r-lib.org/reference/dyn-dots.html) (#224).

* Every registered credential function must have a unique name now.
  This is newly enforced by `cred_funs_add()` and `cred_funs_set()` (#224).

* `cred_funs_list_default()` is a new function that returns gargle's default
  list of credential functions (#226).

* `cred_funs_add(cred_fun = NULL)` is now available to remove a credential
  function from the registry (#224).

* `with_cred_funs()` and `local_cred_funs()` are new helpers for making narrowly
  scoped changes to the registry (#226).

* The `ls` argument of `cred_funs_set()` has been renamed to `funs` (#226).

* In general, credential registry functions now return the current registry,
  invisibly (#224).

# gargle 1.2.1

* Help files below `man/` have been re-generated, so that they give
  rise to valid HTML5. (This is the impetus for this release, to keep
  the package safely on CRAN.)

* We have switched to newer oauth2.googleapis.com-based OAuth2 URIs,
  moving away from the accounts.google.com and googleapis.com/oauth2
  equivalents.

* `credentials_gce()` no longer validates the requested scopes against
instance scopes.  In practice, it's easy for this check to be more of
a nuisance than a help (#161, #185 @craigcitro).

* `request_retry()` retries for an expanded set of HTTP codes: 408,
  429, 500, 502, 503. Previously, retries were limited to 429 (#169).

## Dependency changes

* The minimum versions of rlang and testthat have been bumped. The
  motivation is to exploit and adapt to the changes to the display of
  error messages.
jperkin pushed a commit that referenced this issue Jun 21, 2023
pkgsrc change: avoid use empty in options.mk.

What's new in Sudo 1.9.13 (2023-02-14)

 * Fixed a bug running relative commands via sudo when "log_subcmds"
   is enabled.  GitHub issue #194.
 * Fixed a signal handling bug when running sudo commands in a shell
   script.  Signals were not being forwarded to the command when
   the sudo process was not run in its own process group.
 * Fixed a bug in cvtsudoers' LDIF parsing when the file ends without
   a newline and a backslash is the last character of the file.
 * Fixed a potential use-after-free bug with cvtsudoers filtering.
   GitHub issue #198.
 * Added a reminder to the default lecture that the password will
   not echo. This line is only displayed when the pwfeedback option
   is disabled. GitHub issue #195.
 * Fixed potential memory leaks in error paths.  GitHub issues #199,
   #202.
 * Fixed potential NULL dereferences on memory allocation failure.
   GitHub issues #204, #211.
 * Sudo now uses C23-style attributes in function prototypes instead
   of gcc-style attributes if supported.
 * Added a new "list" pseudo-command in sudoers to allow a user to
   list another user's privileges.  Previously, only root or a user
   with the ability to run any command as either root or the target
   user on the current host could use the -U option.  This also
   includes a fix to the log entry when a user lacks permission to
   run "sudo -U otheruser -l command".  Previously, the logs would
   indicate that the user tried to run the actual command, now the
   log entry includes the list operation.
 * JSON logging now escapes control characters if they happen to
   appear in the command or environment.
 * New Albanian translation from translationproject.org.
 * Regular expressions in sudoers or logsrvd.conf may no longer
   contain consecutive repetition operators.  This is implementation-
   specific behavior according to POSIX, but some implementations
   will allocate excessive amounts of memory.  This mainly affects
   the fuzzers.
 * Sudo now builds AIX-style shared libraries and dynamic shared
   objects by default instead of svr4-style. This means that the
   default sudo plugins are now .a (archive) files that contain a
   .so shared object file instead of bare .so files.  This was done
   to improve compatibility with the AIX Freeware ecosystem,
   specifically, the AIX Freeware build of OpenSSL.  Sudo will still
   load svr4-style .so plugins and if a .so file is requested,
   either via sudo.conf or the sudoers file, and only the .a file
   is present, sudo will convert the path from plugin.so to
   plugin.a(plugin.so) when loading it.  This ensures compatibility
   with existing configurations.  To restore the old, pre-1.9.13
   behavior, run configure using the --with-aix-soname=svr4 option.
 * Sudo no longer checks the ownership and mode of the plugins that
   it loads.  Plugins are configured via either the sudo.conf or
   sudoers file which are trusted configuration files.  These checks
   suffered from time-of-check vs. time-of-use race conditions and
   complicate loading plugins that are not simple paths.  Ownership
   and mode checks are still performed when loading the sudo.conf
   and sudoers files, which do not suffer from race conditions.
   The sudo.conf "developer_mode" setting is no longer used.
 * Control characters in sudo log messages and "sudoreplay -l"
   output are now escaped in octal format.  Space characters in the
   command path are also escaped.  Command line arguments that
   contain spaces are surrounded by single quotes and any literal
   single quote or backslash characters are escaped with a backslash.
   This makes it possible to distinguish multiple command line
   arguments from a single argument that contains spaces.
 * Improved support for DragonFly BSD which uses a different struct
   procinfo than either FreeBSD or 4.4BSD.
 * Fixed a compilation error on Linux arm systems running older
   kernels that may not define EM_ARM in linux/elf-em.h.
   GitHub issue #232.
 * Fixed a compilation error when LDFLAGS contains -Wl,--no-undefined.
   Sudo will now link using -Wl,--no-undefined by default if possible.
   GitHub issue #234.
 * Fixed a bug executing a command with a very long argument vector
   when "log_subcmds" or "intercept" is enabled on a system where
   "intercept_type" is set to "trace".  GitHub issue #194.
 * When sudo is configured to run a command in a pseudo-terminal
   but the standard input is not connected to a terminal, the command
   will now be run as a background process.  This works around a
   problem running sudo commands in the background from a shell
   script where changing the terminal to raw mode could interfere
   with the interactive shell that ran the script.
   GitHub issue #237.
 * A missing include file in sudoers is no longer a fatal error
   unless the error_recovery plugin argument has been set to false.

What's new in Sudo 1.9.13p1 (2023-02-17)

 * Fixed a typo in the configure script that resulted in a line
   like "]: command not found" in the output.  GitHub issue #238.
 * Corrected the order of the C23 [[noreturn]] attribute in function
   prototypes.  This fixes a build error with GCC 13.  GitHub issue
   #239.
 * The "check" make target misbehaved when there was more than
   one version of the UTF-8 C locale in the output of "locale -a".
   GitHub issue #241.
 * Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
   This was added in autoconf 2.72 but sudo's configure.ac only
   required autoconf 2.70.
 * Relaxed the autoconf version requirement to version 2.69.
jperkin pushed a commit that referenced this issue Aug 8, 2023
v0.8.1 (Sat Aug 05 2023)
Release Notes
Add language selection (#190)

You can now change the language of the current article by pressing F3 (requires
an article to be open and the key can be configured). Within the popup, you can
select a new language from the available ones (not all articles are available
in all languages). This feature also include several configuration options,
so be sure to check them out in the docs.

Exciting New Features 🎉
 - Add language selection #190 (@Builditluc)

Bug Fixes 🐛
 - Fix whitespace caused by quoteboxes #205 (@Builditluc)
 - Fix navigation links appearing in articles #204 (@Builditluc)
 - Fix missing elements because of nested divs #203 (@Builditluc)
 - Fix long gaps after lists #202 (@Builditluc)
 - Fix ghost lists from Portalbox #201 (@Builditluc)
 - Fix nested indentation #200 (@Builditluc)
 - Fix description list parsing #199 (@Builditluc)
 - Fix stack overflow crash when displaying a Namespace #198 (@Builditluc)
 - Fix padding for list items #196 (@Builditluc)
 - Fix disambiguation padding and prefix #195 (@Builditluc)
 - Fix viewport reset after link selection #194 (@Builditluc)
 - Notify on links with an Anchor #192 (@Builditluc)

Structure and Style Changes
 - Rework Links to be more stable #191 (@Builditluc)
jperkin pushed a commit that referenced this issue Sep 1, 2023
Change log:

1.1.0 (2023-08-22)
=====
- Update copyright year
- Allow passing arguments to custom commands
- Fully translate strings in unsafe paste dialog
- window: Properly sync always-show-tabs
- cleanup: Include gdkx.h in one place
- preferences: Remove unused class member
- preferences: Check if channel itself exists instead of check property
- screen: Review image loader memory management
- image-loader: Review cache management
- Add keywords to .desktop files (Fixes #50)
- screen: Take window scaling into account when drawing (Fixes #71)
- Remove obsolete GNOME default-app file (Fixes #109)
- Add "Open File Manager Here" action (Fixes #133)
- Properly manage default encoding (Fixes #128)
- Move general include in private.h
- dropdown: Disable systray icon on Wayland
- Fix startup with GDK_BACKEND=x11 (Fixes #177)
- shortcuts: Restore broken action toggle-menubar
- shortcuts: Fix non-consumed key event for show-menubar
- main: Allow GTK to parse its options first (Fixes #216)
- search: Add missing sanity check
- Use GLib logging functions and do not translate warnings
- Fix typo
- Remove obsolete CHECK_VERSION()
- Use g_new() instead of malloc()
- Fix Xfconf memory management
- search-dialog: Fix memory leak
- Remove extra separator at the end of context menu
- Missing shortcut keys in the standalone preferences dialog (Issue
#198)
- Apply 1 suggestion(s) to 1 file(s)
- Enable kinetic scrolling in VteTerminal
- Extend --disable-server description wrt. process model
- End all full sentences with a period
- Drop obsolete --disable-server translations
- prefs-dialog: Fix untranslated strings
- Add sixel support
- Add icons at missing sizes, clean up SVG metadata
- build: Fix autoconf warnings
- build: Add GLib requirement
- Add accel entries for scrolling pages (Issue #221)
- Remove documentation for dead anti-aliasing option
- Make strings translatable (Issue #222)
- Fix shortcuts-editor include
- Indentation
- Support hyperlinks (Issue #21)
- fix typo
- Fix argument type for xfce_shortcuts_editor_new
- fix background_notify
- fixed typo
- Remove disable-help preference.
- MR: !51 transitioned to Xfconf (#134)
- typos in MR !48 fixed
- Remove all references to terminal-preferences.glade
- Remove one more mention of terminal-preferences.glade
- Remove trailing slash
- Remove terminal-preferences-ui.h from makefile
- Remove terminal-preferences.glade
- MR: !48 shortcuts editor embedded into preferences-dialog (#195)
- MR: !48 preferences-dialog rewritten in C (#195)
- MR: !46 Change in implementation for TAB accels (#150)
- Implementation of MiscShiftArrowsToScroll as accelerators.
- Add PCRE2 build dependency
- Remove libxfce4ui 4.17 version guards
- Replace with xfce_gtk_menu_append_separator
- Tweak toolbar
- Translation Updates:
  , Albanian, Arabic, Armenian (Armenia), Basque, Belarusian,
  Bulgarian, Catalan, Chinese (China), Chinese (Taiwan), Croatian,
  Czech, Danish, Dutch, Eastern Armenian, English (Australia), English
  (United Kingdom), Estonian, Finnish, French, Galician, German, Greek,
  Hebrew, Hungarian, Icelandic, Indonesian, Interlingue, Italian,
  Japanese, Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmål,
  Occitan (post 1500), Persian (Iran), Polish, Portuguese, Portuguese
  (Brazil), Romanian, Russian, Serbian, Slovak, Slovenian, Spanish,
  Swedish, Thai, Turkish, Ukrainian
jperkin pushed a commit that referenced this issue Oct 20, 2023
## v3.4.0

#### Fixes

-   fixed `value_flags` not being preserved correctly when inserting into tables and arrays (#108) (@LebJe)
-   fixed `toml::value::flags()` not being cleared when `std::move`-ing a value
-   fixed error in README (#195) (@andrewkcorcoran)
-   fixed compiler error when using NVCC (#198) (@thompsonnoahe)
-   fixed `noexcept(...)` sometimes being incorrectly derived on `for_each()`
-   fixed `for_each()` compilation error on GCC &lt;= 7 (#197) (@sagi-ottopia, @damirbarr)
-   fixed `FLT_RADIX` check getting broken by Intel MKL headers (#202) (@iago-lito)
-   fixed keys containing `\t` incorrectly formatting as bare keys (@jasmine-zhu, @arp242)
-   fixed keys containing `\t` and `\n` not round-tripping correctly (@arp242)

#### Additions

-   added support for using enums with `value_or()`

#### Changes:

-   renamed header files to have `.hpp` extension (`toml.h` is still present for backwards-compatibility)

#### Build system:

-   fixed meson builds with `-Ddefault_library=static` having hidden symbols on GNU compilers (#201) (@vlad0x00)
jperkin pushed a commit that referenced this issue Nov 6, 2023
v4.0.1 Latest

Bugfix release.

    Update test suite to pass on Python 3.12 (#207)

v4.0.0

Breaking changes

    Require block and timeout arguments to always be keyword arguments. (PR: #198)
    Remove support for Python 3.7. It reached end-of-life in June 2023. (PR: #190)

Features

    Type hints: All typing stubs have been inlined in the source code and have been greatly improved. They are now tested using both Mypy and Pyright. (PR: #192, #193, #195)
    Type hints: Due to the dynamic nature of ActorProxy objects, it is impossible to automatically type them correctly. pykka.typing is a new module with helpers for manually typing ActorProxy objects. Check out the docs for how to use the helpers. (PR: #199)
jperkin pushed a commit that referenced this issue Dec 17, 2023
Features
 - New --character-table option, with the ability to use codepage 437,
   see #194 and #195 (@sharifhsn)
 - New --character-table=ascii option for a ASCII-only character table,
   see #212 and #36 (@sharkdp)

Bugfixes
 - Show output when doing hexyl /dev/zero, see #211 (@sharifhsn)
 - Respect NO_COLOR environment variable, see #210 (@sharkdp)
jperkin pushed a commit that referenced this issue Feb 29, 2024
ActiveLdap 7.0.0 (2024-02-23)

Improvements

* Added support for Active Model 7.
    - GH-193
    - GH-194
    - GH-195
    - Patch by J-Verz.

Thanks

* J-Verz
jperkin pushed a commit that referenced this issue Feb 29, 2024
Upstream changes:
1.20240214

- feat: add imap option to specify port #195
- feat: add configurable DNS retrans option #214
- ignore empty/wrong lines on whitelist_dmarc file #219
- test: mock DNS during testing #213
- ci: restore CI tests to working order
- Force lower case for SPF domain input #212
jperkin pushed a commit that referenced this issue Apr 3, 2024
Features / Improvements ✨
    Links should be "openable" (#43)
    Add support for previewing images in room scrollback (#108)
    Enable sending strikethrough text (#141)
    Support composing messages in an external editor (#155)
    Add support for logging in with SSO (#160)
    Add new command for logging out of iamb session (#162)
    Support custom sorting for room and user lists (#170)
    feat: desktop file for GUI environment launchers (#178)
    Add a new :chats window that lists both DMs and Rooms (#184)
    Add support for desktop notifications (#192)
    Support coloring entire message with the user color (#193)
    Indicate and sort on rooms with unread messages (#205)
    Support following the .well-known entries for a username's domain (#209)
    Add support for threads (#216)
    Add support for custom key macros (#217)
    Support displaying shortcodes instead of Emojis in messages (#222)
    Support configuring user gutter width (#223)
    Enable autolinking when rendering Markdown (#226)
    Support notifications via terminal bell (#227)
    Support loading a TOML configuration (#229)
    Add commands for importing and exporting room keys (#233)

Documentation / README updates 📚
    Fix example config (#140)
    Add more documentation (#166)
    Update README.md to add openSUSE Tumbleweed (#191)
    Add snap install instructions (#210)
    Add example of mapping "V" to toggle message selection mode (#195)
    Update manual pages to use mdoc(7) and list commands (#230)
    Add an icon for iamb (#232)

Bug Fixes 🐞
    Fix not showing display names in already synced rooms (#171)
    Fix image preview offset (#179)
    Update to ratatui-image@0.4.3 to use native sixel lib (#181)
    Fix truncation/padding for non-ASCII sender names (#182)
    Fix crash on small image preview (#198)
    Download rooms keys from backups if they exist (#211)
    Ignore key releases on platforms that support it (#220)
    Provide better error message for M_UNKNOWN_TOKEN (#101)
    Fix entering thread view when there's no messages yet (#224)
    Fix image previews in replies (#225)
    Reset message bar when ! is passed with :cancel (#231)
    Wait to log in before starting background tasks (#234)

Performance ⏱️
    Reduce CPU usage by instead fetching read receipts after related sync events (#168)
    Load receipts for room before acquiring lock (#213)

Building / Housekeeping 🧹
    Update Cargo.lock file (#157)
    Update modalkit for newer ratatui and crossterm
    Fix CI workflow (#164)
    Use mozilla-actions/sccache-action for caching builds (#169)
    Enable direnv for Nix flakes (#183)
    Update to matrix-sdk@0.7.1 (#200)
    Rename Nix flake build input from pkgconfig to pkg-config (#203)
    Update modalkit dependencies (#204)
    Move LTO into its own "release-lto" profile (#207)
    Fix Nix flake hashes (#206)
    Pull in modalkit repository with a Cargo.lock (#208)
    Nix flake updates (#214)
    Update to ratatui-image@0.8.1 (#215)
    Support linking against system OpenSSL (#218)
    GitHub workflow should use --locked to avoid broken Cargo.lock (#219)
    Fix odd Windows-only compile error (#221)
jperkin pushed a commit that referenced this issue May 1, 2024
Version 1.7.0
.............

Released on 2024-04-27

* Drop Python 3.7 support, add Python 3.12 support
* `#221 <https://github.com/Kozea/cairocffi/pull/225>`_:
  Add environment variable to set folder where DLLs are installed on Windows
* `#225 <https://github.com/Kozea/cairocffi/pull/225>`_:
  Use Ruff instead of Flake8 and isort


Version 1.6.1
.............

Released on 2023-07-24

* `#217 <https://github.com/Kozea/cairocffi/issues/217>`_:
  Repair installation with PyInstaller


Version 1.6.0
.............

Released on 2023-06-12

**This version uses a new CFFI mode that may break your program.**

CairoCFFI now uses Flit for packaging and is also distributed as a Python
wheel.

Please test carefully and don’t hesitate to report issues before using it in
production.

* `#216 <https://github.com/Kozea/cairocffi/pull/216>`_:
  Use ABI-level in-line CFFI mode


Version 1.5.1
.............

Released on 2023-04-15

* `#212 <https://github.com/Kozea/cairocffi/issues/212>`_:
  Bring back XCB support during wheel generation


Version 1.5.0
.............

Released on 2023-03-17

* `#106 <https://github.com/Kozea/cairocffi/issues/106>`_,
  `#200 <https://github.com/Kozea/cairocffi/issues/200>`_:
  Fallback to manual PNG file creation on hardened systems
* `#210 <https://github.com/Kozea/cairocffi/pull/210>`_:
  Use pyproject.toml for packaging and remove other useless files


Version 1.4.0
.............

Released on 2022-09-23

* `#205 <https://github.com/Kozea/cairocffi/pull/205>`_:
  Use pikepdf to parse generated PDF
* `#171 <https://github.com/Kozea/cairocffi/pull/171>`_:
  Don’t use deprecated pytest-runner anymore


Version 1.3.0
.............

Released on 2021-10-04

* `2cd512d <https://github.com/Kozea/cairocffi/commit/2cd512d>`_:
  Drop Python 3.6 support
* `#196 <https://github.com/Kozea/cairocffi/pull/196>`_:
  Fix import `constants.py` import
* `#169 <https://github.com/Kozea/cairocffi/pull/169>`_:
  Add extra library name "cairo-2.dll"
* `#178 <https://github.com/Kozea/cairocffi/pull/178>`_:
  Workaround for testing date string with cairo 1.17.4
* `#186 <https://github.com/Kozea/cairocffi/pull/186>`_:
  Fix link in documentation
* `#195 <https://github.com/Kozea/cairocffi/pull/195>`_:
  Fix typo in documentation
* `#184 <https://github.com/Kozea/cairocffi/pull/184>`_,
  `a4fc2a7 <https://github.com/Kozea/cairocffi/commit/a4fc2a7>`_:
  Clean .gitignore


Version 1.2.0
.............

Released on 2020-10-29

* `#152 <https://github.com/Kozea/cairocffi/pull/152>`_:
  Add NumPy support
* `#143 <https://github.com/Kozea/cairocffi/issues/143>`_:
  Make write_to_png function work on hardened systems
* `#156 <https://github.com/Kozea/cairocffi/pull/156>`_:
  Use major version name to open shared libraries
* `#165 <https://github.com/Kozea/cairocffi/pull/165>`_:
  Don’t list setuptools as required for installation


Version 1.1.0
.............

Released on 2019-09-05

* `#135 <https://github.com/Kozea/cairocffi/pull/135>`_,
  `#127 <https://github.com/Kozea/cairocffi/pull/127>`_,
  `#119 <https://github.com/Kozea/cairocffi/pull/119>`_:
  Clean the way external libraries are found
* `#126 <https://github.com/Kozea/cairocffi/pull/126>`_:
  Remove const char* elements from cdef
* Support Cairo features up to 1.17.2
* Fix documentation generation


Version 1.0.2
.............

Released on 2019-02-15

* `#123 <https://github.com/Kozea/cairocffi/issues/123>`_:
  Rely on a recent version of setuptools to handle VERSION


Version 1.0.1
.............

Released on 2019-02-12

* `#120 <https://github.com/Kozea/cairocffi/issues/120>`_:
  Don't delete _generated modules on ffi_build import


Version 1.0.0
.............

Released on 2019-02-08

6 years after its first release, cairocffi can now be considered as stable.

* Drop Python 2.6, 2.7 and 3.4 support
* Test with Python 3.7
* Clean code, tests and packaging
jperkin pushed a commit that referenced this issue May 1, 2024
v20.4.0
=======

Features
--------

- Replace deprecated ssl.wrap_socket with SSLContext.wrap_socket and update examples in connection.py docs. (#216)


v20.3.1
=======

No significant changes.


v20.3.0
=======

Features
--------

- Added support for SASL login. (#195)


Bugfixes
--------

- Better handling of escape sequences in message tags. (#205)


v20.2.0
=======

Features
--------

- Require Python 3.8 or later.


v20.1.1
=======

* #213: Pinned against jaraco.text 3.10 due to change in interface.

v20.1.0
=======

* #196: In irc.bot, avoid hanging idle when the first connection
  attempt fails.

v20.0.0
=======

* ``SingleServerIRCBot`` no longer accepts ``reconnection_interval``
  as a parameter.

* Added server support for NOTICE commands.

* Require Python 3.7 or later.

v19.0.1
=======

* #176: Fix issues with version number reporting. Restored version
  version number reporting in bot and client.

v19.0.0
=======

* ``irc.client`` no longer exposes a ``VERSION`` or ``VERSION_STRING``.
  To get the version, call ``importlib.metadata.version('irc')`` directly.

v18.0.0
=======

* Require Python 3.6 or later.

17.1
====

* Rely on
  `importlib_metadata <https://pypi.org/project/importlib_metadata/>`_
  for loading version from metadata. Removes implicit dependency on
  setuptools and pkg_resources.

* #158: The AsyncIO server now accepts a connection factory to
  enable features like SSL and IPv6 support.

* #155: ``SimpleIRCClient`` now has a ``dcc`` method for initiating
  and associating a DCCConnection object with the client.
  ``DCCConnection.listen`` now accepts a ``address`` parameter.
  Deprecated ``SimpleIRCClient.dcc_listen`` and
  ``SimpleIRCClient.dcc_connect`` in favor of the better separation
  of concerns. Clients should replace::

    client.dcc_connect(addr, port, type)
    client.dcc_listen(type)

  with::

    client.dcc(type).connect(addr, port)
    client.dcc(type).listen()


17.0
====

* Removed ``irc.buffer`` module, deprecated in 14.2.
* #153: Drop support for Python 3.3 and 2.7.

16.4
====

* Long Term Service release for Python 2.7.
* #149: ``AioConnection.connect`` moved to coroutine, added
  disconnect handling for AsyncIO.

16.3
====

* #140: Methods now use 'connection' and 'event' for parameter names.

* #135 via #144: Added AsyncIO implementation.

16.2.1
======

* Package refresh and cleanup.

16.2
====

* #133: In ``irc.server``, add support for ISON.

16.1
====

* #131: Add ``Connection.encode`` and ``Connection.transmit_encoding``
  to enable encodings other than UTF-8 to be used when transmitting
  text.

16.0
====

* Removed deprecated ``execute_*`` methods on ``Connection``
  and ``Reactor`` as introduced in 15.0.

* Fixed link in README.

15.1.1
======

* New ``send_items`` method takes star args for simplicity
  in the syntax and usage.

15.1
====

* Introduce ``ServerConnection.send_items``, consolidating
  common behavior across many methods previously calling
  ``send_raw``.

15.0.6
======

* Now publish `documentation <https://python-irc.readthedocs.io/>`_
  to Read The Docs.

15.0.5
======

* #119: Handle broken pipe exception in IRCClient _send() (server.py).

15.0.4
======

* #116: Correct invocation of execute_every.

15.0.3
======

* #115: Fix AttributeError in ``execute_at`` in scheduling
  support.

15.0.2
======

* #113: Use preferred scheduler in the bot implementation.

15.0.1
======

* Deprecated calls to Connection.execute_*
  and Reactor.execute_*. Instead, call the
  equivalently-named methods on the reactor's
  scheduler.

15.0
====

* The event scheduling functionality has been decoupled
  from the client.Reactor object. Now the reactor will
  construct a Scheduler from the scheduler_class property,
  which must be an instance of irc.schedule.IScheduler.

  The ``_on_schedule`` parameter is no longer accepted
  to the Reactor class. Implementations requiring a
  signal during scheduling should hook into the ``add``
  method of the relevant scheduler class.

* Moved the underlying scheduler implementation to
  `tempora <https://pypi.org/project/tempora>`_, allowing
  it to be re-used for other purposes.

14.2.2
======

* Issue #98: Add an ugly hack to force ``build_sphinx``
  command to have the requisite libraries to build
  module documentation.

14.2.1
======

* Issue #97: Restore ``irc.buffer`` module for
  compatibility.
* Issue #95: Update docs to remove missing or
  deprecated modules.
* Issue #96: Declare Gitter support as a badge in the
  docs.

14.2
====

* Moved buffer module to `jaraco.stream
  <https://pypi.python.org/pypi/jaraco.stream>`_ for
  use in other packages.

14.1
====

* ``SingleServerIRCBot`` now accepts a ``recon``
  parameter implementing a ReconnectStrategy. The new
  default strategy is ExponentialBackoff, implementing an
  exponential backoff with jitter.
  The ``reconnection_interval`` parameter is now deprecated
  but retained for compatibility. To customize the minimum
  time before reconnect, create a custom ExponentialBackoff
  instance or create another ReconnectStrategy object and
  pass that as the ``recon`` parameter. The
  ``reconnection_interval`` parameter will be removed in
  future versions.
* Issue #82: The ``ExponentialBackoff`` implementation
  now protects from multiple scheduled reconnects, avoiding
  the issue where reconnect attempts accumulate
  exponentially when the bot is immediately disconnected
  by the server.

14.0
====

* Dropped deprecated constructor
  ``connection.Factory.from_legacy_params``. Use the
  natural constructor instead.
* Issue #83: ``connection.Factory`` no longer attempts
  to bind before connect unless a bind address is specified.

13.3.1
======

* Now remove mode for owners, halfops, and admins when the user
  is removed from a channel.
* Refactored the Channel class implementation for cleaner, less
  repetitive code.
* Expanded tests coverage for Channel class.

13.3
====

* Issue #75: In ``irc.bot``, add support for tracking admin
  status (mode 'a') in channels. Use ``channel.is_admin``
  or ``channel.admins`` to identify admin users for a channel.

* Removed deprecated irc.logging module.

13.2
====

* Moved hosting to github.

13.1.1
======

* Issue #67: Fix infinite recursion for ``irc.strings.IRCFoldedCase``
  and ``irc.strings.lower``.

13.1
====

* Issue #64: ISUPPORT PREFIX now retains the order of
  permissions for each prefix.

13.0
====

* Updated ``schedule`` module to properly support timezone aware
  times and use them by default. Clients that rely on the timezone
  naïve datetimes may restore the old behavior by overriding the
  ``schedule.now`` and ``schedule.from_timestamp`` functions
  like so:

    schedule.from_timestamp = datetime.datetime.fromtimestamp
    schedule.now = datetime.datetime.now

  Clients that were previously patching
  ``schedule.DelayedCommand.now`` will need to instead patch
  the aforementioned module-global methods. The
  classmethod technique was a poor interface for effectively
  controlling timezone awareness, so was likely unused. Please
  file a ticket with the project for support with your client
  as needed.

12.4.2
======

* Bump to jaraco.functools 1.5 to throttler failures in Python 2.

12.4
====

* Moved ``Throttler`` class to `jaraco.functools
  <https://bitbucket.org/jaraco/jaraco.functools>`_ 1.4.

12.3
====

* Pull Request #33: Fix apparent escaping issue with IRCv3 tags.

12.2
====

* Pull Request #32: Add numeric for WHOX reply.
* Issue #62 and Pull Request #34: Add support for tags in message
  processing and ``Event`` class.

12.1.2
======

* Issue #59: Fixed broken references to irc.client members.
* Issue #60: Fix broken initialization of ``irc.server.IRCClient`` on
  Python 2.

12.1.1
======

* Issue #57: Better handling of Python 3 in testbot.py script.

12.1
====

* Remove changelog from package metadata.

12.0
====

* Remove dependency on jaraco.util. Instead depend on surgical packages.
* Deprecated ``irc.logging`` in favor of ``jaraco.logging``.
* Dropped support for Python 3.2.
jperkin pushed a commit that referenced this issue Jun 7, 2024
From upstream's changelog:


AWStats 7.9 Latest

Add Windows 11 and Android 13 operating systems
Update Hungarian translation and migrate it to UTF-8.
fix cross site scripting
Replace hard coded text with $Message ( Monthly, Daily, Hourly )
Android 11 + 12, MacOS 11 ( Big Sur ) + 12 ( Monterey )
Catch up german translations
Change the substitution that replaces newlines with BR elements so
that the syntax works for both HTML and XHTML.
Added a few robots and 1 phone browser. Also corrected some errors in
devlop robots.pm
Only look for configuration in dedicated awstats directories
Unwrap SRS e-mail addresses
Fixes #195/CVE-2020-35176
As geoip2_country doesn't have AddHTMLGraph_geoip2_country, it
should only generate subpage for geoip2_city.
added support for HaikuOS and Safari based WebPositive browser
Adding missing td-tag opening
Tajik Language Support


AWStats 7.8

NEW Add SelectBox for DatabaseBreak Mode: month,day and hour.
Update http status codes
Add more file types
Update README.md
Fix geoip2 formatting problem
corner case 99
Fix some incoherent entries in search_engines.pm
Fix geoip2 plugin on windows by renaming it
Update robots.pm with PR118 data. Add:
- PiplBot bot
- um-IC & um-LN bot
- arcemedia
- bit.ly
- bidswitchbot
- bnf.fr_bot
- contxbot
- flamingo
- getintent (variant)
- laserlikebot
- mappy
- mojeek (variant)
- serendeputy
- trendiction
- yak (linkinfluence)
- zoominfobot
Fixes #104
Change markdown to better readability
Update Copyright year
Change to https links
Fix links for perl download
NEW add %time6 tag in log format to support some IIS log format
geoip2: Fix table formatting error. Missing "" item tag.
Changes to robots.pm
Add support for macOS DMG and PKG files
Fix browser detection with HTTP 206 status code
Support for macOS 10.13/10.14 + improved image compression of icons
Fix use the 5 top hits as base 100 for graph to show the top 5 hits.
Clean up geoip2 and geoip2 city modules
* Correctly convert dns names to ip4 and ip6 address using getaddrinfo
(fixes #120, #121, obsoletes #115)
* Only lookup if the IP is of type public (fixes #122)
and catch further lookup errors (obsoletes #123)
* Store and display the GeoIP City output HTML escaped (fixes #127)
* Code to perform and cache the actual lookup is consolidated
* General code improvement and readability
Losslessly reduced size of PNG images by about 33% using zopfli,
pngout and oxipng. Also added os icons for macOS 10.13 and 10.14.
Add Robot: The Knowledge AI
Fix Error: Not same number of records of RobotsSearchIDOrder_listx
Robots, Search Engine and Web Page Tracking Modifications
Optimize OptimizeArray
Added UptimeRobot https://uptimerobot.com/
Fix a few grammar errors in the model config
Ignore search phrases longer than 80 characters.
Fix 404 detail page not updating
Decode RFC 3986 "unreserved chars" in URLs.
Fix #80
Disable nested includes warnings for Perl > 5.6.
Update domains.pm
Fix two invalid entries in search_engines.pm
Format Tera Bytes
Fix "Illegal division by zero" error.
Fix #79
Improving error handling in awstats_buildstaticpages.pl
FIX #90
Exclude private IP addresses since GeoIP2::Reader doesn't support them
Ignore search phrases longer than 80 characters.
Only purge data for the saved section.
Make city plugin more functional
Fix issue with ShowHost section when address is resolved.
Initial implementation of GeoIP2 City lookup.
Fix a few issues with Country lookup.
Initial implementation. Looksup only Country code for IPv4 and IPv6
Update hebrew file
Quite a few additions and modifications. Especially yahoo detection.
Added device pixel ratio ( dpr ) to awstats_misc_tracker.js.
added 37 new robots to robots.pm file using v 7.7 robots.pm file as base file.
Move oBot entry lower as to not incorrectly get picked for other *obot robots.
Decode RFC 3986 "unreserved chars" in URLs. This makes awstats
treat "/foo" and "/%66%6f%6f" as equivalent.
Missing Sint Maarten flag
Wrong label cf. https://dev.maxmind.com/geoip/legacy/codes/iso3166/
Fix Issue #76 - country name not correct
Fix utf bom files
Fix another vulnerability reported by cPanel Security Team (can
execute arbitraty code)
Add more tests


PKG_SYSCONFDIR fixes
pkglint cleanup
Remove trivial MESSAGE
jperkin pushed a commit that referenced this issue Jun 10, 2024
## [2024.1] - 2024-05-20

### Added

- Add unit testing for link syntax
- Support link to enumeration members [!214, !215]
- Add favicon support [#152]
- Add proper anchor for enum members [#183]
- Parse optional anchors in links [#191]
- Generate a link to finish functions [#189]
- Add 'inline' to C declarations for inline callables [#173]
- Make the logo a link to the index [#195]
- Clear search when pressing Escape [#194]

### Changed

- Update the wording for transfer modes [!205]
- Turn deprecation notices into admonitions [#155]
- Improve filesystem string type docs [#193]

### Fixed

- Fix doubled paragraph tags around descriptions [!206]
- Append period after last line in more cases [#181]
- Documentation fixes [!223, #198]
- Use the basename of the urlmap file [#197]

### Removed

- Revert "generate: Add fallback for missing "since"" [#179]
jperkin pushed a commit that referenced this issue Jul 20, 2024
Based on PR 58426 by jonathan buschmann.

## 2.4.7 2024-05-05

### Fixed
- docs(pop): clarify --spill behavior (#445)
- fix(branch): disallow branch before subcommand (#447)

### Changed
- refactor: get gix-command via gix with command feature
- Update gix to version 0.62


## 2.4.6 2024-04-07

### Fixed
- fix(bash): fix completion for "committish"

### Changed
- docs: Update copyright year
- chore: update gix to 0.61.1
- ci: update to wix 4.0.5


## 2.4.5 2024-02-18

### Fixed
- fix: stdout from hooks (#418)

### Changed
- chore: add category and keywords to Cargo.toml
- build: exclude some paths from crate
- docs(readme): enumerate more package repositories
- chore: update dependencies


## 2.4.4 2024-02-11

### Fixed
- fix: pass stdio for interactive editing (#415)
- fix: update gix-tempfile and gix-lock to 13.1.0 (#413)

### Changed
- chore: update dependencies


## 2.4.3 2024-02-04

### Added
- feat(branch): allow delete of current branch

### Fixed
- fix(branch): delete branch config with branch
- fix: use gix-command for interactive edit (#407)
- fix: improved interactive editor diagnostics
- chore: update gix to 0.58.0 (#407)
- docs: fix dates in changelog

### Changed
- refactor(branch): use gix to rename config section
- refactor: use gix to remove stgit branch config
- refactor: use gix-command for hooks
- refactor: use non-deprecated indexmap methods
- ci: update cargo-generate-rpm to 0.14.0
- ci: update to upload-artifact@v4
- ci: restore use of IO::Pty in MacOS build


## 2.4.2 2023-12-26

### Changed
- feat(pop): allow unescaped negative patch offsets
- feat(show): allow unescaped negative patch offsets
- chore: update dependencies


## 2.4.1 2023-12-10

### Fixed
- fix(zsh): short -r opt for `stg series`

### Changed
- chore: update gix to 0.56.0
- chore: update transient dependencies


## 2.4.0 2023-10-08

### Added
- feat(delete): --all -A -U -H options
- feat(sink): -T/--above option
- feat(branch): short opts for clone and delete


## 2.3.3 2023-10-04

### Fixed
- fix(zsh): -S option for float, import, and sync
- build: avoid non-portable install options
- test: improved test script portability

### Changed
- update dependencies


## [2.3.2] 2023-08-19

### Fixed
- fix!(uncommit): check for HEAD/top mismatch (#360)
- docs: docstring spelling and formatting fixes

### Changed
- feat(uncommit): print uncommited patches
- pin serde to avoid using precompiled binary
- update dependencies


## [2.3.1] 2023-07-25

### Fixed
- fix(zsh): typo in completion help for stg commit --all
- fix: use canonical Message-ID spelling
- fix(stgit.el): recognize new empty patch marker
- fix(import): Keep first line break in body

### Changed
- update dependencies


## [2.3.0] 2023-05-25

### Removed
- import-compressed is always enabled, no longer a feature

### Added
- unofficial deb and rpm packages
- msi package for Windows

### Fixed
- fix(import): would panic without import-url feature
- fix(import): patch numbers not stripped from name

### Changed
- use bzip2-rs instead of bzip2 crate
- update dependencies


## [2.2.4] 2023-05-15

### Added
- feat: Upgrade from ancient stack state formats (#235)

### Fixed
- fix(branch): create based on remote branch (#317)
- fix(import): lost subject lines resembling header (#321)
- fix(import): subject line may be discarded

### Changed
- chore: update dependencies


## [2.2.3] 2023-04-26

### Fixed
- fix: error using on Windows (#273)
- fix: path handling for Windows compatibility
- fix: commit-msg hook run from work root
- fix: avoid "stg.exe" in usage on Windows
- fix: use gitattributes to force LF endings on Windows
- fix: wrap hooks with sh on Windows

### Changed
- chore: update to gix 0.44.0
- chore: update other dependencies


## [2.2.2] 2023-04-01

### Fixed
- fix: rebase with '@' in ref names (#306)
- fix: improved error messages for unrecognized commands


## [2.2.1] 2023-03-29

### Changed
- chore: update to clap 4.2.0
- chore: update to gix 0.43.0
- chore: pin clap minor version

### Fixed
- fix(branch): allow reuse of partially deleted branch names (#290)
- fix(branch): branch list alignment
- fix: running hooks from worktree subdir (#295)
- fix: running from linked worktree (#297)
- fix(float): correct -S in usage string
- fix: correctly show bold command/subcommand in overidden usage


## [2.2.0] 2023-02-24

### Removed
- feat!: remove short -s option for --submodules
- fix!: patch name cannot be {base} or @

### Added
- feat: patch locator syntax
- feat: locate branches using @{-N} syntax
- feat(series): Add --reverse option
- feat(series): options for patch offsets and indices
- feat(series): --no-xxx options to override display options
- feat(series): optional value for --short
- feat!: short -s option for --signoff (#245)
- feat(init): add -b/--branch option

### Changed
- fix!: use -S as short opt for --series
- feat!: constrain refresh -p to visible patches
- feat(series)!: empty patch prefix changed to *
- feat!: spell errors in lowercase
- refactor: use gitoxide instead of git2
- refactor: use time crate instead of chrono
- feat!: update to clap 4.1
- chore: update to latest dependencies

### Fixed
- fix: Error if author or committer is not configured
- fix: Use correct base directory for core.hooksPaths
- fix(rename): colliding patch names
- fix(rebase): repair rebasing to a tag (#265)
- fix(branch): switch branch with detached head
- docs: Repair docstrings being confused as html
- docs: normalized spelling for --branch value


## [2.1.0] 2022-12-12

### Added
- feat: Configurable push conflict policy (#60)
- feat: Add --committer-date-is-author-date option (#47)
- feat(import): Add --3way option (#36)
- feat(import): Add --directory option (#36)

### Changed
- feat!: Relaxed stack initialization (#238)
- feat!: Only sign stack based on stgit.gpgsign (#238)
- fix!: Allow "---" separator in messages (#243)
- feat: More descriptive push conflict message (#60)
- feat: Avoid post-edit commits when no change
- chore: Update dependencies to latest versions

### Fixed
- fix: Improved error message for uninitialized stack
- fix: Improve error for re-initialization attempt
- fix(prev): Different error message for empty stack
- fix: Accept full ref name for branches
- fix(zsh): Complete --edit and --diff for stg new


## [2.0.4] 2022-11-30

### Changed
- docs: Document configuration variables
- refactor: Use is-terminal instead of atty
- chore: Update Cargo.lock with latest dependencies.

### Fixed
- fix: Don't generate new patch name until after edit (#239)
- fix: Run shell aliases from top-level of work tree
- fix: Use GIT_PREFIX in built-in aliases


## [2.0.3] 2022-11-21

### Changed
- chore: Update Cargo.lock with latest dependencies.

### Fixed
- fix: improved git version parsing on MacOS
- fix: StGit-specific branch config handling
- docs: fixed many typos


## [2.0.2] 2022-11-17

### Changed
- chore: Update Cargo.lock with latest dependencies.
- docs(init): Add long help for `stg init`.

### Added
- feat: Enable basic support for `extensions.worktreeconfig` to unblock
  sparse checkout with partial clone (#195).

### Fixed
- docs: More inter-command links
- docs: Normalize quoting


## [2.0.1] 2022-11-07

### Changed
- chore: Update to clap 4.0.22

### Fixed
- docs(readme): Clarify static versus dynamic linking (#230)
- build: Improve Documentation build performance (#229)


## [2.0.0] 2022-11-06

### Removed
- `stg clone` is removed. Use `git clone` and `stg init` instead.
- `stg mail` is replaced with `stg email format` and `stg email send`.
- `stg refresh --spill` is replaced with dedicated `stg spill` command.
- `stg edit` no longer accepts `-O/--diff-opts`. Custom diff options is
  in conflict with editable diffs since many (most?) diff options cause
  the diff to no long be applicable.
- `stg files` no longer accepts `-O/--diff-opts`. This option was of
  marginal value since it only had a possible side effect when `--stat`
  was being used.

### Added
- `stg id` now accepts the `-b/--branch` option.
- `stg completion` command provides runtime support for shell
  completions.
- `stg completion bash` generates bash shell completion script.
- `stg completion fish` generates fish shell completion script.
- `stg completion zsh` outputs zsh shell completion script.
- `stg completion list` shows StGit commands and aliases and is used at
  completion-time by shell completion scripts.
- `stg completion man` generates man pages in asciidoc format.
- `stg email format` wraps `git format-patch` and provides a mechanism
  to generate patch emails and optional cover letter in mbox format.
- `stg email send` wraps `git send-email` and allows sending patch
  emails, either from files generated by `stg email format` or by
  specifying patches directly.
- `stg new --refresh` allows a new patch to be refreshed with changes in
  one step. The `-i/--index`, `-F/--force`, `-s/--submodules`, and
  `--no-submodules` options from `stg refresh` are also available to
  `stg new` when using `-r/--refresh`.
- `stg series` gains the `-i/--commit-id` option to display patches'
  commit ids.
- `stg show` diff output can now be limited to certain paths by
  specifying path limits on the command line.
- `stg spill` replaces `stg refresh --spill`.
- `stg version` gains `-s/--short` flag to show shortened version info.
- Added documentation for patch range syntax to stg(1) man page.
- Added `install-all` target to top-level Makefile that installs the
  executable, man pages, html pages, and shell completions.

### Changed
- StGit is now implemented entirely in Rust instead of Python.
- StGit is generally much faster; many commands are up to 4x faster.
  There was an emphasis on making informational commands such as `stg
  id`, `stg series`, and `stg top` as fast as possible to make their use
  in interactive contexts (shell prompts, IDE extensions) more
  comfortable.
- StGit error messages have been updated; many have different, and
  hopefully better, wording. Error messages are also use color (when
  color is enabled). Scripts relying on exact error messages from StGit
  will need to be updated.
- StGit output to stdout is generally more terse. Commands that change
  the stack such as `push`, `pop`, and `commit`, use sigils to denote
  the changes made to the stack. E.g. `stg commit p0..p3` will output `$
  p0..p3` where the "$" sigil means that a patch, or patch range, has
  been committed. These are all the currently used stack change sigils:
  - `+` patch was pushed
  - `-` patch was popped
  - `>` patch became the current topmost patch
  - `&` patch was updated
  - `$` patch was committed
  - `#` patch was deleted
  - `@` patch was rolled-back
  - `!` patch was hidden
- StGit aliases are now more like Git aliases. Normal aliases refer to
  StGit subcommands, but aliases prefixed with '!' are shell aliases
  that may run arbitrary commands. An example normal alias would be `git
  config stgit.alias.list 'series --description --empty'`. An example
  shell alias would be `git config stgit.alias.st '!git status
  --short'`.
- Commands such as `stg goto`, `stg push`, and `stg pop` now require
  full/correct patch names on the command line and no longer accept
  unambiguous patch name prefixes. When an inexact patch name is
  provided on the command line, the error message will now suggest
  similar valid patch names.
- Additional template search paths were added. In addition to looking
  for template files in .git/, also look in
  `$XDG_CONFIG_HOME/stgit/templates/` and `$HOME/.stgit/templates`. This
  search strategy is consistent with how git looks for the global config
  file.
- The new `--signoff` patch edit option supersedes the deprecated
  `--sign` and `--sign-by` options. `--signoff` without its optional
  value does the same thing as `--sign`, while `--signoff=<value>` does
  the same thing as `--sign-by=<value>`.
- The `--ack` and `--review` patch edit options now optionally take a
  value. The `--ack-by` and `--review-by` options are deprecated.
- `stg branch` output is now generally less verbose.
- `stg branch --describe` replaces `stg branch --description`. The
  `--description` subcommand remains supported as a hidden alias to
  `--describe`, but the description string must now be provided as its
  own argument; i.e. `--description="description string"` is no longer
  supported.
- `stg branch --list` now produces colorized output. The `--color`
  option or `NO_COLOR` environment variable may be used to affect this
  behavior.
- `stg branch --rename` now supports renaming regular git branches in
  addition to StGit-enabled branches.
- `stg clean` now uses `-A` and `-U` short options for `--applied` and
  `--unapplied` instead of `-a` and `-u`. This is done for consistency
  with `stg series` and `stg show`.
- `stg import` now only recognizes compressed patches by their file
  extension (`.bz2` or `.gz`) and no longer proactively attempts to
  decompress using all known decompressors.
- `stg import` support for compressed input files is selectable at
  compile time using the `import-compressed` feature.
- `stg import` support for importing from a URL is selectable at compile
  time using the `import-url` feature. **N.B.** there is a measurable
  runtime performance impact of building with `import-url` due to the
  unconditional, pre-main initialization of `curl` which affects **all**
  `stg` commands.
- `stg log` now colorizes output by default. The `--color` option or
  `NO_COLOR` environment variable may be used to affect this behavior.
- `stgit.new.verbose` changed to `stgit.edit.verbose` and now also
  affects edit behavior for `edit`, `refresh`, and `squash` along with
  `new`.
- `stg new` now accepts `-e/--edit` and `-d/--diff` instead of
  `-v/--verbose`
- `stg pick` now allows a mix of commits and patches to be picked
  whereas previously only a single commit xor multiple patches could be
  picked.
- `stg pick` now performs a single stack transaction for all the picked
  patches/commits instead of one transaction per pick.
- `stg push` now attempts to perform three-way merges, which may improve
  conflict resolution in some cases. This feature is enabled by default
  when git >= 2.32.0 is detected.
- `stg rebase --interactive` the "squash" and "fixup" instructions may
  no longer be applied to the first patch in the instruction list. The
  stated semantics of both "squash" and "fixup" is that they squash the
  labeled patch with the preceding patch, which is not possible/valid
  when there is no preceding patch.
- `stg refresh` no longer has a `--spill` flag. Use `stg spill` instead.
- `stg series` has updated colorized output.
- `stg series` now requires patch range arguments to be both in-order
  and contiguous. Constraining patch ranges in this manner ensures that
  the output from `stg series` is always a valid/correct view of a
  subset of the series.
- `stg show` diff output respects the `--color` option.
- `stg squash` now allows the full suite of patch edit options,
  including `-d/--diff`. Previously only a few message-related options
  were available.
- `stg version` now displays copyright and license statements.

### Fixed

- `stg branch --create` inherits the current branch's remote branch
  configuration, if available. The Python implementation had an apparent
  bug that prevented inheriting the remote branch configuration when
  creating from the current branch.
- Avoid case insensitive patch name collisions. On operating systems
  with case-insensitive paths, patch names that only differ by case lead
  to patch reference collisions. StGit now ensures that patch names are
  distinct under case insensitive comparisons.
- `stg pull` and `stg rebase` record updated stack state instead of
  deferring until the next stack-modifying command to do so.

### Changed since 2.0.0-rc.2

#### Changed
- chore: Update Cargo.lock

#### Fixed
- fix(zsh): Repair broken completion of --git-opt
- fix(zsh): Add missing `stg email send --branch`
- fix(email): Send using --branch option
- fix: Avoid duplicate signoff with stgit.autosign
- fix: Do not use 3way for merged checks


## [2.0.0-rc.2] 2022-10-23

### Changed
- The `--diff-opts` option is renamed to `--diff-opt`. `--diff-opts`
  remains available as an alias.
- The `--diff-opt` option no longer allows multiple git options per
  occurrence. This allows git diff options with spaces in their values.
- The `--git-opts` option for `stg email format` and `stg email send` is
  renamed `--git-opt`.
- The `--git-opt` option no longer allows multiple git options per
  occurrence. This allows git options with spaces in their values.
- Zsh completion for `--diff-opt` and `--git-opt` leverage the
  full-featured git completion capability.

### Fixed
- Repair check for modifications to stack by external tools.
- `stg pull` and `stg rebase` record updated stack state instead of
  deferring until the next stack-modifying command to do so.
- Improve patch application with `git apply --3way` when pushing` (#225)
- Zsh completion for `--diff-opt` accommodates multiple occurrences


## [2.0.0-rc.1] 2022-09-30

### Added
- Added `--annotate` flag to `stg email send`.
- Added `-p`/`--patch` option to `stg show` as alternative way to select patch
  ranges (#216).
- Added `-n`/`--name` option to `stg new` as alternative way to specify new
  patch name (#216).

### Changed
- Update `git2` to 0.15.0, which may further help compatibility with
  sparse checkouts and multiple worktrees (#195).
- Update to `clap` 4.0, which changes the help formatting and coloring.
- Update other dependencies to latest versions in Cargo.lock.
- No longer depend on `lazy_static` crate.
- Use `std::thread::scope` instead of custom mechanism. This brings the
  total number of uses of `unsafe` in StGit to zero.
- Minimum rustc requirement is set to 1.63.0.
- The '$' sigil used for committed patches is now yellow instead of
  white.
- Patch names beginning with a hyphen '-' may be disambiguated from command
  line options by escaping the leading '-' with a backslash.
- `stg email format` and `stg email send` now use `-G`/`--git-opts` to pass
  additional options to `git format-patch` and `git send-email`.
- Patch name arguments to `stg email format` and `stg email-send` can now be
  placed after a `--` separator (#216).
- Update top-level usage help for `stg`.

### Fixed
- Various errors that may occur when executing a stack transaction are
  now handled more robustly such that the changes from the transaction
  are rolled-back so that the stack, repository, and worktree are all in
  a consistent state (#205).
- The `stg uncommit -h` usage indentation is repaired.
- The `stg float` usage now shows the two distinct usage modes.
- `stg squash --name` allows patch names with leading '-'.
- `stg diff --range` allows patch names and ranges with leading '-'.
- Fix some pre-indented paragraphs in help/about strings.
- Zsh completion for `stg edit` incorrectly included -O/--diff-opts.
- Zsh completion for `stg files` incorrectly included -O/--diff-opts.


## [2.0.0-beta.3] 2022-08-28

### Added
- Add install targets for `contrib/` directory.

### Changed
- Use `git` executable instead of `libgit2` for all status and index
  operations to improve compatibility with sparse index checkouts
  (#195).
- Show commit hash in `stg version` output when not built from tag.
- Use `cargo --locked` consistently in Makefiles.
- Use "patch" extension in temp file name when editing a patch with a
  diff.
- Updated transient dependencies in Cargo.lock.

### Fixed
- Repair `stg branch --describe` panic when run without arguments
- Repair zsh completions for `git branch`
- Repair `stgit.el` to use compatible `stg show` commands (#202).
- Repair `stg uncommit --to` to work with annotated tags (#203).
- Repair `make install` to not install cargo tracking files.


## [2.0.0-beta.2] 2022-08-05

### Changed
- Improved error when push conflicts with untracked files (#193)
- Removed a few transitive dependencies by turning-off features in bstr
  and chrono.
- Update Cargo.lock with latest dependencies
- Update to clap 3.2 and only use non-deprecated interfaces

### Fixed
- Repair `stg spill` when spilling newly added files and using path
  limits.


## [2.0.0-beta.1] 2022-07-28

### Removed
- Removed Python implementation of StGit.

### Added
- Man page generation in asciidoc format with `stg completion man`. This
  was needed for feature parity with the Python implementation.
- Added documentation for patch range syntax to stg(1) man page.
- Added `install-all` target to top-level Makefile that installs the
  executable, man pages, html pages, and shell completions.

### Changed
- Additional template search paths were added. In addition to looking
  for template files in .git/, also look in
  `$XDG_CONFIG_HOME/stgit/templates/` and `$HOME/.stgit/templates`. This
  search strategy is consistent with how git looks for the global config
  file.
- Makefile targets are updated such that they are all applicable to the
  Rust implementation.
- Argument value names are now all lowercase in help and man pages.
- Updated Cargo.lock with latest versions of dependencies.
- Release checklist is updated for Rust implementation.

### Fixed
- Minor typo fixes in help strings
- Improved documentation for top-level `stg` options.
- Improve error message in edge case of attempting to push a hidden
  patch by name when there are no unapplied patches.


## [2.0.0-alpha.2] 2022-07-07

### Added
- `stg email format` wraps `git format-patch` and provides a mechanism
  to generate patch emails and optional cover letter in mbox format.
- `stg email send` wraps `git send-email` and allows sending patch
  emails, either from files generated by `stg email format` or by
  specifying patches directly.

### Changed
- Bash completions for shell aliases now fallback to filename
  completions (#191).
- Help options listings now ensure --color and --help are shown last.
- Various zsh completion improvements:
  - Add descriptions for --color values
  - Complete -O/--diff-opts values (using `git diff-tree --git-completion-helper`)
  - Comprehend `stg -C <dir>` options
  - Improved/corrected alias expansion
  - Improved error messages when completion is attempted outside git
    repo and/or StGit-initialized branch
  - Patch name completions now look and feel like output from `stg
    series`
  - Complete patch range syntax ('patch0..patchN') for all relevant
    commands
  - Completion for `stg squash` no longer allows duplicate patch name
    arguments
  - Removed completions for removed `stg mail` command
  - Completion for `stg sink` no longer offers hidden patches
  - Completion for `stg rename` comprehends second, new patch name
    argument
  - Completion for `stg diff --range` now works

### Fixed
- Compatibility with git versions prior to 2.35.0 is repaired by
  avoiding using `git apply --allow-empty` (#192).
- Fish completions for -O/--diff-opts are repaired


## [2.0.0-alpha.1] 2022-06-17

### Added
- `stg series` gains the `-i/--commit-id` option to display patches'
  commit ids.
- `stg series` colorized output is modified. The main change is that
  patch descriptions are no longer yellow.
- `stg version` now displays copyright and license statements.
- `stg version` gains `-s/--short` flag to show shortened version info.
- The `stgit.diff-opts` configuration variable is now respected as it
  was in the Python implementation.
- `stg completion` command provides runtime support for shell completions.
- `stg completion bash` generates bash shell completion script.
- `stg completion fish` generates fish shell completion script.
- `stg completion zsh` outputs zsh shell completion script.
- `stg completion list` shows StGit commands and aliases and is used at
  completion-time by shell completion scripts.

### Changed
- The `-O/--diff-opts` flag now allows both multiple space separated
  opts in one value as well as multiple occurrences of `-O/--diff-opts`
  on the same command line. This behavior is compatible with the Python
  implementation.
- `stg series` help output splits options into a few sections.
- Dependencies are updated to more recent versions in Cargo.lock.

### Fixed
- `stg edit --set-tree` no longer causes the interactive editor to be
  implicitly invoked.
- Repair build for non-Linux unix targets (including MacOS) and Windows
  targets.
- Avoid case insensitive patch name collisions. On operating systems
  with case-insensitive paths, patch names that only differ by case lead
  to patch reference collisions. StGit now ensures that patch names are
  distinct under case insensitive comparisons.
- Add missing `-t` short option for `--set-tree` for `stg edit`.
- Add missing `-k` short option for `--keep`.


## [2.0.0-alpha.0] 2022-05-17

### Removed
- `stg edit` no longer accepts `-O/--diff-opts`. Custom diff options is
  in conflict with editable diffs since many (most?) diff options cause
  the diff to no long be applicable.
- `stg files` no longer accepts `-O/--diff-opts`. This option was of
  marginal value since it only had a possible side effect when `--stat`
  was being used.
- `stg clone` is removed (at least for the time being). Use `git clone`
  and `stg init` instead.
- `stg mail` is removed, but will be re-added or replaced prior to the
  2.0.0 release.

### Added
- `stg new --refresh` allows a new patch to be refreshed with changes in
  one step. The `-i/--index`, `-F/--force`, `-s/--submodules`, and
  `--no-submodules` options from `stg refresh` are also available to
  `stg new`.
- `stg id` now accepts the `-b/--branch` option.
- `stg spill` replaces `stg refresh --spill`.

### Changed
- StGit aliases are now more like Git aliases. Normal aliases refer to
  StGit subcommands, but aliases prefixed with '!' are shell aliases
  that may run arbitrary commands. An example normal alias would be
  `git config stgit.alias.list 'series --description --empty'`. An
  example shell alias would be `git config stgit.alias.st '!git status
  --short'`.
- The `--ack` and `--review` options now optionally take a value. The
  `--ack-by` and `--review-by` options are deprecated.
- Commands such as `stg goto`, `stg push`, and `stg pop` now require
  full/correct patch names on the command line and no longer accept
  unambiguous patch name prefixes. When an inexact patch name is
  provided on the command line, the error message will now indicate
  similar valid patch names.
- `stg branch` output is now generally less verbose.
- `stg branch --describe` replaces `stg branch --description`. The
  `--description` subcommand remains supported as a hidden alias to
  `--describe`, but the description string must now be provided as its
  own argument; i.e. `--description="description string"` is no longer
  supported.
- `stg branch --list` now produces colorized output. The `--color`
  option or `NO_COLOR` environment variable may be used to affect this
  behavior.
- `stg branch --rename` now supports renaming regular git branches in
  addition to StGit-enabled branches.
- `stg clean` now uses `-A` and `-U` short options for `--applied` and
  `--unapplied` instead of `-a` and `-u`. This is done for consistency
  with `stg series` and `stg show`.
- `stg import` now only recognizes compressed patches by their file
  extension (`.bz2` or `.gz`) and no longer attempts to decompress using
  all known decompressors.
- `stg import` support for compressed input files is selectable at
   compile time using the `import-compressed` feature.
- `stg import` support for importing from a URL is selectable at compile
  time using the `import-url` feature.
- `stg log` now colorizes output by default. The `--color` option or
  `NO_COLOR` environment variable may be used to affect this behavior.
- `stgit.new.verbose` changed to `stgit.edit.verbose` and now affects edit
  behavior for `edit`, `refresh`, and `squash` along with `new`.
- `stg new` now accepts `-e/--edit` and `-d/--diff` instead of `-v/--verbose`
- `stg pick` now allows a mix of commits and patches to be picked
  whereas previously only a single commit xor multiple patches could be
  picked.
- `stg pick` now performs a single stack transaction for all the picked
  patches/commits instead of one transaction per pick.
- `stg rebase --interactive` the "squash" and "fixup" instructions may
  no longer be applied to the first patch in the instruction list. The
  stated semantics of both "squash" and "fixup" is that they squash the
  labeled patch with the preceding patch, which is not possible/valid
  when there is no preceding patch.
- `stg refresh` no longer has the `--spill` flag. Use `stg spill`
  instead.
- Updated colorized output for `stg series`.
- `stg series` now requires patch range arguments to be both in-order
  and contiguous. Constraining patch ranges in this manner ensures that
  the output from `stg series` is always a valid/correct view of a
  subset of the series.
- `stg show` diff can now be limited to certain paths by specifying path
  limits on the command line.
- `stg show` diff output respects the `--color` option.
- The new `--signoff` patch edit option supersedes the deprecated
  `--sign` and `--sign-by` options. `--signoff` without its optional
  value does the same thing as `--sign`, while `--signoff=<value>` does
  the same thing as `--sign-by=<value>`.
- `stg squash` now allows the full suite of patch edit options,
  including `-d/--diff`. Previously only a few message-related options
  were available.

### Fixed
- `stg branch --create` inherits the current branch's remote branch
  configuration, if available. The Python implementation had an apparent
  bug that prevented inheriting the remote branch configuration when
  creating from the current branch.


## [1.5] 2022-01-28

### Removed
### Added
- Add Makefile targets for installing shell completions
- `stg rebase --interactive` learns 'hide' instruction

### Changed
- Picked patch names are preserved when possible (#175)
- Replace `--unapplied` option with `--noapply` for `stg pick` (#174)
- `stg pick --noapply` no longer reverses patch order (#174)
- Use `stg version` uses `sys.executable` to get Python version.

### Fixed
- Repair `stg repair` with amended first patch (#163)
- Repair corner cases where invalid patchnames could be generated by
  `stg new`, `stg uncommit`, etc. (#176)
- `stg mail` could crash due to a misspelled reference (#178)
- Zsh completion for `stg refresh -p` now completes against all patches
  (not just applied patches).
- Zsh gains missing completion for `stg push --noapply`
- Minor repair to help for `stg float --noapply` and `stg push
  --noapply`
- Restore `stg sink --nopush` capability.


## [1.4] 2021-10-27

### Removed
- Python 3.5, which became EOL 2020-09-13, support is deprecated and
  will be removed in a future StGit release
- Python 3.6, which will be EOL 2021-12-23, support is deprecated and
  will be removed in a future StGit release

### Added
- The new `stg import --message-id` option causes the Message-ID from
  imported emails to be included as the Message-Id trailer in the patch
  description (#42)
- The new 'stgit.import.message-id' config option also enables the
  Message-Id trailer (#42)

### Changed
- `stg import` no longer creates "Message-Id" trailer by default when
  importing patches from email (#42)
- StGit works with Python 3.10
- `stg version` prints a more abbreviated Python version
- `stg commit` will no longer commit empty patches by default; the
  `--allow-empty` option may be used to override this behavior (#158)
- The `stgit.main.main()` function now takes an argv parameter and
  returns an int return code in most cases instead of calling
  sys.exit(), thus making main() a bit easier to use as an API.

### Fixed
- Repair stack upgrade with `stg branch --list` (#155)
- Repair crash in `stg squash` with out of order patches and no name
  specified (#157)
- Zsh completions learn `stg float --noapply` option
- Zsh completion for `stg sink` now allows multiple patches


## [1.3] 2021-09-26

### Removed

### Added

### Changed

### Fixed
- Repair crash regression when using `stgit.autosign`

## [1.2] 2021-09-26

### Removed

### Deprecated
- Python 3.5, which became EOL 2020-09-13, support is deprecated and
  will be removed in a future StGit release
- Python 3.6, which will be EOL 2021-12-23, support is deprecated and
  will be removed in a future StGit release

### Added
- `stg rebase ` learns `--interactive`; easily re-order, edit, squash,
  fixup, or delete patches via your editor
- `stg rebase` learns `--autostash`; stash changes before the rebase and
  apply them after. Also configurable with the `stgit.autostash`
  configuration option
- `stg edit` can now rename patches (#119)
- `stg edit` gains helpful instructions (#138)
- `stg new` learns `--verbose`, which includes a diff in the editor
  window (similar to `git commit --verbose`). This behavior is also
  configurable with the `stgit.new.verbose` configuration option
- `stg push` and `stg float` learn `--noapply` option; allows patches
  to be reordered without updating worktree and deferring merge conflict
  resolution (#144)
- `stg edit`, `stg refresh`, and `stg new` learn the `--sign-by`,
  `--ack-by`, and `--review-by` options which allow those respective
  trailers' values to be specified by the user on the command line (#92)

### Changed
- Stack metadata version 5; stack metadata is moved from
  `refs/heads/<branch>.stgit` to `refs/stacks/<branch>` and the stack
  metadata file now uses a JSON format instead of the prior custom
  format; the stack metadata will be upgraded to v5 on first use of
  this version of StGit; like all stack metadata upgrades, **this is a
  one-way auto-upgrade for existing stacks** (#65)
- Use setuptools instead of distutils for packaging
- No git or python version checks in setup.py
- Use different dynamic versioning system
- Install `stg` executable as console_script entry point
- More sophisticated search for bash.exe on Windows when running hooks
- The editor window text for `stg squash` has been modified to mirror
  git's behavior -- the squash edit message now includes all commits
  (#71)
- Binary diffs are no longer shown when with `stg edit -d`
- Multiple trailers can now be added at once; this is now allowed, for
  example: `stg edit --sign --review --ack`
- Update zsh completion for `stg rebase` to show local and remote heads
  (#102)
- Zsh completions for commands with patch arguments now comprehend the
  effect of `-b/--branch` and `-B/--ref-branch`
- Zsh completions now guard patch names--one less TAB press to complete
  patch names in certain contexts
- `stg import` now extracts the `Message-ID` email header into the patch
  message (#42)

### Fixed
- Repair crash when attempting to export empty patch (#112)
- Exact command name matches are unambiguous (#110)
- Exiting with an empty `stg edit` editor will now abort the edit;
  previously it would delete your commit message. (#138)
- Repair completions when stg.series.description is enabled in config
- Workaround child process reaping race on Windows (#78)
- Repair crash with `stg float --series` when bad patch name in series
- Repair zsh completion for `stg float` to accept multiple patch names
- Repair zsh completion for changed files, affecting `stg refresh` and
  `stg diff`

### Internal
- Add link to coverage.io project to CONTRIBUTING.md
- Set smart `exclude_lines` default for 'coverage'
- Expanded test suite for `stg edit`
- Add pkgtest.py script to help test StGit packaging
- Cleanup .gitignore files


## [1.1] 2021-04-30

### Removed

### Added
- StGit GPG-signs patches when `commit.gpgsign` is set (#12)
- Support `core.hooksPath` in git config
- Add `-C` option for `stg import` and `stg fold` (#18)

### Changed
- Allow importing mail and series from urls (#94)
- `stg refresh --edit` may also use `--diff` and `--diff-opts` (#98)
- `stg goto` allows sha1 of a patch instead of patch name (#93)

### Fixed
- Repair hang in `stg pull -m`, `stg goto -m`, and `stg push -m`
- Repair `stg mail` to show diffstat of whole series (#104)
- Repair MANIFEST.in to include AUTHORS.md and README.md files


## [1.0] 2021-02-07

### Removed
- Drop support for Python < 3.5
- Remove previously deprecated `stg publish` command
- Removed contrib scripts: `stg-swallow`, `stg-fold-files-from`,
  `stg-dispatch`, `stg-whatchanged`, and `stg-show-old`

### Added
- The pre-commit hook is now run for `stg refresh`
- New `--spill` option for `stg refresh`
- Add stgit.series.description config option (#88)
- Official support for Python versions up to 3.9

### Changed
- Stack metadata format 4. All metadata now kept in Git objects; no more
  stack state files in .git/patches. **A one-way auto-upgrade to format
  version 4 will occur when StGit commands are run on an existing StGit
  branch.**
- Use `python3` in shebangs instead of `python`
- `contrib/stgbashprompt.sh` is no longer executable
- Internal docstrings now use reStructuredText instead of Epytext

### Fixed
- Importing large patches is much, much faster (#66)
- Other performance improvements when dealing with large patches
- Repair diffstat when outside work tree root (#62)
- Use encoded (string) environment variables on Windows (#79)
- Fix `stg pull` when no upstream is configured (#83)
- Fix `refresh` crash with path limiting and files added to index (#85)
- Repair `new` with patchdescr.template crash (#87)
- Repair `log` from worktree subdir with patches specified
- Repair `import` allowing/generating duplicate patch names (#64)
- Repair `mail --auto` to strip comments after addrs (#91)


## [0.23] 2020-06-12

### Removed
- Drop support for Python 3.3; Python 2 (2.6 and 2.7) remain
  deprecated, but supported for one last release
- Tutorial is removed; it now exists as part of the website

### Deprecated
- Python 2.x support is deprecated and will be removed in a future
  release

### Added
- Support html5 output of docs from asciidoc
- Add `--expose` option for `stg pick` to allow picked commit message to
  be customized

### Changed
- Limit mail diffstat to 72 columns
- Added pyproject.toml file for black configuration
- Minimum Git version is 2.2.0
- Quote stg and subcommand in man page synopsis
- Replaced RELEASENOTES with this CHANGELOG.md
- Replaces Documentation/SubmittingPatches with CONTRIBUTING.md

### Fixed
- Repair MANIFEST.in and generated source dist
- Repair importing mail with ": " (colon space) in subject
- Fix mail cover letter shortlog
- Fix mail cover letter diffstat
- `stg series` now only outputs colors when `isatty()`
- Repair mail SSL check (#57)
- Repair `stg mail` with both `-a` and `-e` options (#58)
- Remove empty short-opt for `--no-submodules` of `stg refresh`
- Repair build.py for Python 2 with explicit `flush()`
- `stgit.refreshsubmodules` added to sample gitconfig

### Internal
- Update docs build system from upstream Git docs
- Use coverage contexts to map commands to covered lines
- Improve mail tests
- Use GitHub Actions instead of TravisCI
- Format StGit source using black formatter

## [0.22] - 2020-03-02

### Removed
- Remove debian packaging; downstream Debian uses its own anyway

### Deprecated
- Python 2.x support is deprecated and will be removed in the next StGit
  release
- `stg publish` is deprecated and will be removed in the next StGit
  release

### Added
- `stg import` has new --keep-cr option, like `git mailsplit`

### Changed
- `stg new` now includes patch name in log message
- `stg branch --rename` can now rename the current branch
- `stg branch --create` now works even if the workspace is dirty,
  consistent with `git checkout`
- `stg branch --description` now works on both regular and stgit
  branches
- `stg edit --diff` now implies `--edit`
- `stg refresh` and `stg edit` now reset the committer information,
  consistent with `stg push`
- git notes are now preserved when patches are modified
- Tutorial improvements
- Many additional tests and test improvements
- All stgit commands now use "new" git library infrastructure

### Fixed
- `stg branch --create` inherits remote correctly from parent committish
- Patch names are checked earlier to avoid inconsistent stack states
- Improved commit data parsing and handling of non-UTF8 encodings
- Repair git error messages when checking stgit version from outside a
  git repo


## [0.21] - 2019-10-28

### Changed
- Faster handling of large patches (#44)

### Fixed
- Build reproducibility repairs (Thanks reproducible-builds.org team!)
- Python can now be run with optimizations (`python -O`)
- `stg log` now prints trailing newline
- Improved command line option parsing for `stg log`


## [0.20] - 2019-10-04

### Added
- `stg patches -d` can now output colored diffs.
- `stg publish --overwrite` allows branch to be overwritten instead of
  creating new commits.
- `stg log --clear` deletes the stack's log history. Use with caution.
- Fish shell completions for stg.
- Zsh completions for stg.
- `stg mail --domain` option overrides the host's domain in the message
  ID.

### Changed
- Branch protection metadata now captured in config instead of
  .git/patches/<branch>protect file. This updates stgit's metadata
  format from v2 to v3.
- `stg diff` no longer shows binary diffs by default. Use `-O--binary`
  or add `--binary` to stgit.diff-opts in config.
- Diagnostic output is now routed to stderr instead of stdout.
  Diagnostic output is also now sent to stderr unconditionally, i.e. no
  more isatty() test (#35).
- Converted to "new" lib infrastructure: `show`, `patches`, `diff`,
  `pick`, `pull`, `rebase`, and `fold`.

### Fixed
- `stg show` detects conflicting --applied and --unapplied options.
- `stg show --stat` now shows commit headers.
- `stg patches --diff` now shows proper diff instead of `b'...'` repr of
  diff.
- `stg diff --range` detects some invalid values (e.g. `-r ..`).
- Date parsing is now more portable, only use platform specific `date`
  as last parsing option. Affects, e.g., `stg refresh --authdate`.
- Repaired search path for templates to avoid looking in Python
  site-packages directory.
- Ensure stdout and stderr are flushed. Rarely affected `stg diff`.
- `stg repair` will now fail if extra command line arguments are
  provided.
- Bash completions are now generated in a reproducible manner.
- `stg edit --diff` on an empty patch no longer crashes.
- `stg pick` no longer fails when picked commit has empty message (#39).
- `stg rebase` no longer crashes when there are conflicts (#34).
- `stg pick` no longer crashes if --name is not provided when picking a
  regular commit object.
- Improved test coverage for: branch, diff, pick, sync,
- New tests for: files, patches, fold, series
- Portable use of iconv, sort, and sed in tests.
- Linting using flake8 and isort.
- All Python code now conforms to PEP-8.
- Updated test infrastructure from git 2.20.
- Parallel tests with coverage (`make -j4 coverage`) now works.
- Documentation build is not included in code coverage.
- Repaired log end messages when using `STGIT_SUBPROCESS_LOG=debug`.
- Renamed "dunder" instance attributes to improve debugging.
- Fail faster when patch name has slash ('/') (#24).


## [0.19] 2018-11-05

### Changed
- Python 3 support. StGit supports Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6,
  and 3.7. PyPy interpreters are also supported.
- Submodules are now ignored when checking if working tree is clean.
  Submodules are also not included by default when refreshing a patch.
- Config booleans are now parsed similarly to git-config.
- `contrib/stgit.el` is now licenced with GPLv2.
- Add continuous integration (travis-ci) and code coverage (coveralls)
  support.
- Many new test cases were added.

### Fixed
- Repair handling of emails with utf-8 bodies containing latin-1
  characters. Also correctly decode email headers containing quoted
  encoded words.
- StGit's version is now correct/available in the release archive.


## [0.18] 2017-08-14

### Added
- `commit-msg` hook support for easier integration with Gerrit, allowing
  a Change-Id line to be inserted in the commit message
- `stg mail` improvements for 'Suggested-by:' tag and auto generation of
  Cc for the cover letter based on all tags in the series
- `stg mail` bash completion for the --to, --cc and --bcc options based
  on the content of the [mail "alias"] section of Git configuration
- `stg edit --review` option to add a 'Reviewed-by:' tag
- `stg pop --spill` functionality to allow popping a patch from the
  stack while keeping its modification in the tree

### Changed
- Project page details updated (gna.org has been shut down)

### Fixed
- Various fixes and test coverage improvements
jperkin pushed a commit that referenced this issue Aug 28, 2024
3.3.6
Improvements

    Removed duplicated entity expansions for performance.
        GH-194
        Patch by Viktor Ivarsson.

    Improved namespace conflicted attribute check performance. It was
    too slow for deep elements.
        Reported by l33thaxor.

Fixes

    Fixed a bug that default entity expansions are counted for
    security check. Default entity expansions should not be counted
    because they don't have a security risk.
        GH-198
        GH-199
        Patch Viktor Ivarsson

    Fixed a parser bug that parameter entity references in internal
    subsets are expanded. It's not allowed in the XML specification.
        GH-191
        Patch by NAITOH Jun.

    Fixed a stream parser bug that user-defined entity references in
    text aren't expanded.
        GH-200
        Patch by NAITOH Jun.

REXML 3.3.5 - 2024-08-12
Fixes

    Fixed a bug that REXML::Security.entity_expansion_text_limit
    check has wrong text size calculation in SAX and pull parsers.
        GH-193
        GH-195
        Reported by Viktor Ivarsson.
        Patch by NAITOH Jun.


REXML 3.3.4 - 2024-08-01
Fixes

    Fixed a bug that REXML::Security isn't defined when
    REXML::Parsers::StreamParser is used and
    rexml/parsers/streamparser is only required.
        GH-189
        Patch by takuya kodama.


REXML 3.3.3 - 2024-08-01
Improvements

    Added support for detecting invalid XML that has unsupported
    content before root element
        GH-184
        Patch by NAITOH Jun.

    Added support for REXML::Security.entity_expansion_limit= and
    REXML::Security.entity_expansion_text_limit= in SAX2 and pull
    parsers
        GH-187
        Patch by NAITOH Jun.

    Added more tests for invalid XMLs.
        GH-183
        Patch by Watson.

    Added more performance tests.
        Patch by Watson.

    Improved parse performance.
        GH-186
        Patch by tomoya ishida.
github-actions bot pushed a commit that referenced this issue Oct 17, 2024
### 1.8.0 (2024-10-17)
 * All: Drop support for Python 2 and <3.6, removing compatibility code.
 * All: Use stdlib unittest.mock instead of mock package.
 * All: Removed usage of path.py and path in favour of pathlib. #174 #224
 * pytest-devpi-server: Run devpi-init for initialisation. #179
 * pytest-server-fixtures: BREAKING CHANGE: Removed RethinkDB support, as the project is no longer maintained.
 * pytest-server-fixtures: Allowed passing through HTTP headers to the server. #149
 * pytest-server-fixtures: Fixed threading log debug messages. #146
 * pytest-server-fixtures: Removed usage of deprecated Thread.setDaemon. #202
 * pytest-server-fixtures: Explicitly close initial Mongo client. #198
 * pytest-server-fixtures: Don't use context manager for CREATE DATABASE #186
 * pytest-shutil: Removed contextlib2 requirement. #144
 * pytest-shutil: Fixed forcing color through termcolor. #217
 * pytest-shutil: Replaced deprecated imp module #219
 * pytest-profiling: Added support to hide/show the full path of file. #95
 * pytest-profiling: Fixed SVG file generation on Windows. #93
 * pytest-profiling: Remove pinning of more-itertools. #194
 * pytest-profiling: Add support to define element number for print_stats() #96
 * pytest-profiling: Fix mock in test_writes_summary #223
 * pytest-virtualenv: Modernised package. #188 #185 #182 #163
 * pytest-virtualenv: Fixed virtualenv creation on Windows. #142
 * pytest-virtualenv: Added delete_workspace parameter to VirtualEnv. #195
 * pytest-virtualenv: Removed extras_require. #240
 * ci: Remove usage of deprecated distutils. #189
 * ci: Disabled jenkins server tests on CircleCI to improve build time.
 * ci: Fixed `collections` import for py 3.11 compatibility #222


### 1.7.1 (2019-05-28)
* pytest-profiling: Fix pytest-profiling to profile fixtures. #48
* pytest-devpi-server: Fixed Python 3.4 support updating "ruamel.yaml" requirements. #138
* ci: Added  PYTEST_DONT_REWRITE in order to suppress module already imported. #123
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

3 participants