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

Fix compilation of fcgiwrap #161

Closed
wants to merge 1 commit into from
Closed

Fix compilation of fcgiwrap #161

wants to merge 1 commit into from

Conversation

gaige
Copy link

@gaige gaige commented Nov 17, 2018

fcgiwrap in trunk and 2018Q3 won't compile and therefore doesn't result generate a successful binary for pkgin.

This change disables the warning (now error because of compilation settings) for implicit fallthrough. The line immediately preceding the warning is a method that calls exit explicitly.

This can safely be brought to both trunk and 2018Q3.

jperkin pushed a commit that referenced this pull request Feb 6, 2019
Changes:
1.7.0
-----
- Added support for:
   - `photobucket` (#117)
   - `hentaifox` (#160)
   - `tsumino` (#161)
- Added the ability to dynamically generate extractors based on a user's
  config file for
   - `mastodon` instances (#144)
   - `foolslide` based sites
   - `foolfuuka` based archives
- Added an extractor for `behance` collections (#157)
- Added login support for `luscious` (#159) and `tsumino` (#161)
- Added an option to stop downloading if the `exhentai` image limit is
  exceeded (#141)
- Fixed extraction issues for `behance` and `mangapark`
@jperkin jperkin self-assigned this Mar 4, 2019
@jperkin
Copy link
Collaborator

jperkin commented Mar 4, 2019

Sorry I missed this, I fixed the package back in November a different way (1d0e790) so it has been available in trunk and 2018Q4 for a while now.

@jperkin jperkin closed this Mar 4, 2019
@gaige
Copy link
Author

gaige commented Mar 4, 2019

Sorry, I saw that it was fixed and didn't go back and close it out.

jperkin pushed a commit that referenced this pull request Jul 7, 2019
Changes since b160

Beta #161 - 04.07.2019
- Bugfix: If you held down a sample data loop pin while a system request was
  about to be shown, the loop pins would act strange lateron.
- Bugfix: Fixed a MIDI-related memory leak when pressing "Load config." in the
  Config screen.
- Bugfix: The palette editor scrollbar thumbs would not draw properly when
  dragging them.
- Bugfix: Attempting to sample in stereo (Smp. Ed.) at the last sample slot
  would result in a crash.
- Bugfix: Using keyboard shortcuts to interact with a system request/message
  could trigger an unwanted "note key up" event after the box closed. (déjà vu)
- The palette editor is now rewritten to behave exactly like original FT2
- Code cleanup
- Updated src\gfxdata\bmp\readme.txt
jperkin pushed a commit that referenced this pull request Oct 20, 2019
pkgsrc changes:
- take maintainership

Upstream changes:

#### Release 4.0.1

- CHANGED: Updated definitions.


#### Release 4.0.0

- CHANGED: Minimum Ruby version is 2.3


#### Release 3.1.1

- CHANGED: Updated definitions.
- CHANGED: Rolled back support for Ruby 2.3 (GH-161, GH-162)

IMPORTANT: 3.x is the latest version compatible with Ruby 2.1 and Ruby 2.2.


#### Release 3.1.0

- CHANGED: Updated definitions.
- CHANGED: Minimum Ruby version is 2.3
- CHANGED: Upgraded to Bundler 2.x
jperkin pushed a commit that referenced this pull request Oct 20, 2019
pkgsrc changes:
 - Remove patch-filter_pdf.cxx (was a backport from upstream) and patch-Makefile.in
   (now `-r' option of `ln' is checked in configure phase)

Changes:
1.25.11
-------
 - cups-browsed: Really accept entries without printer name
   reported on a job status request (Issue #163).
 - cups-browsed: Strip IPP atrribute values reported by the
   printer on a get-printer-attributes request from white
   space (Pull request #166).

1.25.10
-------
 - libcupsfilters: Added NULL checks when handling page size
   names as some of the page sizes in CUPS' PWG media list have
   a NULL PPD name (Ubuntu bug #1847488).

1.25.9
------
 - cups-browsed: Fix leaks in get_printer_attributes() function.
 - cups-browsed: Avoid infinite recursion on IPP 1.1 fallback.

1.25.8
------
 - cups-browsed: On a job status request accept also entries
   without the printer name being reported (Issue #163).
 - cups-browsed: Fall back to IPP 1.1 if a
   get-printer-attributes IPP request with IPP 2.x fails (Issue
   #124, Issue #163).
 - gstoraster: Use ".setfilladjust2" instead of the
   undocumented ".setfilladjust" PostScript command for
   Center-of-Pixel method to fill paths (Issue #164).

1.25.7
------
 - implicitclass, libcupsfilters: Fixes to solve an assertion
   error and printing to an Apple Raster printer (Issue #162,
   Ubuntu bug #1845286, Ubuntu bug #1845548).
 - cups-browsed: Do not try to resolve the network interface
   name on Avahi messages which are not interface-related (like
   "All for now"or "Cache exhausted", Issue #163).
 - Build system: The helper script ln-srf to build on systems
   with old ln was not included in the release tarballs (Issue
   #161).
 - pdftoraster: Fixed some bugs in output bitmap generation (
   writePageImage() function): Segfault on output of
   up-side-down pages (back side when printing duplex on some
   printers), margin offsets not taken into account on
   monochrome jobs, CUPS_CSPACE_W color space not recognized as
   monochrome (Ubuntu bug #1845286).

1.25.6
------
 - implicitclass: Make sure the destination printer gets always
   set and do not pass on the cups-browsed-dest-printer when
   sending the job to the final destination (Issue #152, Pull
   request #159).
 - Build system: Support old ln versions without the -r option
   (Pull request #154, #157).
 - texttotext: Link with libiconv if needed (Pull request
   #155, #158).
 - foomatic-rip: Fix argument representation for raw queue
   debug mesaage (Pull request #153).

1.25.5
------
 - bannertopdf: Added missing "#include <cstring>" to pdf.cxx
   so that bannertopdf correctly builds with QPDF 9.0.0 (Issue
   #134, Issue #151, Gentoo bug #693498).
 - rastertopdf: Let the getIPPColorProfileName() function not
   return a pointer to a local variable (clang warning, Issue
   #150).
 - cups-browsed: If a locally generated queue (usually with
          "implicitclass://..." URI) left over from a previous
          (crashed) session is picked up on startup, do not set the
          URI as the remote printer's URI and do not cause a fatal
          error on a failed get-printer-attributes IPP request (Issue
          #148, Debian bug #939316).
 - pdftopdf: Do not preserve encryption, since the output
          already goes into the printer (Issue #146, Pull request
          #147).

1.25.4
------
 - imagetoraster: Do not call imagetops and pstoraster for
   classifications and page labels as these filters are not
   included any more with cups-filters.  Classifications and
   page labels are currently not supported for direct image
   printing, only for PDF or PostScript input (which goes
   through pdftopdf).
 - imagetoraster, imagetopdf: Fixed auto-rotation of images to
   fit output page best (Issue #145).
 - pdftoraster: If the PPD contains several equally-sized page
   size entries which match the size of the input page and one
   is the size selected by the user via the "PageSize" or
   "media" option (or the default selection in the PPD) then
   prefer this one instead of simply the first matching one.
 - pdftoraster: If the input page size cannot be matched with
   one of the PPD's page sizes it is considered a custom size,
   fill the page size name field of the CUPS Raster header with
   "Custom.XXXxYYY" then.
 - pdftoraster: Match the input page size with a page size in
   the PPD only if the differences of the dimensions are less
   than 1%, also match the input page size against the
   imageable area of the PPD's page sizes if no match with the
   full page size is found (Issue #138).

1.25.3
------
 - Sample PPDs: In HP-Color_LaserJet_CM3530_MFP-PDF.ppd renamed
   "custom" choice of the option "stapleoption" to "customsize"
   as from CUPS 2.2.12 on "custom" is not accepted any more as a
   choice name in a PPD file.
 - cups-browsed: Fixed check whether the remote printer understands
   PWG Raster (Issue #141).

1.25.2
------
 - foomatic-rip: Fixed segmentation fault when running
   foomatic-rip by hand and the PRINTER environment variable is
   not set (Pull request #139).
 - cups-browsed: Added note to cups-browsed.conf and man page
   about IP-based URIs depending on the network interface used.
 - cups-browsed: For each DNS-SD-discovered printer register
   each DNS-SD discovery instance with network interface,
   family, and IPP type. When DNS-SD messages of instances
   disappearing show up, only unregister this instance and
   remove the printer only if no instance is left. This
   prevents a local queue of a still available printer being
   removed when Wi-Fi (= one interface) is turned off (Issue
   #136).
 - cups-browsed: If a remote printer is served from the local
   machine, prefer the "localhost"/loopback interface URI.
 - cups-browsed: If a remote printer is discovered more than
   once, use the new instance only if it has no downgrades and
   at least one upgrade compared to the old one. Features
   currently compared are IPP/IPPS, loopback interface or not,
   and discovery via CUPS legacy/LDAP/DNS-SD.
 - cups-browsed: If an Avahi-discovered entry comes through the
   "lo" interface, always use the host name "localhost". Use
   IP addresses instead of host names only if explicitly
   requested.
 - cups-browsed: Consider remote printer entries also as from
   the same printer if one has the local machine's network name
   and the other "localhost" as host name (Issue #136).

1.25.1
------
 - imagetopdf: Fixed crash when no PPD file was supplied (Pull
   request #133).
 - pdftoraster: Fixed offset issues leading to segmentation
   faults (Issue #131, Pull request #132).
 - pdftoraster: Added anti-aliasing for better raster image
   quality (Pull request #129).
 - pdftoraster: Added graceful handling of zero-page input
   (Issue #117, Pull request #127).

1.25.0
------
 - pdftoijs, pdftoopvp: Removed these deprecated filters
   completely as there is no demand for them any more. They
   also used unstable, undocumented APIs of Poppler.
 - pdftoraster: Changed from using unstable, undocumented APIs
   of Poppler to stable, documented ones, to improve
   maintainability of this filter, and with it of the
   cups-filters package. Thanks to Tanmay Anand for
   contributing this as his Google Summer of Code 2019 project.
 - libcupsfilters: Added support for color spaces CMY and RGBW
   when using filters without PPD file (mainly for development
   and debugging, option "print-color-mode" with values
   "cmy-XX" and "rgbw-XX" with XX being the number of bits per
   color).

1.24.0
------
 - cups-browsed: Integration of Deepak Patankar's Google Summer
   of Code 2018 project with the main goal of clustering
   different printers and automatically selecting the
   destination printers by job content and option/attribute
   settings. All changes of this release are done by Deepak as
   parts of his project.
 - cups-browsed, implicitclass: Support for mixed clusters of
   remote CUPS queues and IPP network printers. For this PPD
   files of remote CUPS queues are generated by cups-browsed
   based on IPP queries, as for native IPP printers, the number
   of jobs for load balancing is polled in a way that it works
   also with native IPP printers, the implicitclass backend
   sends jobs directky to the printer instead of re-queueing
   them via CUPS.
 - cups-browsed: Merge IPP attributes of several printers to
   combined attributes for the cluster to generate the
   cluster's PPD file, including PPD constraints for option
   combinations not fulfillable by any of the member printers,
   and finding reasonable, non-conflicting default settings,
 - cups-browsed: Selection algorithm for the destination
   printer for a job sent to the cluster. Based on the job
   settings requested such as page size, media type, print
   quality, ... the best most suitable printer in the cluster
   for the job will be selected.
 - cups-browsed, implicitclass: Filter jobs to clusters already
   locally. Due to the fact that a cluster's member printers
   are not exclusively non-raw CUPS queues with the complete
   filtering framework on the remote server, but also native
   IPP printers, we need to support generic driverless printers
   as destination. So we cannot pass on the input data
   unfiltered but need to filter locally. We let the cluster's
   PPD file emulate a PDF printer, letting the local CUPS queue
   of the cluster run pdftopdf and any pre-filters to turn the
   input into PDF and we let the implicitclass backend turn PDF
   into a format understood by the destination printer,
   supporting the 4 formats of driverless IPP printing: PDF,
   PWG Raster, Apple Raster, PCLm.
jperkin pushed a commit that referenced this pull request Dec 15, 2019
…ithub.com page

v3.11
@rsms rsms released this Oct 23, 2019 · 15 commits to master since this release

  - Fixes issue (regression) with variable font where certain glyphs would
    slant in the wrong direction. #198
  - Fixes issue (regression) with variable font where version metadata would be
    wrong. #202
  - Fixes codepoint mapping for /copyleft glyph. #203
  - Improves metadata of variable fonts. “fullName” name table entry is now
    “Inter” instead of “Inter Regular”.
  - New alternate-named variable font “Inter V”. With a different family name,
    this is useful for when you want to install the variable version alongside
    traditional static font files.
  - Improvements to /backslash glyph

v3.10
@rsms rsms released this Sep 7, 2019 · 35 commits to master since this release
Release 3.10 is a mix of new glyphs & glyph changes, and adjustments & fixes.

New glyphs:

  - blackSquare (U+25A0)
  - whiteSquare (U+25A1)
  - whiteRoundedCornersSquare (U+25A2)
  - lowerHalfWhiteSquare (U+2B12)
  - topHalfWhiteSquare (U+2B13)
  - downWhiteTriangle (U+25BD)
  - upWhiteTriangle (U+25B3)
  - leftWhiteTriangle (U+25C1, U+25C5)
  - rightWhiteTriangle (U+25B7, U+25BB)

Other notable changes:

  - Fixes alignment issue with otilde U+00F5. #191
  - Improvements to contextual alternates (calt), primarily reducing the cases
    where case substitution is unwanted. #193
  - Adjustments to the following whitespace glyphs: zerowidthspace, hairspace,
    thinspace, punctuationspace, enspace, emspace, sixthemspace,
    quarteremspace, thirdemspace and figurespace. #185
  - Improvements to ogonek-based diacritics.
  - Refinements and improvements to fractions (both dedicated glyphs and
    arbitrary frac parts)
  - Kerning improvements to all weights
  - Progress on mark and mkmk “dynamic diacritics”

v3.9
@rsms rsms released this Aug 7, 2019 · 58 commits to master since this release

Fixes an issue with metadata where Medium, Semi Bold, and Extra Bold would
incorrectly be marked as “italic” which would confuse certain software.

v3.8
@rsms rsms released this Aug 5, 2019 · 62 commits to master since this release

  - Possibly breaking change: Variable italic axis (really, slnt axis) has been
    inverted (negated) — a negative value causes the text to lean rightwards.
    This is only a breaking change if you are using the multi-axis variable
    font (Inter.var) and define slant angle using high-level CSS properties
    like font-style. This change was done to comply with the convention defined
    in the OpenType spec. #175 #172
  - Variable font files are now significantly smaller thanks to #171 and #169
      □ Inter.var.woff2 v3.7: 393kB, v3.8: 306kB
      □ Inter-upright.var.woff2 v3.7: 267kB, v3.8: 224kB
      □ All this while v3.8 introduces a whole new set of glyphs, kerning and
        feature code.
  - Adds several new glyphs, like double-stemmed arrows and enclosed
    alphanumerics & symbols
      □ Warning sign #168
      □ Copyleft symbol #165
      □ Really long arrows, useful in ligatures like --->
      □ Arrows with double-lined stems, useful for “assign to”, with ligatures
        defined for some combinations with equals, e.g. =>
      □ Enclosed glyphs in circles and squares
  - Fixes a bug where U+0430 Cyrillic lower-case a would not be substituted for
    a single-storey “a” with cv11 enabled. #179
  - Fixes a bug with slant of Ͽ (U+03FF) #170 #169
  - Some calt code has moved to liga (standard ligatures), specifically arrow
    ligatures. Automatic case alignment is still kept in calt. So, you can now
    disable calt to disable only case alignment, and disable liga to only
    disable arrow ligatures.
  - Improvements to kerning, spacing and letterform details
  - Improved Microsoft Windows installation instructions #173

v3.7
@rsms rsms released this May 31, 2019 · 103 commits to master since this
release

  - Fixes an issue with spacing to the right of capital "M"
  - Improves positioning of various bullet glyphs
  - Improved kerning
  - new copyright glyph U+00A9
  - new published (aka sound recording copyright) glyph U+2117
  - new registered sign glyph U+00AE
  - release now contains installation instructions for Linux

v3.6
@rsms rsms released this May 27, 2019 · 123 commits to master since this
release

  - Fixes an issue related to ttfautohint where lower case "r" would be grid
    fitted incorrectly by ClearType on Microsoft Windows #119
  - Fixes an issue with using case and calt features in combination where arrow
    combinations like -> would not be substituted by arrow glyphs #161
  - Fixes an issue with rightArrow of bolder weights in italic #154
  - Adjusts the glyph width of "bullet" to be exactly two "space" glyphs wide,
    allowing easy ad-hoc list creation with wrapping lines
  - Improved kerning for a.1 (alternate single-storey "a")

v3.5
@rsms rsms released this Apr 2, 2019 · 139 commits to master since this release

This is a very small incremental change from v3.4 that mainly contains improved
metrics metadata for some macOS applications, improving vertical alignment.

v3.4
@rsms rsms released this Apr 1, 2019 · 144 commits to master since this release

Lots of changes in this release.

Highlights include:

  - Workaround for bug with some Apple software (including Sketch) where the
    computed line height of the Regular weight would be too tall
  - Several new symbol glyphs, especially in the technical area (e.g. computer
    keyboard symbols)
  - Single-storey a
  - Lots of improvements to diacritics

Some interesting commits since v3.3:

  - 9084323 slight increase of slant of /numbersign
  - e903526 remove slant from /degree
  - c130c69 misc documentation on variable font usage
  - 794662c fixes issues with calt substitution ignore rule
  - 1abaae4 fixes issue with shapes of a.1
  - aa2a3fe adds single-storey a
  - e605458 fix issue with x paths and adds blackstar U+2605, whitestar U+2606
  - ccc994e swap one <-> one.ss01
  - 3b9675e improvements to calt and arithmetic glyphs (e.g. plus, multiply,
    etc.)
  - 56e2c75 Swaps r.1 <-> r + rips out calt r.1 code + adds ss03 for "r curves
    into corund neighbors"
  - dddf6d2 Fixes kerning of pair /v/idotless -- closes #143
  - 1dbc8fd Change vertical metrics to make Apple ATS work properly. New
    ascender value: 2728, new descender value: -680
  - e1d8712 reworked commaaccent
  - fb79b9e Use vert metrics script to fix line heights issue #124 (#141)
  - 3488601 Adds 'Version ' prefix to nameID 5 version string, per MS OT spec (
    #140)
  - 70f3df7 Fixup STAT tables of single-axis variable fonts to aid desktop apps
    (style linking). Related to #142
  - 35a2362 Adds --name option to "fontbuild compile-var" for customizing
    family name, useful for producing variable font files with a different name
    than the constant files so they can be installed alongside each other.
    Closes #144
  - 20aaab6 Change version encoding in font files to match common zero-padded
    version to allow FontBakery to be happy. Closes #138
  - 1208ea9 adds returnsymbol U+23CE
  - 610b997 Adds several "technical" glyphs
  - a503c5a Adds glyphs leftHookArrow, upWhiteArrow, upBlackArrow, control,
    option, deleteleft, deleteright
  - 9f176ab improved placeofinterestsign U+2318
  - 0b8f63c Fix and improve paths (mostly order) of several glyphs
  - 6cf0980 redraws and adds paragraphreversed, blackleftbullet,
    blackrightbullet and .case versions
  - a1a1288 redrawn seagullsubnosp U+033C (also fixes bad paths)
  - 181ba19 fixes paths of uni0346 (COMBINING BRIDGE ABOVE)
  - 528f843 improvements to grave, acute, dblgrave and tonos diacritics
  - 6ef7b3e disable exporting of debug glyph uniE001
  - 162519e update panose metadata
  - 034a240 fixes missing "-BETA" filename suffix in the demo CSS file included
    with dists
  - a99328b Upgrade toolchain. glyphsLib 3.2.0b2 -> 3.2.0; fontmake 1.8.0 ->
    1.9.1
  - a0af904 workaround for bug in Safari where contextual sub in liga causes
    kerning to fail. Moves "r" ligature to calt to work around this bug.

v3.3
@rsms rsms released this Feb 4, 2019 · 203 commits to master since this release

Inter UI is now called simply Inter, without the "UI" part.

  - New name
  - Lots of diacritic improvements
  - Beta-grade light styles are now suffixed " BETA" to make it extra clear
    that these are in development
  - Many many changes; several new glyphs, lots of redrawn glyphs, lots of
    kerning improvements, etc.

v3.2
@rsms rsms released this Jan 4, 2019 · 276 commits to master since this release

  - Now includes lighter weights ([100–400); which are of beta quality and
    needs testing)
  - Lots of improvements to other weights (diacritics, glyph shapes, kerning,
    etc.)

This release is a big one in terms of source changes, adding up to 14,117
changed files with 714,886 additions and 259,287 deletions, since v3.1.

PDF glyph charts:

  - Inter-UI-Thin-BETA-glyphs.pdf
  - Inter-UI-ThinItalic-BETA-glyphs.pdf
  - Inter-UI-Regular-glyphs.pdf
  - Inter-UI-Italic-glyphs.pdf
  - Inter-UI-Black-glyphs.pdf
  - Inter-UI-BlackItalic-glyphs.pdf
jperkin pushed a commit that referenced this pull request Jan 3, 2020
Version 1.20
------------
  * bugfixes for #if defined(FOO) && FOO(a,b)
  * (1.20.1): fix version number
  * (1.20.2): ensure all input/output is UTF8, regardless of locale
  * (1.20.3): detect an absolute windows path with a drive letter in a #include
  * (1.20.4): more windows path handling
  * (1.20.5): revert change in 1.20.4
  * (1.20.6): minor bugfix for crash in obscure corner case
  * (1.20.7): bugfix for windows drive letter in #include
  * (1.20.8): another bugfix for windows drive letter in #include

Version 1.19
------------
  * (1.19.3): bugfix for hlint ticket #161 - interaction of --unlit/--linepragma
jperkin pushed a commit that referenced this pull request Mar 25, 2020
Update ruby-puppet-resource_api to 1.8.12.

## [1.8.7](https://github.com/puppetlabs/puppet-resource_api/tree/1.8.7) (2019-09-11)
[Full Changelog](puppetlabs/puppet-resource_api@1.8.6...1.8.7)

**Fixed bugs:**

- \(FM-8092\) Fix caching scope of transport schemas [\#200](puppetlabs/puppet-resource_api#200) ([DavidS](https://github.com/DavidS))

**Merged pull requests:**

- \(FM-8485\) - Addition of CODEOWNERS file [\#203](puppetlabs/puppet-resource_api#203) ([david22swan](https://github.com/david22swan))
- \(MODULES-9258\) Improve referencing and add summary [\#199](puppetlabs/puppet-resource_api#199) ([MaxMagill](https://github.com/MaxMagill))
- \(maint\) Pin both Jruby cells to use `dist: trusty` [\#197](puppetlabs/puppet-resource_api#197) ([da-ar](https://github.com/da-ar))

## [v1.8.6](https://github.com/puppetlabs/puppet-resource_api/tree/v1.8.6) (2019-07-01)
[Full Changelog](puppetlabs/puppet-resource_api@1.8.5...v1.8.6)

**Implemented enhancements:**

- \(SERVER-2470\) list\_all\_transports implementation for puppetserver [\#187](puppetlabs/puppet-resource_api#187) ([DavidS](https://github.com/DavidS))

**Fixed bugs:**

- \(MODULES-9428\) make the composite namevar implementation usable [\#174](puppetlabs/puppet-resource_api#174) ([DavidS](https://github.com/DavidS))

**Merged pull requests:**

- Merge 1.6.x [\#194](puppetlabs/puppet-resource_api#194) ([da-ar](https://github.com/da-ar))
- \(maint\) test fixes [\#193](puppetlabs/puppet-resource_api#193) ([DavidS](https://github.com/DavidS))
- \(packaging\) Revert to version '1.8.5' \[no-promote\] [\#192](puppetlabs/puppet-resource_api#192) ([gimmyxd](https://github.com/gimmyxd))
- \(packaging\) Bump to version '1.9.0' \[no-promote\] [\#191](puppetlabs/puppet-resource_api#191) ([gimmyxd](https://github.com/gimmyxd))

## [1.8.5](https://github.com/puppetlabs/puppet-resource_api/tree/1.8.5) (2019-06-24)
[Full Changelog](puppetlabs/puppet-resource_api@1.8.4...1.8.5)

**Fixed bugs:**

- \(maint\) Mergeup 1.6.x: FM-7839, desc/docs cleanup [\#186](puppetlabs/puppet-resource_api#186) ([DavidS](https://github.com/DavidS))

**Merged pull requests:**

- \(maint\) reduce debug noise caused by `feature?` [\#189](puppetlabs/puppet-resource_api#189) ([da-ar](https://github.com/da-ar))
- \(FM-8265\) Merge branch '1.6.x' into master [\#188](puppetlabs/puppet-resource_api#188) ([da-ar](https://github.com/da-ar))
- \(maint\) test fixes [\#185](puppetlabs/puppet-resource_api#185) ([DavidS](https://github.com/DavidS))
- \(maint\) make test order really random [\#175](puppetlabs/puppet-resource_api#175) ([DavidS](https://github.com/DavidS))
- \(packaging\) Update reported version to 1.8.4 \[no-promote\] [\#171](puppetlabs/puppet-resource_api#171) ([gimmyxd](https://github.com/gimmyxd))

## [1.8.4](https://github.com/puppetlabs/puppet-resource_api/tree/1.8.4) (2019-06-12)
[Full Changelog](puppetlabs/puppet-resource_api@1.8.3...1.8.4)

**Implemented enhancements:**

- \(FM-7839\) Implement `to\_json` method for ResourceShim [\#168](puppetlabs/puppet-resource_api#168) ([da-ar](https://github.com/da-ar))

**Fixed bugs:**

- \(maint\) backport minor fixes from master to 1.6.x [\#184](puppetlabs/puppet-resource_api#184) ([DavidS](https://github.com/DavidS))
- \(PUP-9747\) Relax validation for bolt [\#182](puppetlabs/puppet-resource_api#182) ([DavidS](https://github.com/DavidS))
- \(maint\) Add to\_hash function to resourceShim for compatibility [\#180](puppetlabs/puppet-resource_api#180) ([da-ar](https://github.com/da-ar))
- \(maint\) implement `desc`/`docs` fallback [\#177](puppetlabs/puppet-resource_api#177) ([DavidS](https://github.com/DavidS))

**Closed issues:**

- ResourceShim should respond to to\_hash [\#179](puppetlabs/puppet-resource_api#179)

**Merged pull requests:**

- \(maint\) Merge 1.6.x to master  [\#183](puppetlabs/puppet-resource_api#183) ([mihaibuzgau](https://github.com/mihaibuzgau))
- \(maint\) Fixup Gemfile for JRuby 1.7 installs [\#173](puppetlabs/puppet-resource_api#173) ([da-ar](https://github.com/da-ar))
- \(maint\) test cleanups [\#172](puppetlabs/puppet-resource_api#172) ([DavidS](https://github.com/DavidS))

## [1.8.3](https://github.com/puppetlabs/puppet-resource_api/tree/1.8.3) (2019-04-12)
[Full Changelog](puppetlabs/puppet-resource_api@1.8.2...1.8.3)

**Fixed bugs:**

- \(FM-7867\) Always throw when transport schema validation fails [\#169](puppetlabs/puppet-resource_api#169) ([da-ar](https://github.com/da-ar))

**Merged pull requests:**

- \(PA-2496\) Bump version and remove v from version number [\#170](puppetlabs/puppet-resource_api#170) ([mihaibuzgau](https://github.com/mihaibuzgau))

## [1.8.2](https://github.com/puppetlabs/puppet-resource_api/tree/1.8.2) (2019-04-10)
[Full Changelog](puppetlabs/puppet-resource_api@v1.6.4...1.8.2)

**Merged pull requests:**

- \(packaging\) Update reported version to 1.8.2 \[no-promote\] [\#167](puppetlabs/puppet-resource_api#167) ([mihaibuzgau](https://github.com/mihaibuzgau))

## [v1.6.4](https://github.com/puppetlabs/puppet-resource_api/tree/v1.6.4) (2019-03-25)
[Full Changelog](puppetlabs/puppet-resource_api@v1.8.1...v1.6.4)

**Merged pull requests:**

- Add `implementations` to reserved bolt keywords [\#165](puppetlabs/puppet-resource_api#165) ([DavidS](https://github.com/DavidS))
- \(MAINT\) Bump version [\#164](puppetlabs/puppet-resource_api#164) ([sebastian-miclea](https://github.com/sebastian-miclea))
- Release prep for v1.8.1 [\#163](puppetlabs/puppet-resource_api#163) ([DavidS](https://github.com/DavidS))

# Changelog

All significant changes to this repo will be summarized in this file.


## [v1.8.1](https://github.com/puppetlabs/puppet-resource_api/tree/v1.8.1) (2019-03-13)
[Full Changelog](puppetlabs/puppet-resource_api@v1.8.0...v1.8.1)

**Fixed bugs:**

- \(maint\) Fixes sensitive transport values where absent keys are wrapped [\#161](puppetlabs/puppet-resource_api#161) ([da-ar](https://github.com/da-ar))

**Merged pull requests:**

- 1.6.x mergeup [\#162](puppetlabs/puppet-resource_api#162) ([DavidS](https://github.com/DavidS))
- \(FM-7829\) Update README with transports examples [\#160](puppetlabs/puppet-resource_api#160) ([willmeek](https://github.com/willmeek))
- \(maint\) update release docs [\#159](puppetlabs/puppet-resource_api#159) ([DavidS](https://github.com/DavidS))
- Improve travis cells and testing [\#145](puppetlabs/puppet-resource_api#145) ([DavidS](https://github.com/DavidS))

## [v1.8.0](https://github.com/puppetlabs/puppet-resource_api/tree/v1.8.0) (2019-02-26)
[Full Changelog](puppetlabs/puppet-resource_api@v1.7.0...v1.8.0)

**Implemented enhancements:**

- \(FM-7695\) Transports - the remote content framework [\#157](puppetlabs/puppet-resource_api#157) ([DavidS](https://github.com/DavidS))
- \(FM-7698\) implement `sensitive:true` handling [\#156](puppetlabs/puppet-resource_api#156) ([da-ar](https://github.com/da-ar))
- \(PDK-1271\) Allow a transport to be wrapped and used like a device [\#155](puppetlabs/puppet-resource_api#155) ([da-ar](https://github.com/da-ar))
- \(FM-7701\) Support device providers when using Transport Wrapper [\#154](puppetlabs/puppet-resource_api#154) ([da-ar](https://github.com/da-ar))
- \(FM-7726\) implement `context.transport` to provide access [\#152](puppetlabs/puppet-resource_api#152) ([DavidS](https://github.com/DavidS))
- \(FM-7674\) Allow wrapping a Transport in a legacy Device [\#149](puppetlabs/puppet-resource_api#149) ([da-ar](https://github.com/da-ar))
- \(FM-7600\) Add Transport.connect method [\#148](puppetlabs/puppet-resource_api#148) ([da-ar](https://github.com/da-ar))

**Fixed bugs:**

- \(FM-7690\) Fix transports cache to be environment aware [\#151](puppetlabs/puppet-resource_api#151) ([da-ar](https://github.com/da-ar))

**Merged pull requests:**

- \(FM-7726\) cleanups for the transport  [\#153](puppetlabs/puppet-resource_api#153) ([DavidS](https://github.com/DavidS))
- \(FM-7691,FM-7696\) refactoring definition handling in contexts [\#150](puppetlabs/puppet-resource_api#150) ([DavidS](https://github.com/DavidS))

## [v1.7.0](https://github.com/puppetlabs/puppet-resource_api/tree/v1.7.0) (2019-01-07)
[Full Changelog](puppetlabs/puppet-resource_api@v1.6.3...v1.7.0)

**Implemented enhancements:**

- \(maint\) Validate Type Schema [\#142](puppetlabs/puppet-resource_api#142) ([da-ar](https://github.com/da-ar))

**Merged pull requests:**

- \(maint\) Bundler 2.0 dropped support for Ruby versions \< 2.2 [\#147](puppetlabs/puppet-resource_api#147) ([da-ar](https://github.com/da-ar))
-  \(FM-7597\) RSAPI Transport register function [\#146](puppetlabs/puppet-resource_api#146) ([da-ar](https://github.com/da-ar))
- \(packaging\) Update version to 1.7.0 [\#144](puppetlabs/puppet-resource_api#144) ([branan](https://github.com/branan))

## [v1.6.3](https://github.com/puppetlabs/puppet-resource_api/tree/v1.6.3) (2018-12-11)
[Full Changelog](puppetlabs/puppet-resource_api@v1.6.2...v1.6.3)

**Closed issues:**

- Trying to understand stubbing in the examples [\#136](puppetlabs/puppet-resource_api#136)

**Merged pull requests:**

- \(packaging\) Update version to 1.6.3 [\#143](puppetlabs/puppet-resource_api#143) ([branan](https://github.com/branan))
- Move parameter and property logic to separate classes [\#140](puppetlabs/puppet-resource_api#140) ([bpietraga](https://github.com/bpietraga))
- \(maint\) Predeclare Puppet module before ResourceApi [\#139](puppetlabs/puppet-resource_api#139) ([caseywilliams](https://github.com/caseywilliams))
- \(maint\) minor fix to make data\_type\_handling change work [\#138](puppetlabs/puppet-resource_api#138) ([DavidS](https://github.com/DavidS))
- \(maint\) extract data type handling code [\#137](puppetlabs/puppet-resource_api#137) ([bpietraga](https://github.com/bpietraga))
- Release prep for v1.6.2 [\#135](puppetlabs/puppet-resource_api#135) ([DavidS](https://github.com/DavidS))
jperkin pushed a commit that referenced this pull request Apr 21, 2020
Upstream changelog:
0.9.7:
### Fixes
* Fixed a systemd-journal handling in fail2ban-regex (gh-1657)
* filter.d/sshd.conf
    - Fixed non-anchored part of failregex (misleading match of colon inside
      IPv6 address instead of `: ` in the reason-part by missing space, gh-1658)
      (0.10th resp. IPv6 relevant only, amend for gh-1479)
* config/pathes-freebsd.conf
    - Fixed filenames for apache and nginx log files (gh-1667)
* filter.d/exim.conf
    - optional part `(...)` after host-name before `[IP]` (gh-1751)
    - new reason "Unrouteable address" for "rejected RCPT" regex (gh-1762)
    - match of complex time like `D=2m42s` in regex "no MAIL in SMTP connection" (gh-1766)
* filter.d/sshd.conf
    - new aggressive rules (gh-864):
      - Connection reset by peer (multi-line rule during authorization process)
      - No supported authentication methods available
    - single line and multi-line expression optimized, added optional prefixes
      and suffix (logged from several ssh versions), according to gh-1206;
    - fixed expression received disconnect auth fail (optional space after port
      part, gh-1652)
      and suffix (logged from several ssh versions), according to gh-1206;
* filter.d/suhosin.conf
    - greedy catch-all before `<HOST>` fixed (potential vulnerability)
* filter.d/cyrus-imap.conf
    - accept entries without login-info resp. hostname before IP address (gh-1707)
* Filter tests extended with check of all config-regexp, that contains greedy catch-all
  before `<HOST>`, that is hard-anchored at end or precise sub expression after `<HOST>`

### New Features
* New Actions:
    - action.d/netscaler: Block IPs on a Citrix Netscaler ADC (gh-1663)

* New Filters:
    - filter.d/domino-smtp: IBM Domino SMTP task (gh-1603)

### Enhancements
* Introduced new log-level `MSG` (as INFO-2, equivalent to 18)

0.10.0-alpha1 :
### Fixes
* [Grave] memory leak's fixed (gh-1277, gh-1234)
* [Grave] Misleading date patterns defined more precisely (using extended syntax
  `%Ex[mdHMS]` for exact two-digit match or e. g. `%ExY` as more precise year
  pattern, within same century of last year and the next 3 years)
* [Grave] extends date detector template with distance (position of match in
  log-line), to prevent grave collision using (re)ordered template list (e.g.
  find-spot of wrong date-match inside foreign input, misleading date patterns
  by ambiguous formats, etc.)
* Distance collision check always prefers template with shortest distance
  (left for right) if date pattern is not anchored
* Tricky bug fix: last position of log file will be never retrieved (gh-795),
  because of CASCADE all log entries will be deleted from logs table together with jail,
  if used "INSERT OR REPLACE" statement
* Asyncserver (asyncore) code fixed and test cases repaired (again gh-161)
* testSocket: sporadical bug repaired - wait for server thread starts a socket (listener)
* testExecuteTimeoutWithNastyChildren: sporadical bug repaired - wait for pid file inside bash,
  kill tree in any case (gh-1155)
* purge database will be executed now (within observer).
* restoring currently banned ip after service restart fixed
  (now < timeofban + bantime), ignore old log failures (already banned)
* Fixed high-load of pyinotify-backend,
  see fail2ban/fail2ban#885 (comment)
* Database: stability fix - repack cursor iterator as long as locked
* File filter backends: stability fix for sporadically errors - always close file
  handle, otherwise may be locked (prevent log-rotate, etc.)
* Pyinotify-backend: stability fix for sporadically errors in multi-threaded
  environment (without lock)
* Fixed sporadically error in testCymruInfoNxdomain, because of unsorted values
* Misleading errors logged from ignorecommand in success case on retcode 1 (gh-1194)
* fail2ban.service - systemd service updated (gh-1618):
  - starting service in normal mode (without forking)
  - does not restart if service exited normally (exit-code 0, e.g. stopped via fail2ban-client)
  - does not restart if service can not start (exit-code 255, e.g. wrong configuration, etc.)
  - service can be additionally started/stopped with commands (fail2ban-client, fail2ban-server)
  - automatically creates `/var/run/fail2ban` directory before start fail2ban
    (systems with virtual resp. memory-based FS for `/var/run`), see gh-1531
  - if fail2ban running as systemd-service, for logging to the systemd-journal,
    the `logtarget` could be set to STDOUT
  - value `logtarget` for system targets allowed also in lowercase (stdout, stderr, syslog, etc.)
* Fixed UTC/GMT named time zone, using `%Z` and `%z` patterns
  (special case with 0 zone offset, see gh-1575)
* `filter.d/freeswitch.conf`
    - Optional prefixes (server, daemon, dual time) if systemd daemon logs used (gh-1548)
    - User part rewritten to accept IPv6 resp. domain after "@" (gh-1548)

### New Features
* IPv6 support:
    - IP addresses are now handled as objects rather than strings capable for
      handling both address types IPv4 and IPv6
    - iptables related actions have been amended to support IPv6 specific actions
      additionally
    - hostsdeny and route actions have been tested to be aware of v4 and v6 already
    - pf action for *BSD systems has been improved and supports now also v4 and v6
    - name resolution is now working for either address type
    - new conditional section functionality used in config resp. includes:
      - [Init?family=inet4] - IPv4 qualified hosts only
      - [Init?family=inet6] - IPv6 qualified hosts only
* Increment ban time (+ observer) functionality introduced.
  Thanks Serg G. Brester (sebres)
* Database functionality extended with bad ips.
* New reload functionality (now totally without restart, unbanning/rebanning, etc.),
  see gh-1557
* Several commands extended and new commands introduced:
  - `restart [--unban] [--if-exists] <JAIL>` - restarts the jail \<JAIL\>
    (alias for `reload --restart ... <JAIL>`)
  - `reload [--restart] [--unban] [--all]` - reloads the configuration without restarting
    of the server, the option `--restart` activates completely restarting of affected jails,
    thereby can unban IP addresses (if option `--unban` specified)
  - `reload [--restart] [--unban] [--if-exists] <JAIL>` - reloads the jail \<JAIL\>,
    or restarts it (if option `--restart` specified), at the same time unbans all IP addresses
    banned in this jail, if option `--unban` specified
  - `unban --all` - unbans all IP addresses (in all jails and database)
  - `unban <IP> ... <IP>` - unbans \<IP\> (in all jails and database) (see gh-1388)
  - introduced new option `-t` or `--test` to test configuration resp. start server only
    if configuration is clean (fails by wrong configured jails if option `-t` specified)
* New command action parameter `actionrepair` - command executed in order to restore
  sane environment in error case of `actioncheck`.
* Reporting via abuseipdb.com:
  - Bans can now be reported to abuseipdb
  - Catagories must be set in the config
  - Relevant log lines included in report

### Enhancements
* Huge increasing of fail2ban performance and especially test-cases performance (see gh-1109)
* Datedetector: in-place reordering using hits and last used time:
  matchTime, template list etc. rewritten because of performance degradation
* Prevent out of memory situation if many IP's makes extremely many failures (maxEntries)
* Introduced string to seconds (str2seconds) for configuration entries with time,
  use `1h` instead of `3600`, `1d` instead of `86400`, etc
* seekToTime - prevent completely read of big files first time (after start of service),
  initial seek to start time using half-interval search algorithm (see issue gh-795)
* Ticket and some other modules prepared to easy merge with newest version of 'ban-time-incr'
* Cache dnsToIp, ipToName to prevent long wait during retrieving of ip/name,
  especially for wrong dns or lazy dns-system
* FailManager memory-optimization: increases performance,
  prevents memory leakage, because don't copy failures list on some operations
* fail2ban-testcases - new options introduced:
    - `-f`, `--fast` to decrease wait intervals, avoid passive waiting, and skip
      few very slow test cases (implied memory database, see `-m` and no gamin tests `-g`)
    - `-g`, `--no-gamin` to prevent running of tests that require the gamin (slow)
    - `-m`, `--memory-db` - run database tests using memory instead of file
    - `-i`, `--ignore` - negate [regexps] filter to ignore tests matched specified regexps
* Background servicing: prevents memory leak on some platforms/python versions, using forced GC
  in periodic intervals (latency and threshold)
* executeCmd partially moved from action to new module utils
* Several functionality of class `DNSUtils` moved to new class `IPAddr`,
  both classes moved to new module `ipdns`
* Pseudo-conditional section introduced, for conditional substitution resp.
  evaluation of parameters for different family qualified hosts,
  syntax `[Section?family=inet6]` (currently use for IPv6-support only).
* All the backends were rewritten to get reload-possibility, performance increased,
  so fewer greedy regarding cpu- resp. system-load now
* Numeric log-level allowed now in server (resp. fail2ban.conf);
* Implemented better error handling in some multi-threaded routines; shutdown of jails
  rewritten (faster and safer, does not breaks shutdown process if some error occurred)
* Possibility for overwriting some configuration options (read with config-readers)
  with command line option, e. g.:
```bash
## start server with DEBUG log-level (ignore level read from fail2ban.conf):
fail2ban-client --loglevel DEBUG start
## or
fail2ban-server -c /cfg/path --loglevel DEBUG start
## keep server log-level by reload (without restart it)
fail2ban-client --loglevel DEBUG reload
## switch log-level back to INFO:
fail2ban-client set loglevel INFO
```
* Optimized BanManager: increase performance, fewer system load, try to prevent
  memory leakage:
  - better ban/unban handling within actions (e.g. used dict instead of list)
  - don't copy bans resp. its list on some operations;
  - added new unbantime handling to relieve unBanList (prevent permanent
    searching for tickets to unban)
  - prefer failure-ID as identifier of the ticket to its IP (most of the time
    the same, but it can be something else e.g. user name in some complex jails,
    as introduced in 0.10)
* Regexp enhancements:
  - build replacement of `<HOST>` substitution corresponding parameter
    `usedns` - dns-part will be added only if `usedns` is not `no`,
    also using fail2ban-regex
  - new replacement for `<ADDR>` in opposition to `<HOST>`, for separate
    usage of 2 address groups only (regardless of `usedns`), `ip4` and `ip6`
    together, without host (dns)
* Misconfigured jails don't prevent fail2ban from starting, server starts
  nevertheless, as long as one jail was successful configured (gh-1619)
  Message about wrong jail configuration logged in client log (stdout, systemd
  journal etc.) and in server log with error level
* More precise date template handling (WARNING: theoretically possible incompatibilities):
  - datedetector rewritten more strict as earlier;
  - default templates can be specified exacter using prefix/suffix syntax (via `datepattern`);
  - more as one date pattern can be specified using option `datepattern` now
    (new-line separated);
  - some default options like `datepattern` can be specified directly in
    section `[Definition]`, that avoids contrary usage of unnecessarily `[Init]`
    section, because of performance (each extra section costs time);
  - option `datepattern` can be specified in jail also (e. g. jails without filters
    or custom log-format, new-line separated for multiple patterns);
  - if first unnamed group specified in pattern, only this will be cut out from
    search log-line (e. g.: `^date:[({DATE})]` will cut out only datetime match
    pattern, and leaves `date:[] ...` for searching in filter);
  - faster match and fewer searching of appropriate templates
    (DateDetector.matchTime calls rarer DateTemplate.matchDate now);
  - several standard filters extended with exact prefixed or anchored date templates;
* Added possibility to recognize restored state of the tickets (see gh-1669).
  New option `norestored` introduced, to ignore restored tickets (after restart).
  To avoid execution of ban/unban for the restored tickets, `norestored = true`
  could be added in definition section of action.
  For conditional usage in the shell-based actions an interpolation `<restored>`
  could be used also. E. g. it is enough to add following script-piece at begin
  of `actionban` (or `actionunban`) to prevent execution:
  `if [ '<restored>' = '1' ]; then exit 0; fi;`
  Several actions extended now using `norestored` option:
  - complain.conf
  - dshield.conf
  - mail-buffered.conf
  - mail-whois-lines.conf
  - mail-whois.conf
  - mail.conf
  - sendmail-buffered.conf
  - sendmail-geoip-lines.conf
  - sendmail-whois-ipjailmatches.conf
  - sendmail-whois-ipmatches.conf
  - sendmail-whois-lines.conf
  - sendmail-whois-matches.conf
  - sendmail-whois.conf
  - sendmail.conf
  - smtp.py
  - xarf-login-attack.conf
* fail2ban-testcases:
  - `assertLogged` extended with parameter wait (to wait up to specified timeout,
    before we throw assert exception) + test cases rewritten using that
  - added `assertDictEqual` for compatibility to early python versions (< 2.7);
  - new `with_foreground_server_thread` decorator to test several client/server commands

0.10.0:
### Fixes
* `filter.d/apache-auth.conf`:
  - better failure recognition using short form of regex (url/referer are foreign inputs, see gh-1645)
* `filter.d/apache-common.conf` (`filter.d/apache-*.conf`):
  - support of apache log-format if logging into syslog/systemd (gh-1695), using parameter `logging`,
    parameter usage for jail:
      filter = apache-auth[logging=syslog]
    parameter usage for `apache-common.local`:
      logging = syslog
* `filter.d/pam-generic.conf`:
  - [grave] injection on user name to host fixed
* `filter.d/sshd.conf`:
  - rewritten using `prefregex` and used MLFID-related multi-line parsing
    (by using tag `<F-MLFID>` instead of buffering with `maxlines`);
  - optional parameter `mode` rewritten: normal (default), ddos, extra or aggressive (combines all),
    see sshd for regex details)
* `filter.d/sendmail-reject.conf`:
  - rewritten using `prefregex` and used MLFID-related multi-line parsing;
  - optional parameter `mode` introduced: normal (default), extra or aggressive
* `filter.d/haproxy-http-auth`: do not mistake client port for part of an IPv6 address (gh-1745)
* `filter.d/postfix.conf`:
    - updated to latest postfix formats
    - joined several postfix filter together (normalized and optimized version, gh-1825)
    - introduced new parameter `mode` (see gh-1825): more (default, combines normal and rbl), auth, normal,
      rbl, ddos, extra or aggressive (combines all)
    - postfix postscreen (resp. other RBL's compatibility fix, gh-1764, gh-1825)
* `filter.d/postfix-rbl.conf`: removed (replaced with `postfix[mode=rbl]`)
* `filter.d/postfix-sasl.conf`: removed (replaced with `postfix[mode=auth]`)
* `filter.d/roundcube-auth.conf`:
    - fixed regex when `X-Real-IP` or/and `X-Forwarded-For` are present after host (gh-1303);
    - fixed regex when logging authentication errors to journal instead to a local file (gh-1159);
    - additionally fixed more complex injections on username (e. g. using dot after fake host).
* `filter.d/ejabberd-auth.conf`: fixed failregex - accept new log-format (gh-993)
* `action.d/complain.conf`
  - fixed using new tag `<ip-rev>` (sh/dash compliant now)
* `action.d/sendmail-geoip-lines.conf`
  - fixed using new tag `<ip-host>` (without external command execution)
* fail2ban-regex: fixed matched output by multi-line (buffered) parsing
* fail2ban-regex: support for multi-line debuggex URL implemented (gh-422)
* fixed ipv6-action errors on systems not supporting ipv6 and vice versa (gh-1741)
* fixed directory-based log-rotate for pyinotify-backend (gh-1778)

### New Features
* New Actions:

* New Filters:

### Enhancements
* Introduced new filter option `prefregex` for pre-filtering using single regular expression (gh-1698);
* Many times faster and fewer CPU-hungry because of parsing with `maxlines=1`, so without
  line buffering (scrolling of the buffer-window).
  Combination of tags `<F-MLFID>` and `<F-NOFAIL>` can be used now to process multi-line logs
  using single-line expressions:
  - tag `<F-MLFID>`: used to identify resp. store failure info for groups of log-lines with the same
    identifier (e. g. combined failure-info for the same conn-id by `<F-MLFID>(?:conn-id)</F-MLFID>`,
    see sshd.conf for example);
  - tag `<F-MLFFORGET>`: can be used as mark to forget current multi-line MLFID (e. g. by connection
    closed, reset or disconnect etc);
  - tag `<F-NOFAIL>`: used as mark for no-failure (helper to accumulate common failure-info,
    e. g. from lines that contain IP-address);
  Opposite to obsolete multi-line parsing (using buffering with `maxlines`) it is more precise and
  can recognize multiple failure attempts within the same connection (MLFID).
* Several filters optimized with pre-filtering using new option `prefregex`, and multiline filter
  using `<F-MLFID>` + `<F-NOFAIL>` combination;
* Exposes filter group captures in actions (non-recursive interpolation of tags `<F-...>`,
  see gh-1698, gh-1110)
* Some filters extended with user name (can be used in gh-1243 to distinguish IP and user,
  resp. to remove after success login the user-related failures only);
* Safer, more stable and faster replaceTag interpolation (switched from cycle over all tags
  to re.sub with callable)
* substituteRecursiveTags optimization + moved in helpers facilities (because currently used
  commonly in server and in client)
* New tags (usable in actions):
  - `<fid>` - failure identifier (if raw resp. failures without IP address)
  - `<ip-rev>` - PTR reversed representation of IP address
  - `<ip-host>` - host name of the IP address
  - `<bancount>` - ban count of this offender if known as bad (started by 1 for unknown)
  - `<bantime>` - current ban-time of the ticket (prolongation can be retarded up to 10 sec.)
  - `<F-...>` - interpolates to the corresponding filter group capture `...`
  - `<fq-hostname>` - fully-qualified name of host (the same as `$(hostname -f)`)
  - `<sh-hostname>` - short hostname (the same as `$(uname -n)`)
* Introduced new action command `actionprolong` to prolong ban-time (e. g. set new timeout if expected);
  Several actions (like ipset, etc.) rewritten using net logic with `actionprolong`.
  Note: because ban-time is dynamic, it was removed from jail.conf as timeout argument (check jail.local).
* Allow to use filter options by `fail2ban-regex`, example:
  fail2ban-regex text.log "sshd[mode=aggressive]"
* Samples test case factory extended with filter options - dict in JSON to control
  filter options (e. g. mode, etc.):
  # filterOptions: {"mode": "aggressive"}
* Introduced new jail option "ignoreself", specifies whether the local resp. own IP addresses
  should be ignored (default is true). Fail2ban will not ban a host which matches such addresses.
  Option "ignoreip" affects additionally to "ignoreself" and don't need to include the DNS
  resp. IPs of the host self.
* Regex will be compiled as MULTILINE only if needed (buffering with `maxlines` > 1), that enables:
  - to improve performance by the single line parsing (see gh-1733);
  - make regex more precise (because distinguish between anchors `^`/`$` for the begin/end of string
    and the new-line character '\n', e. g. if coming from filters (like systemd journal) that allow
    the parsing of log-entries contain new-line chars (as single entry);
  - if multiline regex however expected (by single-line parsing without buffering) - prefix `(?m)`
    could be used in regex to enable it;
* Implemented execution of `actionstart` on demand (conditional), if action depends on `family` (gh-1742):
  - new action parameter `actionstart_on_demand` (bool) can be set to prevent/allow starting action
    on demand (default retrieved automatically, if some conditional parameter `param?family=...`
    presents in action properties), see `action.d/pf.conf` for example;
  - additionally `actionstop` will be executed only for families previously executing `actionstart`
    (starting on demand only)
* Introduced new command `actionflush`: executed in order to flush all bans at once
  e. g. by unban all, reload with removing action, stop, shutdown the system (gh-1743),
  the actions having `actionflush` do not execute `actionunban` for each single ticket
* Add new command `actionflush` default for several iptables/iptables-ipset actions (and common include);
* Add new jail option `logtimezone` to force the timezone on log lines that don't have an explicit one (gh-1773)
* Implemented zone abbreviations (like CET, CEST, etc.) and abbr+-offset functionality (accept zones
  like 'CET+0100'), for the list of abbreviations see strptime.TZ_STR;
* Introduced new option `--timezone` (resp. `--TZ`) for `fail2ban-regex`.
* Tokens `%z` and `%Z` are changed (more precise now);
* Introduced new tokens `%Exz` and `%ExZ` that fully support zone abbreviations and/or offset-based
  zones (implemented as enhancement using custom `datepattern`, because may be too dangerous for default
  patterns and tokens like `%z`);
  Note: the extended tokens supported zone abbreviations, but it can parse 1 or 3-5 char(s) in lowercase.
        Don't use them in default date-patterns (if not anchored, few precise resp. optional).
        Because python currently does not support mixing of case-sensitive with case-insensitive matching,
	the TZ (in uppercase) cannot be combined with `%a`/`%b` etc (that are currently case-insensitive),
	to avoid invalid date-time recognition in strings like '11-Aug-2013 03:36:11.372 error ...' with
	wrong TZ "error".
        Hence `%z` currently match literal Z|UTC|GMT only (and offset-based), and `%Exz` - all zone
	abbreviations.
* `filter.d/courier-auth.conf`: support failed logins with method only
* Config reader's: introduced new syntax `%(section/option)s`, in opposite to extended interpolation of
  python 3 `${section:option}` work with all supported python version in fail2ban and this syntax is
  like our another features like `%(known/option)s`, etc. (gh-1750)
* Variable `default_backend` switched to `%(default/backend)s`, so totally backwards compatible now,
  but now the setting of parameter `backend` in default section of `jail.local` can overwrite default
  backend also (see gh-1750). In the future versions parameter `default_backend` can be removed (incompatibility,
  possibly some distributions affected).

0.10.1:
### Fixes
* fix Gentoo init script's shebang to use openrc-run instead of runscript (gh-1891)
* jail "pass2allow-ftp" supply blocktype and returntype parameters to the action (gh-1884)
* avoid using "ANSI_X3.4-1968" as preferred encoding (if missing environment variables
  'LANGUAGE', 'LC_ALL', 'LC_CTYPE', and 'LANG', see gh-1587).
* action.d/pf.conf: several fixes for pf-action like anchoring, etc. (see gh-1866, gh-1867);
* fixed ignoreself issue "Retrieving own IPs of localhost failed: inet_pton() argument 2 must be string, not int" (see gh-1865);
* fixed tags `<fq-hostname>` and `<sh-hostname>`, could be used without ticket (a. g. in `actionstart` etc., gh-1859).

* setup.py: fixed several setup facilities (gh-1874):
  - don't check return code by dry-run: returns 256 on some python/setuptool versions;
  - `files/fail2ban.service` renamed as template to `files/fail2ban.service.in`;
  - setup process generates `build/fail2ban.service` from `files/fail2ban.service.in` using distribution related bin-path;
  - bug-fixing by running setup with option `--dry-run`;

### New Features
* introduced new command-line options `--dp`, `--dump-pretty` to dump the configuration using more
  human readable representation (opposite to `-d`);

### Enhancements
* nftables actions are IPv6-capable now (gh-1893)
* filter.d/dovecot.conf: introduced mode `aggressive` for cases like "disconnected before auth was ready" (gh-1880)

0.10.2:
### Incompatibility list:
* The configuration for jails using banaction `pf` can be incompatible after upgrade, because pf-action uses
  anchors now (see `action.d/pf.conf` for more information). If you want use obsolete handling without anchors,
  just rewrite it in the `jail.local` by overwrite of `pfctl` parameter, e. g. like `banaction = pf[pfctl="pfctl"]`.

### Fixes
* Fixed logging to systemd-journal: new logtarget value SYSOUT can be used instead of STDOUT, to avoid
  write of the time-stamp, if logging to systemd-journal from foreground mode (gh-1876)
* Fixed recognition of the new date-format on mysqld-auth filter (gh-1639)
* jail.conf: port `imap3` replaced with `imap` everywhere, since imap3 is not a standard port and old rarely
  (if ever) used and can missing on some systems (e. g. debian stretch), see gh-1942.
* config/paths-common.conf: added missing initial values (and small normalization in config/paths-*.conf)
  in order to avoid errors while interpolating (e. g. starting with systemd-backend), see gh-1955.
* `action.d/pf.conf`:
  - fixed syntax error in achnor definition (documentation, see gh-1919);
  - enclose ports in braces for multiport jails (see gh-1925);
* `action.d/firewallcmd-ipset.conf`: fixed create of set for ipv6 (missing `family inet6`, gh-1990)
* `filter.d/sshd.conf`:
  - extended failregex for modes "extra"/"aggressive": now finds all possible (also future)
    forms of "no matching (cipher|mac|MAC|compression method|key exchange method|host key type) found",
    see "ssherr.c" for all possible SSH_ERR_..._ALG_MATCH errors (gh-1943, gh-1944);
  - fixed failregex in order to avoid banning of legitimate users with multiple public keys (gh-2014, gh-1263);

### New Features
* datedetector: extended default date-patterns (allows extra space between the date and time stamps);
  introduces 2 new format directives (with corresponding %Ex prefix for more precise parsing):
  - %k - one- or two-digit number giving the hour of the day (0-23) on a 24-hour clock,
    (corresponds %H, but allows space if not zero-padded).
  - %l - one- or two-digit number giving the hour of the day (12-11) on a 12-hour clock,
    (corresponds %I, but allows space if not zero-padded).
* `filter.d/exim.conf`: added mode `aggressive` to ban flood resp. DDOS-similar failures (gh-1983);
* New Actions:
  - `action.d/nginx-block-map.conf` - in order to ban not IP-related tickets via nginx (session blacklisting in
    nginx-location with map-file);

### Enhancements
* jail.conf: extended with new parameter `mode` for the filters supporting it (gh-1988);
* action.d/pf.conf: extended with bulk-unban, command `actionflush` in order to flush all bans at once.
* Introduced new parameters for logging within fail2ban-server (gh-1980).
  Usage `logtarget = target[facility=..., datetime=on|off, format="..."]`:
  - `facility` - specify syslog facility (default `daemon`, see https://docs.python.org/2/library/logging.handlers.html#sysloghandler
     for the list of facilities);
  - `datetime` - add date-time to the message (default on, ignored if `format` specified);
  - `format` - specify own format how it will be logged, for example for short-log into STDOUT:
      `fail2ban-server -f --logtarget 'stdout[format="%(relativeCreated)5d | %(message)s"]' start`;
* Automatically recover or recreate corrupt persistent database (e. g. if failed to open with
  'database disk image is malformed'). Fail2ban will create a backup, try to repair the database,
  if repair fails - recreate new database (gh-1465, gh-2004).

0.10.3:
### ver. 0.10.3.1:
* fixed JSON serialization for the set-object within dump into database (gh-2103).

### Fixes
* `filter.d/asterisk.conf`: fixed failregex prefix by log over remote syslog server (gh-2060);
* `filter.d/exim.conf`: failregex extended - SMTP call dropped: too many syntax or protocol errors (gh-2048);
* `filter.d/recidive.conf`: fixed if logging into systemd-journal (SYSLOG) with daemon name in prefix, gh-2069;
* `filter.d/sendmail-auth.conf`, `filter.d/sendmail-reject.conf` :
  - fixed failregex, sendmail uses prefix 'IPv6:' logging of IPv6 addresses (gh-2064);
* `filter.d/sshd.conf`:
  - failregex got an optional space in order to match new log-format (see gh-2061);
  - fixed ddos-mode regex to match refactored message (some versions can contain port now, see gh-2062);
  - fixed root login refused regex (optional port before preauth, gh-2080);
  - avoid banning of legitimate users when pam_unix used in combination with other password method, so
    bypass pam_unix failures if accepted available for this user gh-2070;
  - amend to gh-1263 with better handling of multiple attempts (failures for different user-names recognized immediatelly);
  - mode `ddos` (and `aggressive`) extended to catch `Connection closed by ... [preauth]`, so in DDOS mode
    it counts failure on closing connection within preauth-stage (gh-2085);
* `action.d/abuseipdb.conf`: fixed curl cypher errors and comment quote-issue (gh-2044, gh-2101);
* `action.d/badips.py`: implicit convert IPAddr to str, solves an issue "expected string, IPAddr found" (gh-2059);
* `action.d/hostsdeny.conf`: fixed IPv6 syntax (enclosed in square brackets, gh-2066);
* (Free)BSD ipfw actionban fixed to allow same rule added several times (gh-2054);

### New Features
* several stability and performance optimizations, more effective filter parsing, etc;
* stable runnable within python versions 3.6 (as well as within 3.7-dev);

### Enhancements
* `filter.d/apache-auth.conf`: detection of Apache SNI errors resp. misredirect attempts (gh-2017, gh-2097);
* `filter.d/apache-noscript.conf`: extend failregex to match "Primary script unknown", e. g. from php-fpm (gh-2073);
* date-detector extended with long epoch (`LEPOCH`) to parse milliseconds/microseconds posix-dates (gh-2029);
* possibility to specify own regex-pattern to match epoch date-time, e. g. `^\[{EPOCH}\]` or `^\[{LEPOCH}\]` (gh-2038);
  the epoch-pattern similar to `{DATE}` patterns does the capture and cuts out the match of whole pattern from the log-line,
  e. g. date-pattern `^\[{LEPOCH}\]\s+:` will match and cut out `[1516469849551000] :` from begin of the log-line.
* badips.py now uses https instead of plain http when requesting badips.com (gh-2057);
* add support for "any" badips.py bancategory, to be able to retrieve IPs from all categories with a desired score (gh-2056);
* Introduced new parameter `padding` for logging within fail2ban-server (default on, excepting SYSLOG):
  Usage `logtarget = target[padding=on|off]`

0.10.4:
### Fixes
* `filter.d/dovecot.conf`:
  - failregex enhancement to catch sql password mismatch errors (gh-2153);
  - disconnected with "proxy dest auth failed" (gh-2184);
* `filter.d/freeswitch.conf`:
  - provide compatibility for log-format from gh-2193:
    * extended with new default date-pattern `^(?:%%Y-)?%%m-%%d[ T]%%H:%%M:%%S(?:\.%%f)?` to cover
      `YYYY-mm-dd HH:MM::SS.ms` as well as `mm-dd HH:MM::SS.ms` (so year is optional);
    * more optional arguments in log-line (so accept [WARN] as well as [WARNING] and optional [SOFIA] hereafter);
  - extended with mode parameter, allows to avoid matching of messages like `auth challenge (REGISTER)`
    (see gh-2163) (currently `extra` as default to be backwards-compatible), see comments in filter
    how to set it to mode `normal`.
* `filter.d/domino-smtp.conf`:
  - recognizes failures logged using another format (something like session-id, IP enclosed in square brackets);
  - failregex extended to catch connections rejected for policy reasons (gh-2228);
* `action.d/hostsdeny.conf`: fix parameter in config (dynamic parameters stating with '_' are protected
  and don't allowed in command-actions), see gh-2114;
* decoding stability fix by wrong encoded characters like utf-8 surrogate pairs, etc (gh-2171):
  - fail2ban running in the preferred encoding now (as default encoding also within python 2.x), mostly
    `UTF-8` in opposite to `ascii` previously, so minimizes influence of implicit conversions errors;
  - actions: avoid possible conversion errors on wrong-chars by replace tags;
  - database: improve adapter/converter handlers working on invalid characters in sense of json and/or sqlite-database;
    additionally both are exception-safe now, so avoid possible locking of database (closes gh-2137);
  - logging in fail2ban is process-wide exception-safe now.
* repaired start-time of initial seek to time (as well as other log-parsing related data),
  if parameter `logpath` specified before `findtime`, `backend`, `datepattern`, etc (gh-2173)
* systemd: fixed type error on option `journalflags`: an integer is required (gh-2125);

### New Features
* new option `ignorecache` to improve performance of ignore failure check (using caching of `ignoreip`,
  `ignoreself` and `ignorecommand`), see `man jail.conf` for syntax-example;
* `ignorecommand` extended to use actions-similar replacement (capable to interpolate
  all possible tags like `<ip-host>`, `<family>`, `<fid>`, `F-USER` etc.)

### Enhancements
* `filter.d/dovecot.conf`: extended with tags F-USER (and alternatives) to collect user-logins (gh-2168)
* since v.0.10.4, fail2ban-client, fail2ban-server and fail2ban-regex will return version without logo info,
  additionally option `-V` can be used to get version in normalized machine-readable short format.

0.10.5:
### Fixes
* [compatibility] systemd backend: default flags changed to SYSTEM_ONLY(4), fixed in gh-2444 in order to ignore
  user session files per default, so could prevent "Too many open files" errors on a lot of user sessions (see gh-2392)
* [grave] fixed parsing of multi-line filters (`maxlines` > 1) together with systemd backend,
  now systemd-filter replaces newlines in message from systemd journal with `\n` (otherwise
  multi-line parsing may be broken, because removal of matched string from multi-line buffer window
  is confused by such extra new-lines, so they are retained and got matched on every followed
  message, see gh-2431)
* [stability] prevent race condition - no unban if the bans occur continuously (gh-2410);
  now an unban-check will happen not later than 10 tickets get banned regardless there are
  still active bans available (precedence of ban over unban-check is 10 now)
* fixed read of included config-files (`.local` overwrites options of `.conf` for config-files
  included with before/after)
* `action.d/abuseipdb.conf`: switched to use AbuseIPDB API v2 (gh-2302)
* `action.d/badips.py`: fixed start of banaction on demand (which may be IP-family related), gh-2390
* `action.d/helpers-common.conf`: rewritten grep arguments, now options `-wF` used to match only
  whole words and fixed string (not as pattern), gh-2298
* `filter.d/apache-auth.conf`:
  - ignore errors from mod_evasive in `normal` mode (mode-controlled now) (gh-2548);
  - extended with option `mode` - `normal` (default) and `aggressive`
* `filter.d/sshd.conf`:
  - matches `Bad protocol version identification` in `ddos` and `aggressive` modes (gh-2404).
  - captures `Disconnecting ...: Change of username or service not allowed` (gh-2239, gh-2279)
  - captures `Disconnected from ... [preauth]`, preauth phase only, different handling by `extra`
    (with supplied user only) and `ddos`/`aggressive` mode (gh-2115, gh-2239, gh-2279)
* `filter.d/mysqld-auth.conf`:
  - MYSQL 8.0.13 compatibility (log-error-verbosity = 3), log-format contains few additional words
    enclosed in brackets after "[Note]" (gh-2314)
* `filter.d/sendmail-reject.conf`:
  - `mode=extra` now captures port IDs of `TLSMTA` and `MSA` (defaults for ports 465 and 587 on some distros)
* `files/fail2ban.service.in`: fixed systemd-unit template - missing nftables dependency (gh-2313)
* several `action.d/mail*`: fixed usage with multiple log files (ultimate fix for gh-976, gh-2341)
* `filter.d/sendmail-reject.conf`: fixed journal usage for some systems (e. g. CentOS): if only identifier
  set to `sm-mta` (no unit `sendmail`) for some messages (gh-2385)
* `filter.d/asterisk.conf`: asterisk can log additional timestamp if logs into systemd-journal
  (regex extended with optional part matching this, gh-2383)
* `filter.d/postfix.conf`:
    - regexp's accept variable suffix code in status of postfix for precise messages (gh-2442)
    - extended with new postfix filter mode `errors` to match "too many errors" (gh-2439),
      also included within modes `normal`, `more` (`extra` and `aggressive`), since postfix
      parameter `smtpd_hard_error_limit` is default 20 (additionally consider `maxretry`)
* `filter.d/named-refused.conf`:
    - support BIND 9.11.0 log format (includes an additional field @0xXXX..., gh-2406);
    - `prefregex` extended, more selective now (denied/NOTAUTH suffix moved from failregex, so no catch-all there anymore)
* `filter.d/sendmail-auth.conf`, `filter.d/sendmail-reject.conf` :
  - ID in prefix can be longer as 14 characters (gh-2563);
* all filters would accept square brackets around IPv4 addresses also (e. g. monit-filter, gh-2494)
* avoids unhandled exception during flush (gh-2588)
* fixes pass2allow-ftp jail - due to inverted handling, action should prohibit access per default for any IP,
  therefore reset start on demand parameter for this action (it will be started immediately by repair);
* auto-detection of IPv6 subsystem availability (important for not on-demand actions or jails, like pass2allow);

### New Features
* new replacement tags for failregex to match subnets in form of IP-addresses with CIDR mask (gh-2559):
  - `<CIDR>` - helper regex to match CIDR (simple integer form of net-mask);
  - `<SUBNET>` - regex to match sub-net adresses (in form of IP/CIDR, also single IP is matched, so part /CIDR is optional);
* grouped tags (`<ADDR>`, `<HOST>`, `<SUBNET>`) recognize IP addresses enclosed in square brackets
* new failregex-flag tag `<F-MLFGAINED>` for failregex, signaled that the access to service was gained
  (ATM used similar to tag `<F-NOFAIL>`, but it does not add the log-line to matches, gh-2279)
* filters: introduced new configuration parameter `logtype` (default `file` for file-backends, and
  `journal` for journal-backends, gh-2387); can be also set to `rfc5424` to force filters (which include common.conf)
  to use RFC 5424 conform prefix-line per default (gh-2467);
* for better performance and safety the option `logtype` can be also used to
  select short prefix-line for file-backends too for all filters using `__prefix_line` (`common.conf`),
  if message logged only with `hostname svc[nnnn]` prefix (often the case on several systems):
```ini
[jail]
backend = auto
filter = flt[logtype=short]
```
* `filter.d/common.conf`: differentiate `__prefix_line` for file/journal logtype's (speedup and fix parsing
  of systemd-journal);
* `filter.d/traefik-auth.conf`: used to ban hosts, that were failed through traefik
* `filter.d/znc-adminlog.conf`: new filter for ZNC (IRC bouncer); requires the adminlog module to be loaded

### Enhancements
* introduced new options: `dbmaxmatches` (fail2ban.conf) and `maxmatches` (jail.conf) to contol
  how many matches per ticket fail2ban can hold in memory and store in database (gh-2402, gh-2118);
* fail2ban.conf: introduced new section `[Thread]` and option `stacksize` to configure default size
  of the stack for threads running in fail2ban (gh-2356), it could be set in `fail2ban.local` to
  avoid runtime error "can't start new thread" (see gh-969);
* jail-reader extended (amend to gh-1622): actions support multi-line options now (interpolations
  containing new-line);
* fail2ban-client: extended to ban/unban multiple tickets (see gh-2351, gh-2349);
  Syntax:
  - `fail2ban-client set <jain> banip <ip1> ... <ipN>`
  - `fail2ban-client set <jain> unbanip [--report-absent] <ip1> ... <ipN>`
* fail2ban-client: extended with new feature which allows to inform fail2ban about single or multiple
  attempts (failure) for IP (resp. failure-ID), see gh-2351;
  Syntax:
  - `fail2ban-client set <jail> attempt <ip> [<failure-message1> ... <failure-messageN>]`
* `action.d/nftables.conf`:
  - isolate fail2ban rules into a dedicated table and chain (gh-2254)
  - `nftables-allports` supports multiple protocols in single rule now
  - combined nftables actions to single action `nftables`:
    * `nftables-common` is removed (replaced with single action `nftables` now)
    * `nftables-allports` is obsolete, superseded by `nftables[type=allports]`
    * `nftables-multiport` is obsolete, superseded by `nftables[type=multiport]`
  - allowed multiple protocols in `nftables[type=multiport]` action (single set with multiple rules
    in chain), following configuration in jail would replace 3 separate actions, see
    fail2ban/fail2ban#2254 (comment)
* `action.d/badips.py`: option `loglevel` extended with level of summary message,
  following example configuration logging summary with NOTICE and rest with DEBUG log-levels:
  `action = badips.py[loglevel="debug, notice"]`
* samplestestcase.py (testSampleRegexsFactory) extended:
  - allow coverage of journal logtype;
  - new option `fileOptions` to set common filter/test options for whole test-file;
* large enhancement: auto-reban, improved invariant check and conditional operations (gh-2588):
  - improves invariant check and repair (avoid unhandled exception, consider family on conditional operations, etc),
    prepared for bulk re-ban in repair case (if bulk-ban becomes implemented);
  - automatic reban (repeat banning action) after repair/restore sane environment, if already logged ticket causes
    new failures (via new action operation `actionreban` or `actionban` if still not defined in action);
  * introduces banning epoch for actions and tickets (to distinguish or recognize removed set of the tickets);
  * invariant check avoids repair by unban/stop (unless parameter `actionrepair_on_unban` set to `true`);
  * better handling for all conditional operations (distinguish families for certain operations like
    repair/flush/stop, prepared for other families, e. g. if different handling for subnets expected, etc);
  * partially implements gh-980 (more breakdown safe handling);
  * closes gh-1680 (better as large-scale banning implementation with on-demand reban by failure,
    at least unless a bulk-ban gets implemented);
* fail2ban-regex - several enhancements and fixes:
  - improved usage output (don't put a long help if an error occurs);
  - new option `--no-check-all` to avoid check of all regex's (first matched only);
  - new option `-o`, `--out` to set token only provided in output (disables check-all and outputs only expected data).

0.11.1:
### Compatibility:
* to v.0.10:
  - 0.11 is totally compatible to 0.10 (configuration- and API-related stuff), but the database
    got some new tables and fields (auto-converted during the first start), so once updated to 0.11, you
    have to remove the database /var/lib/fail2ban/fail2ban.sqlite3 (or its different to 0.10 schema)
    if you would need to downgrade to 0.10 for some reason.
* to v.0.9:
  - Filter (or `failregex`) internal capture-groups:

    * If you've your own `failregex` or custom filters using conditional match `(?P=host)`, you should
      rewrite the regex like in example below resp. using `(?:(?P=ip4)|(?P=ip6)` instead of `(?P=host)`
      (or `(?:(?P=ip4)|(?P=ip6)|(?P=dns))` corresponding your `usedns` and `raw` settings).

      Of course you can always define your own capture-group (like below `_cond_ip_`) to do this.
      ```
      testln="1500000000 failure from 192.0.2.1: bad host 192.0.2.1"
      fail2ban-regex "$testln" "^\s*failure from (?P<_cond_ip_><HOST>): bad host (?P=_cond_ip_)$"
      ```
    * New internal groups (currently reserved for internal usage):
      `ip4`, `ip6`, `dns`, `fid`, `fport`, additionally `user` and another captures in lower case if
      mapping from tag `<F-*>` used in failregex (e. g. `user` by `<F-USER>`).

  - v.0.10 and 0.11 use more precise date template handling, that can be theoretically incompatible to some
    user configurations resp. `datepattern`.

  - Since v0.10 fail2ban supports the matching of IPv6 addresses, but not all ban actions are
    IPv6-capable now.

### Fixes
* purge database will be executed now (within observer).
* restoring currently banned ip after service restart fixed
  (now < timeofban + bantime), ignore old log failures (already banned)
* upgrade database: update new created table `bips` with entries from table `bans` (allows restore
  current bans after upgrade from version <= 0.10)

### New Features
* Increment ban time (+ observer) functionality introduced.
* Database functionality extended with bad ips.
* New tags (usable in actions):
  - `<bancount>` - ban count of this offender if known as bad (started by 1 for unknown)
  - `<bantime>` - current ban-time of the ticket (prolongation can be retarded up to 10 sec.)
* Introduced new action command `actionprolong` to prolong ban-time (e. g. set new timeout if expected);
  Several actions (like ipset, etc.) rewritten using net logic with `actionprolong`.
  Note: because ban-time is dynamic, it was removed from jail.conf as timeout argument (check jail.local).

### Enhancements
* algorithm of restore current bans after restart changed: update the restored ban-time (and therefore
  end of ban) of the ticket with ban-time of jail (as maximum), for all tickets with ban-time greater
  (or persistent); not affected if ban-time of the jail is unchanged between stop/start.
* added new setup-option `--without-tests` to skip building and installing of tests files (gh-2287).
* added new command `fail2ban-client get <JAIL> banip ?sep-char|--with-time?` to get the banned ip addresses (gh-1916).

Pkgsrc changes :
* switched to the Github framework for distfile fetching ;
* updated the config files lists (fail2ban puts a lot of files into config files) ;
* updated substition for better pkgsrc path handling in config files ;
* call the python tool "2to3" to convert all the python 2 code still present ;
* as a result, PLIST needed updating.
jperkin pushed a commit that referenced this pull request May 20, 2020
v0.9.5 (2020-03-28) : I Knew Her, She Knew Me
----------------------------------------------

Fix
~~~
- `eyeD3 --genre ""` to clear genre frame restored.
- Genre id->name mapping for non-standard genres and custom maps.


v0.9.4 (2020-03-21) : The Devil Made Me Do It
-----------------------------------------------

New
~~~
- Relative volume adjustments (RVA2 and RVAD) (#399)
- Tag properties copyright and encoded_by
- Support GRP1 (Apple) frames.

Changes
~~~~~~~
- Genre serialization not ID3 v2.3 format by default, and other genre cleanup (#402)
  fixes #382

Fix
~~~
- Date correctness between ID3 versions (#396)
- PopularityFrame email encoding bug.
- Plugins more featured in docs


v0.9.3 (2020-03-01) : It Dawned On Me
--------------------------------------

Changes
~~~~~~~
- Track/disc numbers can be set with integer strings.
- Disc number getter and setter hooks

v0.9.2 (2020-02-10) : Into The Future
--------------------------------------

Fix
~~~
- Removed setting of PYTHONIOENCODING, it breaks MacOS.
  Fixes #388


v0.9.1 (2020-02-09) : Dead and Gone
------------------------------------

Fix
~~~
- Docs and pep8.

Other
~~~~~
- Experiment with setting utf-8 writer for stdout and stderr.


v0.9 (2020-01-01) : Favorite Thing
-----------------------------------

Major Changes
~~~~~~~~~~~~~
- Dropped support for Python versions 2.7, 3.4, and 3.5.
- File scanning is no longer recursive by default; use `-r / --recursive`.
- Default log-level changed from WARNING to ERROR.

New
~~~
- Mime-type detection uses filetype.py (libmagic no longer required)
- setFileScannerOpts function accepts `default_recursive` option.
- A new `jsontag` plugin for converting tags to JSON.
- A new `extract` plugin for extracting tags from media.
- A new `yamltag` plugin for converting tags to YAML.
- A new `mimetypes` plugin for listing file mime-types / measuring performance
- Original artist support (TOPE frame, --orig-artist)
- Added support for Python 3.8 and pypy3.

Changes
~~~~~~~
- Log warning when ID3 v1.x text truncation occurs. Fixes #299.
- Accept (invalid) date strings for the form YYYYMMDD. Fixes #379
- Adjust replay gain correctly for lame >= 3.95.1 headers.
- Added -r/--recursive argument. eyeD3 is no longer recursive by default (#378)
- Regenerated grako parser.
- New ValueError for _setNum when unknown type/values are passed.
- Moved src/* to top-level repo directory.

Fix
~~~
- PRIV data type checking, fixed examples, etc.
- Use tox for `make test`
- ID3 v2.3 to v2.4 date conversion.
- Match mp3 mime-types against all possible mime-types.
  Specifically, application/x-font-gdos. Fixes #338
- Fix simple typo: titel -> title. <tim.gates@iress.com>
- Fixed: load the right config file in arguments. <zhumumu@gmail.com>
- Fix issue tracker link. Fixes #333.
- Fixed art plugin when `pylast` is not installed.
- Unbound variable for track num/total.  Fixes #327.
- Fixed MP3 header search to not false match on BOMs.
- Honor APIC text encoding when description is "".  #200.
- Fixed bug with improper types when re-rendering unique file ID. (#324)
  <gabrieldiegoteixeira@gmail.com>
- UFID fixes, update (#325) <gabrieldiegoteixeira@gmail.com>

Other
~~~~~
- Deprecation of eyed3.utils.guessMimeType
- Removed ipdb from dev requirements


v0.8.12 (2019-12-27)
---------------------

Changes
~~~~~~~
- Accept (invalid) date strings for the form YYYYMMDD. Fixes #379

Other
~~~~~
- Test with py38


v0.8.11 (2019-11-09)
------------------------

Fix
~~~
- ID3 v2.3 to v2.4 date conversion.
- Match mp3 mime-types against all possible mime-types.
  Specifically, application/x-font-gdos. Fixes #338


v0.8.10 (2019-03-07) : Apples
------------------------------

New
~~~
- Log warning when ID3 v1.x text truncation occurs. Fixes #299.

Fix
~~~
- Honor APIC text encoding when description is "".  #200.
- Fixed bug with improper types when re-rendering unique file ID. (#324)
  <gabrieldiegoteixeira@gmail.com>


v0.8.9 (2019-01-12) : Descent Into...
--------------------------------------

Changes
~~~~~~~
- Fixup plugin: -t changed to --type.
- Pin pathlib to latest version 1.0.1 (#304) <github-bot@pyup.io>

Fix
~~~
- Force no-color output when stdout is not a terminal (#297)
  <gaetano.guerriero@gmx.com>
- Requirements.txt: pathlib is only needed for older python versions
  (#284) <Mic92@users.noreply.github.com>
- Art plugin: Pin pylast to 2.x to preserve Python2 support.


v0.8.8 (2018-11-28) : In Ruins
------------------------------

New
~~~
- Follow symlink directories. Fixes #224

Changes
~~~~~~~
- Eyed3.core.AudioInfo `time_secs` is now a float and non-lossy. Fixes #210
- Removed Python 3.3 support.

Fix
~~~
- Better type handling during TLEN [fixup plugin].
- Don't tweak logging by default, only thru `main`. Fixes #243

Other
~~~~~
- Added a separate example for Windows (--add-image <url>) [Addresses
  the issue #219] (#220) <chamatht@gmail.com>


v0.8.7 (2018-06-11) : Aeon
---------------------------

Fix
~~~
- Only use os.fwalk where supported.


v0.8.6 (2018-05-27) : Robot Man
--------------------------------

New
~~~
- Art plugin can now download album covers from last.fm.

Changes
~~~~~~~
- Use os.fwalk for its better performance (esp. >= py37) Fixes #166
- TagTemplate `path_friendly` is now a string, namely the delimiter to use.

Fix
~~~
- Classic plugin: --write-image will work with --quiet. Fixes #188
- Multiple fixes for display plugin %images% replacements. Fixes #176
- Allow --remove-* options to work when there are no tags. Fixes #183


v0.8.5 (2018-03-27) : 30$ Bag
-----------------------------

New
~~~
- Mp3AudioFile.initTag now returns the new tag.
- Eyed3.core.EP_MAX_SIZE_HINT.
- Added docs for install devel dependencies and test data.

Changes
~~~~~~~
- Similarly to TextFrame, fallback to latin1 for invalid encodings.
- Removed paver as a dep.
- Removed fabfile and mkenv.
- Clean pytest_cache.
- Nicfit.py cc update.

Fix
~~~
- Handle missing `fcntl` on Windows. Fixes #135.
- In addition to None, "" will now clear dates.
- Update index.rst to reflect the code is in a Git repo, not Mercurial (#164)
  <deoren@users.noreply.github.com>

Other
~~~~~
- Update pytest from 3.2.2 to 3.5.0 (#175) <github-bot@pyup.io>
- Update twine from 1.9.1 to 1.11.0 (#173) <github-bot@pyup.io>
- Update sphinx from 1.6.5 to 1.7.2 (#174) <github-bot@pyup.io>
- Update sphinxcontrib-paverutils from 1.16.0 to 1.17.0 (#172) <github-
  bot@pyup.io>
- Update pytest-runner from 3.0 to 4.2 (#171) <github-bot@pyup.io>
- Update nicfit.py from 0.7 to 0.8 (#161) <github-bot@pyup.io>
- Update ipdb from 0.10.3 to 0.11 (#159) <github-bot@pyup.io>
- Update factory-boy from 2.9.2 to 2.10.0 (#150) <github-bot@pyup.io>
- Update pyaml from 17.10.0 to 17.12.1 (#138) <github-bot@pyup.io>
- Update python-magic to 0.4.15 (#130) <github-bot@pyup.io>
- Update pip-tools from 1.10.1 to 1.11.0 (#129) <github-bot@pyup.io>
- Update check-manifest from 0.35 to 0.36 (#125) <github-bot@pyup.io>


v0.8.4 (2017-11-17) : The Cold Vein
-------------------------------------

New
~~~
- Composer (TCOM) support (#123)
- Check for version incompatibilities during version changes.

Changes
~~~~~~~
- More forgiving of invalid text encoding identifiers (fixes #101)
- More forgiving of bad Unicode in text frames (fixes #105)
- EyeD3 cmd line helper turned not session-scoped fixture.
- Only warn about missing grako when the plugin is used. Fixes #115.

Fix
~~~
- Fix python3 setup when system encoding is not utf-8 (#120)
  <x.guerriero@tin.it>
- Fix bad frames detection in stats plugin for python3 (#113)
  <x.guerriero@tin.it>
- Script exits with 0 status when called with --version/--help (#109)
  <x.guerriero@tin.it>
- Help pymagic with poorly encoded filenames.
- [display plugin] Handle comments.
- [display plugin] Handle internal exception types. Fixes #118.
- IOError (nor OSError) have a message attr.

Other
~~~~~
- Set theme jekyll-theme-slate.
- Update pytest to 3.2.5 (#122) <github-bot@pyup.io>
- Update pytest-runner to 3.0 (#108) <github-bot@pyup.io>
- Update sphinx to 1.6.5 (#106) <github-bot@pyup.io>
- Update flake8 to 3.5.0 (#107) <github-bot@pyup.io>


v0.8.3 (2017-10-22) : So Alone
-------------------------------

Fix
~~~
- Reload and process after tag removals, fixes #102. (PR #103)
- Display incorrectly encoded strings (usually filenames)

Other
~~~~~
- Make the classic output span the actual width of the tty so you can
  see the actual path with a long file name. (#92) <redshodan@gmail.com>


v0.8.2 (2017-09-23) : Standing At the Station
----------------------------------------------

New
~~~
- Pypy and pypy3 support.

Changes
~~~~~~~
- 'nose' is no longer used/required for testing.

Fix
~~~
- Fix for Unicode paths when using Python2.  Fixes #56.


v0.8.1 (2017-08-26) : I Can't Talk To You
------------------------------------------

New
~~~
- ``make pkg-test-data`` target.
- Sample mime-type tests.

Fix
~~~
- Added ``python-magic`` as a dependency for reliable mime-type detection.
  Fixes #61
- Add pathlib to requirements. Fixes #43.
- [doc] Fixed github URL.


v0.8 (2017-05-13) : I Don't Know My Name
-----------------------------------------
.. warning::
  This release is **NOT** API compatible with 0.7.x. The majority
  of the command line interface has been preserved although many options
  have either changed or been removed.  Additionally, support for Python 2.6
  has been dropped.

New
~~~
- Python 3 support (version 2.7 and >= 3.3 supported)
- The Display plugin (-P/--plugin display) enables complete control over tag
  output. Requires ``grako``. If using pip, ``pip install eyeD3[display]``.
  Contributed by Sebastian Patschorke.
- Genre.parse(id3_std=False) (and --non-std-genres) to disable genre #
  mapping.
- eyed3.load accept pathlib.Path arguments.
- eyed3.core.AudioFile accept pathlib.Path arguments.
- eyed3.utils.walk accept pathlib.Path arguments.
- New manual page. Contributed by Gaetano Guerriero
- ``make test-data``

Changes
~~~~~~~~
- Project home from to GitHub: https://github.com/nicfit/eyeD3

Fix
~~~
- Lang fixes, and no longer coerce invalids to eng.

Other
~~~~~
- Moved to pytest, although unittest not yet purged.
jperkin pushed a commit that referenced this pull request Jul 14, 2020
### All Platforms
- Allow the RPC server to listen on an IPv6 address ([#161](transmission/transmission#161))
- Change `TR_CURL_SSL_VERIFY` to `TR_CURL_SSL_NO_VERIFY` and enable verification by default ([#334](transmission/transmission#334))
- Go back to using hash as base name for resume and torrent files (those stored in configuration directory) ([#122](transmission/transmission#122))
- Handle "fields" argument in "session-get" RPC request; if "fields" array is present in arguments, only return session fields specified; otherwise return all the fields as before
- Limit the number of incorrect authentication attempts in embedded web server to 100 to prevent brute-force attacks ([#371](transmission/transmission#371))
- Set idle seed limit range to 1..40320 (4 weeks tops) in all clients ([#212](transmission/transmission#212))
- Add Peer ID for Xfplay, PicoTorrent, Free Download Manager, Folx, Baidu Netdisk torrent clients ([#256](transmission/transmission#256), [#285](transmission/transmission#285), [#355](transmission/transmission#355), [#363](transmission/transmission#363), [#386](transmission/transmission#386))
- Announce `INT64_MAX` as size left if the value is unknown (helps with e.g. Amazon S3 trackers) ([#250](transmission/transmission#250))
- Add `TCP_FASTOPEN` support (should result in slight speedup) ([#184](transmission/transmission#184))
- Improve ToS handling on IPv6 connections ([#128](transmission/transmission#128), [#341](transmission/transmission#341), [#360](transmission/transmission#360), [#692](transmission/transmission#692), [#737](transmission/transmission#737))
- Abort handshake if establishing DH shared secret fails (leads to crash) ([#27](transmission/transmission#27))
- Don't switch trackers while announcing (leads to crash) ([#297](transmission/transmission#297))
- Improve completion scripts execution and error handling; add support for .cmd and .bat files on Windows ([#405](transmission/transmission#405))
- Maintain a "session ID" file (in temporary directory) to better detect whether session is local or remote; return the ID as part of "session-get" response (TRAC-5348, [#861](transmission/transmission#861))
- Change torrent location even if no data move is needed ([#35](transmission/transmission#35))
- Support CIDR-notated blocklists ([#230](transmission/transmission#230), [#741](transmission/transmission#741))
- Update the resume file before running scripts ([#825](transmission/transmission#825))
- Make multiscrape limits adaptive ([#837](transmission/transmission#837))
- Add labels support to libtransmission and transmission-remote ([#822](transmission/transmission#822))
- Parse `session-id` header case-insensitively ([#765](transmission/transmission#765))
- Sanitize suspicious path components instead of rejecting them ([#62](transmission/transmission#62), [#294](transmission/transmission#294))
- Load CA certs from system store on Windows / OpenSSL ([#446](transmission/transmission#446))
- Add support for mbedtls (formely polarssl) and wolfssl (formely cyassl), LibreSSL ([#115](transmission/transmission#115), [#116](transmission/transmission#116), [#284](transmission/transmission#284), [#486](transmission/transmission#486), [#524](transmission/transmission#524), [#570](transmission/transmission#570))
- Fix building against OpenSSL 1.1.0+ ([#24](transmission/transmission#24))
- Fix quota support for uClibc-ng 1.0.18+ and DragonFly BSD ([#42](transmission/transmission#42), [#58](transmission/transmission#58), [#312](transmission/transmission#312))
- Fix a number of memory leaks (magnet loading, session shutdown, bencoded data parsing) ([#56](transmission/transmission#56))
- Bump miniupnpc version to 2.0.20170509 ([#347](transmission/transmission#347))
- CMake-related improvements (Ninja generator, libappindicator, systemd, Solaris and macOS) ([#72](transmission/transmission#72), [#96](transmission/transmission#96), [#117](transmission/transmission#117), [#118](transmission/transmission#118), [#133](transmission/transmission#133), [#191](transmission/transmission#191))
- Switch to submodules to manage (most of) third-party dependencies
- Fail installation on Windows if UCRT is not installed

### Mac Client
- Bump minimum macOS version to 10.10
- Dark Mode support ([#644](transmission/transmission#644), [#722](transmission/transmission#722), [#757](transmission/transmission#757), [#779](transmission/transmission#779), [#788](transmission/transmission#788))
- Remove Growl support, notification center is always used ([#387](transmission/transmission#387))
- Fix autoupdate on High Sierra and up by bumping the Sparkle version ([#121](transmission/transmission#121), [#600](transmission/transmission#600))
- Transition to ARC ([#336](transmission/transmission#336))
- Use proper UTF-8 encoding (with macOS-specific normalization) when setting download/incomplete directory and completion script paths ([#11](transmission/transmission#11))
- Fix uncaught exception when dragging multiple items between groups ([#51](transmission/transmission#51))
- Add flat variants of status icons for message log ([#134](transmission/transmission#134))
- Optimize image resources size ([#304](transmission/transmission#304), [#429](transmission/transmission#429))
- Update file icon when file name changes ([#37](transmission/transmission#37))
- Update translations

### GTK+ Client
- Add queue up/down hotkeys ([#158](transmission/transmission#158))
- Modernize the .desktop file ([#162](transmission/transmission#162))
- Add AppData file ([#224](transmission/transmission#224))
- Add symbolic icon variant for the Gnome top bar and when the high contrast theme is in use ([#414](transmission/transmission#414), [#449](transmission/transmission#449))
- Update file icon when its name changes ([#37](transmission/transmission#37))
- Switch from intltool to gettext for translations ([#584](transmission/transmission#584), [#647](transmission/transmission#647))
- Update translations, add new translations for Portuguese (Portugal)

### Qt Client
- Bump minimum Qt version to 5.2
- Fix dropping .torrent files into main window on Windows ([#269](transmission/transmission#269))
- Fix prepending of drive letter to various user-selected paths on Windows ([#236](transmission/transmission#236), [#307](transmission/transmission#307), [#404](transmission/transmission#404), [#437](transmission/transmission#437), [#699](transmission/transmission#699), [#723](transmission/transmission#723), [#877](transmission/transmission#877))
- Fix sorting by progress in presence of magnet transfers ([#234](transmission/transmission#234))
- Fix .torrent file trashing upon addition ([#262](transmission/transmission#262))
- Add queue up/down hotkeys ([#158](transmission/transmission#158))
- Reduce torrent properties (file tree) memory usage
- Display tooltips in torrent properties (file tree) in case the names don't fit ([#411](transmission/transmission#411))
- Improve UI look on hi-dpi displays (YMMV)
- Use session ID (if available) to check if session is local or not ([#861](transmission/transmission#861))
- Use default (instead of system) locale to be more flexible ([#130](transmission/transmission#130))
- Modernize the .desktop file ([#162](transmission/transmission#162))
- Update translations, add new translations for Afrikaans, Catalan, Danish, Greek, Norwegian Bokmål, Slovenian

### Daemon
- Use libsystemd instead of libsystemd-daemon (TRAC-5921)
- Harden transmission-daemon.service by disallowing privileges elevation ([#795](transmission/transmission#795))
- Fix exit code to be zero when dumping settings ([#487](transmission/transmission#487))

### Web Client
- Fix tracker error XSS in inspector (CVE-?)
- Fix performance issues due to improper use of `setInterval()` for UI refresh (TRAC-6031)
- Fix recognition of `https://` links in comments field ([#41](transmission/transmission#41), [#180](transmission/transmission#180))
- Fix torrent list style in Google Chrome 59+ ([#384](transmission/transmission#384))
- Show ETA in compact view on non-mobile devices ([#146](transmission/transmission#146))
- Show upload file button on mobile devices ([#320](transmission/transmission#320), [#431](transmission/transmission#431), [#956](transmission/transmission#956))
- Add keyboard hotkeys for web interface ([#351](transmission/transmission#351))
- Disable autocompletion in torrent URL field ([#367](transmission/transmission#367))

### Utils
- Prevent crash in transmission-show displaying torrents with invalid creation date ([#609](transmission/transmission#609))
- Handle IPv6 RPC addresses in transmission-remote ([#247](transmission/transmission#247))
- Add `--unsorted` option to transmission-show ([#767](transmission/transmission#767))
- Widen the torrent-id column in transmission-remote for cleaner formatting ([#840](transmission/transmission#840))
jperkin pushed a commit that referenced this pull request Sep 16, 2020
2.5 Fri, 12 Apr 2019

core:
* linux: reload logger during daemonize to avoid issues like not listening http
  daemon if logger has still not been used before starting the listener
* Fix #646: HTTP daemon not starting on CentOS 7
* revert dfcb64573e as now more generic fix has been implemented in a538abaed7
  (tested on CentOS 6)
* win32: don't show service memory usage on OS not supporting GetProcessMemoryInfo
* Fix #601: Log URL for server target and log path for local target
* win32: add early stderr logging support for service
  Just rename "fusioninventory-win32-service.rc.sample" removing ".sample" part
  to enable this feature. This can be handy to investigate start service failures.
* Added support for HTTPD plugins
* Added Inventory HTTPD plugins to permit remote inventory request (disabled by default)
* Added Listener target to permit agent to only answer http requests
* Updated configuration to support HTTPD plugins dedicated configuration file
* Added fusioninventory-remoteinventory script to request agent with Inventory
  HTTPD plugin enabled
* Fix HTTPD local address reuse
* Added SSL HTTPD plugins to support SSL in any server plugins
* Limit the reload target check to 30 seconds
* win32: report memory usage as Working Set Size (WSS) and Page File Usage (PFU)
* win32: revert handling service with callbacks. Even if Win32::Daemon proposes
  the callbacks usage obsoletes the typical skeleton code, the callbacks usage
  is known to leak memory and tests with latest Win32::Daemon shows that's true.
* win32: handle task run in a managed thread as this is more efficient than using
  perl fork with thread emulation under win32 and preserve a little memory usage.
* win32: wait service control manager is ready before really starting the service
* logger: don't use File::stat module to just get logfile file size, better use -s
  as File::stat module seems to fail in rare case.

inventory:
* Bump Inventory task version to 1.7
* Fix lspci command subsystem parsing
* Fix hponcfg.exe can output on stderr on win32 when not really usable
* Skip not working under win32 Generic::Users inventory
  Also avoid error in log on /etc/passwd and /etc/group not found files
* Fix #601: Log deviceid as agentid and related target when running an inventory
* Fix #644: Make WORKGROUP inventory consistent
* Fix #541: Don't try to scan virtualbox VM in win32 users directories
* Updated pci.ids to 2019.04.12 version
* Updated usb.ids to 2019.03.20 version

netdiscovery/netinventory:
* Bump NetDiscovery task version to 2.9
* Bump NetInventory task version to 3.3
* Add Lancom in networking devices recognized by description parsing
* Fix #650: discard empty consumable level elements
* Fix #651: discard empty type element
* Add Netdisco export contrib script from Stoatwblr, see contrib/netdisco
* Fix #638: Fix Kyocera counters handling thanks to Stoatwblr
* Printers: assume -2 counter value means a WARNING level and report it
  Thanks Stoatwblr for the deep investigation
* Add Oki printer support
* Add APC serialnumber support
* Fix #612: Enhanced Ubnt AccessPoint support
* Updated sysobject.ids (tagged fia-2.5 tag on github repository)

deploy:
* Bump Deploy task version to 2.8
* Fix #394: Check file parts source/mirror url to guaranty it ends with a slash
  and trigger an error if it doesn't look like a valid URL.

collect:
* Bump Collect task version to 2.6
* WMI properties can now be a list of properties with comma or space as separator

2.4.3 Fri, 22 Feb 2019

core:
* fix some cases where a file handle was not closed
* win32: fix a handle leak case when agent was running as service
* Fix #637: Don't depend on GNU install during "make install" to support
  more Unix systems
* daemon/service: reload target when the stat file has been updated by
  another script to use the updated next run timeout
* For server target, server connection attempts are delayed from 60 seconds,
  doubled at each new failed attempt, now until reaching max defined by delaytime
  configuration parameter.

inventory:
* Bump Inventory task version to 1.6
* win32 antivirus support update:
 - nicer product name report for ESET
 - report expiration date for ESET
* Fix #582: Add other Acer monitors support
* Fix #687: Virtuozzo inventory task doesn't include first container
* Add few minor fix to virtuozzo containers inventory
* Fix LXC containers support to support recent LXC versions
* Fix #625: Container UUID is the same than host UUID
* Fix #624: Skip incomplete battery infos from dmidecode (seen on MacOS)
* Fix #631: Fix duplicated memory inventory on MacOS
* linux: fix storage size inventory
* linux: try to set storage serialnumber from mbr partition id or even
  PV UUID when not found (hdparm missing or virtual drive)
* Fix #604: Only inventory Windows Store on recent win32 platforms
* Fix #596: Openstack container seen as Physical on win32
* Fix #593: Correct detection of machine type when /var/log/dmesg is too short
* Fix #583: Add BitDefender antivirus support
* Encrypted filesystems support added
* Updated pci.ids to 2019.02.20 version
* Updated usb.ids to 2019.01.17 version

netdiscovery/netinventory:
* Bump NetDiscovery task version to 2.8
* Bump NetInventory task version to 3.2
* Add BlueCoat proxy appliance serialnumber support
* win32: Support arp table check for NetDiscovery task
* Fix #634: Net::Ping version may not numeric with win32 installer
* Add Panasas PanFS support
* Add few HP/Compaq serialnumber cases support
* Fix #605: try 'ip neighbor show' if 'arp' is not available for netdiscovery
* Add UPS-MIB support for Riello, S2S & APC
* Components support added
* Updated sysobject.ids (tagged fia-2.4.3 tag on github repository)

2.4.2 Wed, 03 Oct 2018

core:
* Linux: fix agent not listening on http port when syslog logger is active
  and Sys::Sylog module is too old

inventory:
* Bump Inventory task version to 1.5
* Fix physical memory error correction detection via WMI under win32
* Fix #299: Added UWP/APPX/Windows Store software inventory
* win32 antivirus detection enhanced support:
  - add support for few antivirus base versions (defender, kaspersky,
    EST, avira, MSE, McAfee, F-Secure)
  - try to set license expiration date for F-Secure, kaspersky & avira
* Fix #442: kaspersky not fully recognized in russia
* Fix #501: wrong status was reported when windows defender was disabled
* Enhanced software inventory under Arch Linux
* Fix #453: under MacOS, skip XML DTD validation for software inventory as
  parsing may fail if a proxy is enabled
* Fix #473: fix arch detection under MacOS
* Fix #475: fix video cards support under MacOS
* Fix #504: support non-standard ssh port to report local ssh server pubkey
* Updated pci.ids to 2018.10.02 version
* Updated usb.ids to 2018.08.15 version

deploy:
* Bump Deploy task version to 2.7
* Fix deployment of private packages: their downloaded parts were not
  fully found when download were too long (closes: #542)
* Handle retention duration differently for p2p and not p2p files
* P2p files have a default retention of 3 days by default
* P2p files have a default retention of 3 times the target prolog delay
  after download, parts retention is reset to the same delay for all file parts,
  so the retention duration applies at the time parts has been downloaded
* P2p file parts are now cleaned up after job success if retention duration
  is null
* Fix WinKeyNotEquals audit check to also be true when the registry key is
  simply missing
* Add support to "startjob" key for failing deploy audit check to permit
  to skip remaining checks when a failing condition makes them obsolete.

esx:
* Bump ESX task version to 2.4
* Support 2 ServiceTags case to cover chassis & lame board S/N inventory
* Updated AssetTag support
* fix wrong cpu core computation when only one package is available

netdiscovery/netinventory:
* Bump NetDiscovery task version to 2.7
* Bump NetInventory task version to 3.1
* Thanks to @QuickNerd357, Brocade devices will now show serial number and
  firmware informations.
* Sanitize VLAN names. This fixes an issue with Cisco Small Business Switches.
* Get rid of unofficial Net::Ping::TimeStamp support to only use official
  support if available. Net::Ping v2.67 is now mandatory to discover
  devices thanks to timestamp ping.
* Fix #481: Add Synology NAS support
* Fix #480: Add CheckPoint support
* Fix #488: Update HP Printers support
* Updated LLDP/CDP connection match checks
* Updated sysobject.ids (tagged fia-2.4.2 tag on github repository)

collect:
* Bump Collect task version to 2.5
* Thanks to David Durieux, add support for dynamic pattern in registry key
  collect under win32. The dynamic pattern is '**' to glob subkeys like in:
   HKEY_USERS/**/Software/**/**/CurrentVersion

maintenance:
* Bump Maintenance task version to 1.1
* Disable Maintenance task if no maintenance module could be used

test suite:
* Make snmp walk tests faster

2.4.1 Fri, 29 Jun 2018

core:
* Update setup & FusionInventory::Agent::Version modules during make install
* Can set FusionInventory::Agent::Version module VERSION & COMMMENTS during
  perl Makefile.PL configuration stage
* Normalized Target class APIs
* Register planned tasks at target level so target class can filter out
  unsupported tasks
* Add Scheduler target support to be used at the same time than Server target
  but more often to make maintenance other server target storage
* One scheduler target is created for each configured server target
* Scheduler target will trigger between one to 2 minutes
* Get rid of Time::Piece dependency

maintenance:
* New Maintenance v1.0 task
* Maintenance task handles quick server target storage cleanup to deploy
  packages are really removed afetr their expiration time
* Task only supported by Scheduler target

inventory:
* Fix BSD Storages support
* Don't try to run dmidecode inventories if it returns no output
* Set Bios && Hardware from /sys/class/dmi on recent Linux when dmidecode is missing
* Add PowerSupplies support
* Add BSD batteries support
* Add UUID to LXD containers under Linux
* Fix #439: Wrong network interface speed under win32
* Fix #472: On MacOS, add monitors serial number when available
* Fix #479: No virtual machine memory under Proxmox
* Fix #485: Fix df output parsing under MacOS
* Fix #500: Add Acer monitor EDID id match
* Better SQL Server software inventory under win32
* Update Xen Server support
* Fix get-edid command output parsing, thanks to David Durieux
* Updated pci.ids to 2018.06.29 version
* Updated usb.ids to 2018.05.04 version

netdiscovery/netinventory:
* Bump NetDiscovery task version to 2.6
* Bump NetInventory task version to 3.0
* fusioninventory-netdiscovery & fusioninventory-netinventory scripts
  now support '--port' and '--protocol' options for not standard snmp support.
* Fix RAM & CPU are missing from net inventory
* Fix MEMORY/RAM OID support
* Added support for HP Net Peripheral, involving better HP printers inventory
 * Get Serial number & firmware version
 * Fix total printed pages counter in many case
 * Added total color pages counter support
* Don't assume colors table was read: fixes black toner detection on many HP printers
* Added Microtik devices support
* Enhanced Epson printers support, including model name, serial number and firmwares
* Updated LLDP support
* NetInventory task protocol upgrade to fix multithreading scheduling according to
  upgrades done server-side.
* Fix discovery of devices with only ping responding and without found hostname. In
  that case, we default the DNSHOSTNAME to the scanned ip.
* fix entity option in fusioninventory-netdiscovery script
* Get rid of nmap support for NetDiscovery task
* Add Zebra printer support
* Add QuesCom Appliance detection
* Add Linux Appliance template support
* Closes: #441,#519
* Update extmod function calls, thanks to Vadim Pisarev
* Add custom OID for Canon printer counters
* Updated sysobject.ids (tagged fia-2.4.1 tag on github repository)

deploy:
* Bump Deploy task version to 2.6
* Fix file retention support
* Add P2P peers caching to reduce peers discovery load in the meantime
* Reduced timeout for peer discovery and file parts downloading for P2P. This
  efficiently limits the time passed to discover the local peers and disqualify
  any busy or not responding peers in a more acceptable delay.
* For better P2P support, agent ajusts its 404 message to "Nothing found" when it
  has nothing to share with other agents. So peers won't ask again and again for
  any file part during 20 minutes by default.

2.4 Fri, 29 Dec 2017
core:
* Cleanup confdir use in task so using deprecated etc/softwares folder is no more
  logged in journal
* Get rid of confdir setup in setup.pm
* Added "include" directive support while reading configuration file to make
  configuration maintenance easy
* Update syslog name to fullname agent
* Get rid of List::Util & Proc::PID::File module dependencies
* Try to load more recent IDS database files if found in well-known places
* Fixed default daemon pid filename
* When --pidfile is used, don't permit to manually start daemon even in foreground
  unless --pidfile parameter is different
* Makes --pidfile filename optional to compute a default one
* Check if we need to include libdir while daemonize
* Class refactoring: Get rid of discouraged 'use base' syntax in favor of lighter
  'use parent' and as fields pragma is not used (see 'base' man)
* Logger refactoring: no more an Exporter based class to simplify its usage and
  as Logger object should be commonly shared everywhere it is used.
* Fix command run to also time out while an alarm has been set
* Fix WMI calls to also time out under win32
* Few code refactoring
* remove devtom30 from maintainers

inventory:
* Bump Inventory task version to 1.4
* Fixed Provider program name in agent context
* Fixed HyperV VM issue while BIOSGUID is not defined
* Fix #349: Include last logged user as usual computer user on win32 platform
* Linux distro: Add support for reading os-release file and removing LSB support
* Fix Solaris drives df output parsing adding better zfs handling
* Make backend-collect-timeout working even while waiting on command output
* Support ASM filesystems on Oracle Grid
* Introduce getDeviceId() API on Inventory class so it returns task deviceid if set
  or set a new deviceid (aka agentid or machineid) in case of remote inventory
* Fix #161: Support retrieving License software via WMI, including Office 2016
* Fix #364: [win32] Get antivirus version from software installation and get
  Windows Defender version via WMI
* Added Windows 10 version support
* Updated pci.ids to 2017.12.20 version
* Updated usb.ids to 2017.12.28 version

netdiscovery/netinventory:
* Bump NetDiscovery & NetInventory task version to 2.5
* Added section support for MODEMS, SIMCARDS & FIRMWARES
* Added new detection algorithm based on exposed device supported MIB (sysORID list)
  and/or sysObjectID
* Added support for HP iLO cards
* Added support for Digi devices with enhanced MODEMS, SIMCARDS & FIRMWARES support
* Updated sysobject.ids with a lot of new devices support
* Keep first MAC address found while discovering
* Try first to select MAC address from SNMP session during SNMP device scan
* Updated sysobject.ids (tagged fia-2.4 tag on github repository)

deploy:
* Bump Deploy task version to 2.5
* ddurieux fixed a regression introduced in 2.3.18 preventing to re-use known
  good peer to download file parts.

esx:
* Bump ESX task version to 2.3
* Removed no more needed createFakeDeviceid() API

injector:
* Support --no-ssl-check option to avoid checking server SSL certificate

wmi-inventory:
* Added new task and script to permit agent-less inventory on win32 platform based
  on remote WMI support.
jperkin pushed a commit that referenced this pull request Oct 15, 2020
This is now a C++ package.

Cherry-pick a patch from the unreleased HEAD of cgdb for GDB 8.3+.

Take maintainership.

cgdb-0.7.1 (08/04/2019)

  * Status bar messages are now displayed properly in veritical mode.
    The message is now truncated according to the status bar width instead
    of the width of the terminal.

  * Fix spurious error from CGDB on shutdown. You may have seen,
       CGDB had unexpected results. Search the logs for more details.
    In the log there was a waitpid error. CGDB was using the API wrong.

  * Fix issue #161 - CGDB would lock up when doing a regex search from
    the status bar if the file was just opened from the file dialog and
    the search did not match any text in the file. Now the search fails
    to match text as expected.

  * Status bar commands and gdb console commands now both show gdb
    output in the gdb window (instead of only the gdb console commands).
    This fixed issue #154 on github.

  * Fixed issue where typing F8 would do a 'next', 'step' and
    screen refresh instead of just doing a 'next' command.

  * Fix issue #139 - Show appropriate logos when color disabled
    Previously, if the user had colors disabled, CGDB would still show
    logos that had ansi escape color sequences in them.

  * Fixed :highlight regression introduced in 0.7.0.
    In 0.6.8, if the user entered a :highlight command from the CGDB
    status bar, for instance:
        :highlight Comment ctermfg=Blue
    CGDB would updated the currently displayed source file
    with the requested highlighting changes. In 0.7.0 this would not occur.
    Both versions honored :highlight in the .cgdbrc file.

  * Fix issue #125 - CGDB can cross compile again.

  * The rust syntax highlighter is now case sensitive instead of case
    insensitive.

  * Fix issue #129. CGDB with old versions of ncurses (5.6 or before)
    would not display colors. Now it will display colors, but will
    not support ansi colors in the GDB window.

  * Fix issue #137. rustlexer.lpp fails to compile with some versions
    of GNU autotools.

  * Fix issue #135. CGDB would "freeze" when opening the file
    dialog if the number of files was very large. Updating the
    gdbwire parser resolved the issue.

  * Add support for readline's backward-kill-word and kill-word at gdb prompt

cgdb-0.7.0 (03/21/2017)

  * Remove help2man dependency. CGDB has a good info page which
    should suffice.

  * The hlsearch option has been added to CGDB. This improves the
    searching and displaying of searching functionality within CGDB.
    By default the option is off. When enabled, and there exists a
    previous search, CGDB will display the search results using
    the Search highlighting group. The IncSearch highlighting group
    is used to display the active search. The hlsearch option
    highlights previous searches in the source window, the gdb window
    when in scroll mode and the file dialog window.

  * CGDB now supports showing assembly code! By default, CGDB will
    display source code when it is available and assembly code
    when no source code is available. The option 'set disasm'
    allows you to show mixed source/assembly when both are available.

  * Add support to enable/disable showing assembly code in CGDB.
    The default is disabled. The 'set disasm' enables showing
    mixed assembly mode by default. See the documentation for more
    information.

  * Add the :logo command to cgdb. This tells CGDB to display a logo
    in the source window.

  * Add an initial Rust syntax highlighter.

  * Support vi type <digit>j and <digit>k motions. Previously only
    typing j or k with out a number was supported.

  * Add support for marks. m[a-z] will set a local file mark and
    m[A-Z] will set a global mark. '[a-z] will jump to the
    corresponding local mark and '[A-Z] will jump to the corresponding
    global mark. As an added bonus '' will jump to the last jump location
    and '. will jump to the last executing line.
    The showmarks option was introduced to show the marks in the source
    window. It defaults to true. You can disable the viewing of marks
    using 'set noshowmarks'.

  * Add support to enable or disable color in the source window.
    The default is enabled. See the documentation for more information.

  * Add support for showing colors in the debug window. If gdb or the
    program being debugged output an ansi escape code representing color,
        https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
    then CGDB will display the corresponding color instead of the escape
    code. This option is configurable with the set debugwincolor option.

  * Add the winminwidth option to CGDB. It controls the minimum width
    that a window can be resized. It corresponds to the winminheight
    option. This was introduced now that CGDB can have vertically split
    windows.

  * Add support for vertical or horizontal splitting of the CGDB/GDB
    windows. Thanks to Daniel Cohen for the original implementation
    of this idea! You can change the window orientation by using the
    command 'set winsplitorientation=horizontal or vertical'.
    horizontal is the default orientation. Type Ctrl-w to switch between
    vertical and horizontal viewing.

  * Remove the TTY mode and TTY window from CGDB. This previously allowed
    you to send input to the program being debugged through the TTY
    window in CGDB. It is better for the user to run their program in
    one terminal and attach to it with CGDB from another terminal in
    order to get terminal input and terminal output working correctly.

  * Add the -w command line option to CGDB. It directs CGDB to wait
    to start until either a debugger is attached to it, or until a key
    is written to it's stdin. This helps simplify debugging CGDB itself.

  * Added GDB scroll mode in addition to the existing GDB command mode.
    To enter scroll mode, type 'page up' when in GDB mode and to exit
    type 'q', 'i' or 'Enter'. In scroll mode, you can scroll through
    the GDB output. You can also search the GDB output with the /, ?, n
    and N keys. Marks are also supported. You can set a mark by typing
    m[a-z] and you can jump to a mark by typing '[a-z]. See the
    documentation for more details.

  * Extended support for the G command when in CGDB mode. The new supported
    syntax is [<number>]G, allowing users to jump to a specific line within
    the source file, rather than just the end of the source file. This is
    identical to the :<number> command.

  * Added support for 'executinglinedisplay' and 'selectedlinedisplay'
    configuration options. See documentation for full explanation.
    This allows you to configure how CGDB displays both the currently
    executing line and the currently selected line.
    The default for executing line is set to longarrow.
    The default for selected line is set to block.

    The 'arrowstyle' option has been deprecated (but still supported)
    and users should use the 'executinglinedisplay' option instead.

  * CGDB now only supports ncurses. Support for curses was removed.
    The curses support was previously very out of date and untested.
    If curses support is needed, please let us know.
jperkin pushed a commit that referenced this pull request 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 pull request 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 pull request Jan 2, 2021
# cli 2.2.0

* New `style_hyperlink()` function to add hyperlinks, on terminals that
  support them.

* `cli_format_method()` now works properly in knitr, and other environments
  that catch message conditions (#159).

* ANSI strings created by `col_*`, `bg_*` and `style_*` now also add the
  `character` class to the result. This fixes issues with code that
  expect `character` objects.

* New functions to manipulate ANSI strings: `ansi_aling()`,
  `ansi_has_any()`, `ansi_nchar()`, `ansi_regex()`, `ansi_strip()`,
  `ansi_strsplit()`, `ansi_substr()`, `ansi_substring()`.

# cli 2.1.0

* New `cli_vec()` function to allow easier formatting of collapsed
  vectors. It is now also possible to use styling to set the collapsing
  parameters (#129).

* New `pluralize()` function to perform pluralization without generating
  cli output (#155).

* `console_width()` works better now in RStudio, and also in terminals.

* Styling of verbatim text work properly now (#147, @tzakharko).

* Messages (ie. `message` conditions) coming from cli now have the
  `cliMessage` class, so you can easily suppress them without suppressing
  other messages (#156).

* cli prints the output to `stderr()` now, if there is an output or
  message sink. This is to make interactive and non-interactive sessions
  consistent (#153).

* Pluralization works corrently now if the last alternative is the
  empty string (#158).

* cli now caches the result of the dark background detection in iTerm on
  macOS. Reload cli to delete the cache (#131).

* The `is_dynamic_tty()`, `is_ansi_tty()` and `ansi_hide_cursor()` and
  releted functions now default to the `"auto"` stream, which is
  automatically selected to be either `stdout()` or `stderr()`.
  See the manual for details (#144).

* The default theme now quotes file names, paths, email addresses if they
  don't start or end with an alphanumeric character or a slash. This is
  to make it easier to spot names that start or end with a space (#167).

* `make_spinner()` clears the line properly now (@tzakharko, #164).

* Semantic cli functions now automatically replace Unicode non-breaking
  space characters (`\u00a0`) with regular space characters, right before
  output. They are still used to calculate the line breaks, but not
  outputted (#161).
* Progress bars now respect `is_dynamic_tty()` and do not output `\r` when this
  is false (@jimhester, #177)
jperkin pushed a commit that referenced this pull request Jan 2, 2021
Changelog:
1.75.0
New Libraries

  * JSON: JSON parsing, serialization, and DOM in C++11, from Vinnie Falco and
    Krystian Stasiowski.
      + Fast compilation requiring only C++11
      + Easy and safe modern API with allocator support
      + Compile without Boost, define BOOST_JSON_STANDALONE
      + Optional header-only, without linking to a library
  * LEAF: A lightweight error-handling library for C++11, from Emil Dotchevski.
      + Small single-header format, no dependencies.
      + Designed for maximum efficiency ("happy" path and "sad" path).
      + No dynamic memory allocations, even with heavy payloads.
      + O(1) transport of arbitrary error types (independent of call stack
        depth).
      + Can be used with or without exception handling.
  * PFR: Basic reflection without macro or boilerplate code for user defined
    types, from Antony Polukhin.

Updated Libraries

  * Asio:
      + Enabled support for UNIX domain sockets on Windows.
      + Added executor-converting construction and assignment to ip::
        basic_resolver.
      + Added compatibility between polymorphic executors and the (deprecated)
        handler invocation hook.
      + Added the experimental::as_single completion token adapter.
      + Added support for MSG_NOSIGNAL on more platforms by using
        _POSIX_VERSION to detect whether it is supported.
      + Added the ability to compile using libpthread on Windows.
      + Added workarounds for the Intel C++ compiler.
      + Added more support for detecting and optimising for handlers that have
        no custom executor.
      + Reduced lock contention for timer cancellation on Windows.
      + Reinstated a previously removed null-pointer check, as it had a
        measurable impact on performance.
      + Fixed the executor concept to test for a const-qualified execute().
      + Fixed any_executor support for builds without RTTI support.
      + Fixed the thread_pool unit test to work without RTTI support.
      + Fixed C++20 coroutines compatibility with clang on Windows.
      + Fixed some compatibility issues with Windows Runtime.
      + Fixed shadow name warnings caused by addition of asio::query.
      + Fixed a "logical ‘or’ of equal expressions" warning on linux.
      + Fixed a benign switch fallthrough warning.
      + Added missing push/pop_options.hpp includes.
      + Suppressed zero-as-null-pointer-constant warnings.
      + Fixed a comma-operator warning.
      + Updated the documentation to clarify when the select reactor is used on
        Windows.
      + Fixed potential ambiguity caused by any_executor comparisons and
        conversion.
      + Added detection of non-experimental C++20 coroutines on MSVC 19.8.
      + Fixed compatibility with uClibc.
      + Fixed strand<> adaptation of Networking TS executors when targeting
        older C++ versions or less conformant compilers.
      + Consult the Revision History for further details.
  * Atomic:
      + Implemented SSE2 and SSE4.1 versions of address lookup algorithm, which
        is used in the internal lock pool implementation. This may improve
        performance of waiting and notifying operations in heavily contended
        cases.
      + Fixed a possible compilation error on AArch64 targets caused by
        incorrect instructions generated for bitwise (logical) operations with
        immediate constants. (#41)
  * Beast:
      + This update brings bug fixes and support for the
        BOOST_ASIO_ENBALE_HANDLER_TRACKING compile flag from Boost.Asio:
      + We'd love to know how you or your company use Beast, consider adding an
        entry to the Companies and Individuals Using Beast list.
      + See the full Release Notes for a complete list of changes.
  * Container:
      + New devector container.
      + Fixed bugs/issues:
          o #152 Tree-based containers have troubles with move-only types.
          o #156 Compile error with vector.
          o PR#157 Add missing include.
          o #159: pmr::monotonic_buffer_resource crashes on large single
            allocations.
          o #160: Usage of uses_allocator needs a remove_cvref_t.
          o #162: small_vector on MSVC x86 call-by-value crash.
          o #161: polymorphic_allocator(memory_resource*) non-standard
            extension causes headache.
          o PR#163: container_rebind for small_vector with options.
          o #165: Link error with shared library and memory_resource inline
            members.
          o PR#166: Fix encoding error in copyright headers.
          o PR#167: error: the address of 'msg' will always evaluate as 'true'
            warning with GCC 4.4.
          o #169: flood of warnings building dlmalloc_ext_2_8_6.c on clang11.
  * Endian:
      + endian_arithmetic no longer inherits from endian_buffer
      + When BOOST_ENDIAN_NO_CTORS is defined, the unaligned endian_buffer and
        endian_arithmetic are C++03 PODs, to enable use of __attribute__((
        packed))
  * Filesystem:
      + New: Added creation_time operation, which allows to obtain file
        creation time. (Inspired by PR#134)
      + The returned value of last_write_time(p, ec) operation in case of
        failure has been changed to a minimal value representable by std::
        time_t instead of -1.
      + The returned value of hard_link_count(p, ec) operation in case of
        failure has been changed to static_cast<uintmax_t>(-1) instead of 0.
      + On POSIX systems, file_size will now indicate error code errc::
        function_not_supported if the path resolves to a non-regular file.
        Previously, errc::operation_not_permitted was reported.
      + On Linux, many operations now use statx system call internally, when
        possible, which allows to reduce the amount of information queried from
        the filesystem and potentially improve performance. The statx system
        call was introduced in Linux kernel 4.11.
      + Removed const-qualification from return types of some path methods.
        This could prevent move construction and move assignment at the call
        site in some cases. (#160)
      + On OpenBSD 4.4 and newer, use statvfs system call to obtain filesystem
        space information. (Inspired by PR#162)
      + On Windows, space now returns with an error if the provided path does
        not idendify an existing file. (#167)
  * GIL:
      + BREAKING: In next release, we are going to drop support for GCC 5. We
        may also change the required minimum C++ version from C++11 to C++14.
  * Histogram:
      + This update brings
          o Bug-fixes for corner-cases
          o Small documentation improvements
          o Fixes for new warnings from latest compilers and when compiling
            against the C++20 standard
      + See the full Release Notes for a complete list of changes.
  * Interprocess:
      + Fixed bugs:
          o #127: static assertion failure with boost interprocess 1.74 and
            basic_managed_shared_memory.
  * Intrusive:
      + Fixed bugs:
          o PR#48: MSVC "assignment within conditional" warning fix.
          o PR#49: Fix empty control statement warnings.
          o #52: Invalid casting in BOOST_INTRUSIVE_BSR_INTRINSIC.
  * Log:
      + Bug fixes:
          o Corrected the file counter that would be used in text_file_backend
            when generating the target file name (based on the pattern set by
            set_target_file_name_pattern method) when the log file is rotated.
            (#125)
          o Replaced a volatile version counter in basic_sink_frontend with an
            atomic. (#128)
          o In the asynchronous_sink frontend, resolved a possible conflict
            between flush and run methods, if run is called from a user's
            thread instead of the internal dedicated thread spawned by the
            frontend. (#131)
      + See changelog for more details.
  * Move:
      + Fixed bugs:
          o #30: (void) C-cast is a non-portable way of suppressing compiler
            warnings.
  * Mp11:
      + Added mp_pairwise_fold (suggested by Barry Revzin)
      + Removed mp_invoke (use mp_invoke_q)
  * Optional:
      + boost::none is constexpr-declared.
      + Fixed issue #78.
  * Outcome:
      + Announcements:
          o After a year and three major Boost releases announcing this
            upcoming change, this is the FINAL RELEASE of the v2.1 branch. From
            Boost 1.76 onwards, the v2.2 branch becomes the default. This
            branch has a number of major breaking changes to Outcome v2.1, see
            the documentation for details.
      + Enhancements:
          o The ADL discovered event hooks have been replaced with
            policy-specified event hooks instead. This is due to brittleness
            (where hooks would quietly self-disable if somebody changed
            something), compiler bugs (a difference in compiler settings causes
            the wrong hooks, or some but not all hooks, to get discovered), and
            end user difficulty in using them at all. The policy-specified
            event hooks can be told to default to ADL discovered hooks for
            backwards compatibility: set OUTCOME_ENABLE_LEGACY_SUPPORT_FOR to
            less than 220 to enable emulation.
          o Improve configuring OUTCOME_GCC6_CONCEPT_BOOL. Older GCCs had
            boolean based concepts syntax, whereas newer GCCs are standards
            conforming. However the precise logic of when to use legacy and
            conforming syntax was not well understood, which caused Outcome to
            fail to compile depending on what options you pass to GCC. The new
            logic always uses the legacy syntax if on GCC 8 or older, otherwise
            we use conforming syntax if and only if GCC is in C++ 20 mode or
            later. This hopefully will resolve the corner case build failures
            on GCC.
      + Bug fixes:
          o Boost.Outcome should now compile with BOOST_NO_EXCEPTIONS defined.
            Thanks to Emil, maintainer of Boost.Exception, making a change for
            me, Boost.Outcome should now compile with C++ exceptions globally
            disabled. You won't be able to use boost::exception_ptr as it can't
            be included if C++ exceptions are globally disabled.
          o #236 In the Coroutine support the final_suspend() was not noexcept,
            despite being required to be so in the C++ 20 standard. This has
            been fixed, but only if your compiler implements noop_coroutine.
            Additionally, if noop_coroutine is available, we use the much more
            efficient coroutine handle returning variant of await_suspend()
            which should significantly improve codegen and context switching
            performance.
  * Polygon:
      + C++20 fixes for event_comparison_type, vertex_equality_predicate_type,
        and voronoi_predicates. (Glen Fernandes)
  * Preprocessor:
      + When variadic data is empty in C++20 mode with __VA_OPT__ support the
        variadic size has been corrected to be 0. This also means that in this
        C++20 mode it is now valid to convert to and from empty arrays and
        lists and variadic data. The end-user can read the "C++20 Support For
        Variadic Macros" part of the "variadic macros" topic for more
        information about empty variadic data in the library.
      + The macro BOOST_PP_IS_STANDARD() has been added for identifying if the
        currently used preprocessor is a C++ standard conforming preprocessor.
        A number of preprocessors which generally work correctly with the
        library but need various internal workarounds, including the currently
        default VC++ preprocessor, are not considered C++ standard conforming
        preprocessors. However most preprocessors, including among others gcc,
        clang, and the new but currently non-default VC++ preprocessor in
        VS2019, are C++ standard conforming preprocessors.
      + For C++ standard conforming preprocessors a number of the limits
        defined in the config/limits.hpp can now be changed to higher amounts
        for a TU. The end-user should read the "limitations" topic to
        understand how and which limits can be changed.
      + For C++ standard conforming preprocessors, in order to allow the
        maximum number of FOR and WHILE iterations, the beginning 'r' and 'd'
        iteration numbers in the user-defined macros start at 1 and not 2, as
        it did in previous releases. This could be a breaking change if these
        iteration numbers are used in the user-defined macros ( they probably
        would not be ), but the change was necessary to fix some arcane bugs
        when dealing with numerical/logical operations with maximum numbers as
        well to allow the user-defined macros to be called the correct possible
        maximum number of times. For non-C++ conforming preprocessors, this
        change was not made because those non-conforming C++ preprocessors
        generally have limitations which disallow the maximum number of looping
        constructs to be run, and it was felt not to introduce a possible
        breaking change to those more fragile preprocessors would be better. It
        was also felt that besides fixing some arcane preprocessor bugs and
        providing the possible maximum number of user-defined macro
        invocations, this change could be made because it has never been
        documented what the starting 'r' and 'd' iteration numbers actually are
        but only that these numbers are incremented for each iteration.
      + The library has been upgraded to assume variadic macro support for any
        compiler working with the library. Ostensibly this means that the
        library is now a C++11 on up library, yet most of the major compilers,
        including gcc, clang, and VC++, also support variadic macros in C++98/
        C++03 mode as long as strict compliance to C++98/C++03 is not turned on
        when using one of those compilers.
  * Rational:
      + Fix Rational operators to not break under new C++20 operator==
        rewriting rules. (Glen Fernandes)
  * Signals2:
      + Correct C++ allocator model support to fix compilation in C++20
        standards mode. (Glen Fernandes)
  * System:
      + The platform-specific headers windows_error.hpp, linux_error.hpp, and
        cygwin_error.hpp emit deprecation messages and are slated for removal.
      + The old names for generic_category() and system_category() emit
        deprecation messages and are slated for removal.
      + error_condition::failed is deprecated and is slated for removal.
        operator bool() for error_condition has been reverted to its old
        meaning of value() != 0. This is done for compatibility with std::
        error_condition as the next release is expected to improve
        interoperability with <system_error> even further. Note that this does
        not affect error_code::failed, which is still alive and well.
      + The overload of error_condition::message that takes a buffer is
        deprecated and is slated for removal, for the same reasons. Note that
        this does not affect error_code::message.
  * uBLAS:
      + Correct C++ allocator model support to fix compilation in C++20
        standards mode. (Glen Fernandes and Conrad Poelman)
  * VMD:
      + The VMD number parsing has been upgraded to support the ability for the
        end-user to change the number limits in the Preprocessor library.
      + The macro BOOST_VMD_IS_GENERAL_IDENTIFIER has been added to support the
        parsing of input that represents a preprocessor token which matches the
        VMD identifier syntax, without having to register the identifier as a
        specific identifier.
  * Wave:
      + Added new C++20 tokens, including the spaceship operator <=>
      + Fixed bugs:
          o #94: fix incorrect behavior of __LINE__ and __FILE__ under
            rescanning

1.74.0
New Libraries

  * STLInterfaces: A library of CRTP bases to ease the writing of STL views,
    iterators, and sequence containers, from Zach Laine.

Updated Libraries

  * Asio:
      + Added an implementation of the proposed standard executors (P0443r13,
        P1348r0, and P1393r0).
      + Added support for the proposed standard executors to Asio's I/O
        facilities.
          o The supplied executors now meet the requirements for the proposed
            standard executors. These classes also continue to meet the
            existing requirements for the Networking TS model of executors.
          o All I/O objects, asynchronous operations, and utilities will
            interoperate with both new proposed standard executors, and with
            existing Networking TS executors.
          o The any_io_executor type alias has been introduced as the default
            runtime-polymorphic executor for all I/O objects. This defaults to
            the execution::any_executor<> template. If required for backward
            compatibility, BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT can be defined
            to use the old asio::executor polymorphic wrapper instead.
          o Support for the existing Networking TS model of executors can be
            disabled by defining BOOST_ASIO_NO_TS_EXECUTORS.
      + Added converting move construction and assignment to
        basic_waitable_timer.
      + Enabled C++20 coroutine support when using gcc 10.
      + Added overloads of co_spawn that launch an awaitable.
      + Added a new constructor overload to use_awaitable_t's default executor
        adapter, to enable conversion between executor types.
      + Added support for using detached_t as a default completion token, by
        adding members as_default_on() and as_default_on_t<>.
      + Added a move constructor to ssl::stream<>.
      + Changed ssl::stream<> write operations to linearise gather-write buffer
        sequences.
      + Added compile-time detection of the deprecated asio_handler_invoke,
        asio_handler_allocate, and asio_handler_deallocate hooks, when
        BOOST_ASIO_NO_DEPRECATED is defined.
      + Implemented a number of performance optimisations.
      + Added source location support to handler tracking.
      + Implemented various improvements to the handlerviz.pl tool.
      + Added the handlerlive.pl tool, which processes handler tracking output
        to produce a list of "live" handlers.
      + Added the handlertree.pl tool, which filters handler tracking output to
        include only those events in the tree that produced the nominated
        handlers.
      + Added changes for clang-based Embarcadero C++ compilers.
      + Fixed a deadlock that can occur when multiple threads concurrently
        initialise the Windows I/O completion port backend.
      + Fixed async_compose to work with copyable handlers when passed by
        lvalue.
      + Fixed completion signature deduction in co_spawn.
      + Removed a spurious Executor base class from the executor_binder
        implementation.
      + Various fixes and improvements in the documentation and examples.
      + Consult the Revision History for further details.
  * Atomic:
      + Added missing const qualifiers to some operations in atomic_ref.
      + Added support for yield instruction on ARMv8-A. The instruction is used
        internally in spin loops to reduce CPU power consumption.
      + Added support for C++20 waiting and notifying operations. The
        implementation includes generic backend that involves the internal lock
        pool, as well as specialized backends for Windows, Linux, FreeBSD,
        DragonFly BSD and NetBSD. Atomic types provide a new method
        has_native_wait_notify, a static boolean constant
        always_has_native_wait_notify and a set of capability macros that allow
        to detect if the implementation supports native waiting and notifying
        operations for a given type.
      + Changed internal representation of atomic_flag to use 32-bit storage.
        This allows for more efficient waiting and notifying operations on
        atomic_flag on some platforms.
      + Added support for build-time configuration of the internal lock pool
        size. The user can define the BOOST_ATOMIC_LOCK_POOL_SIZE_LOG2 macro to
        specify binary logarithm of the size of the lock pool. The default
        value is 8, meaning that the size of the lock pool is 256, up from 64
        used in the previous release.
      + Added support for a new set of atomic types dedicated for inter-process
        communication: ipc_atomic_flag, ipc_atomic and ipc_atomic_ref. Users
        are recommended to port their code using non-IPC types for
        inter-process communication to the new types. The new types provide the
        same set of operations as their non-IPC counterparts, with the
        following differences:
          o Most operations have an added precondition that is_lock_free
            returns true for the given atomic object. The library will issue a
            compile time error if this precondition is known to be not
            satisfied at compile time.
          o All provided operations are address-free, meaning that the atomic
            object (in case of ipc_atomic_ref - the referenced object) may be
            located in process-shared memory or mapped into the same process at
            multiple different addresses.
          o The new has_native_wait_notify operation and
            always_has_native_wait_notify constant indicate support for native
            inter-process waiting and notifying operations. When that support
            is not present, the operations are implemented with a busy loop,
            which is less efficient, but still is address-free. A separate set
            of capability macros is also provided to indicate this support.
      + Added new atomic_unsigned_lock_free and atomic_signed_lock_free types
        introduced in C++20. The types indicate the atomic object type for an
        unsigned or signed integer, respectively, that is lock-free and
        preferably has native support for waiting and notifying operations.
      + Added new gcc assembler backends for ARMv8-A (for both AArch32 and
        AArch64). The new backends are used to implement operations not
        supported by compiler intrinsics (including 128-bit operations on
        AArch64) and can also be used when compiler intrinsics are not
        available. Both little and big endian targets are supported. AArch64
        backend supports extensions defined in ARMv8.1 and ARMv8.3.
      + Added support for big endian targets in the legacy ARM backend based on
        gcc assembler blocks (this backend is used on ARMv7 and older targets).
        Previously, the backend assumed little endian memory layout, which is
        significant for 64-bit operations.
      + Improved performance of seq_cst stores and thread fences on x86 by
        using lock-prefixed instructions instead of mfence. This means that the
        operations no longer affect non-temporal stores, which was also not
        guaranteed before. Use specialized instructions and intrinsics to order
        non-temporal memory accesses.
      + Fixed capability macros for 80-bit long double on x86 targets not
        indicating lock-free operations even if 128-bit atomic operations were
        available.
      + Fixed compilation of gcc asm blocks on Alpha targets.
      + In the gcc __sync* intrinsics backend, fixed that store and load
        operations of large objects (larger than a pointer size) could be
        non-atomic. The implementation currently assumes that small objects can
        be stored with a single instruction atomically on all modern
        architectures.
  * Beast:
      + This update brings bug fixes and support for the following changes
        changes in Boost.Asio:
      + Beast supports BOOST_ASIO_NO_DEPRECATED. Define this to help identify
        areas of your Beast and Asio code which use deprecated Asio interfaces.
      + Beast also supports BOOST_ASIO_NO_TS_EXECUTORS. Define this to identify
        uses of executors from the now potentially outdated Networking TS
      + Asio will use the Standard Executors model by default. You can prevent
        this behaviour by defining BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT in
        which the Networking TS model will be used by default. Setting this
        flag does not prevent a program from using executors from the Standard
        Executors model explicitly.
      + We'd love to know how you or your company use Beast, consider adding an
        entry to the Companies and Individuals Using Beast list.
      + See the full Release Notes for a complete list of changes.
  * Bimap:
      + Correct allocator usage (fixes C++20 compilation). (Glen Fernandes)
  * Config:
      + Implement BOOST_NO_CXX11_OVERRIDE and BOOST_OVERRIDE. (Glen Fernandes)
  * Core:
      + Implemented the allocator access utilities which provide a replacement
        for allocator_traits with individual traits and functions for each
        facility. They support the C++11 allocator model when possible and
        provide a fallback for C++98 compatibility. These are now used in
        Circular_Buffer, Wave, Lockfree, Heap, Smart_Ptr, Dynamic_Bitset,
        Format, Bimap and more. (Glen Fernandes)
  * DLL:
      + Multiple fixes for the library_info work on empty shared objects.
      + Compilation fixes for C++98 and C++11 modes (#28).
      + Fixes for smart_library manglings (thanks to XiaLiChao82 #37).
  * Endian:
      + Enabled scoped enumeration types in endian_reverse.
      + Enabled bool, enum, float, double in endian_reverse_inplace.
      + Added an overload of endian_reverse_inplace for arrays.
  * Filesystem:
      + Removed compile-time checks for support for symlinks and hardlink on
        Windows. Instead, a runtime check is used. (PR#142)
      + Fixed handling of reparse points in canonical and read_symlink on
        Windows. This also affects other algorithms that involve canonical and
        read_symlink in their implementation. (PR#100, #85, #99, #123, #125)
      + Fixed that read_symlink on Windows could potentially fail or cause
        failures elsewhere with a sharing violation error, if the same symlink
        was opened concurrently. (#138)
      + Fixed that is_symlink(directory_entry) would always return false, even
        if the directory entry actually referred to a symlink. (PR#148)
      + Added missing status inspection operation overloads for directory_entry
        and error_code (e.g. is_directory(directory_entry, error_code&)).
        Removed incorrect noexcept specifications for the overloads not taking
        the error_code arguments.
      + copy_file implementation has been updated to perform checks on the
        source and target files, as required by C++20 ([fs.op.copy.file]/4.1).
        In particular, the operation will fail if the source or target file is
        not a regular file or the source and target paths identify the same
        file.
      + copy_file on POSIX systems will now also copy the source file
        permissions to the target file, if the target file is overwritten.
      + New: Added copy_file implementations based on sendfile and
        copy_file_range system calls on Linux, which may improve file copying
        performance, especially on network filesystems.
      + Deprecated: The copy_option enumeration that is used with the copy_file
        operation is deprecated. As a replacement, the new enum copy_options
        (note the trailing 's') has been added. The new enum contains values
        similar to the copy_options enum from C++20. The old enum values are
        mapped onto the new enum. The old enum will be removed in a future
        release.
      + New: Added copy_options::skip_existing option, which allows copy_file
        operation to succeed without overwriting the target file, if it exists.
      + New: Added copy_options::update_existing option, which allows copy_file
        operation to conditionally overwrite the target file, if it exists, if
        its last write time is older than that of the replacement file.
      + New: copy_file now returns bool, which indicates whether the file was
        copied.
      + New, breaking change: copy operation has been extended and reworked to
        implement behavior specified in C++20 [fs.op.copy]. This includes
        support for copy_options::recursive, copy_options::copy_symlinks,
        copy_options::skip_symlinks, copy_options::directories_only,
        copy_options::create_symlinks and copy_options::create_hard_links
        options. The operation performs additional checks based on the
        specified options. Applying copy to a directory with default
        copy_options will now also copy files residing in that directory (but
        not nested directories or files in those directories).
      + New: Added create_directory overload taking two paths. The second path
        is a path to an existing directory, which is used as a source of
        permission attributes to use in the directory to create.
      + Deprecated: copy_directory operation has been deprecated in favor of
        the new create_directory overload. Note that the two operations have
        reversed order of the path arguments.
      + equivalent on POSIX systems now returns the actual error code from the
        OS if one of the paths does not resolve to a file. Previously the
        function would return an error code of 1. (#141)
      + equivalent no longer considers file size and last modification time in
        order to test whether the two paths refer to the same file. These
        checks could result in a false negative if the file was modified during
        the equivalent call.
      + New: Added absolute overloads taking error_code argument.
      + Operations that have current_path() as the default value of their
        arguments and also have an error_code argument will use the
        current_path(error_code& ec) overload to obtain the current path, so
        that its failure is reported via the error_code argument instead of an
        exception.
      + space now initializes the space_info structure members to -1 values on
        error, as required by C++20 ([fs.op.space]/1).
      + space on Windows now accepts paths referring to arbitrary files, not
        only directories. This is similar to POSIX systems and corresponds to
        the operation description in C++20. (#73)
      + New: Added implementation of temp_directory_path for Windows CE. (PR#25
        )
      + New: Improved compatibility with WASI platform. (PR#144)
      + New: Improved support for Embarcadero compilers. (PR#130)
      + New: Added implementations of unique_path operation based on getrandom
        (Linux), arc4random_buf (OpenBSD/FreeBSD/CloudABI) and BCrypt (Windows)
        system APIs.
      + Deprecated: Auto-linking against system libraries on Windows with
        MSVC-compatible compilers is deprecated and will be removed in a future
        release. This affects users linking against static library of
        Boost.Filesystem. Users are advised to update their project build
        systems to either use a shared library of Boost.Filesystem, or
        explicitly specify the dependencies of Boost.Filesystem in the linker
        command line. Users of shared library of Boost.Filesystem are not
        affected.
  * Flyweight:
      + Maintenance work.
  * Format:
      + Correct allocator usage (fixes C++20 compilation). (Glen Fernandes)
  * Geometry:
      + Improvements
          o PR#720 Additional R-tree constructors (thanks to Caian Benedicto).
          o Various improvements in buffer, set and relational operations.
      + Solved issues
          o #709 memcpy called for object with no trivial copy-assignment.
          o #721 Compilation error in bgi::detail::rtree::visitors::insert.
          o #727 MSVC warning: conditional expression is constant.
      + Bugfixes
          o PR#700 Missing cases for default strategies in distance algorithm.
          o PR#738 Longitudes out of range in direct geodesic formulas.
  * GIL:
      + Added
          o Added new constructor initializing any_image from r-value reference
            to any image (PR#486).
          o Implemented mechanism to reverse kernel_2d (PR#489).
      + Changed
          o BREAKING: Replace Boost.Variant with Boost.Variant2 (PR#474) which
            completes removal on uses of Boost.MPL (missing from Boost 1.72.0
            change added PR#274).
          o Use perfect forwarding from apply_operation to visit (PR#491).
      + Removed
          o BREAKING: Removed dependency on Boost.Variant
      + Fixed
          o Fixed invalid conversion from RGB8 to CMYK32 due to overflow (PR#
            470).
          o Fixed image constructor from other image (PR#477).
          o Fixed error plane_view_t is not a class or namespace name (PR#481).
          o Fixed interleaved_view factory using point<std::ptrdiff_t> for
            dimension (PR#487).
          o Fixed documentation replacing uses MPL with MP11 in tutorial (PR#
            494).
          o Fixed missing header in numeric/kernel.hpp to make it
            self-contained (PR#502).
      + Acknowledgements
          o Samuel Debionne, Pranam Lashkari, Mateusz Loskot, Debabrata Mandal
  * Heap:
      + Correct destruction of top node in skew_heap. (Glen Fernandes)
      + Correct and simplify allocator use. (Glen Fernandes)
  * Integer:
      + Fixed compilation of gcd in C++20 mode with clang 10.
      + Improved support for Embarcadero compilers. (PR#21)
  * Iterator:
      + boost/function_output_iterator.hpp header is now deprecated. Users
        should replace its inclusion with boost/iterator/
        function_output_iterator.hpp. (PR#51)
      + Improved support for Embarcadero compilers. (PR#55)
  * LexicalCast:
      + Fixed warnings on missing override (thanks to EugeneZelenko #35, #34).
      + Fixes for the the Embarcadero compilers (thanks to Edward Diener).
  * Log:
      + Bug fixes:
          o The syslog sink backend now verifies the IP version of the local
            and target addresses set by user. The addresses must have the same
            IP version as was specified in the ip_version named parameter on
            the sink backend construction (by default, IPv4 is assumed). When
            an address is obtained as a result of host name resolution, only
            addresses with matching IP version are considered. (#119)
      + New Features:
          o Move constructors and assignment operators of various components
            were marked noexcept.
          o Added a new range_manip stream manipulator that can be used for
            outputting elements of a range, optionally separated by a
            delimiter.
          o Added a new tuple_manip stream manipulator that can be used for
            outputting elements of a tuple or any other heterogeneous sequence,
            optionally separated by a delimiter.
          o Added a new optional_manip stream manipulator that can be used for
            outputting optionally present values.
      + See changelog for more details.
  * Mp11:
      + Improved compilation performance of mp_with_index<N> for large N.
      + Added tuple_transform (contributed by Hans Dembinski.)
  * Multi-index Containers:
      + Added node extraction and insertion following the analogous interface
        of associative containers as introduced in C++17. This feature has also
        been extended to non key-based indices, in contrast to C++ standard
        library sequence containers, which do not provide such functionality.
      + Clarified documentation on read/write key extractors (issue #32).
      + Maintenance work.
  * Nowide:
      + The library now requires a C++11-compliant compiler and stdlib
      + LFS: Add support for files > 2 GB where the underlying system supports
        it
      + Generic UTF conversion functions are now available in the boost::nowide
        ::utf namespace
      + Add support for stat with UTF-8 paths
  * Outcome:
      + Announcements:
          o The v2.1 branch is expected to be retired end of 2020, with the
            v2.2 branch becoming the default. You can use the future v2.2
            branch now using better_optimisation. This branch has a number of
            major breaking changes to Outcome v2.1, see the front page for
            details.
      + Enhancements:
          o BREAKING CHANGE void results and outcomes no longer default
            construct types during explicit construction. Previously if you
            explicitly constructed a result<T> from a non-errored result<void>,
            it default constructed T. This was found to cause unhelpful
            surprise, so it has been disabled.
          o New macro OUTCOME_ENABLE_LEGACY_SUPPORT_FOR. The macro
            OUTCOME_ENABLE_LEGACY_SUPPORT_FOR can be used to enable aliasing of
            older naming and features to newer naming and features when using a
            newer version of Outcome.
          o Concepts now have snake case style naming instead of camel case
            style. When Outcome was first implemented, it was thought that C++
            20 concepts were going to have camel case style. This was changed
            before the C++ 20 release, and Outcome's concepts have been renamed
            similarly. This won't break any code in Outcome v2.1, as
            compatibility aliases are provided. However code compiled against
            Outcome v2.2 will need to be upgraded, unless
            OUTCOME_ENABLE_LEGACY_SUPPORT_FOR is set to 210 or lower.
          o Concepts now live in OUTCOME_V2_NAMESPACE::concepts namespace.
            Previously concepts lived in the convert namespace, now they live
            in their own namespace.
          o New concepts basic_result<T> and basic_outcome<T> added. End users
            were finding an unhelpful gap in between is_basic_result<T> and
            value_or_error<T> where they wanted a concept that matched types
            which were basic_result, but not exactly one of those. Concepts
            filling that gap were added.
          o Operation TRY works differently from Outcome v2.2 onwards. This is
            a severely code breaking change which change the syntax of how one
            uses OUTCOME_TRY(). A regular expression suitable for upgrading
            code can be found in the list of changes between Outcome v2.1 and
            v2.2.
      + Bug fixes:
          o #224 The clang Apple ships in Xcode 11.4 (currently the latest) has
            not been patched with the fixes to LLVM clang that fix noexcept(std
            ::is_constructible<T, void>) failing to compile which I originally
            submitted years ago. So give up waiting on Apple to fix their
            clang, add a workaround to Outcome.
          o Spare storage could not be used from within no-value policy
            classes. Due to an obvious brain fart when writing the code at the
            time, the spare storage APIs had the wrong prototype which
            prevented them working from within policy classes. Sorry.
  * PolyCollection:
      + Fixed internal ambiguity problem between boost::type_erasure::any and
        boost::any (issue #17).
      + Maintenance work.
  * SmartPtr:
      + Added owner_equals to shared_ptr, weak_ptr, local_shared_ptr.
      + Added owner_hash_value to shared_ptr, weak_ptr.
      + Added owner_equal_to, owner_hash.
      + Added std::hash specializations for shared_ptr, local_shared_ptr.
      + Added boost::hash support to, and std::hash, std::equal_to
        specializations for, weak_ptr.
  * Stacktrace:
      + Fixed a build error when compiled with -fno-exceptions (thanks to
        Jeremiah Rodriguez #91).
  * System:
      + operator bool() now returns failed() instead of value() != 0.
  * Type_Traits:
      + Implemented conjunction, disjunction, negation, is_trivially_copyable,
        is_scoped_enum, and is_unscoped_enum. (Glen Fernandes)
  * Variant:
      + Fixed warnings on missing override (thanks to EugeneZelenko #78).
      + Fixes for the the Embarcadero compilers (thanks to Edward Diener #79).
      + Updated header locations to avoid warnings about using deprecated
        headers (thanks to Andrey Semashev #80)
  * Variant2:
      + Added support for derived types in visit.
      + Improved compilation performance for many (hundreds of) alternatives.
      + Added support for visit<R>.
  * Wave:
      + Implement C++20 features for variadics, including __VA_OPT__ (PR#75)
      + Implement __has_include (PR#102)
      + Introduce new sample: check_macro_naming, useful with Boost itself (PR#
        97)
      + Fix compilation issue caused by std::allocator member removal in C++20
        (PR#72)
      + Repair Xpressive lexer and token_statistics sample (PR#79)
      + Repair lexertl lexer (PR#78)
      + Ensure hooks are run on predefined macros as well (PR#87)
      + Various minor bug fixes
      + C++98/03 support is now deprecated and will be removed in 1.77
  * YAP:
      + Fixed compilation errors for placeholders; they now work in the general
        case, and in particular work with yap::print().
      + constexpr all the YAP.
      + Fix printing of correct value category in yap::print().
      + Doc clarification.

Updated Tools

  * Boostbook:
      + Change encoding of generated documentation from US-ASCII to UTF-8.
        (Glen Fernandes)
jperkin pushed a commit that referenced this pull request Jan 13, 2021
## [3.20.1](marcandre/backports@v3.20.0...v3.20.1) - 2021-01-03

### Fixed

* Added `Ractor.[]` and `[]=` [#161]
* `Ractor.current` fixed from threads [#161]

## [3.20.0](marcandre/backports@v3.19.0...v3.20.0) - 2020-12-30

### Added

Ractor backport (all methods)

## [3.19.0](marcandre/backports@v3.19.0...v3.18.2) - 2020-12-28

### Added

* Ruby 3.0 backports

  * Env
    * `except`

  * Hash
    * `except`
    * `transform_keys`, `transform_keys!` (with hash argument)

  * Symbol
    * `name`

* Ruby 2.3 backports

  * Queue
    * `close`, `closed?` (affects `push`, `pop` and aliases)
jperkin pushed a commit that referenced this pull request Apr 18, 2021
-Add support for Elvish (#174)
-Use Nushell from Nixpkgs unstable (#171)
-Make z exclude current directory (#173)
-Append __zoxide_hook to front of PROMPT_COMMAND (#170)
-Add support for Nushell (#164)
-Find zoxide in Xonsh shells (#168)
-Reference integration with nnn (autojump plugin) (#166)
-Fix CI (#161)
-Remove barely-used aliases (#158)
-Use variable to prevent hook redefinition (#154)
-Use /dev/null on Unix shells (#152)
-Specified external call to cd for fish (#146)
-Remove cargo-udeps
-Handle write errors gracefully (#143)
-Use builtin in shells (#141)
-Use zero copy deserialization (#138)
-Forcibly disable backtraces (#130)
-Start fish in an isolated env (#128)
-Run shell tests in a clean env
-Add NetBSD and Alpine Linux install instructions
-Use Nix for testing
-Split tests
-Change install instructions, add third-party integrations and update README
-Add Termux install instructions
-Update installation instructions
jperkin pushed a commit that referenced this pull request Apr 26, 2021
* Fix #121: the -i flag produces an .info file even if
  the %expect pragma is violated
* Fix #131: qualify uses of Prelude functions in generated code
* Fix #161: drop fewer parse items when generating an .info file
* Introduce the %shift directive to resolve shift/reduce
  conflicts explicitly, useful in conjunction with %expect 0
* Remove the deprecated build configuration flag 'small_base'
jperkin pushed a commit that referenced this pull request Apr 26, 2021
texmath (0.12.2)
  * MathML input: support mmultiscripts element (#158, #100).
  * Make MathML tag/attr recognition case-insensitive (#158).
  * Pandoc writer: better handling of styling such as `\mathrm` (#145).
    Previously identifiers were always italic, no matter what
    styling was applied.
  * Ignore `\tag` in TeX input (#162).
  * TeX writer: avoid unneeded `\left` and `\right` for delimited.
    We don't need `\left` and `\right` when the contents are
    "standard height."
  * TeX reader: parse implicit EDelimited sections (#172).
    We now parse `(x)` as EDelimited, even though `\right` and `\left`
    are not used.

texmath (0.12.1.1)
  * Fix compilation with GHC-9.0.1 (#169, Simon Jakobi).
    Background:
    https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption
  * Add eqn to online demo.
  * Improve error messages for unknown control sequences, and restructure
    tex parser to be more efficient (#167).

texmath (0.12.1)
  * OMML writer: explicitly mark symbols as non-italic (#109).
    Otherwise, for some reason, they appear as italic by default.
  * Improve error messages in reading tex arrays.
  * Improve support for `\bmod`, `\mod`, etc. (#165).
    Allow them to take complex arguments like `\left( 1 \right)`.
  * Improve support for `\genfrac` (#164).
  * Ignore `\textstyle`, `\scriptstyle`, `\scriptscriptstyle`,
    as we currently ignore `\displaystyle`.
  * Parse siunitx commands in reading tex (#157).
  * Improve handling of `\not` in reading tex (#161).
    Previously we only handled `\not` in front of certain symbols.
  * Support `\pod` and `\pmod` and clean up spacing and font for
    `\mod` and `\bmod` (#160).

texmath (0.12.0.3)
  * Allow pandoc-types 1.22.

texmath (0.12.0.2)
  * Allow pandoc-types 1.21.
  * Pandoc output: omit empty Emph for sub/superscript without base (#155).
  * tex writer: Use `\overline{\overline{B}}` instead of unicode
    double line accent (#153).

texmath (0.12.0.1)
  * OMML writer: Fix overline and accent rendering (#152).
  * OMML reader: Fix dropped arrows (#153). Add tests.
jperkin pushed a commit that referenced this pull request May 11, 2021
Updates to latest librespot, bringing along some larger changes under the hood.

Maintenance:
-Display error when command can not be parsed (#161)
-Add rounding to volume percentage display (#493)
-Log warning instead of panicking on invalid color (#498)
-Update to librespot 0.2.0
	-As part of this, a lot of the Future implementations were migrated to
	async/.await and cleaned up
-Flip play/pause indicators (#511)

Features:
-Add audio_cache_size to set maximum cache size (#429)
jperkin pushed a commit that referenced this pull request Jun 4, 2021
Changes since 1.4.0 from the RELEASE_NOTES file
        NOTE: In response to CVE-2019-20790, opendmarc has changed
                how it evaluates headers added by previous
                SPF milters.  Users are encouraged to read the
                CVE-2019-20790 file in the "SECURITY" folder
                for more details. (#49, #158).  Originally reported by
                Jianjun Chen, feedback by Simon Wilson and
                David Bürgin <dbuergin@gluet.ch>.
        NOTE: OpenDMARC's internal SPF handling will be removed
                in a future version.  Users are encouraged to
                build linked against libspf2.  Many pre-built
                packages provided by OS packagers already do this.
                (See https://www.libspf2.org)
        Addition of defines for MUSL C Library. (#129/#133).  Patches by
                Marco Rebhan.
        Updated opendmarc.conf manpage and opendmarc.conf.sample to point to
                https://publicsuffix.org/list/.
        Added a CONTRIBUTING document.
        Fix two #ifdefs in arc functions for strlcpy. (#138).  Reported by
                Leo Bicknell.
        Fixes to MySQL Schema (#98/#99).  Patch by Bond Keevil.
        LIBSPF2 calls would not compile on OpenBSD due to OpenBSD not
                having the ns_type definition in arpa/resolv.h.
                Added detection to configure script.  (#134)
        Reworked hcreate_r calls to use hcreate, to compile natively on
                OpenBSD and MacOS. (Part of #94)  Reported by Rupert
                Gallagher.
        Add compatibility with AutoConf 2.70. (#95)
        Documentation updates about SourceForge being deprecated.  (#101)
        Only accept results from Received-SPF fields that indicate clearly
                which identifier was being evaluated, since DMARC specifically
                only wants results based on MAIL FROM.
        Many build-time fixes (#100, #91, #90, #86, #85, #84, #83, #82, #81)
                Patches provided by Rupert Gallagher (ruga@protonmail.com)
        Added config option HoldQuarantinedMessages (default false), which
                controls if messages with p=quarantine will be passed on to
                the mail stream (if False) or placed in the MTA's "hold"
                queue (if True).  Issue #105.  Patch by Marcos Moraes, on
                the OpenDMARC mailing list.
        Remove "--with-wall" from "configure".  Suggested by Leo Bicknell.
        LIBOPENDMARC: Fix bug #50: Ignore all RRTYPEs other than TXT.
                Problem reported by Jan Bouwhuis.
        LIBOPENDMARC: Fix bug #89: Repair absurd RRTYPE test in SPF code.
        LIBOPENDMARC: Fix bug #104: Fix bogus header field parsing code.
        LIBOPENDMARC: Fix bug #161: Don't pass the client IP address through
                htonl() since it's already in network byte order.  This
                was causing SPF errors when the internal SPF
                implementation was in use.
        LIBOPENDMARC: Fix numerous problems with the internal SPF
                implementation.
jperkin pushed a commit that referenced this pull request Jun 15, 2021
htmltools 0.5.1.1
--------------------------------------------------------------------------------

* Added shiny as a suggested package.


htmltools 0.5.1
--------------------------------------------------------------------------------

## New Features & Improvements

* Added a new `tagFunction()` for generating `tags` and/or
  `htmlDependency()`s conditional on the rendering context. For an
  example, see `?tagFunction`. (#180)

* Closed #104: `save_html()`'s `file` argument now properly handles
  relative paths. (@haozhu233, #105, #192)

* `save_html()` now has a `lang` parameter that can be used to set the
  lang attribute of `<html>`. (@ColinFay, #185)

* Closed #101: `htmlDependency` & `renderDependencies` now allow the
  `script` argument to be given as a named list containing the
  elements: `src`, `integrity`, `crossorigin`. (@matthewstrasiotto,
  #188)

* Closed #189: `validateCssUnit()` now accepts `fit-content`. (#190)

* `htmlPreserve()` can now optionally use the Pandoc `raw_attribute`
  extension to enclose HTML.

## Breaking Changes

* Closed #161: `parseCssColors(x)` now requires `x` to be a character
  vector (it no longer accepts a `list()` of strings) and an error is
  no longer thrown when `mustWork = FALSE` and `x` contains `NA`
  value(s). (#194)

## Bug fixes

* `print(as.tags(x))` no longer results in error when `x` is a generic
  `list()` of tag-like objects. (#181)


htmltools 0.5.0
--------------------------------------------------------------------------------

* `tags` is now generated by a script which collects all
  [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) and
  [SVG](https://developer.mozilla.org/en-US/docs/Web/SVG/Element) element tags
  documented in [MDN Web Docs](https://developer.mozilla.org).  This feature
  only appends to the existing set of `tags` (#159)

* Removed the Rcpp depedency and the compiled code now uses C rather than C++ (#158)

* BREAKING CHANGE: Fixed #57, #153: `htmlTemplate` output no longer inserts
  extra whitespace around {{...}} replacement values. (#154)

* `HTML()` now takes `.noWS` argument, which can be used to suppress surrounding
  whitespace (similar to the new argument for tags in htmltools 0.4.0). (#154)

* `css()` now returns `NULL` instead of `""` when no non-empty properties are
  specified. (#145)

* `save_html(tags$body(...))` no longer results in double <body> tags being
  written to the .html file. (Note that `save_html(tags$html(...))` is not
  supported at this time.) (#145)

* Trailing commas now permited in `...` arguments to `css()`, `tagList()`, and
  the var-arg mutation functions: `tagAppendAttributes()`, `tagSetChildren()`,
  and `tagAppendChildren()`. (#145)

* Added `capturePlot` and `plotTag` functions, for easily creating image files
  and HTML <img> tags (respectively) from plot expressions. (#150)

* Added `parseCssColors` function, for normalizing the various CSS
  color formats into #RRGGBB(AA) strings. (#155)

* Fixed #156: Now `extractPreserveChunks()` handles strings contain
  Emoji Unicode strings correctly on Windows. (#157)

* The `.noWS` parameter for suppressing whitespace can now take an `"inside"`
  value (equivalent to `c("after-start", "before-end")`). (#163)

htmltools 0.4.0
--------------------------------------------------------------------------------

* Fixed #128: Added support for trailing commas in tagLists and the predefined
  tags. (#135)

* Added some HTML tag functions to `tags` that were missing. (#111)

* Updated RcppExports for new version of Rcpp. (#93)

* `as.character.shiny.tags()` will handle non-ASCII attributes correctly if they
  are not encoded in native encoding.

* Fixed #99: `NA` attributes were sometimes rendered as `"NA"` in the HTML,
  instead of being blank. (#100)

* The error message for trailing commas in tag functions now provides context
  and useful information. (#109)

* Stopped using inline styles to set background color for `save_html`, as doing so
  makes it difficult to override using other CSS rules. (#123)

* Added a `.noWS` argument to `tag()` and `tags` which can be used to suppress
  the automatically generated whitespace around a particular tag. (#131)

* Added a shim for `system.file()` so that htmltools works with `htmlDependency`
  objects created by a package that was loaded with `devtools::load_all()`.
  (#129)

* `validateCssUnit()` now accepts `ch`, `rem`, and `calc()`. (#134)

* Fixed #125: `print.html` removes html dependencies. (#126)

* Stopped extra carriage returns from being inserted by `save_html` on Windows.
  (#137)
jperkin pushed a commit that referenced this pull request Jun 15, 2021
# withr 2.4.2
- `local_options()` now lets you set an option to `NULL` as intended (#156)

- `local_tempfile()` argument `envir` is deprecated, in favor of
  `.local_envir`.  All withr functions except `local_tempfile()` used
  `.local_envir` to specify environments, so this makes this function
  consistent with the rest. (#157)

- `with_environment()` now passing `pos` and `warn.conflicts` to
  `attach()`, as intended (#161).

- `with_seed()` now also sets the RNG via new arguments `.rng_kind`,
  `.rng_normal_kind` and `.rng_sample_kind` (#162, @AshesITR).

- `with_timezone()` now works after recent changes to `Sys.timezone()`
  in R-devel (#165)
jperkin pushed a commit that referenced this pull request Dec 9, 2021
## [1.1.0]

### Added

* CLI: The `--path <PATH>` flag has been added, allowing users to limit
  dependency discovery to one or more paths (specified separately)
  when `pip-audit` is invoked in environment mode
  ([#148](pypa/pip-audit#148))

* CLI: The `pip-audit` CLI can now be accessed through `python -m pip_audit`.
  All functionality is identical to the functionality provided by the
  `pip-audit` entrypoint
  ([#173](pypa/pip-audit#173))

* CLI: The `--verbose` flag has been added, allowing users to receive more
  more verbose output from `pip-audit`. Supplying the `--verbose` flag
  overrides the `PIP_AUDIT_LOGLEVEL` environment variable and is equivalent to
  setting it to `debug`
  ([#185](pypa/pip-audit#185))

### Changed

* CLI: `pip-audit` now clears its spinner bar from the terminal upon
  completion, preventing visual confusion
  ([#174](pypa/pip-audit#174))

### Fixed

* Dependency sources: a crash caused by `platform.python_version` returning
  an version string that couldn't be parsed as a PEP-440 version was fixed
  ([#175](pypa/pip-audit#175))

* Dependency sources: a crash caused by incorrect assumptions about
  the structure of source distributions was fixed
  ([#166](pypa/pip-audit#166))

* Vulnerability sources: a performance issue on Windows caused by cache failures
  was fixed ([#178](pypa/pip-audit#178))

## [1.0.1] - 2021-12-02

### Fixed

* CLI: The `--desc` flag no longer requires a following argument. If passed
  as a bare option, `--desc` is equivalent to `--desc on`
  ([#153](pypa/pip-audit#153))

* Dependency resolution: The PyPI-based dependency resolver no longer throws
  an uncaught exception on package resolution errors; instead, the package
  is marked as skipped and an appropriate warning or fatal error (in
  `--strict` mode) is produced
  ([#162](pypa/pip-audit#162))

* CLI: When providing the `--cache-dir` flag, the command to read the pip cache
  directory is no longer executed. Previously this was always executed and
  could result into failure when the command fails. In CI environments, the
  default `~/.cache` directory is typically not writable by the build user and
  this meant that the `python -m pip cache dir` would fail before this fix,
  even if the `--cache-dir` flag was provided.
  ([#161](pypa/pip-audit#161))

## [1.0.0] - 2021-12-01

### Added

* This is the first stable release of `pip-audit`! The CLI is considered
  stable from this point on, and all changes will comply with
  [Semantic Versioning](https://semver.org/)

## [0.0.9] - 2021-12-01

### Added

* CLI: Skipped dependencies are now listed in the output of `pip-audit`,
  for supporting output formats
  ([#145](pypa/pip-audit#145))
* CLI: `pip-audit` now supports a "strict" mode (enabled with `-S` or
  `--strict`) that fails if the audit if any individual dependency cannot be
  resolved or audited. The default behavior is still to skip any individual
  dependency errors ([#146](pypa/pip-audit#146))
jperkin pushed a commit that referenced this pull request Apr 11, 2022
Change log:

1.0.0
======
Stable release including improvements introduced in versions 0.9.0, 0.9.1 and 0.9.2.
The Shortcuts Editor requires libxfce4ui 4.17.2 or greater.

Fixes
- Remove remaining libxfce4ui 4.16 version guards

Translation Updates:
  Danish, Greek, Russian, Turkish

0.9.2
======
This is a RELEASE CANDIDATE for 1.0.0. If you want to help keep xfce4-terminal
bug-free you can test this release and report any problems you encounter.

DEPENDENCIES UPDATED:
- VTE: 0.51.3
- Xfce-libs: 4.16.0

General Improvements:
- Use XfceTitledDialog for `Find` (Issue #168)
- Include '\r' in unsafe-paste checks
- Update tab accelerators at runtime
- Consume events that activate accelerator callbacks (Issues #159 #153)

Shortcuts editor (depends on libxfce4ui 4.17):
- Center on the active terminal window.
- Change handling of goto-tab accelerators so they can be changed through the editor.

Regressions fixed:
- Menubar changes size when the window is maximized (Issue #156)
- Context Menu: Revert changes in order and contents introduced by the transition to XfceGtkActionEntries
- Add "Show Window Borders" entry in View menu (it was missing in the last 2 dev releases)
- Revert view menu order (Zoom entries below checkboxes)
- Fix the visibility flag of the scrollbar (Issue #161, could lead to broken themes)

Other:
- Replace GTimeVal with gint64
- Fix build warnings
- Update Copyright

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), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
  Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Ukrainian

0.9.1
======
This is a development release.

New features:
- Use GtkScrolledWindow for TerminalScreen and add an overlay-scrolling preference (Issue #149)
- Support the new Shortcuts editor widget (requires libxfce4ui 4.17.2 or greater)
- New preference: Select right click action

Enhancements:
- Improved `scrolling-on-output` behaviour.
- Unsafe Paste Dialog temporary override (Issue #106)

Fixes:
- Fix regression: File Menu missing `Close Window` entry
- Fix regression: Disable Help shortcut does not work
- Fix regression: go-to accelerators not working on startup
- Fix regression: Revert accelerator paths to maintain backwards compatibility
- Use the latest .glade file structure

Documentation:
- Change incorrect reference to ${XDG_CONFIG_DIRS} in man page (Issue #47)
- Change outdated documentation links

- 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), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
  Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Ukrainian

0.9.0
======
This is a development release.

- Replace the deprecated GtkActionEntries with XfceGtkActionEntries (Issue #79)
- Opening a dialog from a drop-down window closes the window (Issue #136)
- Add `Fill` background image style (MR !23).
- Improved options parsing (for both short and long forms)
- Add a menu entry to send signals to the foreground process (Issue #59)
- Fix `keep window open` preference being applied on restart.
- Rework "--tab" and "--window" behavior (Issue #13)
- Ignore unused modifiers for scroll wheel zooming
- Add alternative shortcuts for zooming (Issue #126)
- Expand scrolled window and make dialog size 70% of parent (!17)
- Support libxfce4ui XfceTitledDialog new API

Unsafe Paste Dialog:
- Update unsafe paste dialog text (Issue #73)
- Fix paste button focus
- Replace subtitle by infobar for Unsafe paste dialog
- Fix the `unsafe paste` dialog to actually paste

Cleanup:
- Update `.gitignore`, HACKING, AUTHORS, COPYRIGHTS
- Update --preferences, --tab and --window documentation
- Fix various typos
- Fix compilation warnings
- Remove unnecessary function call (!24)

Temporary changes (will be changed before the final release):
- Add a "Do not warn me again" checkbox for the "Unsafe Paste" dialog (Issue #129)

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), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
  Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Ukrainian, Uyghur
jperkin pushed a commit that referenced this pull request May 1, 2022
# 1.4.0

* `cran_check_results()` now downloads results in parallel, so it is
  much faster.

* `rcmdcheck_process` now redirects the standard error to the standard
  output, to make sure that they are correctly interleaved (#148).

* rcmdcheck now puts Rtools on the PATH, via pkgbuild (#111).

* rcmdcheck now builds the manual when building the package, if it is
  needed for `\Sexpr{}` expressions (#137).

* This version fixes a rare race condition that made rcmdcheck fail (#139).

* rcmdcheck now safeguards against R deleting the user's home directory
  via an `R CMD build` bug (#120).

* rcmdcheck can now ignore files in `inst/doc` when building a package.
  See the `Config/build/clean-inst-doc` package option in
  `?"rcmdcheck-config"` (#130).

* It is now possible to turn on/off ANSI colors for rcmdcheck only,
  without affecting the checked package. See `?"rcmdcheck-config" and the
  `RCMDCHECK_NUM_COLORS` environment variable and the `rcmdcheck.num_colors`
  option (#119, @jimhester).

* `print.rcmdcheck()` now has a `test_output` argument and
  `rcmdcheck.test_output` global option, to control whether to print the full
  test output or not. (#121)

* RStudio's Pandoc is now on the path during `rcmdcheck()`
  and `rcmdcheck_process` (#109, #132, @dpprdan).

* `rcmdcheck()` now errors if the check process crashes (#110, #163).

* `rcmdcheck()` prints the check ouptut better interactively, especially
  when the package has multiple test files (#145, #161).

* rcmdcheck can now ignore `NOTE`s, if requested, see `?rcmdcheck` for
  details (#12, #160).

* rcmdcheck now always converts its output to UTF-8 from the native
  encoding. It also handles parsing check output in a non-native encoding
  better (#152).

* rcmdcheck now ignored time stamps when comparing two check results (#128).

* rcmdcheck now does not print extra empty lines in the interactive output
  on GitHub Actions.

* rcmdcheck now uses a more robust implementation to extract the session
  info from the check process (#164).
jperkin pushed a commit that referenced this pull request Aug 1, 2022
Fixes
  Fixed not being able to move window under Wayland (#134).
  Fixed showing add and remove options for tracks in collaborative playlists
   (#160).
  Fixed some possible issues with selecting a device (#162).
  Fixed MPRIS support under KDE (#178).
  Fixed crash when opening links on some artists.

Changes
  Much improved MPRIS support (#4).
  Windows builds now use MSVC, and are available in x86 and x64 variants (#109).
  Added keyboard shortcuts (#118, #152).
  Added macOS builds (#121).
  Added high-DPI support on macOS (#123).
  Added support for playing tracks from outside the application (#136).
  Added support for selecting multiple tracks (#137).
  Added an option to use an expanded album cover (#147).
  Added an option to close application to the tray (#151).
  Improved detection of spotifyd config files (#154).
  Added an option to change device type (#161).
  Added message when queuing tracks (#166).
  Added AppImage builds for Linux.
  Replaced custom font option with ability to select font from system.
  Added an option to disable checking for updates on start.
jperkin pushed a commit that referenced this pull request Jan 12, 2023
From the upstream ChangeLog:

[2.2] Fix 'multiple definition' compile time errors by @rdmark in #136
[2.2] Remove bitrotted code by @rdmark in #139
[2.2] Fixes for the OpenSSL 1.1 API; add OpenSSL 1.0 backwards compat by @rdmark in #142
[2.2] Install afp_ldap.conf based on LDAP support, not availability of ACLs. by @rdmark in #143
[2.2] Resolve gcc 10 compile time warnings on Linux by @rdmark in #165
[2.2] Downstream patches for NetBSD compatibility by @rdmark in #148
[2.2] Make timelord work on non-big-endian systems; ability to sync localtime by @rdmark in #151
[2.2] Resolve papd compile time errors due to deprecated CUPS calls by @rdmark in #152
[2.2] Resolve automake warnings running bootstrap by @rdmark in #153
[2.2] Handle special FIRSTNET behavior on NetBSD by @rdmark in #154
[2.2] papd patches for compatibility with older Apple LaserWriter drivers on Mac and GS/OS by @rdmark in #156
[2.2] Allow non-unicode volume to be scanned by the repair tool. by @rdmark in #158
[2.2] Update init script templates to start/stop a2boot daemon. by @rdmark in #160
[2.2] Backport Netatalk 3 patches by @rdmark in #161
[2.2] papd: Send replies to client when printing to prompt more data by @rdmark in #162
[2.2] afpd: Add option to disable afp session tickles by @rdmark in #163
[2.2] Update for Unicode 14 by @rdmark in #164
[2.2] Made the AsanteTalk bridge consistently start up in AppleTalk Phase 2�$A!-�(B by @rdmark in #166
[2.2] Introduce fully functional systemd unit configurations for all daemons by @rdmark in #167
[2.2] General stability patches by @rdmark in #168
Fix some compile errors by @JensKSP in #176

Package changes:

Distfile has been moved to github
Clean up unused PLIST variables
jperkin pushed a commit that referenced this pull request Apr 28, 2023
v0.17.0

    docs: reorder sections to start with the why by @eddiemonge in #159
    feat: allow uppercase HTTP verbs as commands by @danielgtaylor in #160
    fix: crash with certain --help commands by @danielgtaylor in #161
    feat: bulk list supports shorthand query filters by @danielgtaylor in #162
    fix: completion for multi-variable templates by @danielgtaylor in #163
    feat: upgrade to Shorthand v2.1.0 by @danielgtaylor in #164
    fix: properly support commas in headers by @danielgtaylor in #165
    Fix bug #128 by @james-maloney in #166
    fix: run tests on pulls by @danielgtaylor in #167
    fix: properly set error on panic recovery by @danielgtaylor in #168
    feat: set exit code from status code, fixes #125 by @danielgtaylor in #169
    fix: add test for combined path+op params and ref by @danielgtaylor in #171
    fix: upgrade to libopenapi 0.4.x by @danielgtaylor in #170
    fixes 'findApi' when the help command is used by @james-maloney in #172
jperkin pushed a commit that referenced this pull request Apr 28, 2023
v3.20211022.1

  * Fix #362 to have make create-package-deb work again. by @jordansissel in
    #363

v3.20210903.1

Allow running under XWayland

  * Revert XWayland detection. Some parts of xdotool do not work under
    XWayland. However,
    many features do work on XWayland, and rejecting XWayland caused problems
    for several
    folks who were otherwise happily using xdotool under Wayland/XWayland. (#
    346, #355)

v3.20210804.2

Fixes a packaging issue in the previous release.

v3.20210804.1

  * xdotool and libxdo will now reject if it is running under Wayland/
    XWayland.
    If XWayland is detected, the program will fail. This is because XWayland
    doesn't allow xdotool or libxdo to work correctly. (#342, Jordan Sissel)
  * New command windowstate which can be used to modify properties of
    windows.
    For example, to full-screen the current window, use:
    xdotool getactivewindow windowstate --add FULLSCREEN
    (#158 by Zhai Zhao Xuan)
  * New command windowquit which is used to ask the windowed application to
    terminate. (#306, Antonio Russo)
  * New command getwindowclassname to print the window's class name.
    (#247, Dominic Mueller)
  * When sending keystrokes, enter and return now are synonyms for the
    Return key symbol (CSylvain)
  * getmouselocation now updates the window stack with the window the cursor
    is
    currently over. (#118, Jordan Sissel)
  * search command now supports searching by window role with --role flag (#
    305, altblue)
  * search command should now no longer report BadWindow errors (#335, Marek
    Marczykowski-Górecki)
  * get_window_location now reports correct value (#289, Edwin Heerschap)
  * Uppercase Latin-1/Basic Latin are now typed correctly (#283, Hasan)
  * Document the regular expressions (POSIX Extended) supported by xdotool
    (#???, Lucas Werkmeister)
  * Use the default X11 Screen instead of assuming 0 (#265, Miroslav Koškár)
  * Wrap header files with extern "C" to enable easier C++ use of libxdo.
    (#331, easyaspi314)
  * Install pkgconfig file when running make install (#229, Joakim Repomaa)
  * Set permissions correctly when installing xdo.h (#324, Dan Church)
  * Fix memory leak (#241, Andrew McDermott)
  * Fix memory leak (#299, orcNo and longqi)
  * Fixed some documentation typos (#161, Vincent Legoll; #336, yjqg6666)
  * Fix all compiler warnings during make (#344, Jordan Sissel)
jperkin pushed a commit that referenced this pull request Jun 11, 2023
(https://rakudo.org/post/announce-rakudo-release-2023.05)

Rakudo compiler, Release #161 (2023.05)

2023-05-31

On behalf of the Rakudo development team, I?m very happy to announce the May
2023 release of Rakudo #161. Rakudo is an implementation of the Raku1 language.

The source tarball for this release is available from https://rakudo.org/files/
rakudo. Pre-compiled archives will be available shortly.

New in 2023.05:

  * Improvements:

      + Allow Nil as payload to X::AdHoc [45b3a050]
      + Separate =input/=output from =code [6f482ca0]
      + Handle uncontainerized type objects as invocant to AT-POS better
        [3139b6c0]
      + Introduce Iterator.is-monotonically-increasing [149dd880][2edcaa35]
        [e702f0e6]
      + Give subsets their .^mro method [7e785883]
  * Additions:

      + Make Int.Str take a :superscript/:subscript named argument [01e82224]
        [0248cc3e]
  * Fixes:

      + Nil.Int should coerce to 0, not to "" [70dc3c8a]
  * Removals:

  * Internal:

      + Introduce Str.is-whitespace implementation detail method [fa2b9e34]
      + Make Str.naive-word-wrapper aware of ANSI escape sequences [bb4514c9]
      + Streamline X::Syntax::Number::LiteralType a bit [bc51ff46][6e20165a]
      + Generalize -0123456789 to ??????????? mapping [5d6ab03c][c33c5538]
  * RakuAST Development:

      + A lot of work was done on RakuAST development (over 120 commits),
        raising the number of passing spectest files from 787 to 825 (out of
        1355).

        [7ca567b4][f8ac118c][7a442c6d][9cd11f75][7ac66112][2d656cd2][f12c8598]
        [7267e7f1][6235256a][13e96284][812ed5f6][1f010bd8][14fed334][a7571cb4]
        [c7f4ab14][7b86e38b][134418bd][2dd66bcb][b29e1084][aedeadf9][8b462b40]
        [2bd73522][a72af165][3b302c06][904d3126][eef4a7ca][97325f65][9ca2e9d1]
        [f4f61663][38cdaf3c][e253ce45][3a801285][edaa90ac][654fb380][eddff44e]
        [8d74e4e7][80c35e42][ae7a219c][c55455d7][5965d7fb][8e513078][2e3690bd]
        [ae1856db][6f3c5352][d1ca18f1][eedc165f][c10767e5][242f3098][cc173d83]
        [d9179b2c][b317b4dd][7bbc2f99][3b705faf][d58e68bd][d1d64b38][b5a30e70]
        [3f62a6f4][b6fb937d][4b69dd51][8bb54bf5][74d021c4][cd6bc209][cf3d937f]
        [a4c7b199][5c4f9efe][e92e6f2f][bfb1fe31][ad422bb6][dd5125ae][fc879d6f]
        [c4275902][6604178b][703378ea][5ea3f79a][08da4bfe][a1d39af5][a2102a96]
        [6b6f28ed][ee5e4c3b][50fc47cf][eaf4aea2][ff29c918][10742c99][6a79c0f5]
        [7243e228][b881fe84][b0339c20][c14084ec][01790de4][4f6da10a][80397225]
        [a3f0f365][34c3e7a8][826eca3f][809f84cc][6b5171d6][e17840d8][cdb9a836]
        [f4fa7318][7a49b6ec][b50187e4][a4698793][af54c0b2][592d11d3][2ed5c891]
        [09c4b057][f2b69f53][188fbb62][b45b054d][c2449ef6][14b803f5][73a6ff6f]
        [213bacbb][fdb84124][ba7f659c][8099dd3c][1fd990fb][6325d10f][a78234e1]
        [65dc1204][cb8e052b][e6c9e8f1][2592579c][916bdd45][47e1fd0c]

The following people contributed to this release:

Elizabeth Mattijsen, Stefan Seifert, Justin DeVuyst, Will Coleda, Luis F.
Uceta, Timo Paulssen, Daniel Green, Jan-Olof Hendig, Adrian, Bruce Gray, James
Cook, M?rton Polg?r, Roosemberth Palacios

This release implements 6.c and 6.d versions of the Raku specification. 6.c
version of the language is available if you use the use v6.c version pragma,
otherwise 6.d is the default.

Upcoming releases in 2023 will include new functionality that is not part of
6.c or 6.d specifications, available with a lexically scoped pragma. Our goal
is to ensure that anything that is tested as part of 6.c and 6.d specifications
will continue to work unchanged. There may be incremental spec releases this
year as well.
jperkin pushed a commit that referenced this pull request 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 pull request Sep 1, 2023
    Minor fixes by @amaanq in #158
    Support for misc features by @amaanq in #161
jperkin pushed a commit that referenced this pull request Oct 23, 2023
This is the biggest update ever, with 36 new features, 24 bug fixes,
and 3 performance improvements.

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

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

Overview of changes in gnome-calculator 45.0
    * Search provider performance improvements !154, !155, !156 (Christian Hergert)
    * Use numeric font instead of monospace #290 (Robert Roth)
    * Fixed electron-volt unit abbreviation #347 (Robert Roth)
    * Fixed erroneous Joule unit name #348 (Robert Roth)
    * Fixed missing build dependency !157 (Jeremy Bicha)

Overview of changes in gnome-calculator 45.beta
    * Fixed variable and function popover reverse typing #335, #320 (Robert Roth)
    * Better left/right cursor key handling !153 (Seth Falco)
    * Improved toolbar using Adwaita library !151 (Felipe Kinoshita)
    * Flatpak build improvements (Robert Roth)

Overview of changes in gnome-calculator 45.alpha
    * Remember window size #328 !146 (Leonard K, Alice Mikhaylenko)
    * Allow opening Main Menu by pressing F10 !142 !149 (Automeris naranja)
    * Extend bit-shifting limit #306 !143 (J Sory)
    * Added new energy units !143 (J Sory)
    * Added TWD support via Bank of Canada rates #27 !148 (Mário Adriano)
    * Added legal section for exchange rate source attribution (Robert Roth)
    * Added United Nations Treasury exchange rate datasource (Robert Roth)
    * Added Jamaican Dollar currency #291 (Robert Roth)
    * Added Ukrainian hryvnia currency #278 (Robert Roth)
    * Added Nigerian Naira currency #142 (Robert Roth)
    * Changed symbolic icon to C on the clear button #336 (Robert Roth)
    * Dropped VEF currency support #78 (Robert Roth)
    * Use new vala-nightly SDK extension for flatpak (Robert Roth)

Overview of changes in gnome-calculator 44.beta
    * Improved factorization !141 (J. Sory)
    * Number format selection documentation improvements #321 (Robert Roth)
    * Made builtin function descriptions translatable #323 (Robert Roth)
    * Fixed display showing 0 on startup #318 (Robert Roth)
    * Improved button tooltips !132 (sunflowerskater)
    * Added signed int support to programming mode !110 (Erik Wolf)
    * i and e constants updated according to ISO 80000-2:2009 !137 (majjejjam)
    * Help overlay updates !133 (Sabri Ünal)
    * Added preferences shortcut !129 (Sabri Ünal)
    * Destroy dialog after clicking cancel #310 (Jaycee Santos)

Overview of changes in gnome-calculator 43.0.1
    * Fixed appdata versioning (Robert Roth)

Overview of changes in gnome-calculator 43.0
    * Removed old issue tracker references !128 (Jake Dane)

Overview of changes in gnome-calculator 43.rc
    * Fix crash when entering new function name !124 (Nathaniel Russel)
    * Fix source view border !121 (Alexander Mikhaylenko)
    * Flatpak build update !122 (Bartłomiej Piotrowski)
    * Port about window to libadwaita !119 (Christopher Davis)
    * Port to libsoup3 !120 (AppleME)

Overview of changes in gnome-calculator 43.alpha
    * Fixed broken undo/redo #266 (Robert Roth)
    * Make sure variable name definitions work with whitespace too (Robert Roth)
    * Fix translatable strings !116 (Maximiliano)
    * Fixed missing implicit multiplication with variable and root #279 (Robert Roth)
    * meson warning fixes (Robert Roth)

Overview of changes in gnome-calculator 42.2
    * Fixed incorrect history with bits toggling #281 (Robert Roth)
    * Fixed crash when typing in variable popover #282 (Robert Roth)
    * Fixed incorrect libxml usage #283 (Luca Bacci, Robert Roth)

Overview of changes in gnome-calculator 42.1
    * Fixed broken undo/redo #266 (Robert Roth)
    * Removed automatic closing brace addition #271 (Robert Roth)
    * Fixed incorrect percentage symbol precedence handling #236, #275 (Robert Roth)

Overview of changes in gnome-calculator 42.rc
    * Use new gnome post_install script !106 (Bobby Rong)
    * gcalc build fixes (Daniel Espinoza Ortiz)
    * Updated screenshots (Christopher Davis)
    * Set default focus to entry (Robert Roth)

Overview of changes in gnome-calculator 42.beta
    * Fixed build issues with GCI entry controller tests #250 (Robert Roth)
    * Force LTR in history view #252 (Robert Roth)
    * programing mode: Force bit digits to be always LTR #258 (Yosef Or Boczko)
    * Use AdwApplication (Alexander Mikhaylenko)
    * ui: Fix styles !105 (Alexander Mikhaylenko)

Overview of changes in gnome-calculator 42.alpha
    * build: Support flatpak development builds (Óscar Fernández Díaz)
    * build: migrated to GTK4 !98 (Cristopher Davis, Robert Roth)
    * entry: Added currencies completion provider (Robert Roth)
    * entry: Fixed percentage evaluation error #237 (Robert Roth)
    * internal: Moved history view from MathDisplay to MathWindow (Robert Roth)
    * window: set default width for basic and keyboard mode #240 (Robert Roth)
    * buttons: removed destructive action class from clear button #242 (Robert Roth)
    * converter: search support in unit selector, separate conversion category selector #108 (Robert Roth)

Overview of changes in gnome-calculator 41.0
    * Use first translated symbol for conversion with button #219 (Robert Roth)
    * Appdata includes hardware support information (Adrien Plazas)

Overview of changes in gnome-calculator 41.alpha
    * Adaptive preferences window !85 (Adrien Plazas)
    * Fixed currency conversion using convert button #216 (Robert Roth)
    * User interface reworked, adaptive UI !81 (Adrien Plazas)
    * Enlarged calculator icon in help !82 (Sabri Ünal)
    * Code cleanup (Robert Roth)
    * Fixed kilohertz shorthand !87 (scootergrisen)
    * Fixed donation link !88 (René Genz)
    * Added support using calculator without currency conversion for privacy !89 (Ray Strode)
    * Added support for function description of custom functions using @ !90 (Martin Jirku)

Overview of changes in gnome-calculator 40.rc
    * Resize window after switching mode !78 (joshas)
    * Fixed compilation warnings (Robert Roth)
    * Support offline currency conversion tests #208 (Robert Roth)
    * Use official unit on conversion button click #207 (Robert Roth)
    * Fixed temperature unit typos #211 (Robert Roth)
    * Ellipsize conversion labels #17 (Robert Roth)
    * Added Ctrl+Delete shortcut for clearing the current equation #187 (Robert Roth)
    * Allow multiple decimal points #166. #5 (Robert Roth)
    * Added Ctrl+O shortcut for degrees symbol (Robert Roth)
    * Use gtk-sourceview 4.8 !80 (Robert Roth)

Overview of changes in gnome-calculator 40.beta
    * Fixed CI build (Robert Roth)
    * Fixed issues with initial loading of currencies (Robert Roth)
    * Rework currency retrieval preparing for currency provider plugins (Robert Roth)
    * Fixed commandline conversions #33 (Robert Roth)
    * Added currency conversion tests (Robert Roth)
    * Added support for frequencies conversion (Dave Hulst)
    * Added support for converting to and from weeks (Dave Hulst)
    * Added support for converting to and from centuries and decades (Dave Hulst)
    * Increase buttons font size #201 (Robert Roth)
    * Added % button to Advanced mode (Dave Hulst)
    * Show 4 decimals in converter instead of only two #203 (Robert Roth)
    * Added style classes to buttons !76 (Dave Hulst)

Overview of changes in gnome-calculator 40.alpha
    * Use libhandy for window and headerbar !69 (Cristopher Davis)
    * Use C instead of Clr in help !70 (scootergrisen)
    * Fixed broken currency conversion on first start #199 (Robert Roth)
    * Removed duplicate word from help #198 (Robert Roth)
    * Added lbs shortcut for pounds conversion (Robert Roth)
    * Fixed inconsistent word size (A. M. Roswell)
    * Removed unused trunc button from programming mode #41 (Robert Roth)
    * Fixed deprecation warnings
    * Added Serbian Dinar with fixed rate #49 (Robert Roth)
    * Added Bangladeshi Taka with fixed rate #191 (A. M. Roswell)
    * Updated mailing list contact to Discourse (Robert Roth)
    * Added basic help page for programming mode (A. M. Roswell)
    * Added insert character code button (A. M. Roswell)
    * Dim inapplicable bits on word size change #189 (A. M. Roswell)
    * Make the conversion labels selectable (Robert Roth)
    * Do not convert on swap #170 (Robert Roth)
    * Word size changer in programming mode !58 (A. M. Roswell)
    * Added metric cups conversion unit !53 (Lucy Coleclough)
    * Fixed astronomical unit conversion !51 (Thomas Nilsson)
    * Fixed feet-based units name, added mph and kph shortcuts #180 (Robert Roth)
    * Use shell copy to clipboard action #178 (Robert Roth)
    * Fixed preferences of angle units !56 (Delton Ding)

Overview of changes in gnome-calculator 3.38.0

Overview of changes in gnome-calculator 3.37.92

Overview of changes in gnome-calculator 3.37.90
    * Add tooltips for bits in programming mode !46 (Olliver Schinagl)
    * snap packaging updates (Ken VanDine)
    * Added link to website in About #155 (Robert Roth)
    * Added speed conversions !49 (Mathieu Heurtevin)
    * History view follows preferences #105, #159, #168 (Robert Roth)
    * Added month as time unit #158 (Robert Roth)
    * Better help for variables example usage #154 (Robert Roth)
    * Defined pi variable, added pi button in programming mode #153 (Robert Roth)
    * CI build fixes (Robert Roth)
    * Updated app icon !47 (Jakub Steiner)
    * Fixed bug returning empty string as result #152 (Robert Roth)
    * Support latex-style multiplication #164 (Robert Roth)
    * Added support for tau constant #46 (Robert Roth)
    * Unify constant handling (Robert Roth)
    * Separate UI files from sources (Robert Roth)
    * Moved number format selection to separate menu #24 (Robert Roth)
    * Replaces mode selector shortcuts with Ctrl+Alt (Robert Roth)
    * Clear answer if editing right before it #59, #161 (Robert Roth)
    * Moved preferences dialog to UI file (Robert Roth)
    * Refresh bits panel after calculation #38 (Robert Roth)
    * Removed past author addresses #174 (Robert Roth)

Overview of changes in gnome-calculator 3.36.0

Overview of changes in gnome-calculator 3.35.92
    * doc: Don't pass --fatal-warnings to valadoc (Rico Tzschichholz)
    * Removed obsolete keyboard shortcut #148 (Robert Roth)
    * help: Update icon for 3.36 (Andre Klapper)

Overview of changes in gnome-calculator 3.35.90
    * Drop padding around the display !40 (Adrien Plazas)
    * Updated Keyboard Shortcuts (Sabri Ünal)
    * Handle Escape and Enter correctly with completion #144 (Robert Roth)
    * Added F10 for primary menu shortcut #148 (Robert Roth)
    * Updated app icon !43 (Tobias Bernard)
    * Added Rack Units to the conversions !37 (Léo Gillot-Lamure)
    * Fixed freeze on calculating atan(+/-i) #139 (Robert Roth)
    * Fixed mode shortcuts by removing blocking mnemonics #138 (Robert Roth)
    * Implemented result history browsing using alt left/right #129 (Robert Roth)
    * Added translator comments for possible modes as command line arguments !38 (Rafael Fontenelle)

Overview of changes in gnome-calculator 3.35.3
    * Help updates (Andre Klapper)

Overview of changes in gnome-calculator 3.35.2
    * List possible modes in commandline help #112 (Robert Roth)
    * Add square feet unit #132 (Robert Roth)
    * Base conversion display selectable #123 (Robert Roth)
    * Created nightly icon (Jakub Steiner)
    * Snap build updates (Heather Ellsworth)
    * GCalc library code fixes (Rico Tzschichholz, Daniel Espinoza Ortiz)
    * Update required meson version (Diego Escalante Urrelo)
    * Adapt code to changed gtk+-3.0 bindings (Rico Tzschichholz)
    * Added GCi libary and tests for controllers for widgets (Daniel Espinoza Ortiz)
    * Solve on = key if input isq not a variable name #22 (Alberto González Palomo)

Overview of changes in gnome-calculator 3.33.92
    * README updates (Roger)

Overview of changes in gnome-calculator 3.33.90
    * Flatpak build cleanup (Jordan Petridis)
    * Debug messages cleanup (Daniel Espinosa Ortiz)

Overview of changes in gnome-calculator 3.33.3
    * calculator library build fixes (Daniel Espinosa Ortiz)
    * CI build fixes (Ken VanDine)
    * Added mnemonics for primary menu items #113 (Robert Roth)
    * Dropped leading zeros octal prefix #114, #109, #110 (Robert Roth)

Overview of changes in gnome-calculator 3.33.2
    * Separated calculator library !19 (Daniel Espinosa Ortiz)
    * Ensure icon is available for shell (Ken VanDine)
    * Support entering left/right shift with keyboard #98 (Robert Roth)
    * Fixed CFA conversion rate #102 (Robert Roth)
    * Remove copy icon from search provider results #103 (Robert Roth)
    * Do not assume octal base for binary numbers #101 (Robert Roth)
    * Show thousands separator in unit converter #102 (Robert Roth)
    * Use currency name instead of display name for conversion #106 (Robert Roth)
    * Quit warns and closes all windows #51 (Robert Roth)
    * Avoid normalizing the equation twice in search #104 (Pascal Nowack)
    * Ignore keypresses while calculating results #47 (Robert Roth)
    * Only allow one decimal point in numbers #5 (Robert Roth)
    * Application icon updated in help (Andre Klapper)
jperkin pushed a commit that referenced this pull request Dec 8, 2023
## [0.14.0 - 2023-12-02]

### Added

- Synonym for `chroma` encoder parameter: `subsampling`(usage is the same as in Pillow JPEG). #161 #165
- Passing `image_orientation` value to libheif, instead of manually rotating image according to EXIF before encoding. #168
- Pillow plugin: support for images in `YCbCr` mode for saving without converting to `RGB`. #169
- Pi-Heif: Python3.12 32-bit `armv7` wheels. #160

### Changed

- Increased the minimum required libheif version to `1.14.1`.
- Linux: When building from source, `libheif` and other libraries are no longer try built automatically. #158
- Libheif updated from `1.16.2` to `1.17.5` version. #166 #175
- `NCLX` color profile - was reworked, updated docs, see PR for more info. #171
- Minimum supported Pillow version raised to `9.2.0`.
- Pi-Heif: As last libheif version requires minimum `cmake>=3.16.3` dropped Debian `10 armv7` wheels. #160
- libde265 updated from `1.0.12` to `1.0.14`. [changelog](https://github.com/strukturag/libde265/releases/tag/v1.0.13)

### Fixed

- Support of libheif `1.17.x`. #156
- Windows : Build from source with MinGW Python. #178
jperkin pushed a commit that referenced this pull request Dec 16, 2023
devel/ruby-redmine51 require net-imap gem version 0.3.4 but ruby31 bundles
0.2.3.  So, it add latest version of net-imap gem 0.3.x as ruby-net-imap.

Ruby client api for Internet Message Access Protocol.


Changes from 0.2.3:

0.3.0 (2022-11-17)

What's Changed

* Added dependabot.yml for actions by @hsbt in #59
* Bump actions/checkout from 2 to 3 by @dependabot in #60
* Adding RFC licenses by @nevans in #57
* Warn when using deprecated SASL mechanisms by @nevans in #62

New Contributors

* @dependabot made their first contribution in #60

0.3.1 (2022-11-17)

What's Changed

* Add XOAUTH2 authenticator by @ssunday in #63

New Contributors

* @ssunday made their first contribution in #63

0.3.2 (2022-12-09)

What's Changed

* Support UIDPLUS extension by @hoffi in #65
* Fixes "bundle exec rake" clash with test/unit by @nevans in #67
* Fix some UIDPLUS issues by @nevans in #69
* Fixes date-time format, and adds decode_datetime by @nevans in #66
* Add SASLprep. Code generated & tested with RFC3454 by @nevans in #64
* Add the UNSELECT command by @nevans in #72
*  Fix mailbox attrs by @nevans in #73
* RFCs and references by @nevans in #71
* Nodocs and remove warning by @nevans in #70
* ResponseParser docs by @nevans in #76
* Response Data docs by @nevans in #75

New Contributors

* @hoffi made their first contribution in #65

0.3.3 (2022-12-21)

What's Changed

* Revert "Fixes "bundle exec rake", clash with test/unit" by @znz in #88

New Contributors

* @znz made their first contribution in #88

0.3.4 (2023-01-18)

What's Changed

* Net::IMAP Client docs by @nevans in #74

0.3.5 (2023-06-12)

* Fix #response documentation error, by @nevans in 87ba74e
* Add RFC3454 data, to support offline testing, by @nevans in #137
* Adds Ruby 3.2 to the CI matrix, by @petergoldstein in #99
* Use reusing workflow, by @hsbt in #151
* Decode UTF-7 more strictly, by @nobu in #152
* ️Continue testing 0.3.x branch against ruby 2.6, by @nevans in 115d190
* Fix decode utf-7 test for ruby 2.6, by @nevans in 7a60c8f
* Fix XOAUTH2 authenticator for ruby 2.6, by @nevans in bd4faa0

0.3.6 (2023-06-12)

* Fixes file permissions regression in v0.3.5 release, reported by
  @aaronjensen in #154

0.3.7 (2023-07-26)

What's Changed

* Backport: Fix for Digest MD5 bad challenges by @nobu in #160 PR for
  backport is #161
jperkin pushed a commit that referenced this pull request Feb 20, 2024
0.0.33

What's Changed

    fix release workflow, corrective release by @woodruffw in #210

0.0.32

What's Changed

    github: add dependabot config for GHA by @woodruffw in #203
    tox: add pip2400 by @woodruffw in #204
    Bump the actions group with 5 updates by @dependabot in #205
    pip_api: don't pass escaped path into _parse_local_package_name by @woodruffw in #208
    prep 0.0.32 by @woodruffw in #209

0.0.31

What's Changed

    Test against pip==22.2 by @di in #152
    Test against pip==22.2.1 by @di in #158
    Test against pip==22.2.2 by @di in #160
    Test against pip==22.3 by @di in #163
    Test against Python 3.11 by @di in #154
    workflows/release: bump gh-action-sigstore-python, update slug by @woodruffw in #161
    Test against pip==22.3.1 by @di in #165
    Add alls-greens configuration by @di in #166
    Contributions from @webknjaz by @di in #172
    Use sdist as a testing source in CI by @webknjaz in #174
    Test against pip==23.0 by @di in #176
    Test against pip==23.0.1 by @di in #178
    Test against pip==23.1 by @di in #180
    Test against pip==23.1.1 by @di in #183
    Test against pip==23.1.2 by @di in #185
    Test against pip==23.2 by @di in #188
    Test against pip==23.2.1 by @di in #190
    Test against pip==23.3 by @di in #192
    Test against pip==23.3.1 by @di in #194
    Test against pip==23.3.2 by @di in #198
    Handle editable projects with pyproject.toml by @di in #200
    Version 0.0.31 by @di in #201
jperkin pushed a commit that referenced this pull request Mar 26, 2024
[v0.9.0] - Released on: March 24, 2024.
 - Big thanks to the contribution of hasezoey. A lot of improvements and refactors in this release. Especially now you can change backends without recompile.
 - Change: updated MSRV to 1.74.
 - Change: better Error messages if the server binary cannot be started.
 - Change: small optimizations.
 - Change: change almost all eprintln to be log::error.
 - Change: change almost all println to be appropriate log levels.
 - Feat: change logger to be flexi_logger, including logging to file.
 - Feat: add cli arguments to the server binary.
 - Feat: add a lot more metadata to media controls, like cover art, duration, seek, volume(RW), quit.
 - Feat: support mkv & webm in backend rusty (no metadata, support depends on codec).
 - Feat: in backend rusty, buffer files in 4Mb chunks.
 - Feat: better version via --version.
 - Feat: allow specifiying which interface (ip) to run on.
 - Feat(server): allow compiling multiple backends via features and select at binary start (via --backend or TMS_BACKEND).
 - Feat(server): for backend mpv, switch to use libmpv-sirno and use mpv API 2.0.
 - Feat(server): for backend mpv and gstreamer, speed change without changing pitch is great for podcasts.
 - Feat(tui): add a "currently playing" symbol to active track in playlist.
 - Feat(tui): add search function for Podcast Episodes.
 - Feat(tui): allow confirming quit-confirm choices with Y or N.
 - Feat(tui): allow confirming config save confirm choices with Y or N.
 - Fix: try to find the server binary adjacent to the TUI binary.
 - Fix: change many panics to be results instead.
 - Fix: dont panic if "music_dir" value is empty when entering config editor, fixes #161.
 - Fix: log something if a file is not going to be added to the playlist.
 - Fix: in backend rusty, skip all tracks (and packets) that are not the selected track in backend in decode.
 - Fix: in backend rusty, correctly select a audio track (instead of symphonia's default which might be something else).
 - Fix: in backend rusty, when using radio, always use overwrite the last radio title instead of appending.
 - Fix: in backend rusty, when using radio, parse until '; instead of just ', now things like Don't actually work correctly.
 - Fix: in backend rusty, when using radio, dont infinitely save the stream.
 - Fix: in backend rusty, when using radio, now only use 1 stream to get audio and metadata (instead of 2).
 - Fix: in backend gst, fix gapless track change not being tracked correctly, fixes #192.
 - Fix(tui): add panic hook to reset screen before printing backtrace.
 - Fix(tui): dont extra clear screen on quit.
 - Fix(tui): reset screen if a Error(Result) happens and exit properly.
 - Fix(tui): wait until tonic is connected instead of static sleeps.
 - Fix(tui): only display ueberzug "Not found" errors once.
 - Fix(tui): blanket disable ueberzug for windows.
 - Fix(tui): in Database -> Tracks view, display track title instead of filename.
 - Fix(server): log port used.
 - Fix(server): log on quit.
 - Fix(server): properly exit on player thread crash (instead of being pseudo-zombie).
 - Fix(server): potentially fix media display in windows.
 - Fix(server): in backend rusty, fix radio not starting if gapless is enabled and the track changes to be radio (from something else).
 - Fix(server): in backend rusty, fix radio streams not being stopped once they have been skipped.
 - Fix(build): install to $CARGO_HOME/bin instead of always into a static path.
 - a bunch of internal refactors.

[v0.8.0] - Released on: March 23, 2024
 - Yanked as it had been a broken release, see v0.9.0 instead.
jperkin pushed a commit that referenced this pull request May 6, 2024
2024-05-05 -- 0.9.8

>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  * Fixed: [CVE-2024-34402]
      Protect against integer overflow in ComposeQueryEngine
      (GitHub #183, GitHub #185)
  * Fixed: [CVE-2024-34403]
      Protect against integer overflow in ComposeQueryMallocExMm
      (GitHub #183, GitHub #186)
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  * Changed: Require CMake >=3.5.0 (GitHub #172)
  * Added: CMake option URIPARSER_SHARED_LIBS=(ON|OFF) to control,
      whether to produce a shared or static library for uriparser
      and that alone, falls back to standard BUILD_SHARED_LIBS
      if available, else defaults to "ON" (GitHub #169, GitHub #170)
  * Improved: Document that scheme-based normalization a la
      section 6.2.3 of RFC 3986 is a responsibility of the application
      using uriparser (GitHub #173, GitHub #174)
  * Improved: Document supported code points for functions uriEscape(Ex)W
      (GitHub #171, GitHub #175)
  * Infrastructure: Update Clang from 15 to 18 (GitHub #161, GitHub #187)
  * Infrastructure: Adapt to breaking changes in Clang packaging (GitHub #160)
  * Infrastructure: Get sanitizer CFLAGS and LDFLAGS back in sync (GitHub #161)
  * Infrastructure: Pin GitHub Actions to specific commits for security
      (GitHub #165)
  * Soname: 1:31:0 — see https://verbump.de/ for what these numbers do

2022-10-05 -- 0.9.7

  * Fixed: Multiple issues with IPv6 and IPvFuture literal parsing
      (GitHub #146, GitHub #150)
      Thanks to Scallop Ye for the report and the pull request!
  * Fixed: Fix symbol visibility for -DBUILD_SHARED_LIBS=OFF (GitHub #139,
      GitHub #141); thanks to Mariusz Zaborski for the report!
  * Fixed: For MinGW, use size_t for inet_ntop declaration and fix macro
      checks for both MinGW and mingw-w64 (GitHub #131)
  * Fixed: Compiler warnings (GitHub #132, GitHub #152)
  * Improved: Use name UriConfig.h rather than generic config.h for the
      config header file to avoid name clashes and also include it through
      "UriConfig.h" with quotes rather than <UriConfig.h> so that it is found
      in quote path locations (GitHub #149)
      Thanks to Gaspard Petit for bringing this up!
  * Improved: Document need for UriConfig.h in UriMemory.c (GitHub #136)
  * Infrastructure: Add (support for) Visual Studio 17/2022 (GitHub #152)
  * Infrastructure: Drop (support for) Visual Studio <=14/2015 (GitHub #152)
  * Infrastructure: Update Clang from 13 to 15 (GitHub #143, GitHub #151)
  * Infrastructure: Make MinGW with 32bit Wine on Ubuntu 20.04 possible
      (GitHub #142, GitHub #144, GitHub #145)
  * Soname: 1:30:0 — see https://verbump.de/ for what these numbers do
jperkin pushed a commit that referenced this pull request Jun 4, 2024
Changelog:

    Update meson.build #153
    openssl/oct: improve bound check for len #162
    jwe: fix the case when we have "zip" in the protected header #161
    Avoid potential DoS with high decompression chunks #157
github-actions bot pushed a commit that referenced this pull request Oct 24, 2024
TL/DR

    Add cramjam.experimental.blosc2
    Add cramjam.experimental.igzip (on 64bit targets)
    Add wasm32 emscripten build and test for pyodide

What's Changed

    Update libcramjam crate to 0.3.0 in cramjam-cli by @musicinmybrain in #152
    Add experimental blosc2 support by @milesgranger in #107
    Move sdist generations to own job by @milesgranger in #155
    Add blosc2 to CLI, libcramjam features and own CI by @milesgranger in #156
    Don't overwrite artifact on each job by @milesgranger in #157
    Prepare for release by @milesgranger in #158
    Change github release job in CI by @milesgranger in #161
    Adjust for move of libcramjam and CLI to own repos by @milesgranger in #162
    Bump libcramjam and simplify CI by @milesgranger in #163
    Bump version and fix CI artifact uploading by @milesgranger in #164
    Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #168
    Update PyO3 0.20 -> 0.22 & Python 3.13 by @milesgranger in #169
    Update upload/download-artifact actions by @milesgranger in #170
    Add more feature configuration options by @milesgranger in #174
    Fix blosc2 upgrade API changes by @milesgranger in #176
    Expose linking flexibility for xz, gzip/deflate from libcramjam by @milesgranger in #175
    Remove pypy3.9 from CI by @milesgranger in #177
    Exclude benchmarks from builds by @milesgranger in #179
    Add wasm32-emscripten builds by @milesgranger in #181
    Add experimental igzip by @milesgranger in #182
github-actions bot pushed a commit that referenced this pull request Dec 2, 2024
(NEWS.md is not updated to 1.1.7)
# s2 1.1.5

* fix compiler problem on Alpine 3.19.0 (#251)

# s2 1.1.4

* Updated more tests to pass on a forthcoming waldo package update (#237).

# s2 1.1.3

* Made a test less strict to pass tests on Alpine Linux (#218, #220).
* Updated tests to pass on forthcoming waldo package update (@hadley, #226).
* Updated vendored file modifications to suppress a multi-line comment
  warning on gcc (#214, #227).

# s2 1.1.2

- Fixed test for `as.data.frame()` for `s2_cell()` to comply with new wk
  version and the latest release of R (#207).
- Fix unary union of an empty multipolygon (#208).
- Added `#include <cstdint>` to an Abseil header to fix compilation with
  gcc13 (#209, #210).
- Update internal Abseil to 20220623.1 LTS (#213).

# s2 1.1.1

- Fix new CRAN check warnings (#202, #203).

# s2 1.1.0

- Fix for s2 build on Windows with R <= 3.6.x (#142)
- Fix for s2 build on MacOS with multiple openssl versions (#142, #145, #146)
- Fix for s2 build on 32-bit openssl (#143, #147)
- Added `s2_convex_hull()` and `s2_convex_hull_agg()` (@spiry34, #150,
  #151, #163).
- Added `max_distance` argument to `s2_closest_edges()`, making
  distance-constrained k-nearest neighbours possible (#125, #156, #162).
- Added a spherical `s2_point_on_surface()` implementation for polygons
  (@kylebutts, #152, #161)
- Added a `s2_cell_union()` vector class to represent cell coverings and
  operators to generate them from an s2 geography vector (e.g.,
  `s2_covering_cell_ids()`). Cell unions are useful as compact representations
  of spherical geometry and can be used like a bounding box to determine
  a possible intersection with one or more geographies (#85, #94, #164).
- Refactored the simple features compatability layer into a standalone
  code base for potential future use in a Python adaptation (#165).
- Migrate input and output to non-deprecated wk package handlers and writers
  (#101, #165, #168).
- Make `s2_union_agg()` more efficient using a recursive merge strategy
  (#103, #165).
- Fix package build on Raspberry Pi (#169, #171).
- Fix warning on clang14 when compiling with `-O0` (#167, #172).
- Added `s2_prepared_dwithin()` and fixed `s2_dwithin_matrix()` such that it
  efficiently uses the index (#157, #174).
- Updated `s2_lnglat()` and `s2_point()` to use `wk::xy()` (a record-style
  vctr) to represent point coordinates. This is much faster than the previous
  representation which relied on `list()` of external pointers (#181, #159).
- Added arguments `planar` and `tessellate_tol_m` to `s2_as_text()`,
  `s2_as_binary()`. Use `planar = TRUE` and set `tessellate_tol_m` to the
  maximum error for your use-case to automatically subdivide edges to
  preserve or "straight" lines in Plate carree projection on import (#182).
- Added arguments `planar` and `tessellate_tol_m` to `s2_geog_from_text()`, and
  `s2_geog_from_wkb()`. Use `planar = TRUE` and set `tessellate_tol_m` to the
  maximum error for your use-case to automatically subdivide edges to
  ensure or "straight" lines in Plate carree projection on export (#182).

# s2 1.0.7

- Update the internal copy of s2geometry to use updated Abseil,
  fixing a compiler warning on gcc-11 (#79, #134).
github-actions bot pushed a commit that referenced this pull request Dec 2, 2024
# wk 0.9.4

- Ensure package tests pass against sf 1.0-18 (#224, #225).

# wk 0.9.3

- Ensure package compiles with `STRICT_R_HEADERS=1` (#222).

# wk 0.9.2

- Add `wk_crs()` and `wk_set_crs()` methods for `bbox` (#213)
- Fix wk_trans inconsistent meta flags handling (#217)
- Ensure package builds on arm64 for Windows (#220)

# wk 0.9.1

- Fix format strings/arguments for R-devel (#209).

# wk 0.9.0

## Breaking changes

- The common well-known binary representation of POINT EMPTY (i.e.,
  POINT (nan nan)) is now handled as POINT EMPTY allowing empty points
  to roundtrip through `wkb()` vectors (#196, #204).
- `xy(NA, NA)` is now read as a null feature instead of POINT EMPTY. This
  preserves the invariant that null features can also be identified using
  `is.na()` (#205).
- `xy(NaN, NaN)` is now read as POINT EMPTY and `is.na(xy(NaN, NaN))`
  now returns `FALSE`. This means that both EMPTY and null points can roundtrip
  through `xy()` (#205).

## Bugfixes and improvements

- `wk_meta()` now contains a new column `is_empty`, which is `TRUE`
  for any feature that contains at least one non-empty coordinate. This allows
  more efficient detection of features with zero coordinates (#197, #199).
- Updated PROJ data to use the latest pull of the database packaged with
  PROJ 9.3.0 (#201).
- The wk package now compiles once again on gcc 4.8 (#203, #206).
- Fixed `sfc_writer()` to correctly attach the `classes` attribute to
  sfc output with mixed geometry types (#195).
- Function `sfc_writer()` now has an argument `promote_multi` to write any
  input as the MULTI variant. This makes it more likely that an input vector
  will be read as a single geometry type (#198).
- The `wk_collection_filter()` now correctly increments the `part_id` when
  calling the child handler (@brownag, #194).

# wk 0.8.0

* Added `wkb_to_hex()` (@anthonynorth, #183).
* Implemented `vctrs::vec_proxy_equal()` for `wkb()` vctrs
  (@anthonynorth, #183).
* Fixed `sfc_writer()`, which had returned NULL for some inputs
  (e.g., via `wk_collection()`) (@anthonynorth, #182, #186).
* Added `wk_clockwise()` and `wk_counterclockwise()` to re-wind polygon rings
  (@anthonynorth, #188).
* New replacement-function mode for `wk_coords<-()` for in-place modification
  of coordinates (@mdsumner, #187).
* New function `wk_trans_explicit()` migrated from crs2crs (@mdsumner, #187).

# wk 0.7.3

* Fix tests for updated waldo package (#178).

# wk 0.7.2

* Fix use-after-free warnings.

# wk 0.7.1

* Fix implicit reliance on error `as.data.frame.default()`,
  which no longer occurs in r-devel (#166).

# wk 0.7.0

* Remove legacy headers that are no longer used by any downstream package
  (#146).
* `validate_wk_wkt()` now errors for an object that does not inherit from
  'wk_wkt' (#123, #146).
* Added `wk_crs_projjson()` to get a JSON representation of a CRS object.
  To make lookup possible based on shortcut-style CRS objects (e.g.,
  `"EPSG:4326"` or `4326`), added data objects `wk_proj_crs_view` and
  `wk_proj_crs_json` that contain cached versions of rendered PROJJSON
  based on the latest PROJ version (#147).
* Added a `wk_crs_proj_definition()` method for `wk_crs_inherit()` (#136,
  #147).
* Conversion to sf now uses the `sfc_writer()` for all wk classes, making
  conversions faster and fixing at least one issue with conversion of NA
  geometries to sf (#135).
* `wk_plot()` now plots `NULL`/`NA` geometries and mixed geometry types
  more reliably (#142, #143, #149).
* Exported EMPTY geometries to well-known text now include dimension
  (e.g., `POINT Z EMPTY`) (#141, #150).
* Fixed bug where `wk_polygon()` doubled some points when the input contained
  closed rings (#134, #151).
* Fixed bug where `wk_count()` exposed uninitialized values for empty input
  (#139, #153).
* The `xy_writer()` now opportunistically avoids allocating vectors for Z
  or M values unless they are actually needed (#131, #154).
* Added example WKT for all geometry types and dimensions plus helper
  `wk_example()` to access them and set various properties (#155).
* Fixes warnings when compiling with `-Wstrict-prototypes` (#157, #158).
* Removed `wk_chunk_map_feature()` in favour of using chunking strategies
  directly (#132, #159).
* Optimized `wk_coords()` for `xy()` objects (#138, #160).
* Added accessor methods for record-style vectors: `rct_xmin()`, `rct_xmax()`,
  `rct_ymin()`, `rct_ymax()`, `rct_width()`, `rct_height()`, `crc_center()`,
  `crc_x()`, `crc_y()`, `crc_r()`, `xy_x()`, `xy_y()`, `xy_z()`, and `xy_m()`
  (#144, #161).
* Added rectangle operators `rct_intersects()`, `rct_contains()`,
  and `rct_intersection()` (#161).

# wk 0.6.0

* Fixed `wk_affine_rescale()` to apply the translate and scale
  operations in the correct order (#94).
* Add `wk_handle_slice()` and `wk_chunk_map_feature()` to support
  a chunk + apply workflow when working with large vectors (#101, #107).
* C and R code was rewritten to avoid materializing ALTREP vectors
  (#103, #109).
* Added a `wk_crs_proj_definition()` generic for foreign CRS objects
  (#110, #112).
* Added `wk_crs_longlat()` helper to help promote authority-compliant
  CRS choices (#112).
* Added `wk_is_geodesic()`, `wk_set_geodesic()`, and argument `geodesic`
  in `wkt()` and `wkb()` as a flag for objects whose edges must
  be interpolated along a spherical/ellipsoidal trajectory (#112).
* Added `sf::st_geometry()` and `sf::st_sfc()` methods for wk geometry
  vectors for better integration with sf (#113, #114).
* Refactored well-known text parser to be more reusable and faster
  (#115, #104).
* Minor performance enhancement for `is.na()` and `validate_wk_wkb()`
  when called on a very long `wkb()` vector (#117).
* Fixed issue with `validate_wk_wkb()` and `validate_wk_wkt()`, which failed
  for most valid objects (#119).
* Added `wk_envelope()` and `wk_envelope_handler()` to compute feature-wise
  bounding boxes (#120, #122).
* Fixed headers and tests to pass on big endian systems (#105, #122).
* Incorporated the geodesic attribute into vctrs methods, data frame
  columns, and bbox/envelope calculation (#124, #125).
* Fix `as_xy()` for nested data frames and geodesic objects (#126, #128).
* Remove deprecated `wkb_problems()`, `wkt_problems()`, `wkb_format()`,
  and `wkt_format()` (#129).
* `wk_plot()` is now an S3 generic (#130).

# wk 0.5.0

* Fixed bugs relating to the behaviour of wk classes as
  vectors (#64, #65, #67, #70).
* `crc()` objects are now correctly exported as polygons
  with a closed loop (#66, #70).
* Added `wk_vertices()` and `wk_coords()` to extract individual
  coordinate values from geometries with optional identifying
  information. For advanced users, the `wk_vertex_filter()`
  can be used as part of a pipeline to export coordinates
  as point geometries to another handler (#69, #71).
* Added `wk_flatten()` to extract geometries from collections.
  For advanced users, the `wk_flatten_filter()` can be used as
  part of a pipeline (#75, #78).
* `options("max.print")` is now respected by all vector classes
  (#72, #74).
* Moved implementation of plot methods from wkutils to wk to
  simplify the dependency structure of both packages (#80, #76).
* Added `wk_polygon()`, `wk_linestring()`, and `wk_collection()`
  to construct polygons, lines, and collections. For advanced
  users, `wk_polygon_filter()`, `wk_linestring_filter()`, and
  `wk_collection_filter()` can be used as part of a pipeline
  (#77, #84).
* Added a C-level transform struct that can be used to simplify
  the the common pattern of transforming coordinates. These
  structs can be created by other packages; however, the
  `wk_trans_affine()` and `wk_trans_set()` transforms are
  also built using this feature. These are run using the
  new `wk_transform()` function and power the new
  `wk_set_z()`, `wk_set_m()`, `wk_drop_z()`, `wk_drop_m()`,
  functions (#87, #88, #89).

# wk 0.4.1

* Fix LTO and MacOS 3.6.2 check errors (#61).

# wk 0.4.0

* Removed `wksxp()` in favour of improved `sf::st_sfc()` support
  (#21).
* Rewrite existing readers, writers, and handlers, using
  a new C API (#13).
* Use new C API in favour of header-only approach for all
  wk functions (#19, #22).
* Use cpp11 to manage safe use of callables that may longjmp
  from C++.
* Vector classes now propagate `attr(, "crs")`, and check
  that operations that involve more than one vector have
  compatable CRS objects as determined by `wk_crs_equal()`.
* Added an R-level framework for other packages to implement
  wk readers and handlers: `wk_handle()`, `wk_translate()`,
  and `wk_writer()` (#37).
* Added a native reader and writer for `sf::st_sfc()` objects
  and implemented R-level generics for sfc, sfg, sf, and bbox
  objects (#28, #29, #38, #45).
* Implement `crc()` vector class to represent circles (#40).
* Added a 2D cartesian bounding box handler (`wk_bbox()`) (#42).
* Refactored unit tests reflecting use of the new API and
  for improved test coverage (#44, #45, #46).
* Added `wk_meta()`, `wk_vector_meta()`, and `wk_count()` to
  inspect properties of vectors (#53).
* Modified all internal handlers such that they work with vectors
  of unknown length (#54).

# wk 0.3.4

* Fixed reference to `wkutils::plot.wk_wksxp()`, which
  no longer exists.

# wk 0.3.3

* Fixed WKB import of ZM geometries that do not use EWKB.
* Added `xy()`, `xyz()`, `xym()` and `xyzm()` classes
  to efficiently store point geometries.
* Added the `rct()` vector class to efficiently store
  two-dimensional rectangles.
* Fixed the CRAN check  failure caused by a circular
  dependency with  the wkutils package.
* Added S3 methods to coerce sf objects to and from
  `wkt()`, `wkb()` and `wksxp()`.

# wk 0.3.2

* Fixed EWKB output for collections and multi-geometries
  that included SRID (#3).
* Fixed CRAN check errors related to exception handling on
  MacOS/R 3.6.2.

# wk 0.3.1

* Added a `NEWS.md` file to track changes to the package.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants