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

[darwin] Error on upgrade of perl-5.28.0nb1 #158

Closed
kimono-koans opened this issue Nov 5, 2018 · 2 comments
Closed

[darwin] Error on upgrade of perl-5.28.0nb1 #158

kimono-koans opened this issue Nov 5, 2018 · 2 comments
Assignees

Comments

@kimono-koans
Copy link

Contents of /var/db/pkgin/pkg_install-err.log:

---Nov 05 13:35:15: upgrading perl-5.28.0nb1...
pkg_add: Can't open +CONTENTS of depending package p5-Locale-libintl-1.29
pkg_add: 1 package addition failed

jperkin pushed a commit that referenced this issue Dec 1, 2018
pkgsrc changes:
 - Switch to www/webkit-gtk (instead of using webkit24-gtk3)
 - Adjust GITHUB_RELEASE to remove the trailing `a', please note that this will
   probably not needed for future releases!

Changes:
1.12.5
------
 * #665: Webkit browser now supplies 'Liferea' component in user agent
 * #664: Added "Mark All As Read" button to headerbar plugin
 * #620: Added flatpak JSON
   (glitsj16)
 * #579: Added item list column drag and drop reordering
   (Yanko Kaneti)
 * #436, #662: Move from GnomeKeyring to libsecret
   (bgermann)
 * Fixes #663: Correct instapaper sharing link
   (Daniel Alexandersen)
 * Fixes #661: Update sharing links
   (Daniel Alexandersen)
 * Fixes #271: Consistent over usage of CPU (trigger by "Next Unread" loop)
   (reported by GreenLunar)
 * #472, #632: Dropping Inoreader support (API broke)

1.12.4
------
 * Fixes #660: Added installable plugin to change accels
   (Lars Windolf)
 * Fixes #654: Segfault on date out of range
   (Leaiz)
 * Fixes #651: Fixes Free Music Archive link in default OPMLs
   (reported by benjbrandall)
 * Fixes #649: Switch from persistent to session-only cookies
   (Daniel Alexandersen)
 * Fixes #645, #646: unread count of vfolder
   (Leaiz)
 * Fixes #637: Extra keywords in .desktop file (syndication; rss; atom)
   (Daniel Alexandersen)
 * Fixes #557: Updating counters for remote sources
   (Leiaz)
 * Updated cookie usage hint in FAQ

1.12.3
------
 * #634: Added setting for custom download commands
   (Leiaz)
 * #614: GTK Headerbar support via plugin
   (Lars Windolf)
 * #608: Refactoring UI code to switch to GAction and GtkBuilder
   Note: this implies not having icons in the main menu anymore
   which were still there for all non-GNOME users (see #626).
   (Leiaz)
 * #589: Item list view column order rework as a preparation for
   possible real column drag&drop. Introduces a new DConf setting
   for the column order.
   (Yanko Kaneti)
 * Fixes #280: Mark read toolbar button always disabled for search folders
   (Lars Windolf, reported by dvahalev)
 * Fixes #591: Please add a safety question when "marking all read"
   (Leiaz, reported by Nudin)
 * Fixes #625: Avoid exception in trayicon.py
   (Lars Windolf)
 * Fixes #627: GnomeKeyring plugin fails to activate when keyring doesn't exist
   (Lars Windolf)
 * Fixes #630: Fix feed list selection after DnD
   (Peter Zaitev)
 * Fixes #633: Big Memory leak in date code
   (Leiaz)
 * Update of Turkish translation (emintufan)
 * Update of French translation (guilieb)


1.12.2
------
 * Adding a plugin installer plugin that allows discovering
   and automatically installing 3rd party plugins
 * #585: Drop language from user agent to increase privacy
   (Daniel Aleksandersen)
 * #583: Add transmission-gtk and aria2 as download tool options
   (Daniel Aleksandersen)
 * #495: New command line option --disable-plugins (-p) to start
   with all plugins disabled.
 * Fixes #610: Liferea not showing up in GNOME Software
   (Yanko Kaneti)
 * Fixes #604: Correctly print error message when failing
   to unlock GNOME keyring
   (ghost)
 * Fixes #602: CSS style for GTK link colors not used
   (reported by pupyc)
 * Fixes #581: Redirect location updates and adds HTTP 308 (RFC 7538) support
   (Daniel Aleksandersen)
 * Fixes #578: Unable to set unread items in bold
   (Leiaz, reported by EverEve)
 * #612: Update of French translation
   (Guillaume Bernard)
 * #596: Update of Swedish translation
   (jony0008)
 * #594: Update of Polish default feed list
   (wmyrda)
 * #584: Fixes broken OPML feed list entries
   (Daniel Aleksandersen)
 * #584: Added Norwegian feed list
   (Daniel Aleksandersen)
 * #577: Fixes newsbin doc typo
   (Daniel Aleksandersen)

1.12.1
------
 * Fixes #562: Lintian spelling errors
   (reported by Paul Gevers)
 * Fixes #563: Appstream data has new format
   (patch by Paul Gevers)
 * Fixes #572: Doesn't remember some sort orders
   (reported by geplus)
 * Fixes #504: Fix assertions/crashes on changing view layouts
   (Leiaz)
 * Fixes #573: Workaround to avoid GtkPaned shrinking
   (Leiaz)
 * #566: Update of Italian translation (Gianvito Cavasoli)
 * #566: Update of Italian default feed list (Gianvito Cavasoli)
 * #514: Update of Indonesian translation (Samsul Ma'arif)
 * #514: Added Indonesian default feed list (Samsul Ma'arif)
 * Update of German translation


1.12.0
------
 * Fixes unhiding from tray icon when activated via GApplication
   (when starting Liferea a 2nd time)
 * #399: Reorder columns in 'Normal' email-like view
   to have the date column always at the end
   (Mikel Olasagasti)
 * #532: Add plugin to make unread feeds titles bold
   (Yanko Kaneti)
 * Workaround for #503: Liferea deanonymize Tor
   (Leiaz)
 * Fixes #450: #546 Resize both panes in normal and wide view
   (Leiaz)
 * Fixes #538: toggle_visibility() does not make a minimized window
   visible again
   (reported by Balló György)
 * Fixes #522: Segfault when switching feed in combined view
   (patch by jonmstone)
 * Fixes #419, #457: Handling of relative URLs in Atom parser
   (Leiaz)
 * Added 'View Image' context menu option in HTML view
 * Dropped del.icio.us from social bookmarking options
   as it is a read-only service now.
 * Redesign of the wide view mode: larger titles with small text teasers
 * Added optional AMP/HTML5 content enrichment feature

1.12-rc3
--------
 * Fixes #459: Fixes GtkDoc warnings
   (Leiaz)
 * Fixes #415: Filter commands are not asynchronous
   (Rich Coe)
 * Fixes #363: Missing space above internal browser address bar
   (reported by nekohayo, patch by Mikel Olasagasti)
 * Fixes #208: All "Unread" search folder items marked read at once
   (Leiaz)
 * Fixes #251: Liferea does not always use theme icons when it is launched
   on system startup (reported by GreenLunar, fix by Leiaz)
 * Change headline column sorting in wide view to time sorted
 * Updated Finnish translation (Jorma Karvonen)
 * Updated Latvian translation (Rihards Prieditis)
 * Updated Albanian translation (Bensik Bleta)
 * Updated Hungarian translation (Balázs Úr)
 * Updated Brazlian translation (Rafael Ferreira)
 * Updated French translation (Guillaume Bernard)

1.12-rc2
--------
 * Change all g_warnings() to g_print() for remote source
   to avoid "crashing" on errors.
 * Reorganized all UI definitions in separate files to simplify
   GtkBuilder handling.
 * Github #425: Add GeoRSS info and map link in item header
   (Mikel Olasagasti)
 * Github #407: Replacing deprecated elements in preferences
   (Leiaz)
 * Github #396: Create LifereaApplication type
   (Leiaz)
 * Github #434: Partial RFC3229+feed support for bandwidth savings
   (Daniel Aleksandersen)
 * Fixes Github #208: gtk_tree_store_get_path: assertion
   'iter->stamp == priv->stamp'
   (reported by Mno-hime)
 * Fixes Github #403: Leftover OSM XSLT in item view
   (reported by Paul Gevers)
 * Fixes Github #423: Internal browser shows files system on go-back
   (Leiaz, reported by Paul Gevers)
 * Updated German translation
 * Github #441: Updated French translation
   (Surfoo)


1.12-rc1a
---------
 * Fixing missing header files

1.12-rc1
--------
 * Github #348: Added support for downloading content that
   cannot be displayed by HTML widget (e.g. PDFs)
   (Leiaz)
 * Github #355: Migrate to Python3 libpeas loader
   (patch by picsel2)
 * Github #311: Upgrade to WebKit2
   (patch by Leiaz)
 * Github #292: Show new item count in tray icon
   (patch by mozbugbox)
 * Github #297: Minimize to systray on window close
   (patch by Hugo Arregui)
 * Github #325: Auto-fitting, translated license
   (patches by GreenLunar and Adolfo Jayme-Barrientos)
 * Fixes Github #73: Problem with favicon update
   (reported by asl97)
 * Fixes Github #177, #350: Tray icon not scaled properly
   (patch by mozbugbox)
 * Removes GeoIP rendering via OSM to avoid exposing
   users to remote JS library resources.
   (reported by Paul Gevers)
 * Fixes Github #337: Case sensitive sorting
   (reported by Pi03k)
 * Fixes Github #361: Show all enclosuers
   (Leiaz)
 * Fixes Github #368: Segfault on liferea-feed-add
   (Leiaz)
 * Fixes Github #382: Broken Auto-Detect/No Proxy setting
   (Leiaz)
 * Fixes Github #383: Per feed don't use proxy setting is broken
   (reported by Leiaz)
 * Github #309: Update of Japanese translation
   (IWAI, Masaharu)
 * Github #329: Update of Hebrew translation
   (GreenLunar)
 * Github #330: Update of Spanish translation
   (Adolfo Jayme-Barrientos)
 * Update of Swedish translation
   (Andreas Ronnquist)


1.11.7
------
 * Github #287: Add support for media:group.
   (patch by Leiaz)
 * Github #287: Fixes issues with media:content.
   (patch by Leiaz)
 * Fixes Github #283: Bad .desktop categories definition
   (reported by Wuzzy2)
 * Fixes Github #279: Fixes rules no visible in searchdialog
   (patch by Leiaz)
 * Fixes Github #278: No "Download" tab in Tools/Preferences
   (docs error, reported by Anders Jonsson)
 * Fixes Github #83: Segfault when sorting feeds in folder
   (patch by Leiaz)
 * Fixes French translation
   (patch by polo2ro)
 * Github #300: Updated manpage
   (patch by GreenLunar)

1.11.6
------
 * Added "Do Not Track" support (enabled per default)
 * Github #193: Added x-scheme-handler/feed to desktop file
   (suggested by GreenLunar)
 * Github #209: Add image icons to plugins
   (by GreenLunar)
 * Github #210: Enable tests for parsing RFC822 dates with 2 digit year
   (patch by arunanbala)
 * Fixes Github #78: Shaky text in feed list
   (reported by GreenLunar)
 * Fixes Github #195: Out-dated documentation on enclose download
   (reported by brian-in-crawford)
 * Fixes Github #198: Traceback on popup notifications
   (reported by GreenLunar)
 * Fixes Github #216: Untranslatable strings
   (reported by GreenLunar)
 * Fixes Github #256: PyGIWarnings on loading plugins
   (patch by glitjs16)

1.11.5
------
 * Github #178: Implementing full screen mode for videos
   (mozbugbox)
 * Fixes Github #32: Prevent erroneous "Mark all as read"
   (reported by Mno-hime)
 * Improves Github #36, #113: UI lock up during refresh
   (suggested by mozbugbox)
 * Fixes Github #180: Removing item from (v)folder marks all read
   (reported by GreenLunar)
 * Fixes Github #140, #158: Vertical pane placement is forgotten.
   (patch by foresto)
 * Fixes Github #182: Missing config.h include in date.c
   (reported by Paul Gevers)
 * Update of Russian translation (bboa)

1.11.4
------
 * Fixes Github #154: Crashes while starting (corrupt icon)
   (reported by jcamposz)
 * Github #149: Fixes a random crash on startup
   (patch by mozbugbox)
 * Fixes Github #79: RTL ordering of Back/Forward icons
   (reported by GreenLunar)
 * Fixes Github #30: Segfault after updating from 1.8 to 1.10
   (reported by vakuum)
 * Fixes Github #87: URL resolving wrong if base tag involved
   (reported by DanMan, fixed by mozbugbox)
 * Fixes all defects reported by Coverity scan
 * Simplied external browser handling. Now Liferea only supports
   the gtk_show_uri() launch mechanism for the system default browser
   and a user specified browser command.
 * Update of Albanian translation (Besnik Bleta)
 * Update of Hebrew translation (Genghis Khan)
 * Update of Spanish translation (Juan Campos Zambrana)
 * Fixes typo in Italian translation

1.11.3
------
 * Fixes Github #134: Broken default news feed.
   (reported by pvdl)
 * Fixes Github #133: Subscribe into TheOldReader categories
 * Fixes Github #122: Crashes at launch, "segmentation fault"
   (reported by geoffm)
 * Fixes some memory leaks
   (patch by Rich Coe)
 * Fixes Github #145: Incorrect method triggered for 'Launch External'
   (patch by mozbugbox)
 * Fixes Github #48: Window stays hidden on next start after Ctrl+W
   (reported by Jeff Fortin)
 * Expose LifereaHtmlView to GObject Introspection
   (patch by mozbugbox)
 * Improves Google Reader API error handling
 * Now using HTTPS only when accessing TheOldReader
 * Added LifereaNodeSourceActivatable interface to allow plugins
   implementing new node source types.
 * Downgrade enclosure drop warning from Glib warning to debug trace.

1.11.2
------
 * Fixes Github #132: Broken documentation link
   (reported by kallus)
 * Fixes Github #121: Wrapping issue in folder display
   (reported by Jeff Forting)
 * Fixes Github #114: Avoid termination on UTF-8 validation error
 * Fixes Github #90: Libnotify plugin not working
   (reported by asl97)
 * Fixes Github #86: Support HTTP content negotiation
   (suggested by DanMan)
 * Black-list some categories used by Google Reader clones
   that should not be visible.
 * Allowing browser history to go back to previously
   shown headline when browsing inside the item view.
 * Dropping offline option as this is duplicated with
   desktop environment in GNOME/network manager.
 * Fixes Github #100: Problems with dark Adwaita theme in GTK 3.14
   (reported by majutsushi)
 * Fixes for preferences dialog width.
   (patch by Jeff Fortin)
 * Update of Arabic translation (Khaled Hosny)

1.11.1
------
 * Fixes Github #81: Inability to add subscriptions
   (reported by GreenLunar)
 * Fixes Javascript links not opening in new browser tabs
 * Updated Hebrew translation (Genghis Khan)
 * Fixes Github #88: Minor DE translation mistake (moraxy)

1.11.0
------
 * Added experimental InoReader support
 * Added experimental Reedah support
 * Fixes SF #1123: Mistakenly claims "TinyTinyRSS source is not self-updating"
   (reported by Dominik Grafenhoher)
 * Fixes SF #1119: Crash on font resize at startup.
   (reported by David Smith)
 * Fixes #1056, #1089, #1098: Honor preferences when opening links
   (patch by Daniel Seither)
 * Fixes #1117: Selecting last unread item in reduced feed list jumps to next feed
   (reported by Bruce Guenter)
 * Fixes missing "Via" metadata type
   (patch by Rich Coe)
 * Fixes incorrect new count reset handling in item_state.c and
   some of the node source implementations.
 * Fixes SF #1096: missing installation of liferea.convert file
   (reported by stqn)
 * Fixes SF #1135: liferea-add-feed doesn't process feed:https//
   (patch by Kevin Walke)
 * Fixes SF #1137, #1142: startup race with LifereaHtmlView
   (reported by Yanko Kaneti)
 * Fixes Github #13: Parsing errors not visible with dark themes
   (reported by Steve Kelly)
 * Fixes Github #29: Do not use bold text for feeds/folders with unread items
   in the leftmost treeview (repored by Jeff Fortin)
 * Fixes SF #1141: Liferea does not update feeds with TinyTinyRSS
   (reported by Dominik Grafenhofer, denk_mal, Fabian Henze)
 * Fixes SF #1150: subscription prop/source: not all fields and
   buttons visible (reported by David Smith)
 * Fixes Github #26: RTL comments appear incorrectly
   (reported by yaconf)
 * Fixes Github #27: Images do not autosize to fit the available space
   (reported by Jeff Fortin)
 * Fixes Github #34: Add TinyTinyRSS Enclosure Support
   (reported by Adrixan)
 * Fixes Github #43: "Any of the following" search condition doesn't work
   (reported by Jeff Fortin)
 * Fixes Github #49: Some dialogs scrolling areas do not request enough height
   (reported by Jeff Fortin)
 * Fixes Github #53: Doesn't automatically update feed name and favicon
   for new feed (reported by asl97)
 * Patch SF #224: Update to new libxml2 buffer API
   (Simon Kagedal Reimer)
 * Patch SF #209: Avoid copying list in itemset_merge_items
   (kaloyan)
 * Make Liferea use ETags and send If-None-Match
   (patch by Chris Siebenmann)
 * Support NOCONFIGURE for RPM builds
   (Charles A Edwards)
 * Rename README to README.md
 * Removing libindicate support (to be added as plugin maybe)
 * Removing libnotify support (to be added as plugin maybe)
 * Removing build in tray icon support
 * Added tray icon plugin
 * Added category/folder support for TheOldReader
 * Added folder auto-removal for TinyTinyRSS & TheOldReader
 * Updated README on plugin contribution
 * Updated Arabic translation (Khaled Hosny)
jperkin pushed a commit that referenced this issue Jan 21, 2019
## [4.0.0](cucumber/cucumber-ruby-core@v3.2.0...v4.0.0)

### Changed

* Update to use Gherkin v6
  ([#158](cucumber/cucumber-ruby-core#158)
  @brasmusson)
* Let Scenarios with no Steps get the result status Undefined
  ([#157](cucumber/cucumber-ruby-core#157)
  @brasmusson)
* Convert to use the Gherkin compiler and Pickles
  ([#156](cucumber/cucumber-ruby-core#156)
  @brasmusson)

### Added

* N/A

### Fixed

* N/A

### Removed

* Remove the support for old style tag expressions
  ([#159](cucumber/cucumber-ruby-core#159)
  @brasmusson)
jperkin pushed a commit that referenced this issue Jun 2, 2019
Changes since b157

Beta #158 - 02.06.2019
- Removed the sample unrolling optimization from beta #157 because it had
  problems with small pingpong looped samples... D'oh!
jperkin pushed a commit that referenced this issue Jul 1, 2019
For a security fix.

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

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

        Special thanks to:
            Benjamin Peterson
            Caolán McNamara
            Hanno Böck
            KangLin
            Kishore Kunche
            Marco Maggi
            Rhodri James
            Sebastian Dröge
            userwithuid
            Yury Gribov
jperkin pushed a commit that referenced this issue Sep 2, 2019
Changes since 1.5.2:

    Disable EGL on macOS
    Fix build on macOS [#176, Emmanuele Bassi]
    Add macOS tests
    Fix build with uClibc [#181, Emmanuele Bassi]
    Fix GLES3 symbol lookup [Adam Jackson]
    Fix conditional compilation [#184, Zhao Zhili]
    Require Meson 0.47
    Fix Autotools build with EGL-X11 support [#188, Emmanuele Bassi]

Changes since 1.5.1:

    Fix the detection of the -z,relro linker flag
    Query the EGL context version when bootstrapping on GLES [Adam Jackson]
    Avoid inadvertedly loading libraries when probing for them [Adam Jackson]
    Issue #169: Fix build on FreeBSD [Ting-Wei Lan]
    Consistently use abort() instead of exit() for internal state checks
    Issue #171: Fix a performance regression in the global function pointer
    trampolines introduced by using -Bsymbolic-functions
    Improve performance when using GL function pointers like glAlphaFunc [Adam Jackson]

Changes since 1.5.0:

    Do no add pkg-config dependencies on gl on systems that do not use
    pkg-config, like macOS and Windows [Tom Schoonjans, #156]
    Generalise checks for dlvsym [Ross Burton, #158]
    Add an option for disabling building the test suite [Ross Burton]
    Typo fixes in the comments and documentation [luz.paz, #159]
    Simplify the Meson configuration logic for EGL and GLX [Eric
    Engestrom, #162]
    Use assert when no context is found [Adam Jackson, #166]
    Remove a test superceded by GLVND [#165]
    Avoid Meson warnings when testing for linker arguments


Changes from Epoxy 1.4.3

    Bump the Meson dependency to 0.44.1
    Include Xlib.h in the tests that use X11 API
    Update the GL registry to OpenGL 4.6
    Add gl and egl private dependencies in the pkg-config file
    Allow building Epoxy without X11 support
    Rename the Meson configuration options to be more idiomatic
    New API:
        epoxy_set_resolver_failure_handler()
        epoxy_glsl_version()
        epoxy_extension_in_string()

Issues fixed

    #128 - Fix macOS linker flags [Tom Schoonjans]
    #129 - Use GLVND if available [Adam Jackson]
    #134 - Add fallback definition for EGL_CAST [Daniel Stone]
    #133 - Try even harder to not load GLX [Adam Jackson]
    #138 - Fix the libOpenGL soname [Adam Jackson]
    #137 - Update differences with GLEW [Nigel Stewart]
    #131 - Add epoxy_set_resolver_failure_handler() [Adam Jackson]
    #140 - Fix pointer mismatch on Windows 10 [danem]
    #141 - Define visibility flags for static builds [Dylan Baker]
    #136 - Expose epoxy_extension_in_string() [Lyude Paul]
    #151 - Use correct guard for Android builds [Robert Bragg]
    #154 - Fix dlwrap for glvnd [Adam Jackson]
    #155 - Respect DLOPEN_LIBS [Michał Górny]
    #143 - Fix printf family usage [Ikey Doherty]
    #152 - Do not use OPENGL_LIB on Android
    #145 - Add epoxy_glsl_version()
jperkin pushed a commit that referenced this issue Sep 9, 2019
libcec (4.0.4.1~#DIST#) #DIST#; urgency=medium

  * fixed: only prevent TV polls when a Samsung TV is detected instead of
    suppressing all logical addresses. issue #424 #444

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 21 Dec 2018 22:34:14 +0100

libcec (4.0.3.1~#DIST#) #DIST#; urgency=medium

  * fixed:
    * detect debian based distros properly when installing python. closes #314
    * don't filter out broadcast in HandleDeviceVendorCommandWithId(). issue
      #309
    * send an active source message when a routing change has been received with
      libCEC's address as new route and no active source message has been sent
      yet. issue #309 #205 #233
    * vs2015 c++ redistributables
    * fix missing tinfo linking in cec-client. #341
    * set wrong variable. #343 #352
    * LG - don't activate the source when receiving vendor command 0xB. #344
    * LG TV always changing input when turned on #307
    * Fix menu language string. #360
    * correct python lib path for python 2.7+/3+. #356
    * Fix build if tinfo library is not present. #398
    * disable autonomous mode when a Samsung TV is connected. Samsung 2017+ TVs
      will power on randomly (Samsung bug). don't poll the TV. #424
    * CRPiCECAdapterMessageQueue::Write() accessed the queue without locking.
      #423
    * use sig_atomic_t for shared object between sig handler and main. #425
    * python 3.5+ import. #356
    * TDA995x: Fix logical address readback. #303
    * TDA995x: Handle physical address change, optimize logical address setup.
      #303
    * Pulse-Eight USB CEC adapter detection on macOS Mojave. #434
    * Fix broken Python version check and failure to build on cmake < 3.7. #409
    * 13 char device name got truncated

  * changed:
    * log a warning when we detect that RPi's CEC service is used by something
      else, blocking libCEC. issue #191
    * const IAdapterCommunication::GetLogicalAddresses(), making the mutex
      mutable for now without changing the platform lib. closes #259
    * Add a Reinitialze action.  Useful for after the device has been powered
      down. #299
    * Panasonic media control info to the readme
    * detect WIN64 in cmake automatically. #322
    * README.developers.md. #330
    * instructions for hdmi_force_hotplug=1 on the pi
    * eventghost plugin install/create. #375
    * Include C version of libCEC loader when installing. #397
    * Explicitly use python3 in pyCecClient. #433
    * build with vs 2015

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 8 Nov 2018 18:05:36 +0100

libcec (4.0.2.1~#DIST#) #DIST#; urgency=medium

  * fixed:
    * windows: device detection. credits: @Portisch
    * don't automatically assume that an AVR is active in some situations
    * don't take Panasonic's vendor id when emulating an AVR
    * drm EDID parser not compiled in. credits @gdachs
    * python: have Swig generate Python threading support
    * python: only pass unsigned
    * python: allow empty callback parameters
    * python: install demo app as executable
    * python: correct install path. credits @Lo0k @mkreisl. #284 #288 #289 #291
    * python: possible crash when passing an invalid callback

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Mon, 23 Jan 2017 16:28:00 +0100

libcec (4.0.1.1~#DIST#) #DIST#; urgency=medium

  * fixed:
    * TransmitVolumeDown to use CEC_USER_CONTROL_CODE_VOLUME_DOWN. credits:
      @michaelarnauts
    * HAVE_AOCEC_API missing in if in AdapterFactory. credits: @gdachs
    * env.h had 'ON' instead of '1' for some values

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 3 Jan 2017 19:12:00 +0100

libcec (4.0.0.3~#DIST#) #DIST#; urgency=medium

  * fixed:
    * headers weren't installed after package name changes

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 14 Nov 2016 10:15:00 +0100

libcec (4.0.0.2~#DIST#) #DIST#; urgency=medium

  * changed:
    * updated readme files
    * renamed 'libcec-dev' to 'libcec4-dev'

  * fixed:
    * removed debian Replaces/Provides/Conflicts
    * crash in drm edid code. credits: @zivillian
    * compilation with -DHAVE_AOCEC_API=1

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 7 Nov 2016 22:43:00 +0100

libcec (4.0.0.1~#DIST#) #DIST#; urgency=medium

  * API cleaned up for v4
  * changed:
    * signature for GetDeviceMenuLanguage() changed
    * signature for GetDeviceOSDName() changed
    * signature for libcec_get_device_menu_language() changed
    * signature for get_device_osd_name() changed
    * cec_datapacket size reduced to 16 bytes
    * callbacks changed to pass pointers instead of copies
    * obsolete entries removed from libcec_configuration
    * removed deprecated FindAdapters() and MuteAudio()
    * send volume change commands to the TV if no audio system is present. Only
      some TVs support this. closes #223

  * added:
    * bAutoWakeAVR entry in libcec_configuration, which controls whether to
      automatically power on the avr or not when the source is activated. issue
      #156
    * iDoubleTapTimeoutMs replacing iDoubleTapTimeout50Ms. time is now in
      milliseconds
    * new AO CEC adapter. credits: @gdachs

  * fixed:
    * compilation with full debugging enabled
    * handling of LG vendor command 0x0B. Issue #256. Credits @Vollstrecker
    * return value wasn't checked correctly in CLibCEC::RegisterClient()
    * Raspberry Pi fixes for issues #252 and #191

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 26 Oct 2016 18:08:00 +0100

libcec (3.2.0.1~#DIST#) #DIST#; urgency=medium

  * Slit up repositories for libCEC and .Net utilities.

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Wed, 19 Oct 2016 16:57:00 +0100

libcec (3.1.0.1~#DIST#) #DIST#; urgency=medium

  * changed / added:
    * bump platform lib (windows)
    * use a template that can be used by scripts for the changelog
    * make released key polling wait for exact time until key gets released.
      credits @popcornmix
    * keep track of time since initial button press and last button update
      credits @popcornmix
    * support repeating button presses with configurable repeat rate. credits
      @popcornmix
    * pass through duration on all button repeats. credits @popcornmix
    * updated README.md
    * moved the buffer in CDRMEdidParser::GetPhysicalAddress() from the stack
      to heap
    * added #include to make the IDE happy. not actually used when compiling
    * clean up device detection code a bit and replace winapi calls with
      CM_* calls. issue #130
    * replaced lockdev by flock. closes #141
    * use a single number as major SO version like others. credits @rbalint
    * Sharp uses vendor id 0x534850 too. issue #36
    * use p8-platform instead of platform
    * detect dirty trees
    * support for vs2015 to build scripts
    * update build scripts for vs2015 and win10uni

  * fixed:
    * missing version.h when installing on windows
    * skip double press removal. It is handled through other means. credits
      @popcornmix
    * don't generate an invalid env.h when not built with the .git dir present.
      closes #112
    * fix multi-arch libdir locations. credits @wsnipex
    * fix for holding buttons on remotes of Philips TVs. credits @mrgreywater
    * initialisation issue found on Raspberry Pi with Buildroot. credits
      @elouet
    * crash on systems without /sys/class/drm. credits @rbalint
    * segfault when an empty EDID blob is passed to
      GetPhysicalAddressFromEDID()
    * combo key (stop by default) in the EventGhost plugin. fixes #128
    * silence compiler warnings
    * git-rev.sh script
    * clean/fix platform detection
    * display a nice error message if LibCecSharp failed to load
    * limit the log in cectray to 100k
    * open cec-tray minimised if configured. don't open and minimise. issue
      #158
    * cosmetics: persist -> save
    * query commands in eventghost. fixes #160
    * eventghost demo config
    * don't call PowerOnDevices() if no devices to wake have been configured.
      issue #97
    * Don't skip checking for Rasperry Pi library (Fixes #166). credits
      @kingosticks
    * TDA99x check
    * disable DRM for FreeBSD

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Wed, 20 Jan 2016 00:37:32 +0100

libcec (3.0.1-1~#DIST#) #DIST#; urgency=low

  * changed / added:
    * autodetect physical ID from DRM. credits @PoppyPop
    * cmake command line options for raspberry pi distributions that don't use
      standard system paths for libs for some reason
    * convenience methods for compilation on the raspberry pi with non-standard
      system directories and cross compilation
    * explanation in README.md for Exynos and TDA995x
    * don't treat failed acks from the tv as error when sending an active
      source message
    * compilation info when building libCEC
    * build shared libraries by default
    * cec-client: 'tx' command parsing

  * fixed:
    * return code of CCECClient callbacks after async changed. credits: @mk01
    * polling addresses on RPi. credits: @mk01
    * interruptable Sleep() in RPiCECAdapterMessageQueue
    * Exynos support. credits: @YamashitaRen
    * XCASE got removed from posix termios in some recent version
    * don't return an abort code if sending a response code fails

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 03 Jul 2015 15:19:00 +0200

libcec (3.0.0-2) unstable; urgency=low

  * fixed:
    * build fixes on non-linux

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 01 May 2015 01:41:00 +0200

libcec (3.0.0-1) unstable; urgency=low

  * changed / added:
    * initial version of an EventGhost plugin
    * Python API added through Swig, based on the C++ API
    * switched from autotools to cmake
    * added curses support. credits @joao29a
    * added cecc-client (testclient for the C api)
    * added runtime libCEC loading for C
    * updated the C interface to include new features and no longer use a
      global library instance
    * some AVRs fail to be powered up by the TV when it powers up. power up the
      AVR explicitly
    * added support for CEC_DEVICE_TYPE_TV (useful for testing)
    * compile with c++11
    * removed CStdString
    * drop 'using namespace std'
    * autogenerated version numbers, drop some backwards compat code
    * LibCecSharp: added PhysicalAddressToString()
    * CecSharpClient: better formatting of the scan command

  * fixed:
    * Debian packaging cleaned up. Credits @PimentNoir
    * fixed Raspberry Pi compilation. Credits @NHellFire
    * ignore vendor command with id from pioneer AVRs. bugzid: 3853
    * update the vendor id of a device when receiving a vendor command with id
      before receiving a vendor id
    * XBMC->Kodi rebranding
    * don't delete m_client when m_cec hasn't been deleted yet in
      CLibCEC::~CLibCEC(). issue #63
    * change device types in CCECProcessor::Process(), not directly. issue #63
    * use shared_ptr<CPVRClient> instead of passing raw pointers around that
      can be unregistered from another thread and crash
    * check if the port or device actually changed in CCECClient::SetHDMIPort()
    * potential buffer overflow
    * fixed setting the physical address at startup when using default settings
    * don't call callbacks directly in libCEC, but queue them and process from
      a worker thread
    * libCEC Tray: crash when retrying to find adapters
    * libCEC Tray: don't show the "no device found" warning when resuming
      from standby
    * libCEC Tray: reconnect to the adapter after resuming from standby
    * libCEC Tray: send key presses to the active window when none of the
      predefined (wmc/kodi) ones are active
    * libCEC Tray: fixed key combinations with the windows key

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 03 Apr 2015 21:13:00 +0200
jperkin pushed a commit that referenced this issue Oct 6, 2019
Switched to github for upstream, build system now uses cmake.

Changes in major release 2.0.0:

New Features

    implement polyphonic key pressure (#185, thanks to @mawe42)
    add API for manipulating default modulators (#265, #164, #71, thanks to @mawe42)
    add midi.autoconnect setting for automatically connecting fluidsynth with available MIDI Input ports (currently only for alsa_seq thanks to @tomcucinotta)
    add seek support to midi-player (#261, thanks to @loki666)
    add support for text and lyrics midi events (#111)
    add support for 24 bit sample soundfonts (#301, #329)
    consider "important midi channels" during overflow calculation synth.overflow.important-channels (#294, thanks to @mawe42)
    add a custom default modulator for MIDI CC8 to support proper stereo balance (#317, thanks to @mawe42)
    add support for an additional custom high-pass filter (#331, thanks to @mawe42)
    incorporate JJC's polymono patch (#306, #236, #158)
        add basic channel support
        implement MIDI modes Omni On, Omni Off, Poly, Mono
        implement portamento control
        implement legato control
        implement breath control
    add support soundfont loading from memory (#241)
    add a profiling command interface (#345, thanks to @jjceresa)
    add support on demand sample loading (#366, thanks to @mawe42)
    add reverb and chorus settings (#49)
    allow using the midi router to manipulate midi files when playing from command line
    fluid_synth_process() received a new proper implementation
    synth.effects-groups allows to render effects of all MIDI channels to separate audio channels

General

    CMake 3.1.0 or later is required for building
    consider channel pressure, key pressure and pitch wheel for lower attenuation boundary calculation (#163, thanks to @mawe42)
    complete rewrite of the LADSPA subsystem (#227, #235, thanks to @mawe42)
    complete rewrite of the Soundfont Loader API (#334, #309)
    avoid reverb amplitude growing exponentially (#279, thanks to @jjceresa)
    removed deprecated autotools build system
    a minimal build of fluidsynth without requiring pkg-config is supported
    remove deprecated LADCCA support
    use unique device names for the audio.portaudio.device setting (#284, thanks to @jjceresa)
    documentation of the settings moved to http://www.fluidsynth.org/api/fluidsettings.xml
    adjust MIDI Pan and Balance calculations as outlined by MIDI Recommended Practice (RP-036) (#317, thanks to @mawe42)
    make network support compile-time optional (#307, thanks to @carlo-bramini)
    speed up calculation of chorus modulation waveforms for devices without FPU (#321, thanks to @carlo-bramini)
    cleanup internal audio rendering and mixing engine (#197)
    reduce memory consumption of loaded soundfonts (#370, thanks to @mawe42)
jperkin pushed a commit that referenced this issue Oct 20, 2019
Switched to github for upstream, build system now uses cmake.

Changes in major release 2.0.0:

New Features

    implement polyphonic key pressure (#185, thanks to @mawe42)
    add API for manipulating default modulators (#265, #164, #71, thanks to @mawe42)
    add midi.autoconnect setting for automatically connecting fluidsynth with available MIDI Input ports (currently only for alsa_seq thanks to @tomcucinotta)
    add seek support to midi-player (#261, thanks to @loki666)
    add support for text and lyrics midi events (#111)
    add support for 24 bit sample soundfonts (#301, #329)
    consider "important midi channels" during overflow calculation synth.overflow.important-channels (#294, thanks to @mawe42)
    add a custom default modulator for MIDI CC8 to support proper stereo balance (#317, thanks to @mawe42)
    add support for an additional custom high-pass filter (#331, thanks to @mawe42)
    incorporate JJC's polymono patch (#306, #236, #158)
        add basic channel support
        implement MIDI modes Omni On, Omni Off, Poly, Mono
        implement portamento control
        implement legato control
        implement breath control
    add support soundfont loading from memory (#241)
    add a profiling command interface (#345, thanks to @jjceresa)
    add support on demand sample loading (#366, thanks to @mawe42)
    add reverb and chorus settings (#49)
    allow using the midi router to manipulate midi files when playing from command line
    fluid_synth_process() received a new proper implementation
    synth.effects-groups allows to render effects of all MIDI channels to separate audio channels

General

    CMake 3.1.0 or later is required for building
    consider channel pressure, key pressure and pitch wheel for lower attenuation boundary calculation (#163, thanks to @mawe42)
    complete rewrite of the LADSPA subsystem (#227, #235, thanks to @mawe42)
    complete rewrite of the Soundfont Loader API (#334, #309)
    avoid reverb amplitude growing exponentially (#279, thanks to @jjceresa)
    removed deprecated autotools build system
    a minimal build of fluidsynth without requiring pkg-config is supported
    remove deprecated LADCCA support
    use unique device names for the audio.portaudio.device setting (#284, thanks to @jjceresa)
    documentation of the settings moved to http://www.fluidsynth.org/api/fluidsettings.xml
    adjust MIDI Pan and Balance calculations as outlined by MIDI Recommended Practice (RP-036) (#317, thanks to @mawe42)
    make network support compile-time optional (#307, thanks to @carlo-bramini)
    speed up calculation of chorus modulation waveforms for devices without FPU (#321, thanks to @carlo-bramini)
    cleanup internal audio rendering and mixing engine (#197)
    reduce memory consumption of loaded soundfonts (#370, thanks to @mawe42)
jperkin pushed a commit that referenced this issue 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 issue Nov 24, 2019
Sat Oct 20, 2019: Released Check 0.13.0
  based on hash 2b18886a9a9d3bab44917a550d12128ad7e2c197

* configure: optional build documentation
  Issue #206 (GitHub)

* missing <unistd.h> in some files
  Issue #196 and Issue #186 (GitHub)

* Varous documentation improvements

* END_TEST is now optional, as how START_TEST works has been redone
  Issue #158

* Various CMake related changes:
  - Support exporting Check to other projects with CMake 3
    Issue #185
  - Shared library support for Visual Studio
    Issue #220
  - Fix wrong library filename
    Issue #226
  - Add support for CMake package registry
    Issue #227
  - CMake build type can now be debug or release
    Issue #228
  - Add checkmk to CMake build.
jperkin pushed a commit that referenced this issue Jan 11, 2020
0.11.2.0
* Reduces some of the code duplication between the encode and
  encodePretty functions
* The output of encodePretty has been improved:
  * Multiline strings now use Literal style instead of SingleQuoted
  * Special keys are now quoted in mappings #179
* Support for complex keys in mappings: #182
  * Adds complexMapping function to Data.Yaml.Builder
  * Decode functions now return a NonStringKey error when attempting
    to decode a mapping with a complex key as it is not possible to
    decode these to an Aeson Value
* Adds missing ToYaml instances

0.11.1.2
* Compiles with GHC 8.8.1 (MonadFail split)

0.11.1.1
* Use the appropriate Scientific rendering function to avoid a memory
  overflow when rendering. The previously used function from aeson
  would not use scientific notation, and could use large amounts of
  memory for values such as 1e9999999999999.

0.11.1.0
* Better error messages in the Data.Yaml.Config module #168
* Add LoadSettingsException exception and remove error printing from
  loadYamlSettings #172

0.11.0.0
* Split out the libyaml and Text.Libyaml code into its own
  package. #145

0.10.4.0
* Add decodeMarked and decodeFileMarked functions to Text.Libyaml, and
  extend native bindings to extract mark information. #157

0.10.3.0
* Add support for anchors and aliases to Data.Yaml.Builder #155
* Fix test suite for 32 bit machines #158

0.10.2.0
* Add EncodeOptions and FormatOptions to control the style of the
  encoded YAML. #153
* Default to using literal style for multiline strings #152

0.10.1.1
* Correctly declare libyaml dependency on system-libyaml flag #151

0.10.1
* Avoid incurring a semigroups dependency on recent GHCs.
* Fix a space leak that was introduced with 0.10.0 #147

0.10.0
* Add decodeFileWithWarnings which returns warnings for duplicate
  fields

0.9.0
* Expose style and tags on mappings and sequences in Text.Libyaml #141

0.8.32

* Escape keys as necessary #137
* Support hexadecimal and octal number values #135
* More resilient isNumeric (should reduce cases of unneeded quoting)
* hpackify
* src subdir

0.8.31.1
* Add a workaround for a cabal bug haskell-infra/hackage-trustees#165

0.8.31
* Add decodeThrow and decodeFileThrow convenience functions.
* Upgrade libyaml versions
* Deprecate decode and decodeEither
@jperkin jperkin self-assigned this Apr 17, 2020
@jperkin
Copy link
Collaborator

jperkin commented Apr 17, 2020

Stupid GitHub auto-close.

@jperkin jperkin reopened this Apr 17, 2020
jperkin pushed a commit to NetBSDfr/pkgin that referenced this issue Apr 27, 2020
There are a number of known issues with +REQUIRED_BY files getting out
of sync when performing forced upgrades or replacements as pkgin does.
These lead to infamous "Can't open +CONTENTS of..." errors when next
attempting to upgrade, as +REQUIRED_BY files contain entries for
packages that no longer exist.

Attempting to fix pkg_install to ensure correct consistency during
replacements is difficult, and there's no guarantee that the installed
pkg_install tools would have any future fixes, and so a simpler
workaround for pkgin for now is to simply rebuild all the +REQUIRED_BY
files after each upgrade.

With recent proposed changes to pkg_install this operation has been
improved, and so the additional runtime (less than 1 second for most
situations) should not be noticeable for most users.

Resolves errors seen in TritonDataCenter/pkgsrc#158, TritonDataCenter/pkgsrc#190,
TritonDataCenter/pkgsrc#256 and many other ad-hoc reports.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jul 1, 2020
Includes fixes to +REQUIRED_BY generation, performance improvements,
build fixes against newer libnetpgpverify, and better error messages.

When combined with newer pkgin releases, this should now eliminate the
various "pkg_add: Can't open +CONTENTS of depending package ..." errors
that users had frequently observed during upgrades (TritonDataCenter#158,
TritonDataCenter#190, TritonDataCenter#256, and many IRC logs).
jperkin pushed a commit that referenced this issue 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 issue Sep 30, 2020
Release rpyc 3.4.4
- Fix refcount leakage when unboxing from cache (#196)
- Fix TypeError when dispatching exceptions on py2 (unicode)
- Respect ``rpyc_protocol_config`` for default Service getattr (#202)
- Support unix domain sockets (#100,#208)
- Use first accessible server in ``connect_by_service`` (#220)
- Fix deadlock problem with logging (#207,#212)

Release rpyc 3.4.3
- Add missing endpoints config in ThreadPoolServer (#222)
- Fix jython support (#156,#171)
- Improve documentation (#158,#185,#189,#198 and more)
jperkin pushed a commit that referenced this issue Dec 28, 2020
Change since 1.3.1 from RELEASE_NOTES

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

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

- Tests which require `capabilities("cairo")` are now skipped.

# withr 2.4.0

- withr is now licensed as MIT (#154).

- Tests For `with_cairo_pdf()` and `with_cairo_ps()` have been
  removed, as they fail if Cairo is not available, such as with M1
  macOS systems (#158)

- `local_seed()` is now exported (#153)
jperkin pushed a commit that referenced this issue 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 issue 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 issue 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 issue 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 issue Nov 29, 2021
# diffobj
## v0.3.5

* Options automatically fallback to factory defaults if they are unset (h/t
  @gadenbui).
* [#158](brodieG/diffobj#158): Calling `diff*` with
  `do.call` now works without warnings.
* [#117](brodieG/diffobj#117): Fix guide detection
  with very wide wrapped data.frames (h/t @bastician, @overvolting).
jperkin pushed a commit that referenced this issue Dec 2, 2021
Change log:

4.16.3
======
- panel: Change width of default panel-2 to 1% (Fixes #454)
- panel: Fix xfce4-panel-CRITICAL
- panel: Fix xfce4-panel-CRITICAL when already running
- libxfce4panel: Do not destroy context menu if popped up (Fixes #442)
- launcher: Check for menu item initialization
- launcher: Fix garcon-CRITICAL at startup
- systray: Fix GObject-CRITICAL
- systray: Fix Gtk-CRITICAL at startup/shutdown
- systray: Fix libsystray-CRITICAL
- tasklist: Fix Gtk-CRITICAL
- Silent `-Wcast-align` from Clang
- Translation Updates:
  Bulgarian, English (Australia), Estonian, Hebrew, Italian, Norwegian
  Bokmål, Occitan (post 1500), Portuguese, Spanish, Swedish

4.16.2
======
- Add icons to help and about items in panel menu
- Modernize documentation (developer.xfce.org)
- Translation Updates:
  Croatian, Estonian, Georgian, Ukrainian

4.16.1
======
- pager: Use gobject bindings (Fixes #376)
- pager: Switch to new workspaces icon name
- launcher: avoid double fork
- statustray: Display tooltip title of statusnotifier items as plaintext
- statustray: Prevent crash when parsing properties (Fixes #379)
- windowmenu: fix use-after-free in window_menu_plugin_window_item_new
- Fix compilation warnings
- Update `.gitignore`
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian (Armenia), Asturian, Basque,
  Belarusian, Bengali, Bulgarian, Catalan, Chinese (China), Chinese
  (Hong Kong), Chinese (Taiwan), Croatian, Czech, Danish, Dutch,
  Eastern Armenian, English (Australia), English (United Kingdom),
  Estonian, Finnish, French, Galician, Georgian, German, Greek, Hebrew,
  Hungarian, Icelandic, Indonesian, Interlingue, Italian, Japanese,
  Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmål, Norwegian
  Nynorsk, Occitan (post 1500), Panjabi (Punjabi), Polish, Portuguese,
  Portuguese (Brazil), Romanian, Russian, Serbian, Sinhala, Slovak,
  Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese

4.16.0
======
- panel: Fix intellihide with CSD (Fixes #368)
- tasklist: Fix wireframe for CSD windows (Fixes #338)
- tasklist: Auto-adjust icon size (Closes #90)
- Revert "tasklist: Auto-adjust icon size (Closes #90)"
- Fix GSourceFunc removal
- Remove GSourceFunc casts
- Remove GLIB_CHECK_VERSION IFDEFs which are obsolete after glib bump


4.15.6
======
- settings: Use spinbuttons for size and nrows
- settings: Update item listview toolbar
- Make dbusmenu-gtk3-0.4 optional, disables StatusNotifier integration
- gobject introspection wants a capital letter for the gir file
- Use new xfce_spawn API
- Bump GLib (and gio, gthread, etc) minimum to 2.50.0
- Update .gitignore
- Add README.md to EXTRA_DIST
- Fix compiler warnings
- Fix memory leaks
- Drop generated code from repo
- Revert "launcher: Appear "checked" on click (Fixes #256)"
- Translation Updates:
  Chinese (China), Estonian, Norwegian Nynorsk, Russian, Serbian,
  Slovak, Slovenian, Turkish, Vietnamese

4.15.5
======
- actions: Switch to new session icons (Fixes #332)
- add-items: Drop not-so-helpful dialog subtitle
- add-items: Bump default dialog size (Fixes #258)
- launcher: Appear "checked" on click (Fixes #256)
- tasklist: Limit blinking notification
- intellihide: Check if cursor is over the panel (Fixes #311)
- launcher: Set plugin icon as fallback (Fixes #329)
- Add new README.md
- Fixed icon for about dialog and added more icons for better scaling
- Unref datetime objects
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian (Armenia), Basque, Belarusian,
  Bengali, Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong),
  Chinese (Taiwan), Croatian, Czech, Danish, Dutch, Eastern Armenian,
  English (Australia), English (United Kingdom), Estonian, Finnish,
  French, Galician, Georgian, German, Greek, Hebrew, Hungarian,
  Icelandic, Indonesian, Interlingue, Italian, Japanese, Kazakh, Korean,
  Lithuanian, Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan (post
  1500), Panjabi (Punjabi), Polish, Portuguese, Portuguese (Brazil),
  Romanian, Russian, Serbian, Sinhala, Slovak, Slovenian, Spanish,
  Swedish, Thai, Turkish, Ukrainian, Uyghur, Vietnamese

4.15.4
======
- New plugin: statustray (supports statusnotifier and systray)
- plugins: Add new rDNS icons for all plugins
- Use shared field codes expansion
- tasklist: Add "Launch New Instance" item to menu (Fixes #158)
- Translation Updates:
  Albanian, Chinese (China), Chinese (Taiwan), Croatian, Estonian,
  French, Hebrew, Japanese, Kazakh, Korean, Lithuanian, Norwegian
  Bokmål, Polish, Portuguese, Portuguese (Brazil), Serbian, Swedish,
  Turkish

4.15.3
======
- Add new app icon and rDNS icon name
- Fix background of 48px app icons (Bug #16873)
- dark-mode: Make property unique across panels
- tasklist: Allow keyboard navigation within groups (Fixes #270)
- applicationsmenu: Correctly block autohiding (Fixes #287)
- action buttons: Fix combobox signal
- action buttons: Drop 'inverted buttons' setting (#223)
- action buttons: Add button title options (Bug #8980)
- action buttons: Fix separator width (Bug #15558)
- launcher: Fix launcher menu button state (Fixes #264)
- launcher: Fix crash with actions menu (Bug #16823)
- launcher: Fix in default panel configuration
- Improve docs for xfce_panel_plugin_position_widget (Bug #9438)
- Add Gio to libxfce4panel gir includes
- Add basic GitLab pipeline
- Fix whitespace error
- Fix panel build with vala 0.48 (Bug #16426)
- Fix build
- Update gitignore (Fixes #295)
- Drop references to Gtk2 and 4.6 panel plugins
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian (Armenia), Belarusian, Bengali,
  Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong), Chinese
  (Taiwan), Croatian, Czech, Danish, Dutch, Eastern Armenian, English
  (Australia), English (United Kingdom), Estonian, Finnish, French,
  Galician, Georgian, German, Greek, Hebrew, Hungarian, Icelandic,
  Indonesian, Interlingue, Italian, Japanese, Kazakh, Korean, Lithuanian,
  Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan (post 1500),
  Panjabi (Punjabi), Polish, Portuguese, Portuguese (Brazil), Romanian,
  Russian, Sinhala, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Uighur, Ukrainian, Vietnamese

4.15.2
======
- panel: Improve autohide animation
- panel: Add "popdown-speed" property to adjust autohide animation
- panel: Fix autohide state machine
- panel: Fix cancellation of autohide animation
- panel: Immediately show panel in intellihide
- panel: Don't tamper with leave_opacity value (Bug #16296)
- launcher: Show desktop actions in context menu
- plugin: Show custom menu items below plugin name
- tasklist: Hide brackets for min windows by default
- tasklist: Fix crash middle-click-closing grouped windows (Bug #16410)
- systray: Basic support for symbolic icons
- systray: Silence deprecation warnings
- systray: Remove superfluous warning
- Improve wording in "Remove plugin" dialog (Bug #9000)
- settings: Add keywords for discoverability (Bug #10694)
- Fix GTimeVal deprecation (Bug #16643)
- Fix memory leak in panel plugin wrapper (Bug #16640)
- Update docstring
- Update libxfce4panel symbols
- Make var names more consistent
- Fix cast
- Fix typo
- Fix indentation
- Translation Updates:
  Albanian, Basque, Belarusian, Bulgarian, Catalan, Chinese (China),
  Chinese (Taiwan), Croatian, Danish, Dutch, Finnish, French, Galician,
  Georgian, German, Hebrew, Hungarian, Italian, Japanese, Kazakh,
  Lithuanian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese
  (Brazil), Russian, Serbian, Slovenian, Spanish, Turkish, Ukrainian

4.15.1
======
- Enable dark-mode by default
- tic-tac-toe: Fix XfceTitledDialog with CSD
- add-item dialog: Fix XfceTitledDialog with CSD
- systray: Improve app icon lookup
- directorymenu: Add create folder/document menuitems (Bug #15639)
- directorymenu: Add option to hide folder/terminal menuitems (Bug
#15630)
- plugins: Fix enter/leave opacity w/o compositing (Bug #14577)
- clock: Drop leading zeros for days in default layout
- clock: Add back hour:min to format presets (Bug #16035)
- panel: Make sure "span monitors" is conditionally sensitive
- tasklist: Fix drag&drop in deskbar mode (Bug #16298)
- Fix autohide with bg color or image (Bug #16064)
- Improve the marching ants animation
- Remove extra underscore (Bug #16266)
- Use an empty placeholder icon for launcher (Bug #15819)
- Always provide files for vala binding in dist tarball
- Replace GtkStock icon
- Use symbolic window-close button image
- Fix doc typos
- Fix indentation
- Translation Updates:
  Albanian, Basque, Bulgarian, Catalan, Chinese (China), Chinese
  (Taiwan), Croatian, Czech, Danish, Dutch, English (United Kingdom),
  Finnish, French, Galician, Georgian, German, Greek, Hungarian,
  Interlingue, Italian, Japanese, Lithuanian, Norwegian Bokmål, Polish,
  Portuguese, Portuguese (Brazil), Russian, Serbian, Slovak, Slovenian,
  Spanish, Swedish, Turkish

4.15.0
======
 - Drop support for Gtk2 and 4.6 plugins
 - Drop Gtk2/4.6-only references from the docs
 - Don't show or try to load Gtk2 plugins anymore
 - Add dark mode preference
 - autohide: Add sliding out animation
 - Draw panel border based on position and length
 - appmenu: Listen to icon theme changes (Bug #15861)
 - appmenu: Use panel's icon size
 - clock: Validate timezone entry (Bug #16036)
 - prefs: Plug memory leaks (Bug #16016)
 - docs: Fix build by dropping unused refs (Bug #16031)
 - pager: Fix scrolling in pager-buttons (Bug #15614)
 - pager: Face-lift of settings dialog
 - pager: Only show scroll-option with buttons
 - pager: Add option to show workspace number
 - systray: Drop "Show frame" option (Bug #14186)
 - tasklist: Resize when windows get removed (Bug #14394)
 - systray: Fix icons without compositing (Bug #14577)
 - windowlist: Make layout consistent with xfdesktop
 - windowlist: Replace deprecated gtk_widget_modify_font
 - launcher: Fix visual state of arrow-button (Bug #15818)
 - launcher: Avoid excessive left padding on popup menu (Bug #15819)
 - Fix typos and improve code formatting
 - Translation Updates:
   Albanian, Arabic, Armenian (Armenia), Belarusian, Bulgarian, Chinese
   (China), Chinese (Taiwan), Croatian, Danish, Dutch, French, Galician,
   German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese,
   Lithuanian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese
   (Brazil), Russian, Serbian, Slovak, Spanish, Swedish, Thai, Turkish
jperkin pushed a commit that referenced this issue Jan 18, 2022
ChangeLog:

2022-01-04 1.5

- NEW: replace asserts with human errors (#162)
- NEW: zsh completion (#158)
- FIX: stdin filter on Windows (#
- FIX: several cleanups
- NEW: Meson build
- UPD: snap to newer base (#149)
- NEW: option to deduplicate keys (#143, #145)
- NEW: Filter functionality (#141)
- FIX: file embedding
- FIX: add missing tests to Makefile.am
jperkin pushed a commit that referenced this issue Jun 6, 2022
Change log:

0.5.9 (2022-04-01)
=====
- New Features:
  - Add shortcuts plugin (#70, !121)
    Depends on Libxfce4ui 4.17.5 which is a dev version, so will be excluded
    at configure time on most systems until Xfce 4.18 is released.
  - Add search history (!119)
  - File monitoring: Add an automatic reloading option

- Appearance Changes / Minor Improvements:
  - Move the document modification mark to the close button (#63, !122)
  - Add mousepad styleclass for easier theming (#33)
  - Hide search bar by pressing Esc key even when not focused
  - Search: Escape selection when regex search is enabled

- Code Refactoring:
  - Plugins: Add a skeleton plugin to ease writing of new plugins

- Bug Fixes:
  - Test plugin: Sanitize memory management of sources
  - Honor GTK_CSD
  - Filter entries from `accels.scm` on non-detailed action name
  - i18n: Check for `bind_textdomain_codeset()`
  - Update Copying (#160, !120)
  - Session history: Never clear session array on exit (#162)
  - Fix broken feature "Show menubar temporarily when hidden"
  - Force encoding when reloading
  - Force encoding when it has been explicitly set by the user
  - Do not consider encoding as always user-set in the "Open" dialog
  - Fix antonym of the word "indent" in preferences dialog (!118)
  - File monitoring: Try to filter out fake deletions
  - Add ellipsis to preferences menu entry (!117)
  - Switch all labels to title case in prefs dialog (!116)
  - Correctly restore font size after zooming when using system font (#158)
  - Printing: Enable line wrapping by default (#156)
  - Fix a warning from GCC static analyzer
  - Search: Do not delay the search when the text changes

- Translation Updates:
  Albanian, Arabic, Armenian (Armenia), Basque, Belarusian, Bulgarian,
  Catalan, Chinese (China), Chinese (Taiwan), Croatian, Czech, Danish,
  Dutch, Eastern Armenian, English (Australia), English (United
  Kingdom), Estonian, Finnish, French, Galician, German, Greek, Hebrew,
  Hungarian, Icelandic, Indonesian, Interlingue, Italian, Japanese,
  Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmål, Occitan (post
  1500), Persian (Iran), Polish, Portuguese, Portuguese (Brazil),
  Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish,
  Thai, Turkish, Ukrainian, Uyghur
jperkin pushed a commit that referenced this issue Aug 30, 2022
0.6.0 - 2022-08-19
Added
 -Added support for tracing using IPv6 for tcp (#191)
 -Added -R (--multipath-strategy) flag to allow setting the Equal Cost
  Multi-path Routing strategy and added support for the dublin traceroute
  strategies for IPv4/udp (#158)
 -Added zoom-able chart showing round trip times for all hops in a trace (#209)
 -Added --udp and --tcp flags as shortcuts to -p udp and -p tcp respectively
  (#205)

Changed
 -Gray out hops which did not update in the current round (#216)
@jperkin
Copy link
Collaborator

jperkin commented Oct 25, 2022

I pushed changes to pkg_install a few years ago that resolved this issue.

@jperkin jperkin closed this as completed Oct 25, 2022
jperkin pushed a commit that referenced this issue Dec 18, 2022
# lintr 3.0.2

* Fix test to avoid leaving behind cache files in the global cache directory.

# lintr 3.0.1

* Skip multi-byte tests in non UTF-8 locales (#1504)

* `modify_defaults()` no longer uses the mistaken `"lintr_function"` S3 class, instead applying the
  `"linter"` class also common to `Linter()`. `Linter()` also includes `"function"` in the S3
  class of its output to facilitate S3 dispatch to `function` methods where appropriate (#1392, @MichaelChirico).

## Changes to defaults

* `brace_linter()` allows opening curly braces on a new line when there is
  a comment ending the preceding line (#1433 and #1434, @IndrajeetPatil).

* `seq_linter()` produces lint for `seq(...)`, since it also cannot properly
  handle empty edge cases (#1468, @IndrajeetPatil).

* `seq_linter()` additionally lints on `1:n()` (from {dplyr})
  and `1:.N` (from {data.table}) (#1396, @IndrajeetPatil).

* `literal_coercion_linter()` lints {rlang}'s atomic vector constructors
  (i.e., `int()`, `chr()`, `lgl()`, and `dbl()`) if the argument is a scalar
  (#1437, @IndrajeetPatil).

* `redundant_ifelse_linter()`'s lint message correctly suggests negation when
  the `yes` condition is `0` (#1432, @IndrajeetPatil).

* `seq_linter()` provides more specific replacement code in lint message
  (#1475, @IndrajeetPatil).

## New and improved features

* `unreachable_code_linter()` ignores trailing comments if they match a closing nolint block (#1347, @AshesITR).

* New `function_argument_linter()` to enforce that arguments with defaults appear last in function declarations,
  see the [Tidyverse design guide](https://design.tidyverse.org/args-data-details.html) (#450, @AshesITR).

* New `allow_trailing` argument added to `assignment_linter()` to check when assignment operators are at the
  end of a line, and the value is on the following line (#1491, @ashbaldry)

## New features

* `commented_code_linter()` now lints commented argument code, containing a trailing comma, as well (#386, @AshesITR).
  For example a comment containing `#  na.rm = TRUE,` now triggers a lint.

## Bug fixes

* `object_length_linter()` does not fail in case there are dependencies with no exports (e.g. data-only packages) (#1509, @IndrajeetPatil).
* `get_source_expressions()` no longer fails on R files that match a knitr pattern (#743, #879, #1406, @AshesITR).
* Parse error lints now appear with the linter name `"error"` instead of `NA` (#1405, @AshesITR).
  Also, linting no longer runs if the `source_expressions` contain invalid string data that would cause error messages
  in other linters.
* Prevent `lint()` from hanging on Rmd files with some syntax errors (#1443, @MichaelChirico).
* `get_source_expressions()` no longer omits trailing non-code lines from knitr files (#1400, #1415, @AshesITR).
  This fixes the location information for `trailing_blank_lines_linter()` in RMarkdown documents without terminal
  newlines.
* The `vignette("lintr")` incorrectly cited `exclude` as the key for setting file exclusions in `.lintr` when it is
  actually `exclusions`. (#1401, @AshesITR)
* Fixed file exclusion detection in `lint_dir()` so it no longer errors if there are multiple exclusions or no global
  exclusions configured for a single file (#1413, #1442, @AshesITR).

## Other changes

* The minimum needed version for soft dependency `{withr}` has been bumped to `2.5.0`
  (#1404, @IndrajeetPatil).
* Changed the deprecation warning for `with_defaults()` to also mention `modify_defaults()` (#1438, @AshesITR).

# lintr 3.0.0

## Breaking changes

* All linters are now function factories (i.e., functions that return functions) for consistency. Previously, only
  linters with customizable parameters were factories (#245, @fangly, @AshesITR, and @MichaelChirico).

  This means that usage such as `lint("file.R", seq_linter)` should be updated to `lint("file.R", seq_linter())`, and
  the following update for custom linters:

  ```r
  my_custom_linter <- function(source_expression) { ... }

  # becomes
  my_custom_linter <- function() Linter(function(source_expression) { ... })
  ```
* Exclusions specified in the `.lintr` file are now relative to the location of that file
  and support excluding entire directories (#158, #438, @AshesITR).
* Removed long-deprecated linters (they've been marked as deprecated since v1.0.1 in 2017):
   + `absolute_paths_linter()`
   + `camel_case_linter()`
   + `multiple_dots_linter()`
   + `snake_case_linter()`
   + `trailing_semicolons_linter()`
* Removed `return()` from `all_undesirable_functions` because early returns (which often improve
  readability and reduce code complexity) require explicit use of `return()`. Follow #1100 for
  an upcoming `return_linter()` to lint unnecessary `return()` statements (#1146, @AshesITR).

  Note that you can replicate old behavior by supplying `return` as a custom undesirable function:
  `undesirable_function_linter(c(all_undesirable_functions, list(return = NA)))`

## Deprecations

* Lints are now marked with the name of the `linter` that caused them instead of the name of their implementation
  function. Deprecated the obsolete `linter` argument of `Lint()` (#664, #673, #746, @AshesITR). Downstream custom
  linters should follow suit.
* Renamed `semicolon_terminator_linter()` to `semicolon_linter()` for better consistency.
  `semicolon_terminator_linter()` survives but is marked for deprecation. The new linter also has a new signature,
  taking arguments `allow_compound` and `allow_trailing` to replace the old single argument `semicolon`, again for
  signature consistency with other linters.
* The following linters were subsumed into `brace_linter()` and are now deprecated; see the item on `brace_linter()`
  below:
   + `closed_curly_linter()`
   + `open_curly_linter()`
   + `paren_brace_linter()`
* The `...` argument for `lint()`, `lint_dir()`, and `lint_package()` has been promoted to an earlier position to
  better match the [Tidyverse design principle](https://design.tidyverse.org/args-data-details.html) of
  data->descriptor->details. This change enables passing objects to `...` without needing to specify non-required
  arguments, e.g. `lint_dir("/path/to/dir", linter())` now works without the need to specify `relative_path`.
  This affects some code that uses positional arguments (#935, @MichaelChirico).
   + For `lint()`, `...` is now the 3rd argument, where earlier this was `cache`.
   + For `lint_dir()` and `lint_package()`, `...` is now the 2nd argument, where earlier this was `relative_path`.
* Deprecated argument `source_file` to exported functions `with_id()` and `ids_with_token()`. It has been renamed to
  `source_expression` to better reflect that this argument is typically the output of `get_source_expressions()`.
  For now, the old argument `source_file` can still be used (with warning). The now-private functional versions of many
  linters also underwent the same renaming (`source_file` -> `source_expression`). This has no direct effect on
  packages importing lintr, but is mentioned in case custom linters imitating `lintr` style had also adopted the
  `source_file` naming and want to adapt to keep in sync.
* Deprecated `with_defaults()` in favor of `linters_with_defaults()`, and add `modify_defaults()` which is intended to
  be used more generally to modify (i.e., extend, trim, and/or update) a list of defaults. Note that the argument
  corresponding to `with_defaults()`'s `default=` is called `defaults=` (i.e., pluralized) in both of these, and that
  usage like `with_defaults(default = NULL, ...)` should be converted to `linters_with_defaults(defaults = list(), ...)`
  (#1029, #1336, #1361, @AshesITR and @MichaelChirico).
* Deprecated the `find_line()` and `find_column()` helpers from the item-level `expressions` returned with
  `get_source_expressions()`. These helpers were typically associated with regex-based logic for building linters,
  which is rarely needed and prone to false positives; now that lintr almost exclusively uses XPath-based
  logic for linters, these are no longer necessary (#1373, @MichaelChirico).

## Other changes to defaults

### Updates to `default_linters`

* New `brace_linter()` which combines several curly brace related linters, deprecating the following predecessors
  (#1041, @AshesITR):
   + `closed_curly_linter()`; both now also allow `}]` in addition to `})` and `},` as exceptions, i.e., `}` doesn't
     need to be on its own line if paired with a closing square bracket, a closing parenthesis, or a comma. Also
     improved lint metadata so that source markers land at the closing brace instead of the closing parenthesis to
     improve the experience of fixing the lint (#583, @AshesITR).
   + `open_curly_linter()`; both also no longer lint unnecessary trailing whitespace (use `trailing_whitespace_linter()`
     for this) and also allow `(`, `,`, and `%>%` on preceding lines as exceptions, i.e., `{` can be alone on a line if
     the previous line is terminated with an opening parenthesis, a comma, or a pipe (`%>%`) (#487, #1028, @AshesITR).
   + `paren_brace_linter()`; `brace_linter()` also lints `if`/`else` and `repeat` with missing whitespace.
   + `brace_linter()` also newly enforces the following rules surrounding curly braces (originally Google linters, see
     below):
      - Require `else` to come on the same line as the preceding `}`, if present (#884, @MichaelChirico).
      - Require functions spanning multiple lines to use curly braces (#987, @MichaelChirico).
      - Require balanced usage of `{}` in `if`/`else` conditions, i.e., if the `if` branch uses braces,
       then so must the `else` branch, and _vice versa_ (#983, @MichaelChirico).
* New `paren_body_linter()` checks that there is a space between a right parenthesis and a body expression (#809,
  @kpagacz).
* Added `semicolon_linter()` as a default because it enforces a tidyverse style guide rule (#683, @AshesITR).
* `assignment_linter()` (#915, @MichaelChirico):
  + Right assignments are now linted by default (`->` and `->>`).
  + New argument `allow_cascading_assign` (`TRUE` by default) toggles whether to lint `<<-` and `->>`.
  + New argument `allow_right_assign` (`FALSE` by default) toggles whether to lint `->` and `->>`.
* `commented_code_linter()`: use the parse tree to find comments, eliminating some false positives (#451, @AshesITR).
* `equals_na_linter()` (#545, @MichaelChirico):
   + Extended to lint `x != NA` (before, only `==` was caught) and `NA == x` (before, only `NA` on RHS was caught).
   + Extended to skip usages in comments like `is.na(x) # use is.na(x), not x == NA`.
* `function_left_parentheses_linter()`: improved location information (#1266, #1267, @AshesITR).
* `infix_spaces_linter()`:
   + Added argument `allow_multiple_spaces` (`TRUE` by default) which toggles
     whether to generate a lint for operators used with multiple spaces, e.g. `x   +   2`.
     The default setting allows extra spacing to be used to increase
     line-to-line alignment (#940, @f-ritter and @MichaelChirico).
   + Extended so that usages like `a~b` and `function(a=1) { ... }` are linted (#930, #michaelchirico).
   + Added argument `exclude_operators` to disable lints on selected infix operators.
     By default, all "low-precedence" operators throw lints; see `?infix_spaces_linter` for an enumeration of these.
     (#914, @MichaelChirico).
   + Add an exception for `/` usage in `box::use()` declarations (#1087, @klmr).
* `line_length_linter()`: place the source marker at the margin of the affected line to improve user experience
  during de-linting -- just press <kbd>Return</kbd> (#735, @AshesITR).*
* `no_tab_linter()`: use more reliable matching (e.g., excluding matches found in comments; #441, @russHyde).
* `object_length_linter()`: correctly detect generics and only count the implementation class towards the length.
  This prevents false positive lints in the case of long generic names, e.g.
  `very_very_very_long_generic_name.short_class` no longer produces a lint (#871, @AshesITR).
* `object_name_linter()`:
   + Improved generic detection -- in user-defined method `my_method.upstream.class`,
     `upstream.class` no longer throws a lint because the generic (`my_method`)
     properly uses `snake_case` (#737, @AshesITR).
   + Exclude special R namespace hook functions such as `.onLoad()` (#500, #614, @AshesITR and @MichaelChirico).
   + Correctly detect imported functions when linting packages (#642, @AshesITR).
   + Correctly detect assignment generics like `names<-.class_name` (#843, @jonkeane).
   + Added new styles `"symbols"` and `"SNAKE_CASE"` (#494, #495, #615, #670, @MichaelChirico and @AshesITR).
      - `"symbols"` is a new default style which won't lint all-symbol object names. In particular, that means
        operator names like `%+%` are allowed.
   + No longer lints names used in `$` extractions (#582, @AshesITR).
* `object_usage_linter()`:
   + Detect global variables if there are top-level dollar-assignments (#666, @AshesITR).
   + Report usage warnings spanning multiple lines (#507, @AshesITR).
   + Detect usages inside `glue::glue()` constructs (#942, @AshesITR).
   + Extended to include functions assigned with `=` instead of `<-` (#1081, @MichaelChirico).
   + Detect functions exported by packages that are explicitly attached using `library()` or
     `require()` calls (#1127, @AshesITR).
   + Improved location information in some cases where the previous regex-based approach didn't work, e.g. unicode
     characters in variable names (#1285, @AshesITR).
   + Correctly detect functions declared within `assign()` and `setMethod()` (#1322, @AshesITR).
* `spaces_inside_linter()`: ignore spaces preceding trailing comments (#636, @MichaelChirico).
* `T_and_F_symbol_linter()`:
   + Added as a default because it enforces a tidyverse style guide rule (#517, @AshesITR).
   + No longer lint occurrences of `T` and `F` when used for subsetting, and give a better
     message when used as variable names (#657, @AshesITR).
* `trailing_blank_lines_linter()`:
   + Extended to lint files without a terminal newline (#675, @AshesITR).
   + Also, running `lint()` on a file without a terminal newline no longer throws a `warning()`.
* `trailing_whitespace_linter()`:
   + Extended to also lint completely blank lines by default (#1044, @AshesITR).
   + Added argument `allow_empty_lines` (`FALSE` by default) to toggle this behavior.
   + Improved so that trailing whitespace inside string literals does not trigger a lint (#1045, @AshesITR).
   + Added argument `allow_in_strings` (`TRUE` by default) to toggle this behavior.
* `undesirable_function_linter()`:
   + Added new functions to `default_undesirable_functions` related to debugging (#876, @MichaelChirico):
      - `browser()`
      - `debug()`
      - `debugcall()`
      - `debugonce()`
      - `trace()`
      - `untrace()`
   + No longer lints `library()` and `require()` calls attaching a package with an undesired name,
     e.g. `library(foo)` (#814, @kpagacz and @MichaelChirico).
   + No longer lints undesirable symbols if they are used as names in `$` extractions (#1050, @AshesITR).
   + Added more explanation why certain functions might be undesirable and what alternatives to use;
     ditto for `undesirable_operator_linter()` (#1133, #1146, #1159, @AshesITR).

### Other noteworthy changes

* `cyclocomp_linter()`: set the default `complexity_limit` to 15. This brings the default into sync with what
  is enforced via `default_linters` (#693, @AshesITR).
* `lint_package()` now lints files in the `demo` directory by default (#703, @dmurdoch).
* Moved the default lintr cache directory from `~/.R/lintr_cache` (which was a violation of
  CRAN policy) to `R_user_dir("lintr", "cache")`. Note that 3.0.0 is a major version update and invalidates
  the old cache anyway, so it can be safely deleted (#1062, @AshesITR).

## New and improved features

### New linters

* `backport_linter()` for detecting mismatched R version dependencies (#506, #1316, #1318, #1319, @MichaelChirico and
  @AshesITR).
* `duplicate_argument_linter()` similarly checks that there are no duplicate arguments supplied to function calls (#850,
  @renkun-ken).
* `missing_argument_linter()` to check for empty (missing) arguments in function calls (#563, #1152, @renkun-ken and
  @AshesITR).
* `missing_package_linter()` to check if packages in calls to `library()` and friends
  are missing (#536, #1037, @renkun-ken and @MichaelChirico).
* `namespace_linter()` to check for common mistakes in `pkg::symbol` usages (#548, @renkun-ken).
* `package_hooks_linter()` to run a series of checks also done by `R CMD check` on the `.onLoad()`, `.onAttach()`,
  `.Last.lib()` and `.onDetach()` hooks (#882, @MichaelChirico).
* `pipe_call_linter()` to enforce that all steps of `magrittr` pipelines use explicit calls instead of symbols,
  e.g. `x %>% mean()` instead of `x %>% mean` (#801, @MichaelChirico).
* `sprintf_linter()` to check for common mistakes in `sprintf()` usage (#544, #624, @renkun-ken and @AshesITR).
* `unused_import_linter()` to detect unnecessary `library()` calls in R scripts (#239, @jimhester, @AshesITR).

#### Google linters

Google is a heavy user of lintr internally, and has developed a large set of linters improving code consistency
and correcting common R usage mistakes. This release includes many of these linters that are
of general interest to the broader R community. More will be included in future releases. See, e.g.
#884, #979, #998, #1011, #1016, #1036, #1051, #1066, and #1067; special thanks to @MichaelChirico and @michaelquinn32.

* `any_duplicated_linter()` Require usage of `anyDuplicated(x) > 0L` over `any(duplicated(x))` and similar.
* `any_is_na_linter()` Require usage of `anyNA(x)` over `any(is.na(x))`.
* `class_equals_linter()` Prevent comparing `class(x)` with `==`, `!=`, or `%in%`, where `inherits()` is typically
  preferred.
* `condition_message_linter()` Prevent condition messages from being constructed like `stop(paste(...))`
  (where just `stop(...)` is preferable).
* `conjunct_test_linter()` Require usage of `expect_true(x); expect_true(y)` over `expect_true(x && y)` and similar.
* `consecutive_stopifnot_linter()` Require consecutive calls to `stopifnot()` to be unified into one.
* `expect_comparison_linter()` Require usage of `expect_gt(x, y)` over `expect_true(x > y)` and similar.
* `expect_identical_linter()` Require usage of `expect_identical()` by default, and `expect_equal()` only by exception.
* `expect_length_linter()` Require usage of `expect_length(x, n)` over `expect_equal(length(x), n)` and similar.
* `expect_named_linter()` Require usage of `expect_named(x, n)` over `expect_equal(names(x), n)` and similar.
* `expect_not_linter()` Require usage of `expect_false(x)` over `expect_true(!x)`, and _vice versa_.
* `expect_null_linter()` Require usage of `expect_null(x)` over `expect_equal(x, NULL)` and similar.
* `expect_s3_class_linter()` Require usage of `expect_s3_class(x, k)` over `expect_equal(class(x), k)` and similar.
* `expect_s4_class_linter()` Require usage of `expect_s4_class(x, k)` over `expect_true(methods::is(x, k))`.
* `expect_true_false_linter()` Require usage of `expect_true(x)` over `expect_equal(x, TRUE)` and similar.
* `expect_type_linter()` Require usage of `expect_type(x, t)` over `expect_equal(typeof(x), t)` and similar.
* `fixed_regex_linter()` Require `fixed = TRUE` or `stringr::fixed()` for regular expressions that can be
  expressed statically, e.g. `strsplit(x, "[.]")` can be `strsplit(x, ".", fixed = TRUE)`.
   + Added parameter `allow_grepl` (default `FALSE`) to toggle whether `grepl()` usages should be linted.
     These might be treated separately because `grepl("^x", NA)` is `FALSE`; the `startsWith()` equivalent to
     get `FALSE` for missing input is clunkier, but more explicit: `!is.na(x) & startsWith(x, string)` (#1376, @MichaelChirico).
* `ifelse_censor_linter()` Require usage of `pmax()` / `pmin()` where appropriate, e.g. `ifelse(x > y, x, y)` is
  `pmax(x, y)`.
* `inner_combine_linter()` Require inputs to known-vectorized functions to be combined first rather than later,
  e.g. `as.Date(c(x, y))` over `c(as.Date(x), as.Date(y))`.
* `literal_coercion_linter()` Require using correctly-typed literals instead of direct coercion, e.g. `1L` instead of
  `as.numeric(1)`.
* `nested_ifelse_linter()` Prevent nested calls to `ifelse()` like `ifelse(A, x, ifelse(B, y, z))`, and similar.
* `numeric_leading_zero_linter()` Require a leading `0` in fractional numeric constants, e.g. `0.1` instead of `.1`.
* `outer_negation_linter()` Require usage of `!any(x)` over `all(!x)` and `!all(x)` over `any(!x)`.
* `paste_linter()` lint for common mis-use of `paste()` and `paste0()`:
   + `paste0()` encouraged instead of `paste(sep = "")`.
   + `toString()` or `glue::glue_collapse()` encouraged instead of `paste(x, collapse = ", ")`.
   + Lint `sep=` passed to `paste0()` -- typically a mistake.
* `redundant_ifelse_linter()` Prevent usage like `ifelse(A & B, TRUE, FALSE)` or `ifelse(C, 0, 1)`
  (the latter is `as.numeric(!C)`).
* `regex_subset_linter()` Require usage of `grep(ptn, x, value = TRUE)` over `x[grep(ptn, x)]` and similar.
* `string_boundary_linter()` Require usage of `startsWith(x, ptn)` over `grepl("^ptn", x)` or `substr(x, 1, 3) == ptn`
  and similar.
* `strings_as_factors_linter()` Check for code designed to work before and after the `stringsAsFactors = FALSE` default
  change in R 4.0 by examining code for `data.frame()` usages susceptible to assumptions about the default value
  of `stringsAsFactors=`.
* `system_file_linter()` Prevent usage like `file.path(system.file("A", package = "pkg"), "B")` where simply
  `system.file("A", "B", package = "pkg")` is more concise and readable.
* `unreachable_code_linter()` Prevent code after `return()` and `stop()` statements that will never be reached
  (extended for #1051 thanks to early user testing, thanks @bersbersbers!).
* `vector_logic_linter()` Require use of scalar logical operators (`&&` and `||`) inside `if()` conditions and similar.
* `yoda_test_linter()` Require usage of `expect_identical(x, 1L)` over `expect_equal(1L, x)` and similar.

### Other features and improvements

* **Documentation**: Reorganize linter documentation into new tag-based Rd pages (#888, #1015, @AshesITR).
   + Each linter has its own help page.
   + `?linters` also links to tag help pages, collecting linters with a similar goal.
   + Each linter can have multiple tags.
   + `available_linters()`: new function to list available linters and their tags.
     This feature is extensible by package authors providing add-on linters for {lintr}.
   + `available_tags()`: new function to list available tags.
   + `linters_with_tags()`: new function to help build a list of linters using tags.
* **Encodings**: lintr now supports non-system character Encodings. The correct the correct encoding
  is auto-detected from .Rproj or DESCRIPTION files in your project.
  Override the default in the `encoding` setting of lintr (#752, #782, @AshesITR).
* **Jenkins CI**: Support for writing comments to GitHub repo when running in Jenkins CI (#488, @fdlk).
* **Performance**: Optimized performance-critical functions in lintr, such as `get_source_expressions()` resulting in
  about 2x speedup in our test suite and even more for complex files (#1169, #1197, #1200, #1201, #1214, @MichaelChirico
  and @AshesITR). Average `lint_package()` execution time is down about 30% and the median package sees about 40%
  improvement.
* **Raw strings**: Several linters tightened internal logic to allow for raw strings like `R"( a\string )"`
  (#1034, #1285, @MichaelChirico and @AshesITR).
* **Selective exclusion syntax**: New syntax to exclude only selected linters from certain lines or passages.
  Use `# nolint: linter_name, linter2_name.` or `# nolint start: linter_name, linter2_name.`
  in source files or named lists of line numbers in `.lintr`. Note the terminal `.` is required.
  Also allows for partial matching as long as the supplied prefix is unique, e.g.
  `# nolint: infix_spaces.` works to exclude `infix_spaces_linter` (#605, #872, @AshesITR).
   + Added the linter name to lintrs output to facilitate discovery of the correct name (#1357, @AshesITR).
* Improved S3 generic detection for non-standard S3 generics where `UseMethod()` is called after several
  preceding expressions (#846, @jonkeane).
* New `sarif_output()` function to output lints to SARIF output (#1424, @shaopeng-gh)
* `extraction_operator_linter()`: no longer lint `x[NULL]` (#1273, @AshesITR).
* `is_lint_level()`: new exported helper for readably explaining which type of expression is required for a custom
  linter. Some linters are written to require the full file's parse tree (for example, `single_quotes_linter()`).
  Others only need single expressions, which is more cache-friendly (most linters are written this way to leverage
  caching) (#921, @MichaelChirico).
* `lint_dir()` excludes the `renv` and `packrat` directories by default (#697, @AshesITR).
* `lint()`: new optional argument `text` for supplying a line or lines directly, e.g. if the file is already
  in memory or linting is being done _ad hoc_ (#503, @renkun-ken).
* `seq_linter()`: improve lint message to be clearer about the reason for linting (#522, @MichaelChirico).
* `unneeded_concatenation_linter()`:
   + Correctly considers arguments in pipelines (`%>%` or `|>`; #573, #1270, @michaelquinn32 and @AshesITR).
   + New argument `allow_single_expression`, default `TRUE`, toggling whether `c(x)` should be linted, i.e.,
     a call to `c()` with only one entry which is not a constant. In some such cases, `c()` can simply be dropped,
     e.g. `c(a:b)`; in others, the parentheses are still needed, e.g. `-c(a:b)` should be `-(a:b)`;
     and in still others, `c()` is used for the side-effect of stripping attributes, e.g.
     `c(factor(letters))` or `c(matrix(1:10, 5, 2))`. In this last case, `c()` can (and should) in most cases
     be replaced by `as.vector()` or `as.integer()` for readability. In fact, we suspect it is _always_
     preferable to do so, and may change the default to `allow_single_expression = FALSE` in the future. Please
     report your use case if `as.vector()` does not suit your needs (#1344, @MichaelChirico).
* `use_lintr()`: new exported helper for creating a minimal `.lintr` configuration (#902, @AshesITR).
* `xml_nodes_to_lints()`: new exported helper for converting `xml_node` objects obtained using linter logic
  expressed in XPath into `Lint` objects (#1124, #1216, #1234, @MichaelChirico and @AshesITR).

## Bug fixes

* **RStudio**: Source markers are cleared when there are no lints (#520, @AshesITR).
* Error message for mismatched starts and ends of exclusion ranges is now more helpful.
  (#571, #860, @AshesITR and @danielinteractive).
* Improved location information for R parse errors (#894, #892, @renkun-ken and @AshesITR).
* `get_source_expressions()`:
   + Fix possible error on invalid XML produced by `xmlparsedata::xml_parse_data()` (#559, @renkun-ken).
   + Fix handling zero-length variable name error (#566, @renkun-ken).
   + Malformed Rmd files now cause a lint instead of an error (#571, @AshesITR).
   + No longer fails if `getParseData()` returns a truncated (invalid) Unicode character as parsed text (#815,
     @leogama).
   + Fixes the `text` value for `STR_CONST` nodes involving 1- or 2-width octal escapes
     (e.g. `"\1"`) to account for an R parser bug (https://bugs.r-project.org/show_bug.cgi?id=18323; #1056,
     @MichaelChirico).
   + Handle Rmd inputs containing unevaluated code blocks with named format specifiers (#472, @russHyde).
* `line_length_linter()`: fix a bug causing duplicate lints for lines containing multiple expressions (#681, @AshesITR).
* `lint_package()`:
   + Warns and returns `NULL` if no package is found (instead of giving a peculiar error message; #776,
     @MichaelChirico).
   + Stricter about what is considered to be a package -- folders named `DESCRIPTION` are ignored (#702,
     @MichaelChirico).
* `linters_with_defaults()` (formerly `with_defaults()`):
   + No longer duplicates the `lintr_function` class when it is already present (#511, @AshesITR).
   + Warns if a named argument is `NULL` but its name is not in `defaults` (#1049, @AshesITR).
* `linters_with_defaults()` handles automatic naming of very long arguments correctly (#774, @MichaelChirico).
* `save_cache()` will now recursively create the cache directory; this avoids errors that could arise if any parent
  directories do not exist (#60, @dankessler).
* `spaces_left_parentheses_linter()`: fix a bug causing warnings like "In `parent == parent[before_operator_idx]`
  longer object length is not a multiple of shorter object length" in nested expressions (#654, @AshesITR).

## Internals

* Added a new, more restrictive test workflow - `test-package` - that fails on warnings emitted by tests
  (#1263, #1272, @AshesITR).
* Added a secondary, more restrictive lint workflow - `lint-changed-files` - for newly written / modified code
  (#641, @dragosmg).
* Several optional `Imported` packages have become `Suggested` dependencies: `httr`, `testthat`, and `rstudioapi`.
  This should allow snappier CI builds for usages not relying on some more "peripheral" features of the package.
* Special thanks to @bersbersbers for early testing on the 3.0.0 changes.
* Switched CI from Travis to GitHub Actions, using the full tidyverse recommended `R CMD check`. Code coverage and
  linting are implemented using separate GitHub Actions workflows (#572, @dragosmg).
* Updated R CMD GitHub Actions workflow to check for R 3.6 on Ubuntu, instead of R 3.3, and for R 4.0 on Windows,
  instead of R 3.6 (#803, @ dragosmg).
* `lintr` now uses the 3rd edition of `testthat` (@MichaelChirico, @AshesITR, #910, #967).
jperkin pushed a commit that referenced this issue 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 issue Feb 21, 2023
v0.6.4 (Fri Feb 17 2023)
Bug Fixes
 - Fix disambiguations not being shown [#160]
 - Fix whitespace at the top of some articles [#159]
 - Fix no redirect messages being shown [#158]
 - Add changelog and use auto for creating releases [#156]

v0.6.3 (Thu Feb 16 2023)
Bug Fixes
 - Fix wrong error origin in dialogs [#155]
 - Fix incorrect error message formatting when opening links [#154]
 - Fix missing whitespace on list items starting with a special character [#153]
 - Fix html tags in toc [#152]
 - Fix large gaps before and after lists [#151]
jperkin pushed a commit that referenced this issue 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 issue May 21, 2023
[1.2.0] - 2023-05-18
 - Introduced host-based analysis: instead of just showing IP addresses, now
   host names and network providers are available for a quicker and more
   meaningful traffic interpretation
    - Added rDNS (reverse DNS) lookups to find out network host names
    - Added ASN (Autonomous System name and number) lookups to find out the
      entity managing a given IP address (fixes #62)
 - Individual connections identified by IP addresses remain available and can
   now be filtered and further inspected through a simple click
 - Support for identification of addresses in the local network
 - Support for data link layer MAC addresses
 - Full support for broadcast traffic recognition (added directed broadcast
   identification)
 - Added dropped packets number (fixes #135)
 - Changed favorites management: instead of referring to single IP addresses,
   favorites are now related to network hosts
 - Added Greek translation 🇬🇷 (#160)
 - Added Persian translation 🇮🇷 (#158)
 - Do not open terminal window when starting the application on Windows
   (fixes #85)
 - Do not open terminal window when starting the application on macOS
 - Changed macOS application icon to be consistent with standard icons
   dimension (fixes #177)
 - Made available RPM package for Linux and automated packaging process for
   Windows, macOS, and Linux (#180 - fixes #20)
 - Keep the active addresses of the selected network adapter up to date during
   analysis
 - Changed shortcut to interrupt analysis from backspace to ctrl+backspace
 - Images have been replaced with SVGs
 - Added unit tests for chart and started unit tests for gui modules (#132)
 - Fixed problem that let users switch page pressing the tab key even if no
   packets were received
jperkin pushed a commit that referenced this issue Sep 1, 2023
    Minor fixes by @amaanq in #158
    Support for misc features by @amaanq in #161
jperkin pushed a commit that referenced this issue Sep 1, 2023
pkgsrc: patch away libgit2 mismatch for now.

⛰️ Features
    (changelog) [breaking] Add postprocessors (#155) - (5dc5fb7)

🐛 Bug Fixes
    (cd) Do not publish release notes for pre-releases (#249) - (7a82aa1)
    (cd) Disable win32-arm64 PyPI builds - (baf34a8)
    (deps) Avoid problematic serde release - (87f74bc)
    (examples) Add missing newline (#253) - (aad4222)
    (informer) Do not inform about pre-releases (#249) - (87e47e6)
    Fix previous release references - (fbb605e)

🚜 Refactor
    (clippy) Apply clippy suggestions - (4c09759)
    (clippy) Apply clippy suggestions - (a814bbe)
    (config) Use a macro for generating commit list - (c695ca3)
    (docker) Avoid copying volume inside container (#142) - (65d365c)
    (lib) Use implicit serde imports - (c8cf855)

📚 Documentation
    (blog) Add blog post for 1.3.0 release (#264) - (93d4aa4)
    (example) Update the header of configuration examples - (0bf5ebe)
    (example) Add example for generating changelog similar to cocogitto
    - (e1cf26e)
    (readme) Add contributors graph - (3c9ced0)

🎨 Styling
    (config) Further beautify the changelog in this repo - (fd7446c)
    (config) Apply formatting to configuration files - (e9aa991)
    Fix formatting - (14725e5)

🧪 Testing
    (changelog) Add cases for docs: prefix (#167) - (3a717e2)
    (repo) Add an informative error message to failing test - (7d7470b)
    Fix keep a changelog test case - (0a6ed62)
    Fix keep a changelog test case - (f5d3365)

⚙️ Miscellaneous Tasks
    (cargo) Update MSRV to 1.70.0 - (1068912)
    (cd) Use the latest git-cliff-action for releases - (3eb97b8)
    (cd) Support creating prereleases on GitHub - (a22426a)
    (config) Add additional parsers for default config - (b745778)
    (config) Update configuration for alpha/beta/rc releases - (7e7e5a7)
    (config) Skip dependency updates in the changelog - (b2edc23)
    (core) Make git2 optional - (5fdf39a)
    (docker) Update versions in Dockerfile - (0ccab91)
    (github) Add config for welcome bot - (a4725d4)
    (mergify) Rename mergify configuration file - (9fd1be6)
    (mergify) Add configuration file for automatic merge (#245) - (0a79aae)
    (pypi) Publish git-cliff on PyPI (#158) - (2b7a1ef)
    Check without default features - (e323621)
jperkin pushed a commit that referenced this issue 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 issue 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 issue Jan 15, 2024
 - Change User Agent (fixes #158)
 - Discontinue Python 3.7 support (EOL)
jperkin pushed a commit that referenced this issue Feb 20, 2024
pkgsrc changes:
- adapt to various upstream changes
- update for newer version of pjproject
- add unconditional depeendency on SDL
- remove pktccops and mgcp option (has to do with supporting cable headends)
- remove various 64-bit time_t fixes as upstream is finally doing these


                               [asterisk-announce] asterisk release 18.21.0


The Asterisk Development Team would like to announce
the release of asterisk-18.21.0.

This release resolves issues reported by the community
and would have not been possible without your participation.

Thank You!


Change Log for Release asterisk-18.21.0
========================================

Summary:
----------------------------------------

- logger: Fix linking regression.
- Revert "core & res_pjsip: Improve topology change handling."
- menuselect: Use more specific error message.
- res_pjsip_nat: Fix potential use of uninitialized transport details
- app_if: Fix faulty EndIf branching.
- manager.c: Fix regression due to using wrong free function.
- config_options.c: Fix truncation of option descriptions.
- manager.c: Improve clarity of "manager show connected".
- make_xml_documentation: Really collect LOCAL_MOD_SUBDIRS documentation.
- general: Fix broken links.
- MergeApproved.yml:  Remove unneeded concurrency
- app_dial: Add option "j" to preserve initial stream topology of caller
- ast_coredumper: Increase reliability
- logger.c: Move LOG_GROUP documentation to dedicated XML file.
- res_odbc.c: Allow concurrent access to request odbc connections
- res_pjsip_header_funcs.c: Check URI parameter length before copying.
- config.c: Log #exec include failures.
- make_xml_documentation: Properly handle absolute LOCAL_MOD_SUBDIRS.
- app_voicemail.c: Completely resequence mailbox folders.
- sig_analog: Fix channel leak when mwimonitor is enabled.
- res_rtp_asterisk.c: Update for OpenSSL 3+.
- alembic: Update list of TLS methods available on ps_transports.
- func_channel: Expose previously unsettable options.
- app.c: Allow ampersands in playback lists to be escaped.
- uri.c: Simplify ast_uri_make_host_with_port()
- func_curl.c: Remove CURLOPT() plaintext documentation.
- res_http_websocket.c: Set hostname on client for certificate validation.
- live_ast: Add astcachedir to generated asterisk.conf.
- SECURITY.md: Update with correct documentation URL
- func_lock: Add missing see-also refs to documentation.
- app_followme.c: Grab reference on nativeformats before using it
- configs: Improve documentation for bandwidth in iax.conf.
- logger: Add channel-based filtering.
- chan_iax2.c: Don't send unsanitized data to the logger.
- codec_ilbc: Disable system ilbc if version >= 3.0.0
- resource_channels.c: Explicit codec request when creating UnicastRTP.
- doc: Update IP Quality of Service links.
- chan_pjsip: Add PJSIPHangup dialplan app and manager action
- chan_iax2.c: Ensure all IEs are displayed when dumping frame contents.
- chan_dahdi: Warn if nonexistent cadence is requested.
- stasis: Update the snapshot after setting the redirect
- ari: Provide the caller ID RDNIS for the channels
- main/utils: Implement ast_get_tid() for OpenBSD
- res_rtp_asterisk.c: Fix runtime issue with LibreSSL
- app_directory: Add ADSI support to Directory.
- core_local: Fix local channel parsing with slashes.
- Remove files that are no longer updated
- app_voicemail: Add AMI event for mailbox PIN changes.
- app_queue.c: Emit unpause reason with PauseQueueMember event.
- bridge_simple: Suppress unchanged topology change requests
- res_pjsip: Include cipher limit in config error message.
- res_speech: allow speech to translate input channel
- res_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.
- res_pjsip_dtmf_info.c: Add 'INFO' to Allow header.
- api.wiki.mustache: Fix indentation in generated markdown
- pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
- configs: Fix typo in pjsip.conf.sample.
- res_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown
- res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
- .github: PRSubmitActions: Fix adding reviewers to PR
- .github: New PR Submit workflows
- .github: New PR Submit workflows
- res_stasis: signal when new command is queued
- ari/stasis: Indicate progress before playback on a bridge
- func_curl.c: Ensure channel is locked when manipulating datastores.
- .github: Fix job prereqs in PROpenedUpdated
- .github: Block PR tests until approved
- logger.h: Add ability to change the prefix on SCOPE_TRACE output
- Add libjwt to third-party
- res_pjsip: update qualify_timeout documentation with DNS note
- chan_dahdi: Clarify scope of callgroup/pickupgroup.
- func_json: Fix crashes for some types
- res_speech_aeap: add aeap error handling
- app_voicemail: Disable ADSI if unavailable.
- codec_builtin: Use multiples of 20 for maximum_ms
- lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
- asterisk.c: Use the euid's home directory to read/write cli history
- res_pjsip_transport_websocket: Prevent transport from being destroyed before message finishes.
- cel: add publish user event helper
- chan_console: Fix deadlock caused by unclean thread exit.
- file.c: Add ability to search custom dir for sounds
- chan_iax2: Improve authentication debugging.
- res_rtp_asterisk: fix wrong counter management in ioqueue objects
- make_buildopts_h, et. al.  Allow adding all cflags to buildopts.h
- func_periodic_hook: Add hangup step to avoid timeout
- res_stasis_recording.c: Save recording state when unmuted.
- res_speech_aeap: check for null format on response
- func_periodic_hook: Don't truncate channel name
- safe_asterisk: Change directory permissions to 755
- chan_rtp: Implement RTP glue for UnicastRTP channels
- app_queue: periodic announcement configurable start time.
- variables: Add additional variable dialplan functions.
- Restore CHANGES and UPGRADE.txt to allow cherry-picks to work

User Notes:
----------------------------------------

- ### app_dial: Add option "j" to preserve initial stream topology of caller
  The option "j" is now available for the Dial application which
  uses the initial stream topology of the caller to create the outgoing
  channels.

- ### logger: Add channel-based filtering.
  The console log can now be filtered by
  channels or groups of channels, using the
  logger filter CLI commands.

- ### chan_pjsip: Add PJSIPHangup dialplan app and manager action
  A new dialplan app PJSIPHangup and AMI action allows you
  to hang up an unanswered incoming PJSIP call with a specific SIP
  response code in the 400 -> 699 range.

- ### app_voicemail: Add AMI event for mailbox PIN changes.
  The VoicemailPasswordChange event is
  now emitted whenever a mailbox password is updated,
  containing the mailbox information and the new
  password.
  Resolves: #398

- ### res_speech: allow speech to translate input channel
  res_speech now supports translation of an input channel
  to a format supported by the speech provider, provided a translation
  path is available between the source format and provider capabilites.

- ### res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
  With this update, the PJSIP realm lengths have been extended
  to support up to 255 characters.

- ### res_stasis: signal when new command is queued
  Call setup times should be significantly improved
  when using ARI.

- ### lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
  You no longer need to select DEBUG_THREADS to use
  DETECT_DEADLOCKS.  This removes a significant amount of overhead
  if you just want to detect possible deadlocks vs needing full
  lock tracing.

- ### file.c: Add ability to search custom dir for sounds
  A new option "sounds_search_custom_dir" has been added to
  asterisk.conf that allows asterisk to search
  AST_DATA_DIR/sounds/custom for sounds files before searching the
  standard AST_DATA_DIR/sounds/<lang> directory.

- ### make_buildopts_h, et. al.  Allow adding all cflags to buildopts.h
  The "Build Options" entry in the "core show settings"
  CLI command has been renamed to "ABI related Build Options" and
  a new entry named "All Build Options" has been added that shows
  both breaking and non-breaking options.

- ### chan_rtp: Implement RTP glue for UnicastRTP channels
  The dial string option 'g' was added to the UnicastRTP channel
  which enables RTP glue and therefore native RTP bridges with those
  channels.

- ### app_queue: periodic announcement configurable start time.
  Introduce a new queue configuration option called
  'periodic-announce-startdelay' which will vary the normal (historic)
  behavior of starting the periodic announcement cycle at
  periodic-announce-frequency seconds after entering the queue to start
  the periodic announcement cycle at period-announce-startdelay seconds
  after joining the queue.  The default behavior if this config option is
  not set remains unchanged.
  Signed-off-by: Jaco Kroon <jaco at uls.co.za>

- ### variables: Add additional variable dialplan functions.
  Four new dialplan functions have been added.
  GLOBAL_DELETE and DELETE have been added which allows
  the deletion of global and channel variables.
  GLOBAL_EXISTS and VARIABLE_EXISTS have been added
  which checks whether a global or channel variable has
  been set.


Upgrade Notes:
----------------------------------------

- ### app.c: Allow ampersands in playback lists to be escaped.
  Ampersands in URLs passed to the `Playback()`,
  `Background()`, `SpeechBackground()`, `Read()`, `Authenticate()`, or
  `Queue()` applications as filename arguments can now be escaped by
  single quoting the filename. Additionally, this is also possible when
  using the `CONFBRIDGE` dialplan function, or configuring various
  features in `confbridge.conf` and `queues.conf`.

- ### pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
  The dtls_rekey will be disabled if webrtc support is
  requested on an endpoint. A warning will also be emitted.

- ### res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
  As part of this update, the maximum allowable length
  for PJSIP endpoints and relevant resources has been increased from
  40 to 255 characters. To take advantage of this enhancement, it is
  recommended to run the necessary procedures (e.g., Alembic) to
  update your schemas.


                               [asterisk-announce] asterisk release 18.20.2

The Asterisk Development Team would like to announce
the release of asterisk-18.20.2.

This release resolves issues reported by the community
and would have not been possible without your participation.

Thank You!


Change Log for Release asterisk-18.20.2
========================================

Summary:
----------------------------------------

- res_rtp_asterisk: Fix regression issues with DTLS client check


                               [asterisk-announce] asterisk release 18.20.1


The Asterisk Development Team would like to announce security release
Asterisk 18.20.1.

The following security advisories were resolved in this release:
- [Path traversal via AMI GetConfig allows access to outside files](https://github.com/asterisk/asterisk/s
ecurity/advisories/GHSA-8857-hfmw-vg8f)
- [Asterisk susceptible to Denial of Service via DTLS Hello packets during call initiation](https://github
.com/asterisk/asterisk/security/advisories/GHSA-hxj9-xwr8-w8pq)
- [PJSIP logging allows attacker to inject fake Asterisk log entries ](https://github.com/asterisk/asteris
k/security/advisories/GHSA-5743-x3p5-3rg7)
- [PJSIP_HEADER dialplan function can overwrite memory/cause crash when using 'update'](https://github.com
/asterisk/asterisk/security/advisories/GHSA-98rc-4j27-74hh)


Change Log for Release asterisk-18.20.1
========================================

Summary:
----------------------------------------

- res_pjsip_header_funcs: Duplicate new header value, don't copy.
- res_pjsip: disable raw bad packet logging
- res_rtp_asterisk.c: Check DTLS packets against ICE candidate list
- manager.c: Prevent path traversal with GetConfig.


                               [asterisk-announce] asterisk release 18.20.0

The Asterisk Development Team would like to announce
the release of asterisk-18.20.0.

This release resolves issues reported by the community
and would have not been possible without your participation.

Thank You!


Change Log for Release asterisk-18.20.0
========================================

Summary:
----------------------------------------

- ari-stubs: Fix more local anchor references
- ari-stubs: Fix more local anchor references
- ari-stubs: Fix broken documentation anchors
- res_pjsip_session: Send Session Interval too small response
- .github: Update workflow-application-token-action to v2
- app_dial: Fix infinite loop when sending digits.
- app_voicemail: Fix for loop declarations
- alembic: Fix quoting of the 100rel column
- pbx.c: Fix gcc 12 compiler warning.
- app_audiosocket: Fixed timeout with -1 to avoid busy loop.
- download_externals:  Fix a few version related issues
- main/refer.c: Fix double free in refer_data_destructor + potential leak
- sig_analog: Add Called Subscriber Held capability.
- app_macro: Fix locking around datastore access
- Revert "app_stack: Print proper exit location for PBXless channels."
- .github: Use generic releaser
- install_prereq: Fix dependency install on aarch64.
- res_pjsip.c: Set contact_user on incoming call local Contact header
- extconfig: Allow explicit DB result set ordering to be disabled.
- rest-api: Run make ari-stubs
- res_pjsip_header_funcs: Make prefix argument optional.
- pjproject_bundled: Increase PJSIP_MAX_MODULE to 38
- manager: Tolerate stasis messages with no channel snapshot.
- core/ari/pjsip: Add refer mechanism
- chan_dahdi: Allow autoreoriginating after hangup.
- audiohook: Unlock channel in mute if no audiohooks present.
- sig_analog: Allow three-way flash to time out to silence.
- res_prometheus: Do not generate broken metrics
- res_pjsip: Enable TLS v1.3 if present.
- func_cut: Add example to documentation.
- extensions.conf.sample: Remove reference to missing context.
- func_export: Use correct function argument as variable name.
- app_queue: Add support for applying caller priority change immediately.
- .github: Fix cherry-pick reminder issues
- chan_iax2.c: Avoid crash with IAX2 switch support.
- res_geolocation: Ensure required 'location_info' is present.
- Adds manager actions to allow move/remove/forward individual
  messages in a particular mailbox folder. The forward command can
  be used to copy a message within a mailbox or to another mailbox.
  Also adds a VoicemailBoxSummarry, required to retrieve message ID's.
- app_voicemail: add CLI commands for message manipulation
- res_rtp_asterisk: Move ast_rtp_rtcp_report_alloc using
  `rtp->themssrc_valid` into the scope of the rtp_i nstance lock.
- .github: Minor tweak to Asterisk Releaser
- .github: Suppress cherry-pick reminder for some situations
- sig_analog: Allow immediate fake ring to be suppressed.

User Notes:
----------------------------------------

- ### sig_analog: Add Called Subscriber Held capability.
  Called Subscriber Held is now supported for analog
  FXS channels, using the calledsubscriberheld option. This allows
  a station  user to go on hook when receiving an incoming call
  and resume from another phone on the same line by going on hook,
  without disconnecting the call.

- ### res_pjsip_header_funcs: Make prefix argument optional.
  The prefix argument to PJSIP_HEADERS is now
  optional. If not specified, all header names will be
  returned.

- ### core/ari/pjsip: Add refer mechanism
  There is a new ARI endpoint `/endpoints/refer` for referring
  an endpoint to some URI or endpoint.

- ### chan_dahdi: Allow autoreoriginating after hangup.
  The autoreoriginate setting now allows for kewlstart FXS
  channels to automatically reoriginate and provide dial tone to the
  user again after all calls on the line have cleared. This saves users
  from having to manually hang up and pick up the receiver again before
  making another call.

- ### sig_analog: Allow three-way flash to time out to silence.
  The threewaysilenthold option now allows the three-way
  dial tone to time out to silence, rather than continuing forever.

- ### res_pjsip: Enable TLS v1.3 if present.
  res_pjsip now allows TLS v1.3 to be enabled if supported by
  the underlying PJSIP library. The bundled version of PJSIP supports
  TLS v1.3.

- ### app_queue: Add support for applying caller priority change immediately.
  The 'queue priority caller' CLI command and
  'QueueChangePriorityCaller' AMI action now have an 'immediate'
  argument which allows the caller priority change to be reflected
  immediately, causing the position of a caller to move within the
  queue depending on the priorities of the other callers.

- ### Adds manager actions to allow move/remove/forward individual
    messages in a particular mailbox folder.  The forward command
    can be used to copy a message within a mailbox or to another
    mailbox. Also adds a Vo icemailBoxSummarry, required to retrieve
    message ID's.
  The following manager actions have been added
    VoicemailBoxSummary - Generate message list for a given mailbox
    VoicemailRemove - Remove a message from a mailbox folder
    VoicemailMove - Move a message from one folder to another within a mailbox
    VoicemailForward - Copy a message from one folder in one mailbox
      to another folder in another or the same mailbox.

- ### app_voicemail: add CLI commands for message manipulation
  The following CLI commands have been added to app_voicemail
  voicemail show mailbox <mailbox> <context>
  Show contents of mailbox <mailbox>@<context>
  voicemail remove <mailbox> <context> <from_folder> <messageid>
  Remove message <messageid> from <from_folder> in mailbox <mailbox>@<context>
  voicemail move <mailbox> <context> <from_folder> <messageid> <to_folder>
  Move message <messageid> in mailbox <mailbox>&<context> from <from_folder> to <to_folder>
  voicemail forward <from_mailbox> <from_context> <from_folder>
    <messageid> <to_mailbox> <to_context> <to_ folder>
  Forward message <messageid> in mailbox <mailbox>@<context> <from_folder> to
  mailbox <mailbox>@<context> <to_folder>

- ### sig_analog: Allow immediate fake ring to be suppressed.
  The immediatering option can now be set to no to suppress
  the fake audible ringback provided when immediate=yes on FXS channels.


                               [asterisk-announce] Asterisk Release 18.19.0

The Asterisk Development Team would like to announce
the release of Asterisk 18.19.0.

This release resolves issues reported by the community
and would have not been possible without your participation.

Thank You!


Change Log for Release 18.19.0
========================================

Summary:
----------------------------------------

- app.h: Move declaration of ast_getdata_result before its first use
- doc: Remove obsolete CHANGES-staging and UPGRADE-staging
- .github: Updates for AsteriskReleaser
- app_voicemail: fix imap compilation errors
- res_musiconhold: avoid moh state access on unlocked chan
- utils: add lock timestamps for DEBUG_THREADS
- .github: Back out triggering PROpenedOrUpdated by label
- .github: Move publish docs to new file CreateDocs.yml
- rest-api: Updates for new documentation site
- .github: Remove result check from PROpenUpdateGateTests
- .github: Fix use of 'contains'
- .github: Add recheck label test to additional jobs
- .github: Fix recheck label typos
- .github: Fix recheck label manipulation
- .github: Allow PR submit checks to be re-run by label
- app_voicemail_imap: Fix message count when IMAP server is unavailable
- res_pjsip_rfc3326: Prefer Q.850 cause code over SIP.
- res_pjsip_session: Added new function calls to avoid ABI issues.
- app_queue: Add force_longest_waiting_caller option.
- pjsip_transport_events.c: Use %zu printf specifier for size_t.
- res_crypto.c: Gracefully handle potential key filename truncation.
- configure: Remove obsolete and deprecated constructs.
- res_fax_spandsp.c: Clean up a spaces/tabs issue
- ast-db-manage: Synchronize revisions between comments and code.
- test_statis_endpoints:  Fix channel_messages test again
- res_crypto.c: Avoid using the non-portable ALLPERMS macro.
- tcptls: when disabling a server port, we should set the accept_fd to -1.
- AMI: Add parking position parameter to Park action
- test_stasis_endpoints.c: Make channel_messages more stable
- build: Fix a few gcc 13 issues
- .github: Rework for merge approval
- ast-db-manage: Fix alembic branching error caused by #122.
- app_followme: fix issue with enable_callee_prompt=no (#88)
- sounds: Update download URL to use HTTPS.
- configure: Makefile downloader enable follow redirects.
- res_musiconhold: Add option to loop last file.
- chan_dahdi: Fix Caller ID presentation for FXO ports.
- AMI: Add CoreShowChannelMap action.
- sig_analog: Add fuller Caller ID support.
- res_stasis.c: Add new type 'sdp_label' for bridge creation.
- app_queue: Preserve reason for realtime queues
- .github: Fix issues with cherry-pick-reminder
- indications: logging changes
- .github Ignore error when adding reviewrs to PR
- .github: Update field descriptions for AsteriskReleaser
- callerid: Allow specifying timezone for date/time.
- chan_pjsip: Allow topology/session refreshes in early media state
- chan_dahdi: Fix broken hidecallerid setting.
- .github: Change title of AsteriskReleaser job
- asterisk.c: Fix option warning for remote console.
- .github: Don't add cherry-pick reminder if it's already present
- .github: Fix quoting in PROpenedOrUpdated
- .github: Add cherry-pick reminder to new PRs
- configure: fix test code to match gethostbyname_r prototype.
- res_pjsip_pubsub.c: Use pjsip version for pending NOTIFY check. (#76)
- res_sorcery_memory_cache.c: Fix memory leak
- xml.c: Process XML Inclusions recursively.
- .github: Tweak improvement issue type language.
- .github: Tweak new feature language, and move feature requests elsewhere.
- .github: Fix staleness check to only run on certain labels.

User Notes:
----------------------------------------

- ### AMI: Add parking position parameter to Park action
  New ParkingSpace parameter has been added to AMI action Park.

- ### res_musiconhold: Add option to loop last file.
  The loop_last option in musiconhold.conf now
  allows the last file in the directory to be looped once reached.

- ### AMI: Add CoreShowChannelMap action.
  New AMI action CoreShowChannelMap has been added.

- ### sig_analog: Add fuller Caller ID support.
  Additional Caller ID properties are now supported on
  incoming calls to FXS stations, namely the
  redirecting reason and call qualifier.

- ### res_stasis.c: Add new type 'sdp_label' for bridge creation.
  When creating a bridge using the ARI the 'type' argument now
  accepts a new value 'sdp_label' which will configure the bridge to add
  labels for each stream in the SDP with the corresponding channel id.

- ### app_queue: Preserve reason for realtime queues
  Make paused reason in realtime queues persist an
  Asterisk restart. This was fixed for non-realtime
  queues in ASTERISK_25732.


Upgrade Notes:
----------------------------------------

- ### app_queue: Preserve reason for realtime queues
  Add a new column to the queue_member table:
  reason_paused VARCHAR(80) so the reason can be preserved.


Closed Issues:
----------------------------------------

  - #45: [bug]: Non-bundled PJSIP check for evsub pending NOTIFY check is insufficient/ineffective
  - #55: [bug]: res_sorcery_memory_cache: Memory leak when calling sorcery_memory_cache_open
  - #64: [bug]: app_voicemail_imap wrong behavior when losing IMAP connection
  - #65: [bug]: heap overflow by default at startup
  - #66: [improvement]: Fix preserve reason of pause when Asterisk is restared for realtime queues
  - #73: [new-feature]: pjsip: Allow topology/session refreshes in early media state
  - #87: [bug]: app_followme: Setting enable_callee_prompt=no breaks timeout
  - #89: [improvement]:  indications: logging changes
  - #91: [improvement]: Add parameter on ARI bridge create to allow it to send SDP labels
  - #94: [new-feature]: sig_analog: Add full Caller ID support for incoming calls
  - #98: [new-feature]: callerid: Allow timezone to be specified at runtime
  - #100: [bug]: sig_analog: hidecallerid setting is broken
  - #102: [bug]: Strange warning - 'T' option is not compatible with remote console mode and has no effect
.
  - #104: [improvement]: Add AMI action to get a list of connected channels
  - #108: [new-feature]: fair handling of calls in multi-queue scenarios
  - #110: [improvement]: utils - add lock timing information with DEBUG_THREADS
  - #116: [bug]: SIP Reason: "Call completed elsewhere" no longer propagating
  - #120: [bug]: chan_dahdi: Fix broken presentation for FXO caller ID
  - #122: [new-feature]: res_musiconhold: Add looplast option
  - #133: [bug]: unlock channel after moh state access
  - #136: [bug]: Makefile downloader does not follow redirects.
  - #145: [bug]: ABI issue with pjproject and pjsip_inv_session
  - #155: [bug]: GCC 13 is catching a few new trivial issues
  - #158: [bug]: test_stasis_endpoints.c: Unit test channel_messages is unstable
  - #174: [bug]: app_voicemail imap compile errors
  - #200: [bug]: Regression: In app.h an enum is used before its declaration.


                               [asterisk-announce] Asterisk Release 18.18.1

The Asterisk Development Team would like to announce security release
Asterisk 18.18.1.

The following security advisories were resolved in this release:
https://github.com/asterisk/asterisk/security/advisories/GHSA-4xjp-22g4-9fxm


Change Log for Release 18.18.1
========================================

Summary:
----------------------------------------

- apply_patches: Use globbing instead of file/sort.
- apply_patches: Sort patch list before applying
- pjsip: Upgrade bundled version to pjproject 2.13.1

User Notes:
----------------------------------------

- ### res_http_media_cache: Introduce options and customize
  The res_http_media_cache module now attempts to load
  configuration from the res_http_media_cache.conf file.
  The following options were added:
    * timeout_secs
    * user_agent
    * follow_location
    * max_redirects
    * protocols
    * redirect_protocols
    * dns_cache_timeout_secs

- ### format_sln: add .slin as supported file extension
  format_sln now recognizes '.slin' as a valid
  file extension in addition to the existing
  '.sln' and '.raw'.

- ### bridge_builtin_features: add beep via touch variable
  Add optional touch variable : TOUCH_MIXMONITOR_BEEP(interval)
  Setting TOUCH_MIXMONITOR_BEEP/TOUCH_MONITOR_BEEP to a valid
  interval in seconds will result in a periodic beep being
  played to the monitored channel upon MixMontior/Monitor
  feature start.
  If an interval less than 5 seconds is specified, the interval
  will default to 5 seconds.  If the value is set to an invalid
  interval, the default of 15 seconds will be used.

- ### app_senddtmf: Add SendFlash AMI action.
  The SendFlash AMI action now allows sending
  a hook flash event on a channel.

- ### res_mixmonitor: MixMonitorMute by MixMonitor ID
  It is now possible to specify the MixMonitorID when calling
  the manager action: MixMonitorMute.  This will allow an
  individual MixMonitor instance to be muted via ID.
  The MixMonitorID can be stored as a channel variable using
  the 'i' MixMonitor option and is returned upon creation if
  this option is used.
  As part of this change, if no MixMonitorID is specified in
  the manager action MixMonitorMute, Asterisk will set the mute
  flag on all MixMonitor audiohooks on the channel.  Previous
  behavior would set the flag on the first MixMonitor audiohook
  found.

- ### pbx_dundi: Add PJSIP support.
  DUNDi now supports chan_pjsip. Outgoing calls using
  PJSIP require the pjsip_outgoing_endpoint option
  to be set in dundi.conf.

- ### test.c: Fix counting of tests and add 2 new tests
  The "tests" attribute of the "testsuite" element in the
  output XML now reflects only the tests actually requested
  to be executed instead of all the tests registered.
  The "failures" attribute was added to the "testsuite"
  element.
  Also added two new unit tests that just pass and fail
  to be used for testing CI itself.

- ### cli: increase channel column width
  This change increases the display width on 'core show channels'
  amd 'core show channels verbose'
  For 'core show channels', the Channel name field is increased to
  64 characters and the Location name field is increased to 32
  characters.
  For 'core show channels verbose', the Channel name field is
  increased to 80 characters, the Context is increased to 24
  characters and the Extension is increased to 24 characters.


Upgrade Notes:
----------------------------------------


Closed Issues:
----------------------------------------

  - #193: [bug]: third-party/apply-patches doesn't sort the patch file list before applying


                               [asterisk-announce] Asterisk Release 18.18.0

The Asterisk Development Team would like to announce
the release of Asterisk 18.18.0.

This release resolves issues reported by the community
and would have not been possible without your participation.

Thank You!


Change Log for Release 18.18.0
========================================

Summary:
----------------------------------------

- Set up new ChangeLogs directory
- .github: Add AsteriskReleaser
- chan_pjsip: also return all codecs on empty re-INVITE for late offers
- cel: add local optimization begin event
- core: Cleanup gerrit and JIRA references. (#40)
- .github: Fix CherryPickTest to only run when it should
- .github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS
- .github: Remove separate set labels step from new PR
- .github: Refactor CP progress and add new PR test progress
- res_pjsip: mediasec: Add Security-Client headers after 401
- .github: Add cherry-pick test progress labels
- LICENSE: Update link to trademark policy.
- chan_dahdi: Add dialmode option for FXS lines. (#36)
- .github: Update issue templates
- .github: Remove unnecessary parameter in CherryPickTest
- Initial GitHub PRs
- Initial GitHub Issue Templates
- pbx_dundi: Fix PJSIP endpoint configuration check.
- Revert "app_queue: periodic announcement configurable start time."
- pbx_dundi: Add PJSIP support.
- res_pjsip_stir_shaken: Fix JSON field ordering and disallowed TN characters.
- install_prereq: Add Linux Mint support.
- chan_pjsip: fix music on hold continues after INVITE with replaces
- voicemail.conf: Fix incorrect comment about #include.
- app_queue: Fix minor xmldoc duplication and vagueness.
- test.c: Fix counting of tests and add 2 new tests
- loader.c: Minor module key check simplification.
- ael: Regenerate lexers and parsers.
- res_calendar: output busy state as part of show calendar.
- bridge_builtin_features: add beep via touch variable
- res_mixmonitor: MixMonitorMute by MixMonitor ID
- format_sln: add .slin as supported file extension
- app_queue: periodic announcement configurable start time.
- func_json: Fix JSON parsing issues.
- app_dial: Fix DTMF not relayed to caller on unanswered calls.
- make_version: Strip svn stuff and suppress ref HEAD errors
- configure: fix detection of re-entrant resolver functions
- cli: increase channel column width
- res_agi: RECORD FILE plays 2 beeps.
- app_senddtmf: Add SendFlash AMI action.
- contrib: rc.archlinux.asterisk uses invalid redirect.
- main/iostream.c: fix build with libressl
- res_http_media_cache: Introduce options and customize

User Notes:
----------------------------------------

- ### cel: add local optimization begin event
  The new AST_CEL_LOCAL_OPTIMIZE_BEGIN can be used
  by itself or in conert with the existing
  AST_CEL_LOCAL_OPTIMIZE to book-end local channel optimizaion.

- ### chan_dahdi: Add dialmode option for FXS lines. (#36)
  A "dialmode" option has been added which allows
  specifying, on a per-channel basis, what methods of
  subscriber dialing (pulse and/or tone) are permitted.
  Additionally, this can be changed on a channel
  at any point during a call using the CHANNEL
  function.

- ### pbx_dundi: Add PJSIP support.
  DUNDi now supports chan_pjsip. Outgoing calls using
  PJSIP require the pjsip_outgoing_endpoint option
  to be set in dundi.conf.

- ### cli: increase channel column width
  This change increases the display width on 'core show channels'
  amd 'core show channels verbose'
  For 'core show channels', the Channel name field is increased to
  64 characters and the Location name field is increased to 32
  characters.
  For 'core show channels verbose', the Channel name field is
  increased to 80 characters, the Context is increased to 24
  characters and the Extension is increased to 24 characters.

- ### app_senddtmf: Add SendFlash AMI action.
  The SendFlash AMI action now allows sending
  a hook flash event on a channel.

- ### res_http_media_cache: Introduce options and customize
  The res_http_media_cache module now attempts to load
  configuration from the res_http_media_cache.conf file.
  The following options were added:
    * timeout_secs
    * user_agent
    * follow_location
    * max_redirects
    * protocols
    * redirect_protocols
    * dns_cache_timeout_secs

- ### test.c: Fix counting of tests and add 2 new tests
  The "tests" attribute of the "testsuite" element in the
  output XML now reflects only the tests actually requested
  to be executed instead of all the tests registered.
  The "failures" attribute was added to the "testsuite"
  element.
  Also added two new unit tests that just pass and fail
  to be used for testing CI itself.

- ### res_mixmonitor: MixMonitorMute by MixMonitor ID
  It is now possible to specify the MixMonitorID when calling
  the manager action: MixMonitorMute.  This will allow an
  individual MixMonitor instance to be muted via ID.
  The MixMonitorID can be stored as a channel variable using
  the 'i' MixMonitor option and is returned upon creation if
  this option is used.
  As part of this change, if no MixMonitorID is specified in
  the manager action MixMonitorMute, Asterisk will set the mute
  flag on all MixMonitor audiohooks on the channel.  Previous
  behavior would set the flag on the first MixMonitor audiohook
  found.

- ### bridge_builtin_features: add beep via touch variable
  Add optional touch variable : TOUCH_MIXMONITOR_BEEP(interval)
  Setting TOUCH_MIXMONITOR_BEEP/TOUCH_MONITOR_BEEP to a valid
  interval in seconds will result in a periodic beep being
  played to the monitored channel upon MixMontior/Monitor
  feature start.
  If an interval less than 5 seconds is specified, the interval
  will default to 5 seconds.  If the value is set to an invalid
  interval, the default of 15 seconds will be used.

- ### format_sln: add .slin as supported file extension
  format_sln now recognizes '.slin' as a valid
  file extension in addition to the existing
  '.sln' and '.raw'.


Upgrade Notes:
----------------------------------------

- ### cel: add local optimization begin event
  The existing AST_CEL_LOCAL_OPTIMIZE can continue
  to be used as-is and the AST_CEL_LOCAL_OPTIMIZE_BEGIN event
  can be ignored if desired.


Closed Issues:
----------------------------------------

  - #35: [New Feature]: chan_dahdi: Allow disabling pulse or tone dialing
  - #39: [Bug]: Remove .gitreview from repository.
  - #43: [Bug]: Link to trademark policy is no longer correct
  - #48: [bug]: res_pjsip: Mediasec requires different headers on 401 response
  - #52: [improvement]: Add local optimization begin cel event

### For more details, see:
https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-18.18.0.md


                            [asterisk-announce] Asterisk 18.17.1 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.17.1.

The release of Asterisk 18.17.1 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-30469 - res_pjsip_pubsub: Regression for
      subscription shutdowns
      (Reported by N A)
 * ASTERISK-30472 - pbx_ael: Literal usage for variables broken
      (Reported by isrl)

For a full list of changes in this release, please see the ChangeLog:
https://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-18.17.1

Thank you for your continued support of Asterisk!


                            [asterisk-announce] Asterisk 18.17.0 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.17.0.

The release of Asterisk 18.17.0 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

New Features made in this release:
-----------------------------------
 * ASTERISK-29810 - app_signal: Add channel signaling
      applications
      (Reported by N A)
 * ASTERISK-30262 - res_pjsip_session: Allow a context to be
      specified for overlap dialing
      (Reported by N A)
 * ASTERISK-30319 - Add BYE Reason support for SIP
      (Reported by Igor Goncharovsky)
 * ASTERISK-30180 - app_broadcast: Add a channel audio
      multicasting application
      (Reported by N A)

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-27830 - Asterisk crashes on Invalid UTF-8 string
      (Reported by AvayaXAsterisk)
 * ASTERISK-30354 - chan_iax2: Lack of formats prior to
      receiving voice frames causes jitterbuffer to stall
      (Reported by N A)
 * ASTERISK-30162 - when chan_iax is used to relay calls, no
      ringing indication is played
      (Reported by Jaco Kroon)
 * ASTERISK-30424 - pjproject_bundled: cross-compilation broken
      when ssl autodetected
      (Reported by Nick French)
 * ASTERISK-30388 - res_phoneprov: Stale SERVER variable when
      multi-homed
      (Reported by cmaj)
 * ASTERISK-30419 - pjsip: Crash when sending NOTIFY in PJSIP 2.13
      (Reported by Ross Beer)
 * ASTERISK-30417 - Copy/Paste error in UnpauseQueueMember
      (Reported by Sean Bright)
 * ASTERISK-30406 - pbx_ael: Global variables are not expanded.
      (Reported by Sean Bright)
 * ASTERISK-29604 - ari: Segfault with lots of calls
      (Reported by Danila Evgrafov)
 * ASTERISK-30391 - res_rtp_asterisk: Issue with transcoding
      g722 after MES changes
      (Reported by George Joseph)
 * ASTERISK-30345 - loader.c: Modules that decline to load
      cannot be reloaded
      (Reported by N A)
 * ASTERISK-30379 - http: fix NULL pointer dereference while
      enable_status on TLS-only
      (Reported by Boris P. Korzun)
 * ASTERISK-30375 - res_http_media_cache: Crash when URL has no
      path component.
      (Reported by Sean Bright)
 * ASTERISK-30351 - manager: Originate variables are not added
      when setvar used in manager.conf
      (Reported by Sebastian
      Gutierrez)
 * ASTERISK-30369 - res_pjsip: Websockets from same IP shut down
      when they shouldn't be
      (Reported by Joshua C. Colp)
 * ASTERISK-30367 - pbx: Fix outdated channel snapshots with pbx_exec
      (Reported by N A)
 * ASTERISK-28767 - chan_pjsip: Caller ID not used when checking
      for extension, callerid supplement executed too late
      (Reported by Oleg)
 * ASTERISK-30350 - res_pjsip_sdp_rtp: rtp_timeout_hold is not
      used when moh_passthrough has call on hold
      (Reported by Benjamin Keith Ford)
 * ASTERISK-30240 - app voicemail odbc build error with gcc 11.1
      (Reported by Michael Bradeen)
 * ASTERISK-30100 - res_pjsip: Path is ignored on INVITE to endpoint
      (Reported by Yury Kirsanov)
 * ASTERISK-30198 - Error `Too many open files` occurs after
      about ~8000 calls when using mixmonitor
      (Reported by Julien Alie)

Improvements made in this release:
-----------------------------------
 * ASTERISK-30411 - app_read: add option to include terminating
      digit on empty, terminated strings
      (Reported by Michael Bradeen)
 * ASTERISK-30405 - app_directory: Add 's' option to skip
      channel call
      (Reported by Michael Bradeen)
 * ASTERISK-30422 - app_senddtmf: add the option for senddtmf to answer
      (Reported by Michael Bradeen)
 * ASTERISK-30325 - Upgrade Asterisk to bundled pjproject 2.13
      (Reported by Stanislav Abramenkov)
 * ASTERISK-30404 - app_directory: Add reading directory
      configuration from custom file
      (Reported by Michael Bradeen)
 * ASTERISK-29913 - func_json: Adds multi-level and array
      parsing to JSON_DECODE
      (Reported by N A)
 * ASTERISK-30353 - func_frame_trace: Print text for text frames
      (Reported by N A)
 * ASTERISK-30361 - json.h: Add missing
      ast_json_object_real_get
      (Reported by N A)
 * ASTERISK-30280 - Create capability to assign a Media
      Experience Score to RTP streams
      (Reported by George Joseph)
 * ASTERISK-30332 - func_callerid: Warn if invalid redirecting
      reason provided
      (Reported by N A)

For a full list of changes in this release, please see the ChangeLog:
https://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-18.17.0

Thank you for your continued support of Asterisk!


               [asterisk-announce] Asterisk 16.29.1, 18.15.1, 19.7.1, 20.0.1 Now Available

The Asterisk Development Team would like to announce the release of
Asterisk 16.29.1, 18.15.1, 19.7.1, and 20.0.1.

The release of Asterisk 16.29.1, 18.15.1, 19.7.1, and 20.0.1 resolves issues reported by the
community and would have not been possible without your participation.Thank you!

The following issue is resolved in this release:

Bugs fixed in this release:
-----------------------

[ASTERISK-30103 <https://issues.asterisk.org/jira/browse/ASTERISK-30103>]
chan_ooh323 vulnerability in calling/called party IE (Reported By: Michael
Bradeen)

[ASTERISK-30176 <https://issues.asterisk.org/jira/browse/ASTERISK-30176>]
GetConfig can read files outside of Asterisk (Reported By: shawty)

[ASTERISK-30244 <https://issues.asterisk.org/jira/browse/ASTERISK-30244>]
Occasional crash when TCP/TLS connection terminated and subscription
persistence is removed (Reported By: nappsoft)

[ASTERISK-30338 <https://issues.asterisk.org/jira/browse/ASTERISK-30338>]
Backport 2.13 security fixes from pjproject


                            [asterisk-announce] Asterisk 18.15.0 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.15.0.

The release of Asterisk 18.15.0 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

New Features made in this release:
-----------------------------------
 * ASTERISK-30037 - Add test support to calling external processes
      (Reported by Philip Prindeville)
 * ASTERISK-30161 - locks: add AMI event for deadlock
      (Reported by N A)
 * ASTERISK-30211 - app_confbridge: Add end_marked_any option
      (Reported by N A)
 * ASTERISK-30186 - res_pjsip: Add support for reloading TLS
      certificate and key information
      (Reported by Joshua C.  Colp)
 * ASTERISK-29899 - features: Add advanced transfer initiation options
      (Reported by N A)

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-30235 - res_crypto and tests:  Memory issues and and
      uninitialized variable error
      (Reported by George Joseph)
 * ASTERISK-30234 - res_geolocation: ...may be used
      uninitialized error in geoloc_config.c
      (Reported by George Joseph)
 * ASTERISK-30215 - Inbound SIP INVITE with Geo Location causing
      a Segmentation Fault
      (Reported by Dan Cropp)
 * ASTERISK-30135 - [res_musiconhold] Allows the moh only for
      the answered call
      (Reported by sungtae kim)
 * ASTERISK-26894 - pjsip should support tel uri scheme
      (Reported by Gergely D½½ms½½di)
 * ASTERISK-30210 - func_frame_trace: Channel masquerade
      triggers assertion
      (Reported by N A)
 * ASTERISK-30190 - res_geolocation:  GEOLOC_PROFILE isn't
      returning correct values on incoming channel
      (Reported by George Joseph)
 * ASTERISK-29185 - chan_pjsip: Endpoint: allow = all is broken.
      (Reported by Alexander Traud)
 * ASTERISK-30192 - res_tonedetect: fix typo for frametype
      (Reported by N A)
 * ASTERISK-29453 - alembic: incoming_call_offer_pref and
      outgoing_call_offer_pref missing in "ps_endpoints" table
      (Reported by Daniel Th½½men)
 * ASTERISK-26826 - testsuite: Add support for Python 3
      (Reported by Joshua C. Colp)
 * ASTERISK-30167 - res_geolocation:  Refactor for issues found
      by users
      (Reported by George Joseph)
 * ASTERISK-28422 - Memory Leak in Confbridge menu
      (Reported by Ted G)
 * ASTERISK-29917 - ami: FilterList action doesn't exist
      (Reported by N A)
 * ASTERISK-30018 - app_meetme: MeetmeList AMI event not documented
      (Reported by Michael Cargile)
 * ASTERISK-30020 - ConfbridgeListRooms Event Not Documented
      (Reported by Michael Cargile)
 * ASTERISK-30151 - Documentation doesn't include info about
      "field", a 3rd required parameter.
      (Reported by Chris Young)

Improvements made in this release:
-----------------------------------
 * ASTERISK-30241 - res_pjsip_gelocation: Downgrade some NOTICE
      scope trace debugs to DEBUG level
      (Reported by N A)
 * ASTERISK-30178 - extend user_eq_phone behavior to local uri's
      (Reported by Michael Bradeen)
 * ASTERISK-30046 - Reimplement res/res_crypto.c internals with
      EVP_PKEY interface to Openssl API's
      (Reported by Philip Prindeville)
 * ASTERISK-30045 - Add test coverage to res/res_crypto.c functionality
      (Reported by Philip Prindeville)
 * ASTERISK-30185 - res_geolocation: Allow location parameters
      to be specified in profiles
      (Reported by George Joseph)
 * ASTERISK-30177 - res_geolocation:  Add option to suppress
      empty elements
      (Reported by George Joseph)
 * ASTERISK-30182 - res_geolocation: Add built-in profiles to
      use in fully dynamic configurations
      (Reported by George Joseph)
 * ASTERISK-29906 - [patch] update RLS to reflect the changes to
      the lists
      (Reported by Alexei Gradinari)
 * ASTERISK-30163 - general: fix minor formatting issues
      (Reported by N A)
 * ASTERISK-30164 - chan_iax2: Add missing option documentation
      (Reported by N A)
 * ASTERISK-30153 - logger: Improve log levels
      (Reported by N A)
 * ASTERISK-30160 - cdr.conf: Remove obsolete app_mysql reference
      (Reported by N A)
 * ASTERISK-30159 - general: Remove obsolete SVN references
      (Reported by N A)


                            [asterisk-announce] Asterisk 18.14.0 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.14.0.

The release of Asterisk 18.14.0 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

Improvements made in this release:
-----------------------------------
 * ASTERISK-30128 - Create PJSIP interface module for Geolocation
      (Reported by George Joseph)
 * ASTERISK-30127 - Create core Geolocation capability for Asterisk
      (Reported by George Joseph)
 * ASTERISK-30089 - general: fix typos
      (Reported by N A)
 * ASTERISK-30050 - Upgrade Asterisk to bundled pjproject 2.12.1
      (Reported by Stanislav Abramenkov)

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-30167 - res_geolocation:  Refactor for issues found
      by users
      (Reported by George Joseph)
 * ASTERISK-29966 - pbx_variables: ast_str_strlen can be wrong
      (Reported by N A)
 * ASTERISK-29905 - OSX: bininstall launchd issue on
      cross-platfrom build
      (Reported by Sergey V. Lobanov)
 * ASTERISK-30137 - manager: Global disabled event filtered is incomplete
      (Reported by N A)
 * ASTERISK-30109 - res_pjsip: no contact-status AMI event on
      register of prune-on-boot contact that uses the same URI as
      before Asterisk restart
      (Reported by Michael Neuhauser)
 * ASTERISK-29991 - chan_dahdi, callerid: Caller ID does not
      honor presentation
      (Reported by N A)
 * ASTERISK-30126 - Spelling mistake in
      configs/samples/queues.conf.sample
      (Reported by Sam Banks)
 * ASTERISK-30029 - build: Git security vulnerability fix is sad
      with our accessing git as root during "make install"
      (Reported by Joshua C. Colp)
 * ASTERISK-29907 - res_pjsip, app_confbridge: Video call
      through ConfBridge with normal endpoints causes infinite
      loop/crash
      (Reported by N A)
 * ASTERISK-30138 - Compile failure in
      res_geolocation/geoloc_eprofile.c when optimization is enabled
      (Reported by George Joseph)
 * ASTERISK-30096 -  cel_odbc: Column type 9 (field
      'cdr:cel:eventtime') is unsupported at this time
      (Reported by Morvai Szabolcs)
 * ASTERISK-30083 - chan_iax2: Optional dependency on
      openssl/res_crypto is now mandatory
      (Reported by Dmitry Melekhov)
 * ASTERISK-30099 - test_aeap_transport: transport_connect_fail
      sporadically causes failure
      (Reported by Kevin Harwell)
 * ASTERISK-30123 - features: Update automixmon documentation to
      reflect reality
      (Reported by Trevor Peirce)
 * ASTERISK-30117 - pbx_lua: Remove compiler warnings
      (Reported by Boris P. Korzun)
 * ASTERISK-30101 - res_prometheus: Optional load
      res_pjsip_outbound_registration.so
      (Reported by Boris P.  Korzun)
 * ASTERISK-29989 - app_dial, chan_dahdi: DIALSTATUS is
      inconsistent for busy
      (Reported by N A)
 * ASTERISK-30001 - db: Removing nonexistent entries shows
      "Database entry removed"
      (Reported by N A)
 * ASTERISK-30115 - app_dial: Allow hook flashes to propogate on
      outbound dials
      (Reported by N A)
 * ASTERISK-30106 - res_calendar_icalendar: Microsoft online ICS
      calendars no longer work
      (Reported by N A)
 * ASTERISK-29822 - cli: Typing \? freezes the CLI permanently
      with remote console
      (Reported by N A)
 * ASTERISK-30072 - res_pjsip: allow TLS verification of
      wildcard cert-bearing servers
      (Reported by Kevin Harwell)
 * ASTERISK-30075 - say: Abort if channel hangs up during playback
      (Reported by N A)

New Features made in this release:
-----------------------------------
 * ASTERISK-30136 - db: Add AMI action to retrieve all keys
      beginning with a prefix
      (Reported by N A)
 * ASTERISK-30000 - chan_dahdi: Add POLARITY function
      (Reported by N A)
 * ASTERISK-30062 - cli: Add CLI command to execute a dialplan app
      (Reported by N A)
 * ASTERISK-29999 - pjsip: Get information from 200 OK INVITE
      reply headers
      (Reported by Jos½½ Lopes)
 * ASTERISK-30061 - pbx: Add pbx helper application
      (Reported by N A)


                            [asterisk-announce] Asterisk 18.13.0 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.13.0.

The release of Asterisk 18.13.0 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

Improvements made in this release:
-----------------------------------
 * ASTERISK-29906 - [patch] update RLS to reflect the changes to the lists
      (Reported by Alexei Gradinari)
 * ASTERISK-29891 - [patch] provide a display name for RLS subscriptions
      (Reported by Alexei Gradinari)
 * ASTERISK-30090 - xmldocs: Use example tags for examples
      (Reported by N A)
 * ASTERISK-30086 - res_parking: Warn when invalid parking space requested
      (Reported by N A)
 * ASTERISK-30058 - Evaluate dialplan functions and variables in agi exec
      (Reported by Shloime Rosenblum)
 * ASTERISK-30027 - ari: expose channel driver's unique id (i.e.
      Call-ID for chan_sip/chan_pjsip) in ARI channel resource
      (Reported by Moritz Fain)
 * ASTERISK-29845 - res_pjsip_outbound_registration: Show time
      remaining until registration lapses
      (Reported by N A)

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-30097 - console: Recent documentation changes for
      connecting to remote console are inconsistent
      (Reported by Matthias Hensler)
 * ASTERISK-30043 - Wrong party is disconnected when
      hook-flashing on 3-way bridge
      (Reported by Josh Alberts)
 * ASTERISK-29603 - res_pjsip: UPDATE/re-INVITE not sent when
      "timers=always" is specified in pjsip.conf
      (Reported by Ray Crumrine)
 * ASTERISK-30092 - DateTime application: wrong inflection for
      one o'clock in German
      (Reported by Christof Efkemann)
 * ASTERISK-30064 - pbx: iax2 switch causes crash due to
      deadlock and assertion
      (Reported by N A)
 * ASTERISK-29981 - res_calendar: Asterisk crashes when
      starting, and will not run
      (Reported by N A)
 * ASTERISK-30039 - cli: Targeted debug on startup deadlocks and
      creates unstable system
      (Reported by N A)
 * ASTERISK-30051 - res_pjsip: No video after un-hold with
      moh_passthrough=yes
      (Reported by Maximilian Fridrich)
 * ASTERISK-24601 - [patch]Missing RFC4235 tags and attributes
      in PJSIP NOTIFY event: dialog  XML body
      (Reported by Marco Paland)
 * ASTERISK-30059 - menuselect: libxml include fails under Gentoo
      (Reported by waltermoeller)
 * ASTERISK-30060 - loader: format warnings in dev mode
      (Reported by N A)
 * ASTERISK-30065 - pjsip: Open Websocket connection is not
      reused for outgoing requests
      (Reported by LA)
 * ASTERISK-30042 - res_pjsip_transport_websocket: Registration
      over websocket returns a rewritten contact
      (Reported by Thomas Guebels)
 * ASTERISK-29993 - chan_dahdi: Operator control option borks
      both lines involved on callee disconnect
      (Reported by N A)
 * ASTERISK-30044 - GCC 12 issues
      (Reported by George Joseph)

New Features made in this release:
-----------------------------------
 * ASTERISK-30063 - app_voicemail: Add option to prevent
      deletion of messages
      (Reported by N A)
 * ASTERISK-29965 - res_pjsip_outbound_registration: Make max
      registration delay configurable
      (Reported by N A)
 * ASTERISK-30087 - res_parking: Add music on hold override option
      (Reported by N A)
 * ASTERISK-30036 - app_confbridge: Add CONFBRIDGE_CHANNELS function
      (Reported by N A)

Thank you for your continued support of Asterisk!


                            [asterisk-announce] Asterisk 18.12.1 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.12.1.

The release of Asterisk 18.12.1 resolves an issue reported by the
community and would have not been possible without your participation.

Thank you!

The following issue is resolved in this release:

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-30065 - pjsip: Open Websocket connection is not
      reused for outgoing requests
      (Reported by LA)


                            [asterisk-announce] Asterisk 18.12.0 Now Available

The Asterisk Development Team would like to announce the release of Asterisk 18.12.0.

The release of Asterisk 18.12.0 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

Security bugs fixed in this release:
-----------------------------------
 * ASTERISK-29476 - res_stir_shaken: Blind SSRF vulnerabilities
      (Reported by Clint Ruoho)
 * ASTERISK-29838 - ${SQL_ESC()} not correctly escaping a terminating \
      (Reported by Leandro Dardini)
 * ASTERISK-29872 - res_stir_shaken: Resource exhaustion with large files
      (Reported by Benjamin Keith Ford)

New Features made in this release:
-----------------------------------
 * ASTERISK-29931 - Option to allow a user to not hear the join
      sound on enter but everyone else can
      (Reported by Michael Cargile)
 * ASTERISK-29968 - func_db: Add a function to return
      cardinality of keys at prefix
      (Reported by N A)
 * ASTERISK-29486 - Hint-like extension value lookup function
      without device state
      (Reported by N A)
 * ASTERISK-29941 - chan_pjsip: Add ability to send flash events
      (Reported by N A)
 * ASTERISK-29820 - cli: Add command to evaluate a function
      (Reported by N A)
 * ASTERISK-29876 - app_queue: Add music on hold option
      (Reported by N A)

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-29655 - res_pjsip_session: No video to caller if no
      camera available
      (Reported by Michael Auracher)
 * ASTERISK-29638 - res_pjsip_session: No video after early media
      (Reported by Michael Auracher)
 * ASTERISK-28518 - chan_dahdi: Caller ID FSK Erroneously Sent
      when Picking Up Dahdi Call On Hold
      (Reported by Josh Alberts)
 * ASTERISK-29990 - chan_dahdi: adding ring cadences is not
      idempotent on dahdi restart
      (Reported by N A)
 * ASTERISK-30007 - chan_iax2: Prevent crashes due to attempted
      encryption with missing secrets
      (Reported by N A)
 * ASTERISK-29728 - menuselect: Disabled by default modules that
      are enabled are always recompiled
      (Reported by N A)
 * ASTERISK-30002 - app_meetme: Don't erroneously set global
      variables when channel is NULL
      (Reported by N A)
 * ASTERISK-29994 - chan_dahdi: Round robin array size is too
      small for max number of groups
      (Reported by N A)
 * ASTERISK-22246 - Asterisk's "T" flag is ignored when used
      with "r" or "R" flags. (documentation bug)
      (Reported by Rusty Newton)
 * ASTERISK-26582 - Asterisk seems to ignore the "n" parameter
      for "disable console colorization"
      (Reported by Sebastian Gutierrez)
 * ASTERISK-29843 - Session timers get removed on UPDATE
      (Reported by Mark Petersen)
 * ASTERISK-29943 - file.c: seeking to negative file offset is
      not prevented
      (Reported by N A)
 * ASTERISK-29955 - chan_sip: SIP route header is missing on UPDATE
      (Reported by Mark Petersen)
 * ASTERISK-29842 - Do not change 180 Ringing to 183 Progress
      even if early_media already enabled
      (Reported by Mark Petersen)
 * ASTERISK-29948 - iostream: Infinite TCP timeout writing data
      (Reported by N A)
 * ASTERISK-29253 - Incorrect bridging on transfer
      (Reported by Yury Kirsanov)
 * ASTERISK-30006 - res_pjsip: UDP transport does not work when
      async_operations is greater than 1
      (Reported by Ross Beer)
 * ASTERISK-30024 - Failed to sign STIR/SHAKEN payload with
      functionality not enabled
      (Reported by Claude Diderich)
 * ASTERISK-30021 - ast_variable_list_replace_variable uses
      variable with new keyword
      (Reported by Jasper Hafkenscheid)
 * ASTERISK-30023 - cdr_adaptive_odbc: does not support DATETIME
      database columns
      (Reported by Gregory Massel)
 * ASTERISK-30015 - pjsip / WebRTC: Chrome creating large number
      of SDP attributes
      (Reported by Josh Hogan)
 * ASTERISK-26689 - res_pjsip_sdp_rtp: 183 Session in Progress.
      Disconnecting channel for lack of RTP activity
      (Reported by Dmitriy Serov)
 * ASTERISK-29929 - res_pjsip_sdp_rtp: Disconnecting channel for
      lack of RTP activity in one way sessions
      (Reported by Boris P. Korzun)
 * ASTERISK-29411 - Crash in pjsip_msg_find_hdr_by_name
      (Reported by LA)
 * ASTERISK-29535 - Segmentation fault in libasteriskpj.so.2
      (Reported by Daniel Bonazzi)
 * ASTERISK-26719 - pbx: Only up to 127 includes in a dialplan
      context (AST_PBX_MAX_STACK - 1)
      (Reported by Tzafrir Cohen)
 * ASTERISK-29986 - build: Asterisk 18.11.0 doesn't compile when
      wget isn't available
      (Reported by Stefan Ruijsenaars)
 * ASTERISK-29988 - REGRESSION: The build process is requiring
      xmllint or xmlstarlet ro be installed when it shouldn't
      (Reported by George Joseph)
 * ASTERISK-29895 - chan_iax2: Fix misaligned spacing in iax2
      show netstats printout
      (Reported by N A)
 * ASTERISK-29939 - agi: Fix xmldoc bug with set music
      (Reported by N A)
 * ASTERISK-28891 - documentation: AGICommand_set+music
      documentation arguments displayed incorreclty
      (Reported by Jonathan Harris)
 * ASTERISK-29048 - chan_iax2: "iax2 show registry" shows host
      for perceived
      (Reported by David Herselman)
 * ASTERISK-29674 - Adjust for 64bit time_t
      (Reported by Andre Heider)
 * ASTERISK-29961 - RLS: domain part of 'uri' list attribute
      mismatch with SUBSCRIBE request
      (Reported by Alexei Gradinari)
 * ASTERISK-29928 - logging messages truncated when using MUSL runtime
      (Reported by Philip Prindeville)
 * ASTERISK-29960 - ari: Retrieving stored recording can returns
      wrong file
      (Reported by Arix)
 * ASTERISK-29950 - SayNumber can handle '01' to '07', but not
      '08' or '09'
      (Reported by Jim Van Meggelen)

Improvements made in this release:
-----------------------------------
 * ASTERISK-24827 - Missing documentation for chan_dahdi dial
      string ring cadences
      (Reported by Scott Griepentrog)
 * ASTERISK-29940 - general: Add since tags to xmldocs
      (Reported by N A)
 * ASTERISK-29726 - Add Asterisk External Application Protocol
      (AEAP) implementation
      (Reported by Kevin Harwell)
 * ASTERISK-29951 - app_mf, app_sf: Return -1 on hangup
      (Reported by N A)
 * ASTERISK-29954 - app_meetme: Emit warning if conference not found
      (Reported by N A)
 * ASTERISK-29351 - Qualify pjproject 2.12 for Asterisk
      (Reported by George Joseph)
 * ASTERISK-29976 - Should Readme include information about
      install_prereq script?
      (Reported by Marcel Wagner)
 * ASTERISK-29970 - Use pkg-config to find libxml2 headers and libraries
      (Reported by Hugh McMaster)
 * ASTERISK-29980 - build: External binary modules don't use https
      (Reported by INVADE International Ltd.)
 * ASTERISK-25716 - Documentation: Document explanations and
      examples for possible values of DIALSTATUS
      (Reported by Rusty Newton)
 * ASTERISK-29967 - pbx_builtins: Add missing documentation
      (Reported by N A)


                            [asterisk-announce] Asterisk 18.11.3 Now Available

   Asterisk Development Team asteriskteam at digium.com
   Tue Apr 26 12:09:50 CDT 2022

The Asterisk Development Team would like to announce the release of Asterisk 18.11.3.

The release of Asterisk 18.11.3 resolves an issue reported by the
community and would have not been possible without your participation.

Thank you!

The following issue is resolved in this release:

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-30024 - Failed to sign STIR/SHAKEN payload with
      functionality not enabled
      (Reported by Claude Diderich)


      [asterisk-announce] Asterisk 16.25.2, 18.11.2, 19.3.2 and 16.8-cert14 Now Available (Security)

The Asterisk Development Team would like to announce security releases for
Asterisk 16, 18 and 19, and Certified Asterisk 16.8. The available releases are
released as versions 16.25.2, 18.11.2, 19.3.2 and 16.8-cert14.

The following security vulnerabilities were resolved in these versions:

* AST-2022-001: res_stir_shaken: resource exhaustion with large files
  When using STIR/SHAKEN, it½½½s possible to download files that are not
  certificates. These files could be much larger than what you would expect to
  download.

* AST-2022-002: res_stir_shaken: SSRF vulnerability with Identity header
  When using STIR/SHAKEN, it½½½s possible to send arbitrary requests like GET to
  interfaces such as localhost using the Identity header.

* AST-2022-003: func_odbc: Possible SQL Injection
  Some databases can use backslashes to escape certain characters, such as
  backticks. If input is provided to func_odbc which includes backslashes it is
  possible for func_odbc to construct a broken SQL query and the SQL query to
  fail.


                            [asterisk-announce] Asterisk 18.11.1 Now Available

   Asterisk Development Team asteriskteam at digium.com
   Tue Mar 29 19:15:43 CDT 2022

The Asterisk Development Team would like to announce the release of Asterisk 18.11.1.

The release of Asterisk 18.11.1 resolves several issues reported by the
community and would have not been possible without your participation.

Thank you!

The following issues are resolved in this release:

Bugs fixed in this release:
-----------------------------------
 * ASTERISK-29986 - build: Asterisk 18.11.0 doesn't compile when
      wget isn't available
      (Reported by Stefan Ruijsenaars)
 * ASTERISK-29988 - REGRESSION: The build process is requiring
      xmllint or xmlstarlet ro be installed when it shouldn't
      (Reported by George Joseph)


                            [asterisk-announce] Asterisk 18.11.0 Now Available

   Asterisk Development Team asteriskteam at digium.com
   Thu Mar 24 09:06:03 CDT 2022

The Asterisk Development Tea…
jperkin pushed a commit that referenced this issue 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 issue May 1, 2024
v20.4.0
=======

Features
--------

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


v20.3.1
=======

No significant changes.


v20.3.0
=======

Features
--------

- Added support for SASL login. (#195)


Bugfixes
--------

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


v20.2.0
=======

Features
--------

- Require Python 3.8 or later.


v20.1.1
=======

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

v20.1.0
=======

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

v20.0.0
=======

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

* Added server support for NOTICE commands.

* Require Python 3.7 or later.

v19.0.1
=======

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

v19.0.0
=======

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

v18.0.0
=======

* Require Python 3.6 or later.

17.1
====

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

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

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

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

  with::

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


17.0
====

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

16.4
====

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

16.3
====

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

* #135 via #144: Added AsyncIO implementation.

16.2.1
======

* Package refresh and cleanup.

16.2
====

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

16.1
====

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

16.0
====

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

* Fixed link in README.

15.1.1
======

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

15.1
====

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

15.0.6
======

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

15.0.5
======

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

15.0.4
======

* #116: Correct invocation of execute_every.

15.0.3
======

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

15.0.2
======

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

15.0.1
======

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

15.0
====

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

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

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

14.2.2
======

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

14.2.1
======

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

14.2
====

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

14.1
====

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

14.0
====

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

13.3.1
======

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

13.3
====

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

* Removed deprecated irc.logging module.

13.2
====

* Moved hosting to github.

13.1.1
======

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

13.1
====

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

13.0
====

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

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

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

12.4.2
======

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

12.4
====

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

12.3
====

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

12.2
====

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

12.1.2
======

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

12.1.1
======

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

12.1
====

* Remove changelog from package metadata.

12.0
====

* Remove dependency on jaraco.util. Instead depend on surgical packages.
* Deprecated ``irc.logging`` in favor of ``jaraco.logging``.
* Dropped support for Python 3.2.
jperkin pushed a commit that referenced this issue May 10, 2024
This package hasn't been updated in a long time. The following list of
changes was therefore curated to focus on features or recent bugfixes.

Changes in 1.7.2:

* Bug #899 Guided Remediation: Parse paths in npmrc auth fields correctly.
* Bug #908 Fix rust call analysis by explicitly disabling stripping of debug info.
* Bug #914 Fix regression for go call analysis introduced in 1.7.0.

Changes in 1.7.0:

* Feature #352 Guided Remediation
  Introducing our new experimental guided remediation feature on osv-scanner fix subcommand.
* Feature #805 Include CVSS MaxSevirity in JSON output.

Changes in 1.6.2:

* Feature #694 OSV-Scanner now has subcommands!
  The base command has been moved to scan (currently the only commands is scan). By default if you do not pass in a command, scan will be used, so CLI remains backwards compatible.
* Feature #776 Add pdm lockfile support.

Changes in 1.6.0 and 1.6.1:

* Feature #694 Add support for NuGet lock files version 2.
* Feature #655 Scan and report dependency groups (e.g. "dev dependencies") for vulnerabilities.
* Feature #702 Created an option to skip/disable upload to code scanning.
* Feature #732 Add option to not fail on vulnerability being found for GitHub Actions.
* Feature #729 Verify the spdx licenses passed in to the license allowlist.

Changes in 1.5.0:

* Feature #501 Add experimental license scanning support!
* Feature #642 Support scanning renv files for the R language ecosystem.
* Feature #513 Stabilize call analysis for Go
* Feature #676 Simplify return codes:
  Return 0 if there are no findings or errors.
  Return 1 if there are any findings (license violations or vulnerabilities).
  Return 128 if no packages are found.
* Feature #651 CVSS v4.0 support.
* Feature #60 Pre-commit hook support.

Changes in 1.4.3:

* Feature #621 Add support for scanning vendored C/C++ files.
* Feature #581 Scan submodules commit hashes.

Changes in 1.4.1:

* Feature #534 New SARIF format that separates out individual vulnerabilities
* Experimental Feature #57 Experimental Github Action

Changes in 1.4.0:

* Feature #183 Add (experimental) offline mode
* Feature #452 Add (experimental) rust call analysis, detect whether vulnerable functions are actually called in your Rust project
* Feature #505 OSV-Scanner support custom lockfile formats

Changes in 1.3.5:

* Feature #409 Adds an additional column to the table output which shows the severity if available.

Changes in 1.3.0:

* Feature #198 GoVulnCheck integration! Try it out when scanning go code by adding the --experimental-call-analysis flag.
* Feature #260 Support -r flag in requirements.txt files.
* Feature #300 Make IgnoredVulns also ignore aliases.
* Feature #304 OSV-Scanner now runs faster when there's multiple vulnerabilities.

Changes in 1.2.0:

* Feature #168 Support for scanning debian package status file, usually located in /var/lib/dpkg/status. Thanks @cmaritan
* Feature #94 Specify what parser should be used in --lockfile.
* Feature #158 Specify output format to use with the --format flag.
* Feature #165 Respect .gitignore files by default when scanning.
* Feature #156 Support markdown table output format. Thanks @deftdawg
* Feature #59 Support conan.lock lockfiles and ecosystem Thanks @SSE4
* Updated documentation! Check it out here: https://google.github.io/osv-scanner/

Changes in 1.1.0:

* Feature #98: Support for NuGet ecosystem.
* Feature #71: Now supports Pipfile.lock scanning.
* Bug #85: Even better support for narrow terminals by shortening osv.dev URLs.
* Bug #105: Fix rare cases of too many open file handles.
* Bug #131: Fix table highlighting overflow.
* Bug #101: Now supports 32 bit systems.

Tested on NetBSD/amd64.
jperkin pushed a commit that referenced this issue Jul 1, 2024
Changelog:
### GMime 3.2.15

* Fixed the g_mime_object_get_header API definition to note that it can return null
* Fixed a memory leak in address_parse() (issue #159)
* Added custom header folding logic for the Newsgroups: header (issue #162)
* Fixed a configure issue regarding ac_cv_sys_file_offset_bits (issue #158)
* Fixed an infinite loop in the Content-Type and Content-Disposition parameter
  serialization logic (issue #165)

### GMime 3.2.14

* Avoid clearing the header list of a GMimeMessage when adding addresses to an address header. (issue #129)
* Added the internet_address_list_append_parse() prototype definition to internet-address.h. (issue #128)
* Use gtk-doc ulink syntax in doc comments instead of `<a href=...>`. (issue #131)
* Fixed rfc2047 token decoding logic for base64 encodings. (issue #133)
* Properly handle GDateTime UTC offsets with non-zero seconds. (issue #134)
* Improved introspection data for bindings such as Vala.
* Improved address name quoting.
* Added a GNotifyDestroy to the GMimeParserOptions callback.
* Fixed the URL linkifier logic to properly handle links without a '/' before the query string.
* Fixed the URL linkifier logic to handle domains that start with numbers. (issue #152)
* Reverted base64 decoder optimizations from 3.2.10 and 3.2.11 to support chunked base64. (issue #150)

### GMime 3.2.13

* Optimized parsing of messages with lots of address headers. (issue #126)

### GMime 3.2.12

* Fixed a memory leak in g_mime_gpgme_get_decrypt_result().

* Updated vapigen.m4, introspection.m4, and gpgme.m4 to improve cross-platform builds.

* Add and use ax_lib_socket_nsl.m4 so that systems that do not require linkage with libnsl
  are not forced to link with it unnecessesarily.

* Changed the build system to no longer use dolt (which is obsolete).

### GMime 3.2.11

* Fixed a bug in the base64 decoder. D'oh!

### GMime 3.2.10

* Improved performance of base64 encoder by ~5%.

* Improved performance of base64 decoder by ~25%.

* Unref the autocrypt header after adding it to the list. (issue #118)

* Work around a bug in g_time_zone_new_offset() by using identifiers instead. (issue #120)

### GMime 3.2.9

* g_mime_multipart_signed_verify() now allows type/subtype and type/x-subtype signature parts. (issue #115)

* Fixed header folding logic to avoid folding the first line of a header value. (issue #112 and issue #113)

* Fixed bugs discovered by static analysis. (issue #110)

* Fixed GMimeStreamPipe to set errno to ESPIPE for seek/tell/length methods.

* Fixed GMimeCertificates to prefer gpgme_user_id_t's address field over the email field. (issue #102)

### GMime 3.2.8

* Various fixes to Vala (and other?) language bindings. (issue #96 and issue #101)

* Enabled build for PPC64LE architecture (issue #100)

* Added g_mime_object_write_content_to_stream() (issue #97)

* Fixed parameter list parsing logic to not report a warning when everything is valid.

* Fixed the parser to handle MIME parts without headers -or- content of any kind.
jperkin pushed a commit that referenced this issue Jul 20, 2024
Based on PR 58426 by jonathan buschmann.

## 2.4.7 2024-05-05

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

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


## 2.4.6 2024-04-07

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

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


## 2.4.5 2024-02-18

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

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


## 2.4.4 2024-02-11

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

### Changed
- chore: update dependencies


## 2.4.3 2024-02-04

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

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

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


## 2.4.2 2023-12-26

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


## 2.4.1 2023-12-10

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

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


## 2.4.0 2023-10-08

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


## 2.3.3 2023-10-04

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

### Changed
- update dependencies


## [2.3.2] 2023-08-19

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

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


## [2.3.1] 2023-07-25

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

### Changed
- update dependencies


## [2.3.0] 2023-05-25

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

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

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

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


## [2.2.4] 2023-05-15

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

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

### Changed
- chore: update dependencies


## [2.2.3] 2023-04-26

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

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


## [2.2.2] 2023-04-01

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


## [2.2.1] 2023-03-29

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

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


## [2.2.0] 2023-02-24

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

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

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

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


## [2.1.0] 2022-12-12

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

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

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


## [2.0.4] 2022-11-30

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

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


## [2.0.3] 2022-11-21

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

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


## [2.0.2] 2022-11-17

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

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

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


## [2.0.1] 2022-11-07

### Changed
- chore: Update to clap 4.0.22

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


## [2.0.0] 2022-11-06

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

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

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

### Fixed

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

### Changed since 2.0.0-rc.2

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

### Removed
- Removed Python implementation of StGit.

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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


## [1.5] 2022-01-28

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

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

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


## [1.4] 2021-10-27

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

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

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

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


## [1.3] 2021-09-26

### Removed

### Added

### Changed

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

## [1.2] 2021-09-26

### Removed

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

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

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

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

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


## [1.1] 2021-04-30

### Removed

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

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

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


## [1.0] 2021-02-07

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

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

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

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


## [0.23] 2020-06-12

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

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

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

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

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

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

## [0.22] - 2020-03-02

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

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

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

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

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


## [0.21] - 2019-10-28

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

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


## [0.20] - 2019-10-04

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

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

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


## [0.19] 2018-11-05

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

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


## [0.18] 2017-08-14

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

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

### Fixed
- Various fixes and test coverage improvements
jperkin pushed a commit that referenced this issue Sep 24, 2024
This is a point release intended to clear up a couple of CVEs and
apply point fixes that have been accumulating since 5.2.1

There are a few unresolved (but minor) memory leaks related to design
issues in the API that still need to be resolved. Expect those fixes
in the next release.

Code Fixes
----------

* Fixes for CVE-2023-48161, CVE-2022-28506,

* Address SF issue #138 Documentation for obsolete utilities still installed

* Address SF issue #139: Typo in "LZW image data" page ("110_2 = 4_10")

* Address SF issue #140: Typo in "LZW image data" page ("LWZ")

* Address SF issue #141: Typo in "Bits and bytes" page ("filed")

* Note as already fixed SF issue #143: cannot compile under mingw

* Address SF issue #144: giflib-5.2.1 cannot be build on windows and other platforms using c89

* Address SF issue #145: Remove manual pages installation for binaries that are not installed too

* Address SF issue #146: [PATCH] Limit installed man pages to binaries, move giflib to section 7

* Address SF issue #147 [PATCH] Fixes to doc/whatsinagif/ content

* Address SF issue #148: heap Out of Bound Read in gif2rgb.c:298 DumpScreen2RGB

* Declared no-info on SF issue #150: There is a denial of service vulnerability in GIFLIB 5.2.1

* Declared Won't-fix on SF issue 149: Out of source builds no longer possible

* Address SF issue #151: A heap-buffer-overflow in gif2rgb.c:294:45

* Address SF issue #152: Fix some typos on the html documentation and man pages

* Address SF issue #153: Fix segmentation faults due to non correct checking for args

* Address SF issue #154: Recover the giffilter manual page

* Address SF issue #155: Add gifsponge docs

* Address SF issue #157: An OutofMemory-Exception or Memory Leak in gif2rgb

* Address SF issue #158: There is a null pointer problem in gif2rgb

* Address SF issue #159 A heap-buffer-overflow in GIFLIB5.2.1 DumpScreen2RGB() in gif2rgb.c:298:45

* Address SF issue #163: detected memory leaks in openbsd_reallocarray giflib/openbsd-reallocarray.c

* Address SF issue #164: detected memory leaks in GifMakeMapObject giflib/gifalloc.c

* Address SF issue #166: a read zero page leads segment fault in getarg.c and memory leaks in gif2rgb.c and gifmalloc.c

* Address SF issue #167: Heap-Buffer Overflow during Image Saving in DumpScreen2RGB Function at Line 321 of gif2rgb.c
github-actions bot pushed a commit that referenced this issue 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 issue Nov 24, 2024
Upstream changes:
## 2024 09 03
    - Add partial support for Syntax::Operator::In and Syntax::Keyword::Match
      (see git #162).
    - Add --timeout-in-seconds=n, or -tos=n.  When the standard input supplies
      the input stream, and the input has not been received within n seconds,
      perltidy will end with a timeout message.  The intention is to catch
      a situation where perltidy is accidentally invoked without a file to
      process and therefore waits for input from the system standard input
      (stdin), which never arrives.  The default is n=10.
      This check can be turned off with -tos=0.
    - Add parameter --closing-side-comment-exclusion-list=string, or
      -cscxl=string, where string is a list of block types to exclude
      for closing side comment operations.  Also, closing side comments
      now work for anonymous subs if a --closing-side-comment-list (-cscl)
      is not specified, and when 'asub' is requested with -cscl=asub.
      Use -cscxl=asub to prevent this.
    - Include check for unused constants in --dump-unusual-variables and
      --warn-variable-types (new issue type 'c'). Also expand checks to
      cover variables introduced with 'use vars'.
    - Include signature variables in --dump-unusual-variables and
      --warn-variable-types; see git #158.
    - Add logical xor operator ^^ available in perl version 5.40, as
      noted in git #157.
    - Keyword 'state' now has default space before a paren, like 'my'.
      Previously there was no space and no control.  So the default
      is now "state ($x)". This space can be removed with -nsak='state'.
    - Add options --add-lone-trailing-commas, -altc and
      --delete-lone-trailing-commas, -dltc, to provide control over adding
      and deleting the only comma in a list.  See discussion in git #143
      and the updated manual.
    - Add options --dump-mismatched-returns (or -dmr) and
      --warn-mismatched-returns (or -wmr).  These options report function
      calls where the number of values requested may disagree with sub
      return statements.  The -dump version writes the results for a single
      file to standard output and exits:
         perltidy -dmr somefile.pl >results.txt
      The -warn version formats as normal but reports any issues as warnings in
      the error file:
         perltidy -wmr somefile.pl
      The -warn version may be customized with the following additional
      parameters if necessary to avoid needless warnings:
      --warn-mismatched-return-types=s (or -wmrt=s),
      --warn-mismatched-return-exclusion-list=s (or -wmrxl=s)
      where 's' is a control string. These are explained in the manual.
    - Updates for issue git #151:
      (1) --warn-variable-types=u is now okay if a named file is processed.
      (2) --warn-variable-exclusion-list=s now allows leading and/or
      trailing * on variable names to allow a wildcard match. For example
      -wvxl='*_unused' is okay and would match $var1_unused and $var2_unused.
      (3) --dump-unusual-variables now outputs the filename.
    - A option was added to filter unimplemented parameters from perltidy
      configuration files, suggested in git #146.  It works like this: if
      a line in the config file begins with three dashes followed by a
      parameter name (rather than two dashes), then the line will be removed
      if the parameter is unknown. Otherwise, a dash will be removed to make
      the line valid.
    - Parameters --dump-mismatched-args (or -dma) and
      --warn-mismatched-args (or -wma) have been updated to catch more
      arg count issues.
    - Fixed issue git #143, extend -add-trailing-commas to apply to a list
      with just a fat comma.
    - The minimum perl version is 5.8.1. Previously it was 5.8.0, which was
      not correct because of the use of utf8::is_utf8.
    - Fixed issue git #142, test failure installing on perl versions before
      version 5.10.  The error caused the new parameter
      -interbracket-arrow-style=s not to work. Except for this limitation,
      Version 20240511 will work on older perl versions.
github-actions bot pushed a commit that referenced this issue 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.
github-actions bot pushed a commit that referenced this issue Dec 11, 2024
2.3.0 (2024-12-05)

Minor Enhancements

* Simplify checking if an archive type is enabled (#149)
* Memoize relative_path attribute of archive pages (#153)
* Memoize date attribute of date-type archive pages (#154)
* Allow creating slugs for emoji characters. (#129)
* Use Liquid drop to expose attributes to templates (#158)

Bug Fixes

* Return unless 'jekyll-archives' config is a Hash (#139)
* Include LICENSE in built gem (#180)

Internal Refactors

* Initialize Archives generator with a hash (#135)
* Remove support for legacy Jekyll versions (#136)
* Read-in site's tags and categories attributes (#137)
* Use private helper to append enabled archive type (#150)
* Access nested Hash values with Hash#dig (#151)
* Generate custom post_attr_hash with private helper (#152)

Development Fixes

* Migrate CI to GitHub Actions (#177)
* Add style_check job to CI workflow (#178)
* Add workflow to release gem via GitHub Actions (#179)

Documentation Fixes

* Substitute 'gems' with 'plugins' (#143)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants