Skip to content

Conversation

loannaflip
Copy link

No description provided.

Copy link
Author

@loannaflip loannaflip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all good!

@@ -6,7 +6,7 @@ MASTER_SITES= ${MASTER_SITE_GITHUB:=Uniminin/}

MAINTAINER= pin@NetBSD.org
HOMEPAGE= https://github.com/Uniminin/nanogrep/
COMMENT= Custom Implementation of minigrep with additional functionality
COMMENT= Custom simplified implementation of minigrep with additional features
LICENSE= mit
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only changes the description. It does not actually update the version.

@loannaflip
Copy link
Author

loannaflip commented Jan 7, 2021

The description was changed in update 1.2.1 but I don't know why it's not updated in the pkgsrc when it should be done.

@loannaflip
Copy link
Author

oh well! Moving to the issue #82

@loannaflip loannaflip closed this Jan 7, 2021
netbsd-srcmastr pushed a commit that referenced this pull request Feb 14, 2021
Added:
-Add syntax highlighting configuration for V (#78)
-Add the ability to execute external commands from the editor (#83)
-Improve file opening error messages for config files (#91)

Fixed:
-Android: fix a bug (#87) related to a SELinux policy that would cause
Kibi to crash on certain Android versions when setting the termios
(#92).
netbsd-srcmastr pushed a commit that referenced this pull request Mar 2, 2021
Change log:

0.5.3
======
- Appearance Changes:
  - Use old style menu alignment (#97, !77)

- Bug Fixes:
  - Add a keybinding to reset font size
  - Fix inverted return value of scroll event handler
  - Various small improvements regarding accels
  - Block the right signal handler for tooltip updates
  - A clarification about action groups

- Translation Updates:
  Basque, French, Galician, Portuguese (Brazil), Russian, Slovenian,
  Swedish

0.5.2
======
- New Features:
  - Add a "Viewer Mode" toggle (#50, !72)
  - Improve `--quit` option: close all windows interactively (!71)
  - Improve encoding management (#42, !69)
    - Display the current encoding in the status bar
    - Make the default encoding configurable via GSettings
    - Allow to choose encoding in the "Open" and "Save As" dialogs (#42)
    - Add a command line option to choose encoding
  - Add a "Delete Line" action (#13, !66)
  - Make automatic addition of the last EOL character configurable (#53, !65)
  - Switch to GFile for I/O operations (#4, #27, #75, !64)
    - Add file monitoring (#75)
    - Add a setting to create a tilde-backup file when saving (#27)
    - Make saving atomic (#4)

- Appearance Changes:
  - Filter files on mime type in the "Open" and "Save As" dialogs (#2, #35, !67)

- Code Refactoring:
  - Improve encoding management (#42, !69)
    - Make encoding dialog more generic and self-contained
    - Encodings definition review
    - Clarify encoding management when opening files
    - Improve unicode BOM management
  - Switch to GFile for I/O operations (#4, #27, #75, !64)
    - Set the save action sensitivity more precisely
    - Let GFile APIs check for file existence when reading
    - Let GFile APIs check for external modifications when saving
    - Basic switch to GFile for I/O operations

- Bug Fixes:
  - Make "replace" and "replace all" behaviors consistent (#94)
  - Ensure that the page setup is properly applied when printing (#90)
  - Avoid character escape issues in menu item action names (#91)
  - Properly initialize document search properties
  - Avoid illegal memory access when searching with tab changes (!73)
  - Revert to "Wrap Around" always true for the search bar (#83)
  - Prevent too late accesses to the buffer in selection mode
  - Direct call to keybinding signals for "Delete" and "Select All" (#83)
  - Improve editing keybindings consistency (#83)

- Translation Updates:
  Albanian, Arabic, Armenian (Armenia), Basque, Belarusian, Bulgarian,
  Catalan, Chinese (China), Chinese (Taiwan), Croatian, Czech, Danish,
  Dutch, Eastern Armenian, English (Australia), English (United
  Kingdom), Estonian, Finnish, French, Galician, German, Greek, Hebrew,
  Hungarian, Icelandic, Indonesian, Interlingue, Italian, Japanese,
  Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmål, Occitan (post
  1500), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
  Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Ukrainian, Uyghur
netbsd-srcmastr pushed a commit that referenced this pull request Mar 30, 2021
-Rename binary to avoid conflict with editors/ng
-Update comment as requested in,
#83
-While here drop maintainership
netbsd-srcmastr pushed a commit that referenced this pull request Apr 2, 2021
Patchlevel 8 (Dec 2020)

NEW FEATURES:

o Use deflate to embed image data into eps output, often substantially
  reducing file size.
o Embed pdf files into ps output by converting the pdf to eps.
o Allow negative arrow widths. This might be useful for asymmetric arrow
  tips, which can thus be mirrored around the corresponding line.

BUGS FIXED:

Ticket numbers refer to https://sourceforge.net/p/mcj/tickets/#.
o Reject negative text font sizes. Fixes ticket #86.
o Allow fig files ending without previous eol character. Fixes #83, #84.
o Accept text and ellipse angles only within -2*pi to 2*pi. Fixes #76.
o Allow -1 as default TeX font, not only 0. Fixes #71, #75, #81.
o Do not allow ASCII NUL anywhere in input. Fixes #65, #68, #73, #80.
o Use getline() to improve input scanning.
  Fixes tickets #58, #59, #61, #62, #67, #78, #79, #82.
o Correctly scan embedded pdfs for /MediaBox value.
o Convert polygons having too few points to polylines. Ticket #56.
o Reject huge arrow types causing integer overflow. Ticket #57.
o Allow Fig v2 text strings ending with multiple ^A. Ticket #55.
o Embed images in pdfs with their original compression type, i.e., leave
  the gs switch "-dAutoFilterColorImages" at its default value "true".
netbsd-srcmastr pushed a commit that referenced this pull request Apr 28, 2021
Fixes:
-Fixed not loading all saved albums (#59).
-Fixed "Like" in track context menu not updating properly (#75).
-Fixed build on Qt 5.9 and older (#76).
-Fixed a crash when playing from artist (#83).
-Fixed a crash when the current user had no profile image (#86).
-Fixed not showing any error message when no devices were available.
-Fixed not loading all artist albums.
-Fixed deprecation warnings when using Qt 6.
-Fixed showing "What's new" on first start.
-Fixed playing a new track with the same name, not updating currently playing.
-Fixed not selecting last used device when resuming playback after being idle.
-Fixed style option not setting default style.

Changes:
-Progress bar can now be clicked to skip in the track (#62).
-Added support for multiple artists (#67).
-Now remembers your last used device and selects it on next start (#73).
-Improved theming in snap (#79).
-Added a desktop icon for snap (#80).
-All networking is now done asynchronously, which should improve performance.
-Spotify client can now be started and/or stopped from Spotify settings.
-Windows builds are now available (see #95).
netbsd-srcmastr pushed a commit that referenced this pull request May 27, 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.
netbsd-srcmastr pushed a commit that referenced this pull request Aug 19, 2021
version 1.3.1
- expect_error, _warning, _message, _stdout now accept ... arguments
  that are passed as extra arguments to 'grepl', when a pattern is
  provided (Thanks to Bart-Jan van Rossum for the GH issue).
- Package now also resets locale settings after each file run,
  and 'report_side_effects' also tracks changes in locale settings.
- Run test directories via RStudio addin. (Thanks to Matthijs Berends
  for PR #83)
- tinytest used to implicitly depend on R >= 3.2.0 because of using
  'trimws' and 'dir.exists'. (Thanks to Sebastian Meyer for figuring
   this out and thanks to Matthijs Berends for PR #84 solving this)
- 'tinytest' objects now store the stack trace as a list of calls.  When
  needed, the relevant part of the trace is printed, but only when printing the
  long form. (thanks to Jonas Kristoffer Lindeloef for suggesting)
- Improved printing while running tests
- Graphics produced in tests are now written to nullfile() (Thanks to Henrik
  Bengtsson for the suggestion). (nullfile() is defined in-package when
  built on R < 3.6.0).
- Fixed time measurement when directory (or pkg) is tested and tests take more
  than an minute.
- Fix: set_env variables would not be unset in all cases (Thanks to Henrik
  Bengtsson for the PR)
- Fix in 'expect_equal': reporting in case of differing attributes (Thanks to
  Ott Toomet for reporting #80).
- Fix in build_install_test: better reading of DESCRIPTION file (Thanks
  to Christof Stepper for PR #87)


version 1.2.4
- 'test_package' gains 'lib.loc' argument.
- New function 'expect_inherits' to check the class of an object (thanks
  to Sebastian Meyer for suggesting).
- Printing of file exit message is now shorter and on same line as test
  report (thanks for Dirk Eddelbuettel for suggesting).
- Duration per file is now reported, total duration is stored (thanks
  to Dirk Eddelbuettel for suggesting)
- Small improvements in difference reporting.
- Fix: avoid truncated printing in case of long diff reporting (thanks to
  Sebastian Meyer for the PR)
- Fix: default pattern for test files was "^test_", is now "^test"
  as documented. (Thanks to Sebastian Meyer for the PR).
- Fix: it is now easier to put tests that you do not want to
  install under /tests/somedir.
- Internal: updated tinytest.format method to conform to new
  R CMD check demand. (Thanks to Brian Ripley for the warning).


version 1.2.3
- Added example to using tinytest vignette on mocking databases
  (Thanks to Thomas Fuchs for working this out).
- 'expect_stdout' now handles multi-line output. (Thanks to John Blischak for
  reporting).
- A message is issued when a test file uses 'tinytest::expect': such tests
  are not registered (thanks to James Thompson for issuing a ticket on this).
netbsd-srcmastr pushed a commit that referenced this pull request Sep 12, 2021
Upstream changes:
0.98 2021-03-22
        - document how to use buckets with dots, Signature V4, and HTTPS together
        - fix Net::Amazon::S3::Client::Object::exists (#94)
        - improve compatibility with DigitalOcean Spaces (#95)

0.97 2020-10-09
        - presigned object access uri supports also PUT/DELETE methods (#89)

0.96 2020-10-07
        - Signature V4 didn't work properly for services on non-standard port (issue #88)

0.95 2020-10-06
        - bugfix release, with new test coverage
        - small cleanups

0.94 2020-09-27
        - fix undefined method call in still untested methods (thanks Russell Jenkins)

0.93 2020-09-27
        - fix syntax failures on perl < v5.22 (thanks cpantesters)

0.92 2020-09-26
        - misc cleanups, more tests
        - Net::Amazon::S3::Client now can be constructed with same arguments as Net::Amazon::S3
        - Support explicit ACL in bucket/object/upload creation
        - Support set_acl on Client::Bucket / Client::Object (issue #83)
        - Add support for bucket/object tagging (issue #44)
netbsd-srcmastr pushed a commit that referenced this pull request Feb 12, 2022
0.6.0.1
* Ensure that position evaluates false inside bibliography (#99).

0.6
* Add Term parameter to TagTerm [API change].
* Add TagPrefix, TagSuffix constructors to Tag [API change].
* Make sure that extracted AuthorOnly names have the correct formatting
  (#55).
* Do case-insensitive sorting, like Zotero (#91).
* Ignore "ibid" entries in computing ambiguities.
* Improved disambiguation for author-in-text citations.
* In disambiguating, convert author-in-text to normal citations. Otherwise
  we disambiguate incorrectly.
* Fix title disambiguation with note style (#90). Previously we'd been
  calculating ambiguities by generating renderings for citation items
  independently of context. This meant that we didn't detect ambiguities in
  "subsequent" citations (which might e.g. just have an author).
* Ensure we don't do collapsing of items across a prefix or suffix
  (#89). If we have [@doe99; for contrasting views see @smith33; @doe00],
  we don't want to get collapsing to (Doe 1999, 2000; for contrasting
  views, see Smith 1933). This isn't strictly by the spec, but it gives
  better results.
* Allow collapsing after an initial prefix.

0.5
* Add linkBibliography field to CiteprocOptions [API change]. When this is
  set to True, we hyperlink bibliography entries according to the draft of
  the CSL v1.02 spec (Appendix VI). When an entry has a DOI, PMCID, PMID,
  or URL available but none of these are rendered by the style, add a link
  to the title (or, if no title is present, the whole entry), using the URL
  for the DOI, PMCID, PMID, or URL (in that order of priority). (Benjamin
  Bray, #88.)
* In generating citation labels, only use issued date. Not, for example,
  accessed (#80).
* Citeproc.Locale: export lookupQuotes. [API change]
* Citeproc.Types: Add localizeQuotes method to CiteprocOutput class [API
  change].
* Citeproc.CslJson, Citeproc.Pandoc: Implement localizeQuotes.
* Citeproc: apply localizeQuotes after rendering. This ensures that quotes
  are properly localized and flipflopped. Previously this was done in
  renderCslJson (for CSL JSON) and in pandoc (for Pandoc Inlines). It is
  more consistent to do this as part of the rendering pipeline, in citeproc
  itself.
* Citeproc.CslJson: Drop the Locale parameter from the signature of
  renderCslJson [breaking API change]. It was only needed for quote
  localization, which now occurs outside of this function.
* Citeproc.Pandoc: use a Span with class csl-quoted for quotes, rather than
  a Quoted inline. This way we can leave Quoted elements passed in by
  pandoc alone, and we won't get strange effects like the one described in
  #87 (where " behaves differently when in a citation suffix).
* Default to Shifted with icu flag (#83). This makes the library behave
  similarly whether compiled with icu or with the default unicode-collation
  and prevents test failures with icu.
* Require recent text-icu with icu flag. Older versions don't build with
  newer versions of icu4c.
* Support links in CslJson (Benjamin Bray). Currently they are only
  supported in rendering, not parsing (in support of #88).
* Allow test cases to specify CiteprocOptions (Benjamin Bray).
* Update locales from upstream.
* Add new CSL tests to repository.

0.4.1
* Change Pandoc inNote so it creates a Span with class csl-note rather than
  a Note. This should make it easier to integrate citations with ordinary
  notes in pandoc.
* Do not hyperlink author-only citations (#77). If we do this we get two
  consecutive hyperlinks for author-in-text forms.
* movePunctuationInsideQuotes: only move , and ., not ? and !, as per the
  CSL spec.

0.4.0.1
* Fix bug introduced by the fix to #61 (#74). In certain circumstances, we
  could get doubled "et al.".
* Depend on unicode-collation unconditionally (#71). It is necessary even
  when text-icu is used, because of Text.Collate.Lang.
* Rename tests in extra/ so they fall into categories.

0.4
* We now use Lang from unicode-collation rather than defining our own. The
  type constructor has changed, as has the signature of parseLang.
* Use unicode-collation by default for more accurate sorting.
  * text-icu will still be used if the icu flag is set. This may give
    better performance, at the cost of depending on a large C library.
  * Change type of SortKeyValue so it doesn't embed Lang. [API change]
    Instead, we now store a language-specific collator in the Eval Context.
  * Move compSortKeyValues from Types to Eval.
  * Add curly open quote to word splitters in normalizeSortKey.
  * Improve date sorting: use the format YYYY0000 if no month, day, and
    YYYYMM00 if no day when generating sort keys.
  * Special treatment of literal "others" as last name in a list
    (#61). When we convert bibtex/biblatex bibliographies, the form "and
    others" yields a last name with nameLiteral = "others". We detect this
    and generate a localized "and others" (et al).
  * Make abbreviations case-insensitive (#45).
netbsd-srcmastr pushed a commit that referenced this pull request Mar 30, 2022
Vala 0.56.0
===========
 * Various improvements and bug fixes:
  - codegen: Drop confusing warning when accessing interface members

 * Bindings:
  - Add webkit2gtk-4.1 bindings
  - glib-2.0: Fix memory management of TestSuite.add*/get_root() with 2.70 [#1295]
  - libarchive: Fix a few binding errors
  - SDL2_ttf: Fix a few binding errors
  - tiff: Fix a few binding errors

Vala 0.55.91
============
 * Various improvements and bug fixes:
  - girparser:
    + Handle duplicated and unnamed symbols
    + Add support for "copy_/free_function" metadata for compact classes
    + Don't count instance-parameter when checking for backwards closure
      reference [#721]

 * Bindings:
  - gst-editing-services-1.0: Fix BaseEffect.set_time_translation_funcs()
  - gstreamer-audio-1.0: Fix a few binding errors
  - gstreamer-base-1.0: Fix a few binding errors
  - gstreamer-video-1.0: Fix a few binding errors
  - gtk4: Fix content_deserialize_async()
  - libarchive: Fix a few binding errors
  - libgsf-1: Fix a few binding errors
  - libgrss: Fix FeedItem.get_geo_point() parameters

Vala 0.55.90
============
 * Various improvements and bug fixes:
  - codegen:
    + Emit G_DEFINE_AUTOPTR_CLEANUP_FUNC() for interfaces with base class [#1292]
    + Emit G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC() for structs [#1293]
    + Default to "has_type_id = false" for external error-domains
    + Emit GType definition for error domains [#699]
  - vala:
    + Catch and throw possible inner error of lock statements [#83]
    + Keep error-code symbol reference in callable expression context
    + Allow delegate without target to be used as constant type
  - girparser: Pick up type_id of error domains

 * Bindings:
  - glib-2.0: Update 2.70/72 symbols
  - gstreamer: Update from 1.21.0+ git main
  - vapi: Update GIR-based bindings

Vala 0.55.3
===========
 * Highlights:
  - Allow usage of dynamic on VarType [#187]

 * Various improvements and bug fixes:
  - codegen: Use correct target/destroy of delegate field initializer [#1285]
  - codegen: Stop generating wrappers for dynamic property access
  - gtkmodule: Improve UI parsing and handling of nested objects and properties
  - vala:
    + Add missing TraverseVisitor.visit_data_type()
    + Improve check of generic type references in static contexts [#1284]
    + Make sure to drop our "trap" jump target in case of an error [#1287]
    + Move dynamic property errors to semantic analyzer pass
    + Free empty stack list for code contexts
    + Clear SemanticAnalyzer.current_{symbol,source_file} when not needed anymore

 * Bindings:
  - gio-2.0,glib-2.0,gobject-2.0: Update 2.72 symbols
  - gstreamer: Update from 1.19.90+ git main
  - gtk4: Specify sentinel for GtkAcessible methods
  - gtk4: Update to 4.6.0+06ec4ec1
  - vapi: Update GIR-based bindings

Vala 0.55.2
===========
 * Highlights:
  - Add support for async main and yield statements in main block [#1275]
  - Add foreach statement support for GLib.Array and GLib.Sequence

 * Various improvements and bug fixes:
  - codegen:
    + Avoid symbol clashes with "va_*" from "stdarg.h"
    + Access of inline allocated array is guaranteed to be non null [#1282]
    + Don't uncoditionally null check callback_func for GLib.Closure [#1282]
    + Access of stack allocated struct is guaranteed to be non null [#1282]
    + Write array length of formal parameters with fixed length
  - vala:
    + Require lvalue access of delegate target/destroy "fields" [#857]
    + Implement missing YieldStatement.accept()
    + Add support to infer return type of dynamic signals
    + Transform assignment of an array element as needed [#889] [#1258]
  - parser: Reduce the source reference of main block method to its beginning
  - parser: Improve handling of nullable VarType in with-statement
  - manual: Update from wiki.gnome.org

 * Bindings:
  - glib-2.0,gio-2.0: Update 2.72 symbols
  - gstreamer: Update from 1.19.3+ git master
  - gtk4: Update to 4.6.0+a092986a
  - glib-2.0: Fix criticals in string.joinv() with arrays that start with null
  - vapi: Add linux-media bindings (linux/media.h)
  - alsa: Add/fix *.alloca() functions
  - posix: Add limits.h binding
  - v4l2: Update V4l2.Capabilities and fix some inline arrays

Vala 0.55.1
===========
 * Highlights:
  - Add support for partial classes [#370]
  - Add support for nested methods (local functions) [#1232]
  - Add multi-line support to Vala.Report [#764]
  - Support "emit" for explicit signal emission
  - Add native support to specify non default length-type for arrays [#607]

 * Various improvements and bug fixes:
  - codegen:
    + Move some errors to semantic analyzer pass
    + Stop generating wrappers for dynamic signal connections
    + gdbus: Use g_dbus_method_invocation_take_error() as simplification
    + Initialize type parameter properties for generics earlier [#67]
    + Initialize "result" variable on declaration for abstract methods only
    + Use __once instead of __volatile in generated code
    + Generated SimpleType structs don't have a type id
  - vala:
    + Add optional SourceReference parameter to DataType classes
    + Preserve the source reference when resolving data types
    + Set source references of created DataType instances in OCE
    + Set TypeParameter as symbol of GenericType
    + Add accessibility check of type for constants and structs base type
    + Don't allow casting to void [#1070]
    + Don't allow casting real structs to classes or simple-types [#1249]
    + Check accessibility of initializer for constant and enum value
    + Show source location when reporting deprecations

 * Bindings:
  - Add gnome-desktop-4, gnome-bg-4 and gnome-rr-4 bindings
  - Add libsoup-3.0 binding
  - Add webkit2gtk-5.0 bindings
  - glib-2.0: Add Unicode 14.0 symbols
  - glib-2.0: Update 2.72 symbols
  - gstreamer: Update from 1.19.3+ git master
  - gstreamer-1.0: Make Gst.Uri a sealed class
  - gtk4: Update to 4.6.0+06e5da45
  - webkit2gtk-*.0: Update to 2.35.1
  - vapi: Update GIR-based bindings

Vala 0.54.6
===========
 * Various improvements and bug fixes:
  - codegen:
    + Allow boxing of non-external SimpleType structs [#1273]
    + Cast given default-value of struct with possible member initializer [#1272]
    + Clear existing length values when revisiting a slice expression [#1274]
  - vala:
    + Allow unsafe assignment of integer to enum while reporting a notice
    + Non nullable enum types are simple types [#1268]
    + Correctly replace "in" expression in pre-/postconditions of method [#1269]

 * Bindings:
  - gio-2.0: Add custom MemoryOutputStream.with_*data() wrappers [#1271]

Vala 0.54.5
===========
 * Various improvements and bug fixes:
  - codegen:
    + Correctly handle chain up of struct creation methods [#1264]
    + Use a dedicated EmitContext for _variant_get*() functions
    + gtkmodule: Handle nested closure elements and bind them accordingly [#1262]
  - vala:
    + NullLiteral is not a valid argument for string concatenation [#1260]
    + Set is_yield_expression in async context when chaining up to async base ctor
    + Report statement parsing error if it is not meant to be an expression [#1261]
    + girparser: Avoid possibily creating duplicated attributes
  - vapigen.m4: use $PKG_CONFIG_SYSROOT_DIR

 * Bindings:
  - glib-2.0: Always use the actual C type for CCode.array_length_type
  - gstreamer: Cherry-pick bindings fixes from 0.56
  - gstreamer-1.0: Unskip the ElementFactory.make/create_full() symbols

Vala 0.54.4
===========
 * Various improvements and bug fixes:
  - codegen:
    + Use CCodeConstant for member access of constant symbol
    + Emit constants without initializer list in defines section [#440]
    + Add and use CCodeConstantIdentifier for accessing constants
    + Check required length of enum type name for GType support
    + Add missing check while overriding virtual async interface methods [#852]
    + Drop inconsistent space for ObjectType parameters
    + Accept CCode.type attribute on parameters [#876]
    + Fix CCodeUnaryExpression.write() for PREFIX_INCREMENT/PREFIX_DECREMENT
  - vala:
    + Improve error message for invalid handler of dynamic signal
    + Using SignalHandler.disconnect() is required for dynamic signals
    + Check for unavailable value-type of variable initializer [#1253]
    + Add [Profile] as known attribute for methods
    + Report error on missing gio-2.0 package for async constructors
    + Fix signals with generic return
    + parser: Split out Parser.parse_switch_section_statement()
    + parser: Better handling of misplaced switch sections [#1246]
  - genie:
    + Amend text of indent and dedent for error messages [#497]
    + Accept INTERR token before type arguments when parsing type [#1245]
    + Properly handle plain "get" or "set" property accessors [#1248]
    + "exception" is the expected string for TokenType.ERRORDOMAIN
    + Accept accessibility/async modifiers on "construct" creation methods [#1235]
  - girparser: Accept "sealed" for transformed records and compact classes
  - gtkmodule: Improve error message for invalid signal element in ui-file
  - build: Add "test-update" which passed UPDATE_EXPECTED=1 to refresh c-expected
  - tests: Rename colliding test cases to avoid conflicts

 * Bindings:
  - alsa: Add more API and fix a few things
  - gnome-desktop-3.0: Some parameter fixes
  - gstreamer: Cherry-pick bindings fixes from 0.56
  - gstreamer-base-1.0: Some parameter fixes [#1255]
  - gtk4: Update to 4.5.0~cd9b7307
  - pango: Cherry-pick bindings fixes from 0.56

Vala 0.54.3
===========
 * Various improvements and bug fixes:
  - codegen: Actually free data when using "remove(_all)"
    on GLib.Queue/(S)List [#1238]
  - vala:
    + Parameter following ellipsis parameter is not allowed [#1237]
    + More thorough check of ValueType and set CodeNode.error on failure
    + Really check compatiblity of error types for delegate symbol
    + Correctly output signature of callable throwing error
    + Report error for non ErrorType in throws
    + Implement CodeWriter.visit_foreach_statement()/visit_catch_clause()
  - parser: Make sure ErrorCodes are accessible as needed
  - girparser: Add support for "ref_/ref_sink_/unref_function"
    metadata for classes [#1233]

Vala 0.54.2
===========
 * Various improvements and bug fixes:
  - vala:
    + Multi-dimensional params-array not allowed [#1230]
    + Accept NullType as generic type argument
    + Set source references of created DataType instances in OCE

 * Bindings:
  - gio-2.0: Update to 2.71.0~a0d2efdc
  - glib-2.0: Update 2.70 symbols
  - gtk4: Update to 4.5.0~da5efea6

Vala 0.54.1
===========
 * Regression and bug fixes:
  - codegen:
    + Add type declaration for implicit temporary local variable
    + Sealed class in external package is not special [#1229]

 * Bindings:
  - gstreamer: Update from 1.19.0+ git master
  - gtk4: Update to 4.5.0~3e20ecd6
netbsd-srcmastr pushed a commit that referenced this pull request Apr 20, 2022
0.13.1

    fix: improved shell completion for URLs by @danielgtaylor in #95
    fix: simplify option handling, send explicitly passed defaults by @danielgtaylor in #96

0.13.0

    feat: cache parsed/loaded APIs for faster access by @danielgtaylor in #83
    fix: sending non-structured-object input via stdin, fixes #81 by @danielgtaylor in #84
    fix: better handling of params with unknown types, fixes #63 by @danielgtaylor in #85
    fix: trim trailing slashes from OpenAPI servers by @danielgtaylor in #86
    fix: custom server usage, fixes #54 by @danielgtaylor in #87
    feat: enabled & document raw mode for saving files by @danielgtaylor in #88
    fix: parameter serialization for style: form, fixes #47 by @danielgtaylor in #89
    fix: handle recursive schemas without crashing, fixes #21 by @danielgtaylor in #90
    feat: add api sync command by @danielgtaylor in #91
    feat: update dependencies by @danielgtaylor in #92
    fix: simplify edit resource command code by @danielgtaylor in #93
    fix: panic when multiple configured APIs have the same base URL by @danielgtaylor in #94


0.12.0

    b8773c1 Merge pull request #82 from danielgtaylor/completion
    b600019 feat: add auth-header command
    b9d6da4 feat: completion of URI templates
    b0b14ed feat: dynamic shell completion for OpenAPI operations
    593acaf fix: utilize existing API loading for completion
netbsd-srcmastr pushed a commit that referenced this pull request Apr 24, 2022
[0.7.0] - 2022-04-24
Bug Fixes
   -Pin the Rust nightly version
   -Allow custom commit range while prepending (#68)
   -Remove redundant logging while using --context (#71)
   -Update expected changelog date

Documentation
   -Add more regex examples for commit_preprocessors
   -Update GitHub Actions reference link in README.md
   -Add cliff-jumper to similar projects (#83)
   -Update the title of projects section

Features
   -Show a message if a newer version is available (#69)
   -Add --context flag for outputting context (#71)
   -Support placing configuration inside Cargo.toml (#46)
   -[breaking] Prefix environment variables with GIT_CLIFF_ (#76)
   -Print more debug information when -vv is used (#79)
   -Support preprocessing commit messages using regex (#62)
   -Add man page generation script (#35)

Miscellaneous Tasks
   -Return to nightly builds (#73)
   -Include man page in the release assets
   -Upgrade git-conventional dependency (#82)
   -Upgrade versions in Dockerfile
   -Build Docker images for arm64
   -Disable default features for the Docker image
   -Strip the binaries in Docker image
   -Upgrade dependencies

Refactor
   -Make update-informer opt-out via feature flag (#69)
   -Use implicit Result type in completions script

Styling
   -Update the changelog template for tag message
netbsd-srcmastr pushed a commit that referenced this pull request Sep 28, 2022
What's Changed
 - Support collaborative playlists in #83
 - Handle device connection with retries in #81
netbsd-srcmastr pushed a commit that referenced this pull request Nov 14, 2022
What's Changed
Exciting New Features
 - Add focus keybindings to the config by @Builditluc in #79
 - Better logging messages by @Builditluc in #83
 - Create config file if not existent by @Builditluc in #88
 - Overhaul the UI by @Builditluc in #81

Bug Fixes
 - Fix no article being displayed by @Builditluc in #73
 - Disable logging if not enabled in the config by @Builditluc in #91
 - Fix crash on non writable directory by @Builditluc in #99

Documentation Changes
 - Add toc configuration documentation by @Builditluc in #75
 - Change Branch naming by @Builditluc in #76
 - Add FreeBSD install instructions by @nunotexbsd in #86

Other Changes
 - Add label to exclude PRs from release notes by @Builditluc in #72
 - Bump toml dependency to 0.5.9 by @Builditluc in #85
 - Fix documentation action by @Builditluc in #101
netbsd-srcmastr pushed a commit that referenced this pull request Jan 3, 2023
pkgsrc change: clean up pkglint warnings

* Remove redundant PKGNAME.
* Remove ruby from CATEGORIES.


1.5.3 (2022-07-18)

* Ruby 3.1 compatibility (h/t: @casperisfine)

1.5.2 (2022-05-24, YANKED)

* Ruby 3.1 compatibility and zookeeper client updates.
* This release had build issues in the wild and was yanked

1.5.1 (2021-11-16)

* Update config.guess to support newer environments (h/t: @malmckay)

1.5.0 (2021-09-27)

* (housekeeping) Moves build to Github Actions from TravisCI
* (housekeeping) Drops build support for MRI Ruby < 2.5 and other rubies
* Build on Ruby 3 (#99) (h/t: @malmckay)
* Build on MacOS (#98) (h/t: @malmckay)
* Work around compiler errors on newer versions of gcc (#97) (h/t:
  @nickmarden)
* Fix a typo on a has_key (#83) (h/t: @lexspoon)
* Adds support macOS dylib (#86) (h/t: @pftg)
* Fix compilation on ARM (#82) (h/t: @cdonati)
netbsd-srcmastr pushed a commit that referenced this pull request Jan 18, 2023
pkgsrc change: clean up pkglint warnings

* Remove redundant PKGNAME.
* Remove ruby from CATEGORIES.


1.5.3 (2022-07-18)

* Ruby 3.1 compatibility (h/t: @casperisfine)

1.5.2 (2022-05-24, YANKED)

* Ruby 3.1 compatibility and zookeeper client updates.
* This release had build issues in the wild and was yanked

1.5.1 (2021-11-16)

* Update config.guess to support newer environments (h/t: @malmckay)

1.5.0 (2021-09-27)

* (housekeeping) Moves build to Github Actions from TravisCI
* (housekeeping) Drops build support for MRI Ruby < 2.5 and other rubies
* Build on Ruby 3 (#99) (h/t: @malmckay)
* Build on MacOS (#98) (h/t: @malmckay)
* Work around compiler errors on newer versions of gcc (#97) (h/t:
  @nickmarden)
* Fix a typo on a has_key (#83) (h/t: @lexspoon)
* Adds support macOS dylib (#86) (h/t: @pftg)
* Fix compilation on ARM (#82) (h/t: @cdonati)
netbsd-srcmastr pushed a commit that referenced this pull request Jan 25, 2023
1.10.3 (2022-09-14)
* Added cWX, cWY, cWWidth, cWHeight constants (AttributeMask) (#82)
* Added FocusChangeEvent to data Event (#81)
* Added setWMNormalHints (#83)
netbsd-srcmastr pushed a commit that referenced this pull request Jan 25, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 25, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 25, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 25, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Jan 26, 2023
4.1.2.0
* Fix a problem with the pHPrint function incorrectly outputting a trailing
  newline to stdout, instead of the handle you pass it. #118
* Add a web app where you can play around with pretty-simple in your
  browser. #116. This took a lot of hard work by @georgefst!

4.1.1.0
* Make the pretty-printed output with outputOptionsCompact enabled a little
  more compact. #110. Thanks @juhp!
* Add a --compact / -C flag to the pretty-simple executable that enables
  outputOptionsCompact. #111. Thanks again @juhp!
* Add pTraceWith and pTraceShowWith to Debug.Pretty.Simple. #104. Thanks
  @LeviButcher!

4.1.0.0
* Fix a regression which arose in 4.0, whereby excess spaces would be
  inserted for unusual strings like dates and IP addresses. #105
* Attach warnings to debugging functions, so that they're easy to find and
  remove. #103
* Some minor improvements to the CLI tool:
  - Add a --version/-v flag. #83
  - Add a trailing newline. #87
  - Install by default, without requiring a flag. #94
netbsd-srcmastr pushed a commit that referenced this pull request Feb 6, 2023
1.7.0 (2022-11-17)

What's Changed

* Extract creation of Net::HTTP in httpproxy by @wishdev in #41
* Fix httpd error in CJK directory by @jeremyevans in #42
* Use GitHub Actions instead of Travis CI (retry) by @deivid-rodriguez in
  #40
* Skip env-locale-sensitive CGI test on the "java" platform by @headius in
  #46
* Make readpartial limit chunk to appropriate size by @wishdev in #45
* Do not use ensure in a block without begin by @jeremyevans in #49
* Allow empty POST and PUT requests without content length by @jeremyevans
  in #50
* Only run test_big_bodies test on Ruby 2.5+ by @jeremyevans in #51
* Fix test when run with US-ASCII encoding by @jeremyevans in #52
* Allow shutdown_pipe to be passed in via @config by @wishdev in #44
* Ensure server port numbers are numeric and ensure they are stored as
  ... by @wishdev in #55
* Fix shutdown_pipe test issue by @wishdev in #54
* Allow EPROTOTYPE error when writing junk to a socket by @jeremyevans in
  #56
* Use ruby/setup-ruby instead of actions/setup-ruby by @hsbt in #58
* Refix test_shutdown_pipe by @wishdev in #59
* add mime type of extention mjs by @paulownia in #60
* Make it more strict to interpret some headers by @mame in #61


1.8.0 (2023-01-27)

What's Changed

* Use frozen strings by @kirs in #65
* Use test-unit by @hsbt in #66
* More rubies on CI, deprecating ruby 2.3 due to test failure by
  @mathieujobin in #68
* Adds common mime types by @gotoken in #75
* add mime type for .webmanifest extension by @olleolleolle in #76
* CI: use bundler-cache: true by @olleolleolle in #79
* Typo by @printfinn in #78
* s/RubyVM::JIT/RubyVM::MJIT/g by @k0kubun in #82
* Fix invalid use of IP addresses in SNI by @jeremyevans in #83
* Bump actions/checkout from 2 to 3 by @dependabot in #91
* remove unneeded bin/console and bin/setup files from gemspec by
  @Benjamin-L in #94
* Accept put requests by @bharjr01 in #70
* Move the host request parsing to a separate method. by @wishdev in #85
* Only output prime information to $stderr if $VERBOSE by @jeremyevans in
  #88
* Better support for connection upgrade and bi-directional streaming. by
  @ioquatix in #101

1.8.1 (2023-01-27)

What's Changed

* Body should be non-frozen by default. by @ioquatix in #103
* Join test thread. by @ioquatix in #104
* Fix several regexp warnings. by @ioquatix in #105
netbsd-srcmastr pushed a commit that referenced this pull request Mar 30, 2023
[1.6.0] - 2023-03-20
What's Changed
 - Add NetBSD instructions by @0323pin in #77
 - Add repology badge by @jubalh in #76
 - fix issue where level wasn't being read from config by @solidiquis in #78
 - add scoop manifest by @fawni in #80
 - default to num logical cpus rather than 4 threads by @solidiquis in #81
 - Add support for generating shell completions by @Brezak in #82
 - Fix miscoloration of directories that have extension by @fawni in #83
 - [Optimization] - Upgraded heap-based tree data structure to an index-tree
   by @solidiquis in #86
 - Replace tempdir crate with tempfile crate by @Brezak in #87
 - fix issue where ansi escapes were being printed raw on windows
   by @solidiquis in #90
netbsd-srcmastr pushed a commit that referenced this pull request Apr 30, 2023
1.21.1 (2023-03-20)

* Changed version description of PDF PRODUCER. (#83)
* fix isValidCSSSelectorForTag method. (#82)
* Improved compatibility with ImageMagick 7.1.1-0 and later when using
  mini_magick. (#81)
* Fixed parsepng method to support transparent GIF and PNG tRNS
  transparency. (#80)
* ImageMagick7 support in RMagick 5.2.0. (#79)
* Add support WebP image. (#77)
netbsd-srcmastr pushed a commit that referenced this pull request May 26, 2023
Pkgsrc changes:
 * Only checksums.

Upstream changes:
2023-05-26 1.10.0
        New features:
        - Native dynamic discovery for NAPTR and SRV records (#2, #83)
        - Optionally log accounting requests when respoinding directly (#72)
        - SNI support for outgoing connections (#90)
        - Optionally specify server name for certificate name check (#106)
        - Manual MTU setting for DTLS on non-linux platforms

        Misc:
        - Don't require server type to be set by dyndisc scripts
        - Improve locating openssl lib using pkg-config

        Bug Fixes:
        - Fix radius message length handling

2023-05-02 1.9.3
        Bug Fixes:
        - Fix shutdown TLS connection on malformed radius message (#122)
        - Fix handling of lost requests in DTLS
        - Fix flush requests when dyndisc fails
netbsd-srcmastr pushed a commit that referenced this pull request Jun 26, 2023
What's Changed
 - Fixed: Release GitHub action by @AmmarAbouZor in #53
 - Added: Tags (Categories) for journal + Filter Function
   by @AmmarAbouZor in #56
 - Changed: Keep journals list in focus after closing the external editor
   by @AmmarAbouZor in #58
 - Added: Select-Tags Popup in Create/Edit Journals Prompt
   by @AmmarAbouZor in #62
 - Changed: Add Filter Keybindings To Footer by @AmmarAbouZor in #64
 - Added: Search Functions in Filter by @AmmarAbouZor in #66
 - Added: Create Cleanup Cache GitHub Action by @AmmarAbouZor in #73
 - Added: Wiki Documentation by @AmmarAbouZor in #76
 - Added: automatic version increment and CFF self-maintenance
   by @kevinmatthes in #79
 - Allow Release Action To Start Manually by @AmmarAbouZor in #83
netbsd-srcmastr pushed a commit that referenced this pull request Oct 29, 2023
4.2.2
* Adding rate limit for RST_STREAM to work around CVE-2023-44487. #94

4.2.1
* This version is identical to v4.2.0 by accident.

4.2.0
* Treating HALF_CLOSED_LOCAL correctly. #90
* Ensuring that GOAWAY is sent after DATA in the client side. #89
* Test uses a random port instead of 8080.
* Breaking change: adding two optional SockAddrs to Config to be copied
  into Aux.
* Close all streams on termination. #83
* Introducing OutBodyStreamingUnmask #80
* Introducing KilledByHttp2ThreadManager instead of ThreadKilled. #79 #81
  #82
* Handle RST_STREAM with NO_ERROR. #78
* Internal changes: #74
* Breaking change: Client is generalized into (forall b. Request ->
  (Response -> IO b) -> IO b) -> IO a. The RankNTypes language extension is
  required. #72

4.1.3
* Using crypton instead of cryptonite.

4.1.2
* Removing the race of frameSender and frameReceiver in the server
  side. This fixes the loss of RST_Stream and TLS bad MAC error. #67

4.1.1
* Fixing memory-blow-up due to no flow control. #62 #66

4.1.0
* Implementing streaming from the client side. #41
* Making use of SettingsMaxFrameSize #44 #57
* Disabling flow control #55
* Fixing buffer overrun by trailers #52
* Proper use of settings
* Breaking change: the data structure of Next was changed. The http3
  package is influenced.

4.0.0
* Breaking change: HTTP2Error is redefined.
* Breaking change: FrameTypeId, SettingsKeyId and ErrorCodeId are
  removed. Use FrameType, SettingsKey and ErrorCode instead.
* A client can receive a concrete HTTP2Error.
* Catching up RFC 9113. Host: and :authority cannot disagree.
* Breaking change: Network.HTTP2 and Network.HTTP2.Priority are removed.
* Breaking change: obsoleted stuff are removed.
netbsd-srcmastr pushed a commit that referenced this pull request Dec 11, 2023
0.12.0 (2023-12-09)
-------------------

Major changes:

- Dropped support of EOL Python 3.7. See `Pull #82`_.


API changes:

- Signature of protected method `pathspec.pathspec.PathSpec._match_file()` has been changed from `def _match_file(patterns: Iterable[Pattern], file: str) -> bool` to `def _match_file(patterns: Iterable[Tuple[int, Pattern]], file: str) -> Tuple[Optional[bool], Optional[int]]`.

New features:

- Added `pathspec.pathspec.PathSpec.check_*()` methods. These methods behave similarly to `.match_*()` but return additional information in the `pathspec.util.CheckResult` objects (e.g., `CheckResult.index` indicates the index of the last pattern that matched the file).
- Added `pathspec.pattern.RegexPattern.pattern` attribute which stores the original, uncompiled pattern.

Bug fixes:

- `Issue #81`_: GitIgnoreSpec behaviors differ from git.
- `Pull #83`_: Fix ReadTheDocs builds.

Improvements:

- Mark Python 3.12 as supported. See `Pull #82`_.
- Improve test debugging.
- Improve type hint on *on_error* parameter on `pathspec.pathspec.PathSpec.match_tree_entries()`.
- Improve type hint on *on_error* parameter on `pathspec.util.iter_tree_entries()`.


.. _`Issue #81`: cpburnz/python-pathspec#81
.. _`Pull #82`: cpburnz/python-pathspec#82
.. _`Pull #83`: cpburnz/python-pathspec#83
netbsd-srcmastr pushed a commit that referenced this pull request Apr 2, 2024
Updates
 - All amount fields now recognize 'k' and 'm' number suffixes as a thousand
   and a million allowing usage of 1k, 5m.
 - The initial page text layout has been updated.
 - The Home page now has two more rows in the Balance section highlighting
   daily income and expense amount.
 - Pressing 'v' on a selected transaction/activity will show the full
   transaction details. Useful in case the detail is too large.
 - The chart page now has the option to enable/disable TX methods from the
   chart on the 'space' press.
 - All popups have been updated and now can be scrolled using the Arrow Up
   or Down keys.
 - The Add Transaction page now shows the transaction impact as the fields
   are filled up.
 - The number animation system has been improved with reduced/minimal freezing.
 - All dependencies and Rust have been updated to the latest version.

Changes
 - Recognize number suffix by @TheRustyPickle in #76
 - Revamp initial page by @TheRustyPickle in #77
 - Add daily income and expense rows by @TheRustyPickle in #79
 - Show tx details on V key press by @TheRustyPickle in #81
 - Add chart point selection by @TheRustyPickle in #83
 - Add scrolling to all popup by @TheRustyPickle in #84
 - Fix number suffix crash by @TheRustyPickle in #85
 - Show balance change from a tx on add tx page by @TheRustyPickle in #86
 - Dependency updates by @TheRustyPickle in #87
 - Update version by @TheRustyPickle in #88
netbsd-srcmastr pushed a commit that referenced this pull request Apr 30, 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.
netbsd-srcmastr pushed a commit that referenced this pull request Jun 27, 2024
### 1.8.10 - 15 June 2024

 * feature: new "`--output`" option to write to a file instead of standard output (pull request [#90](https://codeberg.org/a-j-wood/pv/pulls/90)) supplied by [xmort](https://codeberg.org/xmort)

### 1.8.9 - 21 April 2024

 * feature: new "`--si`" option to display and interpret size suffixes in multiples of 1000 rather than 1024 (pull request [#85](https://codeberg.org/a-j-wood/pv/pulls/85)) supplied by [kevinruddy](https://codeberg.org/kevinruddy)
 * fix: continue producing progress output when the output is blocking writes ([#34](https://codeberg.org/a-j-wood/pv/issues/34), [#86](https://codeberg.org/a-j-wood/pv/issues/86), [#87](https://codeberg.org/a-j-wood/pv/issues/87))
 * fix: honour the _TMPDIR_ / _TMP_ environment variables again, rather than hard-coding "`/tmp`", when using a terminal lock file (originally removed in 1.8.0) ([#88](https://codeberg.org/a-j-wood/pv/issues/88))
 * i18n: corrections and missing strings added to French translations (pull request [#83](https://codeberg.org/a-j-wood/pv/pulls/83)) supplied by [Thomas Bertels](https://codeberg.org/tbertels)

### 1.8.5 - 19 November 2023

 * fix: corrected percentage formatting so it doesn't jump from 2 to 3 characters wide at 100% ([#80](https://codeberg.org/a-j-wood/pv/issues/80))
 * fix: replaced "`--remote`" mechanism, using a temporary file instead of SysV IPC, so it can work reliably even when there are multiple PV instances
 * fix: corrected compilation failure when without IPC support
 * security: addressed all issues highlighted by the software auditing tools "`splint`" and "`flawfinder`" (see "`make analyse`") ([#77](https://codeberg.org/a-j-wood/pv/issues/77))
 * cleanup: compilation warnings fixed on non-IPC and MacOS systems

### 1.8.0 - 24 September 2023

#### Features

 * feature: new "`--discard`" option to discard input as if writing to */dev/null* ([#42](https://codeberg.org/a-j-wood/pv/issues/42))
 * feature: new "`--error-skip-block`" option to make "`--skip-errors`" skip whole blocks ([#37](https://codeberg.org/a-j-wood/pv/issues/37))
 * feature: use `posix_fadvise()` like `cat`(1) does, to improve efficiency ([#39](https://codeberg.org/a-j-wood/pv/issues/39))
 * feature: new "`--enable-static`" option to "`configure`" for static builds ([#75](https://codeberg.org/a-j-wood/pv/pull/75))

#### Security

 * security: with "`--pidfile`", write to a temporary file and rename it into place, to improve security
 * security: keep self-contained copies of name and format string in PV internal state for memory safety
 * security: ignore _TMP_ / _TMPDIR_ environment variables when using a terminal lock file

#### Fixes

 * fix: only report errors about missing files when starting to transfer from them, not while calculating size, and behave more like `cat`(1) by skipping them and moving on
 * fix: auto-calculate total line count with "`--line-mode`" when all inputs are regular files
 * fix: use `clock_gettime()` in ETA calculation to cope with machine suspend/resume ([#13](https://codeberg.org/a-j-wood/pv/issues/13))
 * fix: if "`--width`" or "`--height`" were provided, do not change them when the window size changes ([#36](https://codeberg.org/a-j-wood/pv/issues/36))
 * fix: when a file descriptor position in "`--watchfd`" moves backwards, show the rate using the correct prefix ([#41](https://codeberg.org/a-j-wood/pv/issues/41))
 * fix: rewrite terminal state save/restore so state is not intermittently garbled on exit when using "`--cursor`" ([#20](https://codeberg.org/a-j-wood/pv/issues/20)), ([#24](https://codeberg.org/a-j-wood/pv/issues/24))

#### Cleanups

 * cleanup: addressed many potential issues highlighted by the software auditing tools "`splint`" and "`flawfinder`" (see new target "`make analyse`")
 * cleanup: switched the build system to GNU Automake
 * cleanup: replaced the test harness with the one native to GNU Automake
 * cleanup: added a test for terminal width detection to "`make check`"
 * cleanup: added a test to "`make check`" to ensure that "`make install`" installs everything expected
 * cleanup: replaced *AC_HEADER_TIOCGWINSZ* with *AC_CHECK_HEADERS(sys/ioctl.h)* for better MacOS compatibility ([#74](https://codeberg.org/a-j-wood/pv/issues/74))
 * cleanup: with "`--sync`", call `fsync()` instead of `fdatasync()` on incapable systems ([#73](https://codeberg.org/a-j-wood/pv/issues/73))
 * cleanup: the manual is now a static file instead of needing to be built with "`configure`"

#### Dropped items

 * dropped: dropped support for "`--enable-static-nls`"
 * dropped: removed the Linux Software Map file, as the LSM project appears to be long dead
 * dropped: will no longer publish to SourceForge as it has a chequered history and is unnecessary
 * dropped: removed project from GitHub and moved to Codeberg - see "[Give Up GitHub](https://giveupgithub.org/)"

#### Other items

 * licensing change from Artistic 2.0 to GPLv3+

### 1.7.24 - 30 July 2023

 * fix: correct terminal size detection, broken in 1.7.17 by the configuration script rewrite ([#72](https://codeberg.org/a-j-wood/pv/issues/72))
 * security: removed *DEBUG* environment variable in debug mode, added "`--debug`" instead
 * cleanup: added "`make analyse`" to run "`splint`" and "`flawfinder`" on all source files
 * cleanup: corrected detection of boolean capability
 * cleanup: word wrapping of "`--help`" output is now multi-byte locale aware
 * cleanup: adjusted "`indent`" rules to line length of 120 and reformatted code

### 1.7.18 - 28 July 2023

 * fix: language file installation had been broken by the configuration script rewrite

### 1.7.17 - 27 July 2023

 * feature: new "`--sync`" option to flush cache to disk after every write (related to [#6](https://codeberg.org/a-j-wood/pv/issues/6), to improve accuracy when writing to slow disks)
 * feature: new "`--direct-io`" option to bypass cache - implements [#29 "Option to enable *O_DIRECT*"](https://codeberg.org/a-j-wood/pv/issues/29) - requested by Romain Kang, Jacek Wielemborek
 * fix: correct byte prefix size to 2 spaces in rate display, so progress display size remains constant at low transfer rates
 * cleanup: rewrote `configure.in` as per suggestions in newer "`autoconf`" manuals
 * cleanup: replaced `header.in` with one generated by "`autoheader`", moving custom logic to a separate header file "`config-aux.h`"
 * cleanup: added copyright notice to all source files as per GNU standards
 * cleanup: changed "`--version`" output to conform to GNU standards
 * cleanup: replaced backticks with `$()` in all shell scripts that did not come from elsewhere, as backticks are deprecated and harder to read
 * cleanup: improved the output formatting of "`make test`"
 * cleanup: extended the "`make test`" mechanism to allow certain tests to be skipped on platforms that cannot support them
 * cleanup: skip the "pipe" test (for *SIGPIPE*) if GNU "`head`" is not available, so that "`make test`" on stock OpenBSD 7.3 works
 * cleanup: added a lot more tests to "`make test`"
 * cleanup: replace all calls to `sprintf()` and `snprintf()` with a new wrapper function `pv_snprintf()` to improve security and compatibility
 * cleanup: replace all calls to `strcat()` with a wrapper `pv_strlcat()` to improve security and compatibility
 * cleanup: replace all `write()` calls to the terminal with a wrapper `pv_write_retry()` for consistency
 * cleanup: tidy up and fix compilation warning in "`--watchfd`" code
 * cleanup: rewrote all local shell scripts to pass analysis by [ShellCheck](https://www.shellcheck.net)

### 1.7.0 - 17 July 2023

 * dropped: support for Red Hat Enterprise Linux and its derivatives has been dropped; removed the RPM spec file, and will no longer build binaries
 * feature: the "`--size`" option now accepts "`@filename`" to use the size of another file (pull request [#57](https://codeberg.org/a-j-wood/pv/pull/57) supplied by [Dave Beckett](https://github.com/dajobe))
 * feature: the "`--watchfd`" option is now available on OS X (pull request [#60](https://codeberg.org/a-j-wood/pv/pull/60) supplied by [christoph-zededa](https://github.com/christoph-zededa))
 * feature: new "`--bits`" option to show bit count instead of byte count (adapted from pull request [#63](https://codeberg.org/a-j-wood/pv/pull/63) supplied by [Nick Black](https://nick-black.com))
 * feature: new "`--average-rate-window`" option, to set the window over which the average rate is calculated, also used for ETA (modified from pull request [#65](https://codeberg.org/a-j-wood/pv/pull/65) supplied by [lemonsqueeze](https://github.com/lemonsqueeze))
 * feature: the "`--watchfd`" option will now show relative filenames, if they are under the current directory (pull request [#66](https://codeberg.org/a-j-wood/pv/pull/66) supplied by [ikasty](https://github.com/ikasty))
 * fix: correction to `pv_in_foreground()` to behave as its comment block says it should, when not on a terminal - corrects [#19 "No output in Arch Linux initcpio after 1.6.6"](https://codeberg.org/a-j-wood/pv/issues/19), [#31 "No output written from inside zsh <() construct"](https://codeberg.org/a-j-wood/pv/issues/31), [#55 "pv Stopped Working in the Background"](https://codeberg.org/a-j-wood/pv/issues/55) (pull request [#64](https://codeberg.org/a-j-wood/pv/pull/64) supplied by [Michael Weiß](https://github.com/quitschbo))
 * fix: workaround for OS X 11 behaviour in configure script regarding stat64 at compile time (pull request [#57](https://codeberg.org/a-j-wood/pv/pull/57) supplied by [Dave Beckett](https://github.com/dajobe))
 * fix: workaround for macOS equivalence of stat to stat64 - patches from [Filippo Valsorda](https://github.com/FiloSottile) and [Demitri Muna](https://github.com/demitri), correcting [#33 "Fix compilation problems due to `stat64()` on Apple Silicon"](https://codeberg.org/a-j-wood/pv/issues/33)
 * fix: add burst rate limit to transfer, so rate limits are not broken by bursty traffic (pull request [#62](https://codeberg.org/a-j-wood/pv/pull/62) supplied by [Volodymyr Bychkovyak](https://github.com/vbychkoviak))
 * fix: corrected "`--force`" option so it will still output progress when not in the same process group as the owner of the terminal - corrects [#23 "No output with "`-f`" when run in background after 1.6.6"](https://codeberg.org/a-j-wood/pv/issues/23) and helps to correct [#31 "No output written from inside zsh <() construct"](https://codeberg.org/a-j-wood/pv/issues/31)
 * fix: corrected elapsed time display to show as D:HH:MM:SS after 1 day, like the ETA does - corrects [#16 "Show days in same format in ETA as in elapsed time"](https://codeberg.org/a-j-wood/pv/issues/16)
 * fix: corrected bug where percentages went down after 100% when in "`--numeric`" mode with a "`--size`" that was too small - corrects [#26 "Correct "`-n`" behaviour when going past 100% of "`-s`" size"](https://codeberg.org/a-j-wood/pv/issues/26)
 * i18n: recoded Polish translation file to UTF-8
 * i18n: removed inaccurate fuzzy translation matches
 * docs: moved all open issues into GitHub and updated the TODO list
 * docs: renamed README to README.md and altered it to Markdown format
 * docs: moved contributors from the README to docs/ACKNOWLEDGEMENTS.md
 * docs: moved TODO to TODO.md and altered it to Markdown format
 * docs: moved NEWS to NEWS.md, converted it to UTF-8, and altered it to Markdown format
netbsd-srcmastr pushed a commit that referenced this pull request Jul 19, 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
netbsd-srcmastr pushed a commit that referenced this pull request Nov 8, 2024
2.4.0 - 2024-11-03
Added
    add mode keyword
    (filter) add auto_lightness filter
    (filter) add camel_case filter
    custom expr and block prefix, postfix
    feature-gated web-image
    feature-gated dumping json
    feature-gated update-informer
    (filters) add invert, grayscale and set_hue`
    add timestamp to debug logs
    add more info to debug mode
    add pre_hook and post_hook (#100)
    improve error message for color parsing
    change resize filter to Lanczos3 (#89)
    increase windows stack size to 8mb (fixes #87)
    fix relative paths for templates, format compare_to (#83)
    add template formatting for hook (#83)
    add hook and variables inside it (#83)
    add color comparsion (#83)
    add --prefix argument
    add version_check setting (#78)

Fixed
    --help flag not recognized (#112)
    parse color bug for rgb (#107)
    (nix) add dump-json feature build flag
    dump_json BTreeSet index
    apply more aggressive clippy lints
    removed deprecated default_features
    removed unused dependency
    cargo fmt & alejandra (nix formatter)
    made unix version compile
    wrong display of alpha channel for set_alpha (#95)
    divide all alpha values by 255 for output (#95)
    make hooks not depend on colors_to_compare (#93)
    remove useless debugging
    update arguments to remove borrow error (#85)

Other
    run cargo fmt
    made contrast configurable in nix module
    make nix module able to generate from color or wallpaper.
    add backup config option to add in anything that isn't explicitly supported
    add custom colors option to nix module.
    format code
    add criterion bench
    move some stuff into template_util (prepare for criterion)
    add schemes_eq test
    use BTreeSet, remove ahash and IndexMap
    move template into src/
    Create rustfmt.yml
    update dependencies with breaking changes
    sorted dependencies
    removed unused dependency features
    made enquote only required for builds targeting macOS
    moved scheme out of module with only 1 file
    cargo update
    removed dependency proper-path-tools
    move some stuff into lib instead
    remove useless stuff, add clippy rules
    run cargo fmt + clippy fix
    oops bad merge (#95)
    Merge branch 'main' of https://github.com/InioX/matugen
    add float parameter for format_hsla and format_rgba (#95)
    update CHANGELOG.md
    add the set_alpha filter to the engine
    add format_rgba_float and format_hsla_float functions to format the alpha value as a float instead of u8
    add set_alpha filter
    Nix module: add package option
    bump material-colors to 0.4.0
    rename compared_color to closest_color (#83)
    separate some stuff into functions
    format code
    run cargo fmt
    (readme) update version badges

Added
    add set_alpha filter
netbsd-srcmastr pushed a commit that referenced this pull request Dec 10, 2024
Upstream changes from 1.9 -> 1.10:
New:
- better syntax highlighting (WIP)
- #97, M-. dynamic-expand

Enhancements:
- #92, made the buffer switching more sane
- #98, copy default value in msgline (M-y in msgline)
- slightly more efficient rendering
- #94 (kinda), you can search for `\t` now

Bugs:
- #98, fixed bug with eol and bol
- #99, multiline comments not encapsulating entire region
- comment multi-line point annoyance
- #101, fixed concatenating delete-words on NetBSD
- many minor bugs


Upstream changes from 1.8 -> 1.9:
New Features:
- #83, undoing/yanking from consecutive fwd-word-delete and
  back-word-delete. See man page for explanation.
- #88, use previous value as default for gotoline, gotocolumn,
  zap-/jump-to-char, and delete-between
- #91, added kill-ring
- New switch buffer command option
  - this allows you to specific a custom command to run when
    switching buffers. For example, if you want to be able to
    perform fuzzy searching to select your buffer you can put
    fzf(1) or pick(1) as the command. More information in the
    page in the commands section on switch buffer command flag.
- "C-x p" for previous-buffer, similar to next-buffer.
  - this removes the legacy "C-x l" command for last-buffer
- Comment out multilines with a single line string

Enhancements:
- #89, fixed "bug" with keyboard macros.
  - you can know use gotoline/column, zap-/jump-to-char,
    delete-between, jumptorow, jumptoword, isearch with kbd
    macros
- #8, tab completion on shell-/open-command
- improved tab completion across the board:
  - buffer tabbing now loops back to the start
  - file tabbing now puts in the / for the directory
    - use enter or type another char to enable tab completion inside
      the directory
- update line number when isearching
- update other windows' modelines if buffer name was updated

Bugs:
- #87, crash when terminal is resized and ait is suspended
- #65, fixed first line disappears again...
- #90, fixed universal argument not clearing
- more undo fixes
- reframe when using query-relace ! takes you off page
- fixed bugs with open-command messing up with colons
- fixed bug with isearch that caused duplciate query chars to not
  get highlighted
- fixed long time bug where if the newlines between matching
  brackets is greater than the difference between the previous
  point's row and the total window row
netbsd-srcmastr pushed a commit that referenced this pull request Jan 27, 2025
xca 2.8.0 Sun Oct 13 2024
-------------------------

 * Add SHA3 algorithms to the select box
 * Close #593: App freezes/crashes when trying to export certain keys
 * Close #306 #537: Allow Database-driver options in config file
 * Close #537: macos: Compile mariadb-connector and qsqlmysql
 * Close #152: How can we specify the Cryptographic Service Provider
 * Close #590: MacOS OpenSSL legacy provider not loaded
 * Close #199: Templates and Key Identifiers
 * Close #239: Check existing Name Constraints
 * Add OpenSSL PURPOSE and validation results
 * Close #587: Incomplete refactoring of adapt_explicit_subj
 * Combine #90 and #315 and support UPN in name constraints
 * Close #90, #361: Name Constraints (RFC5280 section 4.2.1.10)
 * Close #296: Proper plurals
 * Close #88: Export to multiple files with common or individual password
 * Close #313: Support JWK export format of certificates
 * Close #359: Symlink to PKCS#11 lib resolved
 * Close #552: issues with icons in gnome dock
 * Close #315 Support UPN type for EAP/802.1X certificate
 * Add korean translation
 * Close #287: template don't save/restore correctly
 * Close #351: a1int::getLong() doesn't handle all error cases
 * Close #401: Write PEM data to a file especially for crlgen
 * Close #548: export certificate: error using child folder
 * Close #391: hide expired and revoked certificates

xca 2.7.0 Tue Aug 27 2024
-------------------------

 * Close #311: Install QT translation files again
 * Close #304: oids.txt not found etc if prefix non-standard
 * Add cmdline option to disable native dialogs
 * Close #364: Export ED25519 private key with password
 * Switch encryption in "Cert+PKCS#8" and "Database dump
   mode from DES3-EDE to AES-256
 * Drop support of encrypted PVK files.
 * Windows/Mac build: switch to QT 6.6.3
 * Close #554: Missing option to disable file association in Windows setup
 * Close #395: Flexible Clipboard Export
 * Close #550: Fix compiling tests issue by providing -pthread link flag.
 * Fix calendar export for CAs
 * Support importing existing OpenVPN TLS Auth keys
 * Fix "Copy extensions from request" function
 * Fix login via PinPad on e.g ReinerSCT
 * Extend #383: tag insecure PFX/PKCS#12 algorithms
 * Close #536: macos include OpenSSL legacy provider
 * Close #532: XCA not in English on macos
 * Close #89: ta.key for OpenVPN tls-auth
 * Close #496: PKCS11 access to AWS CloudHSM failed
 * Yubikey improvements

xca 2.6.0 Mon Feb 26 2024
-------------------------

 * Update documentation of certificate export and remote databases
 * Close #520: Fix permanent processor load
 * Close #518: Export certificates for ovpn file
 * Close #512 #474 #481 #506 #509: SHA1 based MAC for PKCS12
 * Close #458 #511 #503 #500 #494 #484 #482 #475: Support legacy keys
   and automatically transform them if possible.
 * Close #493: Renew Certificate freeze XCA
 * Close #477: paste an encrypted private key results in a crash
 * Fix crash when deleting CA certificates
 * Close #480: add flatpak build information and github action
 * Close #402: Subject Alternative Name not filled by all CN
 * Improve import: Finish multi import when empty
 * Add File extensions in Info.plist supported by XCA
 * Close #384: Quick view of certificates without trying to open XCA
 * Close #459: pass private key password
 * Close #465: Export PEM + Key in one File
 * Close #460: Impossible to import PKCS#12 (RC40_CBC)
 * Make XCA AppStore compliant with -DAPPSTORE_COMPLIANT=ON

xca 2.5.0 Sun Sep 24 2023
-------------------------

 * Close #423: parameter --name is not respected when running with CLI
 * Close #457: Support Qt5 < 5.12 / python3-sphinxcontrib.qthelp
 * Close #440: yellow background makes date text hard to read in dark themes
 * Close #437: loading CRL at startup generates an error
 * Close #444 cannot update template internal name
 * Close #442: asan checks failed
 * Close #446: show more information in Recent Databases
 * Improve/Fix database loading
 * Document vCalendar/ics feature #456
 * Fix possible segfault caused by wrong free()
 * Add Bulgarian translation
 * Close #368: error while creating CRL with CA using EC key (ed25519)
 * Treat CKA_ID as byte array, not Bignum
 * Fix #321 - decryptKey shows OpenSSL error
 * Merge #325 Update entitlement.plist
 * Close #366: Not Responding after upgrade
 * Add Persian translation .ts file to XCA.
 * Close #327: "Dump database" dumps everything to everywhere
 * Close #317: "Please insert card: ..." message
 * Add Indonesian translation
 * Close #283 Nitrokey HSM2 can't create EC keys on 2.4.0
 * Switch from autotools/qmake to cmake
 * Close #278: Miss components to connect remote database
 * Commandline: Add "--list-items" to print a list of database items
 * Close #67: possibility to ignore password prompt from CLI
 * Close #259: Follow the XDG base directory specification
 * Add support for Qt6 and OpenSSL 3.x
 * Drop support for Qt4
 * Drop support for old XCA < 2.0.0 databases
 * Drop support for OpenSSL < 1.1.0

xca 2.4.0 Fri May 07 2021
-------------------------

 * Unify XCA icon (certificate) on all platforms
 * Close #247: Apple silicon (M1) configure fixes
 * Add Microsoft BitLocker extended key usage
 * Disregard OpenSSL 0.9.8 compatibility
 * Add bash completion script
 * Add context sensitive help
 * Convert documentation from linuxdoc/SGML to sphinxdoc
 * Close #258: xca aborts on exit and on access to own templates
 * Close #142: Support Ed25519 Import / Export private SSH2 key
 * Close #142: Support Ed25519: Key-generation, import, export
 * Close #251: AuthorityKeyIdentifier: use issuer:always
 * Change language maintainer of brazilian portuguese
 * Close #230: Change PKCS12 export extension from .p12 to .pfx
 * Close #208: XCA hung when importing EC keys. For example prime256v1
 * Close #210: Make dialog to edit SAN less strict
 * Close #224: Store original path/filename on import
 * Close #213: configure.ac: add description to AC_DEFINE_UNQUOTED
 * Close #172 #46: Multiple OCSP Responders
 * Store default database and recently opened file as UTF8
 * Close #157 Generate and export CRLs from commandline
 * Add command line support for creating CRLs, keys and analyzing items

xca 2.3.0 Wed Apr 29 2020
-------------------------

 * Close #191 OID LN differs warning popups at startup
 * Close #189 Database compaction #189
 * Improve PKCS11 library loading for portable app
 * Refactor native separators / and \ on windows.
 * Support TLS encrypted MariaDB and PostgreSQL connection
 * Close #182: UI not using Windows native theme in 2.2.1 portable
 * Close #70: cant open ics file in ical on macos mojave
 * Close #72: Add checkbox for OCSP staple feature
 * Use DESTDIR instead of destdir when installing. Follows autotools convention.
 * Close #172 #46: Multiple OCSP Responders
 * Close #170 xca-portable-2.2.1 cannot change language
 * Fix certificate assignment when importing a CA certificate
 * Close #163: Show key type/size on column of Certificates tab

xca 2.2.1 Thu Jan 30 2020
-------------------------

 * Close #159 Opening existing database

xca 2.2.0 Wed Jan 29 2020
-------------------------

 * Switch to MSI installer
 * Close #129 Unattended Installation
 * Rename HTTPS templates to TLS and support KU/EKU extensions needed by OpenVPN
 * Close #93 Default output folder / Improve Portable App usability
 * Improve EC Curve selection for key generation.
 * Close #21 Support for ODBC (MSSQL)
 * Close #136 Provide 64bit version of xca
 * Close #156 secp256k1, secp256r1 and NIST-P256
 * Transfer Key Usage and Extended Key Usage critical flags
 * Improve item loading. Inspired by #153
 * Add japanese translation
 * Close #138: Portable Version does not remember paths
 * Close #83: Token selection should not insist on name or serial of the token
 * Close #95: Copy mysql and psql windows dll files into portable app
 * Close #144: Database export has issues with wildcards in internal names
 * Close #143: Hotkey for import
 * Close #140: Certificate renewal with option to preserved serial number
 * Fix possible XCA crash
 * Add Dutch translation
 * Add Chinese translation
 * Add Italian language
 * CLose #120: Mark signed a request doesn't work
 * Close #119: Rename "PostgreSQL 6 and 7" to just "PostgreSQL"
 * Close #116: Duplicate extensions erroneously shown
 * Close #114: SAN - IPv6 address input not working
 * Close #68 Generating large DH params freezes UI
 * Support concurrent database access.
 * Close #91: Change order of "PKCS#11 provider"
 * Extend PEM files by human readable information about the item
 * Support ecdsa SSH public keys
 * Close #98 Add comment at import/export RSA keys from/to SSH public key
 * Close #101: Finish Rename with Enter shows Property Dialog
 * Close #104: Also show sha256 digests of public keys
 * Close #82: Renew CA ROOT Cert
 * Verify imported keys thoroughly
netbsd-srcmastr pushed a commit that referenced this pull request Feb 9, 2025
4.4.0 (2025-02-07)

* Adds Ruby 3.2 to the CI matrix (#81)
* Modernize gem (#83)
* Timer#fire: return result of block (#86)
netbsd-srcmastr pushed a commit that referenced this pull request Mar 30, 2025
## Changes in version 0.14.1

**Released on March 29th, 2025.**

* Issue #263: fix release tarball by relying on `make dist`.

* Document ATF to Kyua mappings for metadata properties.

* Support `require.diskspace` ATF metadata property.

* Support backwards compatible `unprivileged_user` metadata property for ease
  of use dealing with ATF vs Kyua.

* Fix building from source by tracking `utils/process/Kyuafile.in` and
  `engine/execenv/execenv_fwd.hpp` with automake.

## Changes in version 0.14

**Released on December 31st, 2024.**

* Replace `--with-atf` with `--enable-atf`. The latter must be specified
  to enable ATF support and the Kyua tests by proxy.

* Require newer versions of ATF (0.21) and Lutok (0.5). This is being done
  as part of a multi-phase deprecation of pre-C++11 environments.

* Vendor the ATF m4 files from the freebsd/atf repo.

* Translate `is_exclusive` metadata to its ATF counterpart.

* Issue #236: fix accidental test forkbomb in specific user environments
  with `integration` tests by avoiding infinite recursion calling kyua.

* Fix the build on Ubuntu 24.04.

- execenv support added. This FreeBSD-specific feature allows tests to be
  executed in jails.

* Issue #169: Remove deprecated `readdir_r` use.

* Fix build issue on more recent versions of MacOS.

* Fix build issue on IllumOS.

* Fix issues with PID reuse in testcases.

* Escape characters captured from stderr and stdout in HTML output.

* `integration/cmd_report_test:verbose`: fix regular expression used in
  tests which would break in certain user environments.

* Add Cirrus CI support for testing Kyua on FreeBSD.

* Remove `UTILS_UNUSED_PARAM` macro.

* Fix document rendering with newer versions of doxygen.

* Issue #152: explicitly require C++11 language features when compiling Kyua.
  Remove `std::shared_ptr` compatibility header, `utils/shared_ptr.hpp`.

* Fix `igor` and `mandoc -Tlint` reported issues with generated manpages.

* Issue #167: fix typos in kyua(1) manpage.

## Changes in version 0.13

**Released on August 26th, 2016.**

* Fixed execution of test cases as an unprivileged user, at least under
  NetBSD 7.0.  Kyua-level failures were probably a regression introduced
  in Kyua 0.12, but the underlying may have existed for much longer:
  test cases might have previously failed for mysterious reasons when
  running under an unprivileged user.

* Issue #134: Fixed metadata test broken on 32-bit platforms.

* Issue #139: Added per-test case start/end timestamps to all reports.

* Issue #156: Fixed crashes due to the invalid handling of cleanup
  routine data and triggered by the reuse of PIDs in long-running Kyua
  instances.

* Issue #159: Fixed TAP parser to ignore case while matching `TODO` and
  `SKIP` directives, and to also recognize `Skipped`.

* Fixed potential crash due to a race condition in the unprogramming of
  timers to control test deadlines.


## Changes in version 0.12

**Released on November 22nd, 2015.**

This is a huge release and marks a major milestone for Kyua as it finally
implements a long-standing feature request: the ability to execute test
cases in parallel.  This is a big deal because test cases are rarely
CPU-bound: running them in parallel yields much faster execution times for
large test suites, allowing faster iteration of changes during development.

As an example: the FreeBSD test suite as of this date contains 3285 test
cases.  With sequential execution, a full test suite run takes around 12
minutes to complete, whereas on a 4-core machine with a high level of
parallelism it takes a little over 1 minute.

Implementing parallel execution required rewriting most of Kyua's core and
partly explains explains why there has not been a new release for over a
year.  The current implementation is purely subprocess-based, which works
but has some limitations and has resulted in a core that is really complex
and difficult to understand.  Future versions will investigate the use of
threads instead for a simplified programming model and additional
parallelization possibilities.

* Issue #2: Implemented support to execute test cases in parallel when
  invoking `kyua test`.  Parallel execution is *only* enabled when the new
  `parallelism` configuration variable is set to a value greater than `1`.
  The default behavior is still to run tests sequentially because some test
  suites contain test cases with side-effects that might fail when run in
  parallel.  To resolve this, the new metadata property `is_exclusive` can
  be set to `true` on a test basis to indicate that the test must be run on
  its own.

* Known regression: Running `kyua debug` on a TAP-based test program does
  not currently report the output in real time.  The output will only be
  displayed once the test program completes.  This is a shortcoming of
  the new parallel execution engine and will be resolved.

* Removed the external C-based testers code in favor of the new built-in
  implementations.  The new approach feels significantly faster than the
  previous one.

* Fixed the handling of relative paths in the `fs.*` functions available
  in `Kyuafile`s.  All paths are now resolved relative to the location of
  the caller `Kyuafile`.  `Kyuafile.top` has been updated with these
  changes and you should update custom copies of this file with the new
  version.

* Changed temporary directory creation to always grant search
  permissions on temporary directories.  This is to prevent potential
  problems when running Kyua as root and executing test cases that require
  dropping privileges (as they may later be unable to use absolute paths
  that point inside their work directory).

* The cleanup of work directories does not longer attempt to deal with
  mount points.  If a test case mounts a file system and forgets to unmount
  it, the mount point will be left behind.  It is now the responsibility of
  the test case to clean after itself.  The reasons for this change are
  simplicity and clarity: there are many more things that a test case can
  do that have side-effects on the system and Kyua cannot protect against
  them all, so it is better to just have the test undo anything it might
  have done.

* Improved `kyua report --verbose` to properly handle environment
  variables with continuation lines in them, and fixed the integration
  tests for this command to avoid false negatives.

* Changed the configuration file format to accept the definition of
  unknown variables without declaring them local.  The syntax version
  number remains at 2.  This is to allow configuration files for newer Kyua
  versions to work on older Kyua versions, as there is no reason to forbid
  this.

* Fixed stacktrace gathering with FreeBSD's ancient version of GDB.
  GDB 6.1.1 (circa 2004) does not have the `-ex` flag so we need to
  generate a temporary GDB script and feed it to GDB with `-x` instead.

* Issue #136: Fixed the XML escaping in the JUnit output so that
  non-printable characters are properly handled when they appear in the
  process's stdout or stderr.

* Issue #141: Improved reporting of errors triggered by sqlite3.  In
  particular, all error messages are now tagged with their corresponding
  database filename and, if they are API-level errors, the name of the
  sqlite3 function that caused them.

* Issue #144: Improved documentation on the support for custom properties
  in the test metadata.

* Converted the `INSTALL`, `NEWS`, and `README` distribution documents to
  Markdown for better formatting online.


## Changes in version 0.11

**Released on October 23rd, 2014.**

* Added support to print the details of all test cases (metadata and
  their output) to `report`.  This is via a new `--verbose` flag which
  replaces the previous `--show-context`.

* Added support to specify the amount of physical disk space required
  by a test case.  This is in the form of a new `required_disk_space`
  metadata property, which can also be provided by ATF test cases as
  `require.diskspace`.

* Assimilated the contents of all the `kyua-*-tester(1)` and
  `kyua-*-interface(7)` manual pages into more relevant places.  In
  particular, added more details on test program registration and their
  metadata to `kyuafile(5)`, and added `kyua-test-isolation(7)`
  describing the isolation features of the test execution.

* Assimilated the contents of all auxiliary manual pages, including
  `kyua-build-root(7)`, `kyua-results-files(7)`, `kyua-test-filters(7)`
  and `kyua-test-isolation(7)`, into the relevant command-specific
  manual pages.  This is for easier discoverability of relevant
  information when reading how specific Kyua commands work.

* Issue #30: Plumbed through support to query configuration variables
  from ATF's test case heads.  This resolves the confusing situation
  where test cases could only do this from their body and cleanup
  routines.

* Issue #49: Extended `report` to support test case filters as
  command-line arguments.  Combined with `--verbose`, this allows
  inspecting the details of a test case failure after execution.

* Issue #55: Deprecated support for specifying `test_suite` overrides on
  a test program basis.  This idiom should not be used but support for
  it remains in place.

* Issue #72: Added caching support to the `getcwd(3)` test in configure
  so that the result can be overriden for cross-compilation purposes.

* Issue #83: Changed manual page headings to include a `kyua` prefix in
  their name.  This prevents some possible confusion when displaying,
  for example, the `kyua-test` manual page with a plain name of `test`.

* Issue #84: Started passing test-suite configuration variables to plain
  and TAP test programs via the environment.  The name of the
  environment variables set this way is prefixed by `TEST_ENV_`, so a
  configuration variable of the form
  `test_suites.some_name.allow_unsafe_ops=yes` in `kyua.conf` becomes
  `TEST_ENV_allow_unsafe_ops=YES` in the environment.

* Issues #97 and #116: Fixed the build on Illumos.

* Issue #102: Set `TMPDIR` to the test case's work directory when running
  the test case.  If the test case happens to use the `mktemp(3)` family
  of functions (due to misunderstandings on how Kyua works or due to
  the reuse of legacy test code), we don't want it to easily escape the
  automanaged work directory.

* Issue #103: Started being more liberal in the parsing of TAP test
  results by treating the number in `ok` and `not ok` lines as optional.

* Issue #105: Started using tmpfs instead of md as a temporary file
  system for tests in FreeBSD so that we do not leak `md(4)` devices.

* Issue #109: Changed the privilege dropping code to start properly
  dropping group privileges when `unprivileged_user` is set.  Also fixes
  `testers/run_test:fork_wait__unprivileged_group`.

* Issue #110: Changed `help` to display version information and clarified
  the purpose of the `about` command in its documentation.

* Issue #111: Fixed crash when defining a test program in a `Kyuafile`
  that has not yet specified the test suite name.

* Issue #114: Improved the `kyuafile(5)` manual page by clarifying the
  restrictions of the `include()` directive and by adding abundant
  examples.


## Changes in version 0.10

**Experimental version released on August 14th, 2014.**

* Merged `kyua-cli` and `kyua-testers` into a single `kyua` package.

* Dropped the `kyua-atf-compat` package.

* Issue #100: Do not try to drop privileges to `unprivileged_user` when we
  are already running as an unprivileged user.  Doing so is not possible
  and thus causes spurious test failures when the current user is not
  root and the current user and `unprivileged_user` do not match.

* Issue #79: Mention `kyua.conf(5)` in the *See also* section of `kyua(1)`.

* Issue #75: Change the `rewrite__expected_signal__bad_arg` test in
  `testers/atf_result_test` to use a different signal value.  This is to
  prevent triggering a core dump that made the test fail in some platforms.


## Changes in kyua-cli version 0.9

**Experimental version released on August 8th, 2014.**

Major changes:

The internal architecture of Kyua to record the results of test suite
runs has completely changed in this release.  Kyua no longer stores all
the different test suite run results as different "actions" within the
single `store.db` database.  Instead, Kyua now generates a separate
results file inside `~/.kyua/store/` for every test suite run.

Due to the complexity involved in the migration process and the little
need for it, this is probably going to be the only release where the
`db-migrate` command is able to convert an old `store.db` file to the
new scheme.

Changes in more detail:

* Added the `report-junit` command to generate JUnit XML result files.
  The output has been verified to work within Jenkins.

* Switched to results files specific to their corresponding test suite
  run.  The unified `store.db` file is now gone: `kyua test` creates a
  new results file for every invocation under `~/.kyua/store/` and the
  `kyua report*` commands are able to locate the latest file for a
  corresponding test suite automatically.

* The `db-migrate` command takes an old `store.db` file and generates
  one results file for every previously-recorded action, later deleting
  the `store.db` file.

* The `--action` flag has been removed from all commands that accepted
  it.  This has been superseded by the tests results files.

* The `--store` flag that many commands took has been renamed to
  `--results-file` in line with the semantical changes.

* The `db-exec` command no longer creates an empty database when none
  is found.  This command is now intended to run only over existing
  files.


## Changes in kyua-testers version 0.3

**Experimental version released on August 8th, 2014.**

* Made the testers set a "sanitized" value for the `HOME` environment
  variable where, for example, consecutive and trailing slashes have
  been cleared.  Mac OS X has a tendency to append a trailing slash to
  the value of `TMPDIR`, which can cause third-party tests to fail if
  they compare `${HOME}` with `$(pwd)`.

* Issues #85, #86, #90 and #92: Made the TAP parser more complete: mark
  test cases reported as `TODO` or `SKIP` as passed; handle skip plans;
  ignore lines that look like `ok` and `not ok` but aren't results; and
  handle test programs that report a pass but exit with a non-zero code.


## Changes in kyua-cli version 0.8

**Experimental version released on December 7th, 2013.**

* Added support for Lutok 0.4.

* Issue #24: Plug the bootstrap tests back into the test suite.  Fixes
  in `kyua-testers` 0.2 to isolate test cases into their own sessions
  should allow these to run fine.

* Issue #74: Changed the `kyuafile(5)` parser to automatically discover
  existing tester interfaces.  The various `*_test_program()` functions
  will now exist (or not) based on tester availability, which simplifies
  the addition of new testers or the selective installation of them.


## Changes in kyua-testers version 0.2

**Experimental version released on December 7th, 2013.**

* Issue #74: Added the `kyua-tap-tester`, a new backend to interact with
  test programs that comply with the Test Anything Protocol.

* Issue #69: Cope with the lack of `AM_PROG_AR` in `configure.ac`, which
  first appeared in Automake 1.11.2.  Fixes a problem in Ubuntu 10.04
  LTS, which appears stuck in 1.11.1.

* Issue #24: Improve test case isolation by confining the tests to their
  own session instead of just to their own process group.


## Changes in kyua-cli version 0.7

**Experimental version released on October 18th, 2013.**

* Made failures from testers more resilent.  If a tester fails, the
  corresponding test case will be marked as broken instead of causing
  kyua to exit.

* Added the `--results-filter` option to the `report-html` command and
  set its default value to skip passed results from HTML reports.  This
  is to keep these reports more succint and to avoid generating tons of
  detail files that will be, in general, useless.

* Switched to use Lutok 0.3 to gain compatibility with Lua 5.2.

* Issue #69: Cope with the lack of `AM_PROG_AR` in `configure.ac`, which
  first appeared in Automake 1.11.2.  Fixes a problem in Ubuntu 10.04
  LTS, which appears stuck in 1.11.1.


## Changes in kyua-cli version 0.6

**Experimental version released on February 22nd, 2013.**

* Issue #36: Changed `kyua help` to not fail when the configuration file
  is bogus.  Help should always work.

* Issue #37: Simplified the `syntax()` calls in configuration and
  `Kyuafile` files to only specify the requested version instead of also
  the format name.  The format name is implied by the file being loaded, so
  there is no use in the caller having to specify it.  The version number
  of these file formats has been bumped to 2.

* Issue #39: Added per-test-case metadata values to the HTML reports.

* Issue #40: Rewrote the documentation as manual pages and removed the
  previous GNU Info document.

* Issue #47: Started using the independent testers in the `kyua-testers`
  package to run the test cases.  Kyua does not implement the logic to
  invoke test cases any more, which provides for better modularity,
  extensibility and robustness.

* Issue #57: Added support to specify arbitrary metadata properties for
  test programs right from the `Kyuafile`.  This is to make plain test
  programs more versatile, by allowing them to specify any of the
  requirements (allowed architectures, required files, etc.) supported
  by Kyua.

* Reduced automatic screen line wrapping of messages to the `help`
  command and the output of tables by `db-exec`.  Wrapping any other
  messages (specially anything going to stderr) was very annoying
  because it prevented natural copy/pasting of text.

* Increased the granularity of the error codes returned by `kyua(1)` to
  denote different error conditions.  This avoids the overload of `1` to
  indicate both "expected" errors from specific subcommands and
  unexpected errors caused by the internals of the code.  The manual now
  correctly explain how the exit codes behave on a command basis.

* Optimized the database schema to make report generation almost
  instantaneous.

* Bumped the database schema to 2.  The database now records the
  metadata of both test programs and test cases generically, without
  knowledge of their interface.

* Added the `db-migrate` command to provide a mechanism to upgrade a
  database with an old schema to the current schema.

* Removed the GDB build-time configuration variable.  This is now part
  of the `kyua-testers` package.

* Issue #31: Rewrote the `Kyuafile` parsing code in C++, which results in
  a much simpler implementation.  As a side-effect, this gets rid of the
  external Lua files required by `kyua`, which in turn make the tool
  self-contained.

* Added caching of various configure test results (particularly in those
  tests that need to execute a test program) so that cross-compilers can
  predefine the results of the tests without having to run the
  executables.


## Changes in kyua-testers version 0.1

**Experimental version released on February 19th, 2013.**

This is the first public release of the `kyua-testers` package.

The goal of this first release is to adopt all the test case execution
code of `kyua-cli` 0.5 and ship it as a collection of independent tester
binaries.  The `kyua-cli` package will rely on these binaries to run the
tests, which provides better modularity and simplicity to the
architecture of Kyua.

The code in this package is all C as opposed to the current C++ codebase
of `kyua-cli`, which means that the overall build times of Kyua are now
reduced.


## Changes in kyua-cli version 0.5

**Experimental version released on July 10th, 2012.**

* Issue #15: Added automatic stacktrace gathering of crashing test cases.
  This relies on GDB and is a best-effort operation.

* Issue #32: Added the `--build-root` option to the debug, list and test
  commands.  This allows executing test programs from a different
  directory than where the `Kyuafile` scripts live.  See the *Build roots*
  section in the manual for more details.

* Issue #33: Removed the `kyuaify.sh` script.  This has been renamed to
  atf2kyua and moved to the `kyua-atf-compat` module, where it ships as a
  first-class utility (with a manual page and tests).

* Issue #34: Changed the HTML reports to include the stdout and stderr of
  every test case.

* Fixed the build when using a "build directory" and a clean source tree
  from the repository.


## Changes in kyua-cli version 0.4

**Experimental version released on June 6th, 2012.**

* Added the `report-html` command to generate HTML reports of the
  execution of any recorded action.

* Changed the `--output` flag of the `report` command to only take a
  path to the target file, not its format.  Different formats are better
  supported by implementing different subcommands, as the options they
  may receive will vary from format to format.

* Added a `--with-atf` flag to the configure script to control whether
  the ATF tests get built or not.  May be useful for packaging systems
  that do not have ATF in them yet.  Disabling ATF also cuts down the
  build time of Kyua significantly, but with the obvious drawbacks.

* Grouped `kyua` subcommands by topic both in the output of `help` and
  in the documentation.  In general, the user needs to be aware of
  commands that rely on a current project and those commands that rely
  purely on the database to generate reports.

* Made `help` print the descriptions of options and commands properly
  tabulated.

* Changed most informational messages to automatically wrap on screen
  boundaries.

* Rewrote the configuration file parsing module for extensibility.  This
  will allow future versions of Kyua to provide additional user-facing
  options in the configuration file.

  No syntax changes have been made, so existing configuration files
  (version 1) will continue to be parsed without problems.  There is one
  little exception though: all variables under the top-level
  `test_suites` tree must be declared as strings.

  Similarly, the `-v` and `--variable` flags to the command line must
  now carry a `test_suites.` prefix when referencing any variables under
  such tree.


## Changes in kyua-cli version 0.3

**Experimental version released on February 24th, 2012.**

* Made the `test` command record the results of the executed test
  cases into a SQLite database.  As a side effect, `test` now supports a
  `--store` option to indicate where the database lives.

* Added the `report` command to generate plain-text reports of the
  test results stored in the database.  The interface of this command is
  certainly subject to change at this point.

* Added the `db-exec` command to directly interact with the store
  database.

* Issue #28: Added support for the `require.memory` test case property
  introduced in ATF 0.15.

* Renamed the user-specific configuration file from `~/.kyuarc` to
  `~/.kyua/kyua.conf` for consistency with other files stored in the
  `~/.kyua/` subdirectory.

* Switched to use Lutok instead of our own wrappers over the Lua C
  library.  Lutok is just what used to be our own utils::lua module, but
  is now distributed separately.

* Removed the `Atffile`s from the source tree.  Kyua is stable enough
  to generate trustworthy reports, and we do not want to give the
  impression that atf-run / atf-report are still supported.

* Enabled logging to stderr for our own test programs.  This makes it
  slightly easier to debug problems in our own code when we get a
  failing test.


## Changes in kyua-cli version 0.2

**Experimental version released on August 24th, 2011.**

The biggest change in this release is the ability for Kyua to run test
programs implemented using different frameworks.  What this means is
that, now, a Kyua test suite can include not only ATF-based test
programs, but also "legacy" (aka plain) test programs that do not use
any framework.  I.e. if you have tests that are simple programs that
exit with 0 on success and 1 on failure, you can plug them in into a
Kyua test suite.

Other than this, there have been several user-visible changes.  The most
important are the addition of the new `config` and `debug` subcommands
to the `kyua` binary.  The former can be used to inspect the runtime
configuration of Kyua after parsing, and the latter is useful to
interact with failing tests cases in order to get more data about the
failure itself.

Without further ado, here comes the itemized list of changes:

* Generalized the run-time engine to support executing test programs
  that implement different interfaces.  Test programs that use the ATF
  libraries are just a special case of this.  (Issue #18.)

* Added support to the engine to run `plain` test programs: i.e. test
  programs that do not use any framework and report their pass/fail
  status as an exit code.  This is to simplify the integration of legacy
  test programs into a test suite, and also to demonstrate that the
  run-time engine is generic enough to support different test
  interfaces.  (Issue #18.)

* Added the `debug` subcommand.  This command allows end users to tweak
  the execution of a specific test case and to poke into the behavior of
  its execution.  At the moment, all this command allows is to view the
  stdout and stderr of the command in real time (which the `test`
  command currently completely hides).

* Added the `config` subcommand.  This command allows the end user to
  inspect the current configuration variables after evaluation, without
  having to read through configuration files.  (Issue #11.)

* Removed the `test_suites_var` function from configuration files.  This
  was used to set the value of test-suite-sepecific variables, but it
  was ugly-looking.  It is now possible to use the more natural syntax
  `test_suites.<test-suite-name>.<variable> = <value>`.  (Issue #11.)

* Added a mechanism to disable the loading of configuration files
  altogether.  Needed for testing purposes and for scriptability.
  Available by passing the `--config=none` flag.

* Enabled detection of unused parameters and variables in the code and
  fixed all warnings.  (Issue #23.)

* Changed the behavior of "developer mode".  Compiler warnings are now
  enabled unconditionally regardless of whether we are in developer mode
  or not; developer mode is now only used to perform strict warning
  checks and to enable assertions.  Additionally, developer mode is now
  only automatically enabled when building from the repository, not for
  formal releases.  (Issue #22.)

* Fixed many build and portability problems to Debian sid with GCC 4.6.3
  and Ubuntu 10.04.1 LTS.  (Issues #20, #21, #26.)


## Changes in kyua-cli version 0.1

**Experimental version released on June 23rd, 2011.**

This is the first public release of the `kyua-cli` package.

The scope of this release is to provide functional replacement for the
`atf-run` utility included in the atf package.  At this point, `kyua`
can reliably run the NetBSD 5.99.53 test suite delivering the same
results as `atf-run`.

The reporting facilities of this release are quite limited.  There is
no replacement for `atf-report` yet, and there is no easy way of
debugging failing test programs other than running them by hand.  These
features will mark future milestones and therefore be part of other
releases.

Be aware that this release has suffered very limited field testing.
The test suite for `kyua-cli` is quite comprehensive, but some bugs may
be left in any place.
netbsd-srcmastr pushed a commit that referenced this pull request May 11, 2025
Snowball 3.0.1 (2025-05-09)
===========================

Python
------

* The __init__.py in 3.0.0 was incorrectly generated due to a missing
  build dependency and the list of algorithms was empty.  First reported by
  laymonage.  Thanks to Dmitry Shachnev, Henry Schreiner and Adam Turner for
  diagnosing and fixing.  (#229, #230, #231)

* Add trove classifiers for Armenian and Yiddish which have now been registered
  with PyPI.  Thanks to Henry Schreiner and Dmitry Shachnev.  (#228)

* Update documented details of Python 2 support in old versions.

Snowball 3.0.0 (2025-05-08)
===========================

Ada
---

* Bug fixes:

  + Fix invalid Ada code generated for Snowball `loop` (it was partly Pascal!)
    None of the stemmers shipped in previous releases triggered this bug, but
    the Turkish stemmer now does.

  + The Ada runtime was not tracking the current length of the string
    but instead used the current limit value or some other substitute, which
    manifested as various incorrect behaviours for code inside of `setlimit`.

  + `size` was incorrectly returning the difference between the limit and the
    backwards limit.

  + `lenof` or `sizeof` on a string variable generated Ada code that didn't
    even compile.

  + Fix incorrect preconditions on some methods in the runtime.

  + Fix bug in runtime code used by `attach`, `insert`, `<-` and string
    variable assignment when a (sub)string was replaced with a larger string.
    This bug was triggered by code in the Kraaij-Pohlmann Dutch stemmer
    implementation (which was previously not enabled by default but is now the
    standard Dutch stemmer).

  + Fix invalid code generated for `insert`, `<-` and string variable
    assignment.  This bug was triggered by code in the Kraaij-Pohlmann
    Dutch stemmer implementation (which was previously not enabled by default
    but is now the standard Dutch stemmer).

  + Generate valid code for programs which don't use `among`.  This didn't
    affect code generation for any algorithms we currently ship.

  + If the end of a routine was unreachable code the Snowball compiler
    would think the start of the next routine was also unreachable and would
    not generate it.  This didn't affect code generation for any algorithms we
    currently ship.

* Code quality:

  + Only declare variables A and C when each is needed.

  + Fix indentation of generated declarations.

  + Drop extra blank line before `Result := True`.

C/C++
-----

* Bug fixes:

  + Fix potential NULL dereference in runtime code if we failed to allocate
    memory for the p or S member for a Snowball program which uses one or more
    string variables.  Problem was introduced in Snowball 2.0.0.  Fixes #206,
    reported by Maxim Korotkov.

  + Fix invalid C code generated when a failure is handled in a context with
    the opposite direction to where it happened, for example:

        externals (stem)
        define stem as ( try backwards 'x' )

    This was fixed by changing the C generator to work like all the other
    generators and pre-generate the code to handle failure.

  + Eliminate assumptions that NULL has all-zero bit pattern.  We don't know
    of any current platforms where this assumption fails, but the C standard
    doesn't require an all-zero bit pattern for NULL.  Fixes #207.

* Optimisations:

  + Store index delta for among substring_i field.  This makes trying
    substrings after a failed match slightly faster because we can just add
    the offset to the pointer we already have to the current element.

* Code quality:

  + Improve formatting of generated code.

C#
--

* Bug fixes:

  + Add missing runtime support for testing for a string var at the current
    position when working forwards.  This situation isn't exercised by any of
    the stemming algorithms we currently ship.

  + Adjust generated code to work around a code flow analysis bug in the `mcs`
    C# compiler.

* Code quality:

  + Prune unused `using System.Text;`.

  + Generate C# with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

Go
--

* Optimisations:

  + Drop some unneeded Go code generated for string `$`.  None of the shipped
    stemmers use string `$`, though the Schinke Latin stemmer algorithm on the
    website does.

* Code quality:

  + Dispatch among result with `switch` instead of an `if` ... `else if` chain
    (which looks like we did because the Go generator evolved from the Python
    generator and Python didn't used to have a switch-like construct.  This
    doesn't make a measurable speed difference so it seems the Go compiler is
    optimising both to equivalent code, but using a switch here seems clearer,
    a better match for the intent, and is a bit simpler to generate.

  + Generate Go with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

Java
----

* The Java code generated by Snowball requires now requires Java >= 7.  Java 7
  was released in 2011, and Java 6's EOL was 2013 so we don't expect this
  to be a problematic requirement.  See #195.

* Optimisations:

  + We now store the current string in a `char[]` rather than using a
    `StringBuilder` to reduce overheads.  The `getCurrent()` method continues
    to return a Java `String`, but the `char[]` can be accessed using the new
    `getCurrentBuffer()` and `getCurrentBufferLength()` methods.  Patch from
    Robert Muir (#195).

  + Use a more efficient mechanism for calling `among` functions.  Patch from
    Robert Muir (#195).

* Code quality:

  + Consistently put `[]` right after element type for array types, which seems
    the most used style.

  + Fix javac warnings in SnowballProgram.java.

  + Improve formatting of generated code.

Javascript
----------

* Bug fixes:

  + Use base class specified by `-p` in string `$` rather than hard-coding
    `BaseStemmer` (which is the default if you don't specify `-p`).  None of
    the shipped stemmers use string `$`, though the Schinke Latin stemmer
    algorithm on the website does.

* Code quality:

  + Modernise the generated code a bit.  Loosely based on changes proposed in
    #123 by Emily Marigold Klassen.

* Other changes:

  + The Javascript runner is now specified by make variable `JSRUN` instead
    of `NODE` (since node is just one JS implementation).  The default value
    is now `node` instead of `nodejs` (older Debian and Ubuntu packages used
    `/usr/bin/nodejs` because `/usr/bin/node` was already in use by a
    completely different package, but that has since changed).

Pascal
------

* Bug fixes:

  + Add missing semicolons to code generated in some cases for a function which
    always succeeds or always fails.  The new dutch.sbl was triggering this
    bug.

  + If the end of a routine was unreachable code the Snowball compiler
    would think the start of the next routine was also unreachable and would
    not generate it.  This didn't affect code generation for any algorithms we
    currently ship.

* Code quality:

  + Eliminate commented out code generated for string `$`.  None of the shipped
    stemmers use string `$`, though the Schinke Latin stemmer algorithm on the
    website does.

* Other changes:

  + Enable warnings, etc from fpc.

  + Select GNU-style diagnostic format.

Python
------

* Optimisations:

  + Use Python set for grouping checks.  This speeds up running the Python
    testsuite by about 4%.

  + Routines used in `among` are now referenced by name directly in the
    generated code, rather than using a string containing the name.  This
    avoids a `getattr()` call each time an among wants to call a routine.  This
    doesn't seem to make a measurable speed difference, but it's cleaner and
    avoids problems with name mangling.  Suggested by David Corbett in #217.

  + Simplify code generated for `loop`.  If the iteration count is constant and
    at most 4 then iterate over a tuple which microbenchmarking shows is
    faster.  The only current uses of loop in the shipped stemmers are `loop 2`
    so benefit from this.  Otherwise we now use `range(AE)` instead of
    `range (AE, 0, -1)` (the actual value of the loop variable is never
    used so only the number of iterations matter).

* Bug fixes:

  + Correctly handle stemmer names with an underscore.

* Code quality:

  + Generate Python with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

* Other changes:

  + Set python_requires to indicate to install tools that the generated code
    won't work with Python 3.0.x, 3.1.x and 3.2.x (due to use of `u"foo"`
    string literals).  Closes #192 and #191, opened by Andreas Maier.

  + Add classifiers to indicate support for Python 3.3 and for 3.8 to 3.13.
    Fixes #158, reported by Dmitry Shachnev.

  + Stop marking the wheel as universal, which had started to give a warning
    message.  Patch from Dmitry Shachnev (#210).

  + Stop calling `setup.py` directly which is deprecated and now produces a
    warning - use the `build` module instead.  Patch from Dmitry Shachnev
    (#210).

Rust
----

* Optimisations:

  + Shortcut unnecessary calls to find_among, porting an optimization from the
    C generator.  In some stemming benchmarks this improves the performance
    of the rust english stemmer by about 27%.  Patch from jedav (#202).

* Code quality:

  + Suppress unused_parens warning, for example triggered by the code generated
    for `$x = x*x` (where `x` is an integer).

  + Dispatch `among` result with `match` instead of an `if` ... `else if` chain
    (which looks like we did because the Rust generator evolved from the Python
    generator and Python didn't used to have a switch-like construct.  This
    results in a 3% speed-up for an unoptimised Rust compile but doesn't seem
    to make a measurable difference when optimising so it seems the Rust
    compiler is optimising both to equivalent code.  However using a `match`
    here seems clearer, a better match for the intent, and is a bit simpler to
    generate.

  + Generate Rust with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

New stemming algorithms
-----------------------

* Add Esperanto stemmer from David Corbett (#185).

* Add Estonian algorithm from Linda Freienthal (#108).

Behavioural changes to existing algorithms
------------------------------------------

* Dutch: Switch to Kraaij-Pohlmann as the default for Dutch.  In case you
  want Martin Porter's Dutch stemming algorithm for compatibility, this is now
  available as `dutch_porter`.  Fixes #1, reported by gboer.

* Dutch (Kraaij-Pohlmann): Fix differences between the Snowball implementation
  and the original C implementation.

* Dutch (Kraaij-Pohlmann): Add a small number of exceptions to the Snowball
  implementation to avoid unwanted conflations.  This addresses all cases so
  far identified which Martin's Dutch stemmer handled better.  Fixes #208.

* Dutch (Porter): The "at least 3 characters" part of the R1 definition was
  actually implemented such that when working in UTF-8 it was "at least 3
  bytes".  We stripped accents normally found in Dutch except for `è` before
  setting R1, and no Dutch words starting `è` seem to stem differently
  depending on encoding, but proper nouns and other words of foreign origin may
  contain other accented characters and it seems better for the stemmer to
  handle such words the same way regardless of the encoding in use.

* English: Replace '-ogist' with '-og' to conflate "geologist" and "geology", etc.
  Suggested by Marc Schipperheijn on snowball-discuss.

* English: Add extra condition to undoubling.  We no longer undouble if the
  double consonant is preceded by exactly "a", "e" or "o" to avoid conflating
  "add"/"ad", "egg"/"eg", "off"/"of", etc.  Fixes #182, reported by Ed Page.

* English: Avoid conflating 'emerge' and 'emergency'.  Reported by Frederick Ross
  on snowball-discuss.

* English: Avoid conflating 'evening' and 'even'.  Reported by Ann B on
  snowball-discuss.

* English: Avoid conflating 'lateral' and 'later'.  Reported by Steve Tolkin on
  snowball-discuss.

* English: Avoid conflating 'organ', 'organic' and 'organize'.

* English: Avoid conflating 'past' and 'paste'.  Reported by Sonny on
  snowball-discuss.

* English: Avoid conflating 'universe', 'universal' and 'university'.  Reported
  by Clem Wang on snowball-discuss.

* English: Handle -eed and -ing exceptions in their respective rules.
  This avoids the overhead of checking for them for the majority of
  words which don't end -eed or -ing.  It also allows us to easily handle
  vying->vie and hying->hie at basically no extra cost.  Reduces the time to
  stem all words in our English word list by nearly 2%.

* French: Remove elisions as first step.  See #187.  Originally reported by
  Paul Rudin and kelson42.

* French: Remove -aise and -aises so for example, "française" and "françaises"
  are now conflated with "français".  Fixes #209.  Originally reported by
  ririsoft and Fred Fung.

* French: Avoid incorrect conflation of `mauvais` (bad) with `mauve` (mauve,
  mallow or seagull); avoid conflating `mal` with `malais`, `pal` with
  `palais`, etc.

* French: Avoid conflating `ni` (neither/nor) with `niais`
  (inexperienced/silly) and `nie`/`nié`/`nier`/`nierais`/`nierons` (to deny).

* French: -oux -> -ou.  Fixes #91, reported by merwok.

* German: Replace with the "german2" variant.  This normalises umlauts ("ä" to
  "ae", "ö" to "oe", "ü" to "ue") which is presumably much less common in
  newly created text than it once was as modern computer systems generally
  don't have the limitations which motivated this, but there will still be
  large amounts of legacy text which it seems helpful for the stemmer to
  handle without having to know to select a variant.

  On our sample German vocabulary which contains 35033 words, 77 words give
  different stems.  A significant proportion of these are foreign words, and
  some are proper nouns.  Some cases definitely seem improved, and quite a few
  are just different but effectively just change the stem for a word or group
  of words to a stem that isn't otherwise generated.  There don't seem any
  changes that are clearly worse, though there are some changes that have both
  good and bad aspects to them.

  Fixes #92, reported by jrabensc.

* German: Don't remove -em if preceded by -syst to avoid overstemming words
  ending -system.  This change means we now conflate e.g. "system" and
  "systemen".  Partly addresses #161, reported by Olga Gusenikova.

* German: Remove -erin and -erinnen suffixes which conflates singular and
  plural female versions of nouns with the male versions.  Fixes #85 and
  partly addresses #161, reported by Olga Gusenikova.

* German: Replace -ln and -lns with -l.  This improves 82 cases in the current
  sample data without making anything worse.  Tests on a larger word list look
  good too.  Partly addresses #161, reported by Olga Gusenikova.

* German: Remove -et suffix when we safely can.  Fixes #200, reported by Robert
  Frunzke.

* Greek: Fix "faulty slice operation" for input `ισαισα`.  The fix changes
  `ισα` to stem to `ισ` instead of the empty string, which seems better (and to
  be what the second paper actually says to do if read carefully).  Fixes #204,
  reported by subnix.

* Italian: Address overstemming of "divano" (sofa) which previously stemmed to
  "div", which is the stem for 'diva' (diva).  Now it is stemmed to 'divan',
  which is what its plural form 'divani' already stemmed to.  Fixes #49,
  reported by francesco.

* Norwegian: Improve stemming of words ending -ers.  Fixes #175, reported by
  Karianne Berg.

* Norwegian: Include more accented vowels - treating "ê", "ò", "ó" and "ô"
  as vowels improves the stemming of a fairly small number of words, but
  there's basically no cost to having extra vowels in the grouping, and some
  of these words are commonly used.  Fixes #218, reported by András Jankovics.

* Romanian: Fix to work with Romanian text encoded using the correct Unicode
  characters.  Romanian uses a "comma below" diacritic on letters "s" and "t"
  ("ș" and "ț").  Before Unicode these weren't easily available so Romanian
  text was written using the visually similar "cedilla" diacritic on these
  letters instead ("ş" and "ţ").  Previously our stemmer only recognised the
  latter.  Now it maps the cedilla forms to "comma below" as a first step.
  Patch from Robert Muir.

* Spanish: Handle -acion like -ación and -ucion like -ución.  It's apparently
  common to miss off accents in Spanish, and there are examples in our test
  vocabulary that these change helps.  Proposed by Damian Janowski.

* Swedish: Replace suffix "öst" with "ös" when preceded by any of 'iklnprtuv'
  rather than just 'l'.  The new rule only requires the "öst" to be in R1
  whereas previously we required all of "löst" to be.  This second tweak
  doesn't seem to affect any words ending "löst" but it conflates a few extra
  cases when combined with the expanded list of preceding letters, and seems
  more logical linguistically (since "ös" is akin to "ous" in English).  Fixes
  #152, reported by znakeeye.

* Swedish: Remove -et/-ets in cases where it helps.  Removing -et can't be done
  unconditionally because many words end in -et where this isn't a suffix.
  However it's a very common suffix so it seems worth crafting a more complex
  condition under which to remove.  Fixes #47.

* Turkish: Remove proper noun suffixes.  For example, `Türkiye'dir` ("it is
  Turkey") is now conflated with `Türkiye` ("Turkey").  Fixes #188.

* Yiddish: Avoid generating empty stem for input "גע" (not a valid word, but
  it's better to avoid an empty stem for any non-empty input).

Optimisations to existing algorithms
------------------------------------

* General change: Use `gopast` everywhere to establish R1 and R2 as it is a
  little more efficient to do so.

* Basque: Use an empty action rather than replacing the suffix with itself
  which seems clearer and is a little more efficient.

* Dutch (Porter): Optimise prelude routine.

* English: Remove unnecessary exception for `skis` as the algorithm stems
  `skis` to `ski` by itself (`skies` and `sky` do still need a special case to
  avoid conflation with `ski` though).

* Hungarian: We no longer take digraphs into account when determining where R1
  starts.  This can only make a difference to the stemming if we removed a
  suffix that started with the last character of the digraph (or with "zs" in
  the case of "dzs"), and that doesn't happen for any of the suffixes we remove
  for any valid Hungarian words.  This simplification speeds up stemming by
  ~2% on the current sample vocabulary list.  See #216.  Thanks to András
  Jankovics for confirming no Hungarian words are affected by this change.

* Lithuanian: Remove redundant R1 check.

* Nepali: Eliminate redundant check_category_2 routine.

* Tamil: Optimise by using `among` instead of long `or` chains.  The generated
  C version now takes 43% less time to processes the test vocabulary.

* Tamil: Remove many cases which can't be triggered due to being handled by
  another case.

* Tamil: Clean up some uses of `test`.

* Tamil: Make `fix_va_start` simpler and faster.

* Tamil: Localise use of `found_a_match` flag.

* Tamil: Eliminate pointless flag changes.

* Turkish: Minor optimisations.

Code clarity improvements to existing algorithms
------------------------------------------------

* Stop noting dates changes were made in comments in the code - we now maintain
  a changelog in each algorithm's description page on the website (and the
  version control history provides a finer grained view).

* Always use `insert` instead of `<+` as the named command seems clearer.

* English: Add comments documenting motivating examples for all exceptional
  cases.

* Lithuanian: Change to recommended latin stringdef codes.  Using common codes
  makes it easier to work across algorithms, but they are more mnemonic so also
  seem clearer when just considering this one algorithm.

* Serbian: Change to recommended latin stringdef codes.  Using common codes
  makes it easier to work across algorithms, but they are more mnemonic so also
  seem clearer when just considering this one algorithm.

* Turkish: Use `{sc}` for s-cedilla and `{i}` for dotless-i to match other
  uses.

Compiler
--------

* Generic code generation improvements:

  + Show Snowball source leafname in "generated" comment at start of files.

  + Add generic reachability tracking machinery.  This facilitates various new
    optimisations, so far the following have been implemented:

    - Tail-calling
    - Simpler code for calling routines which always give the same signal
    - Simpler code when a routine ends in a integer test (this also allows
      eliminating an Ada-specific codegen optimisation which did something
      similar but only for routines which consisted *entirely* of a single
      integer test.
    - Dead code reporting and removal (only in simple cases currently)

    Currently this overlaps in functionality with the existing reachability
    tracking which is implemented on a per-language basis, and only for some
    languages.  This reachability tracking was originally added for Java
    where some unreachable code is invalid and result in a compile time error,
    but then seems to have been copied for some other newer languages which
    may or may not actually need it.  The approach it uses unfortunately
    relies on correctly updating the reachability flag anywhere in the
    generator code where reachability can change which has proved to be a
    source of bugs, some unfixed.  This new approach seems better and with some
    more work should allow us to eliminate the older code.  Fixes #83.

  + Omit check for `among` failing in generated code when we can tell at
    compile time that it can't fail.

  + Optimise `goto`/`gopast` applied to a grouping or inverted grouping (which
    is by far the most common way to use `goto`/`gopast`) for all target
    languages (new for Go, Java, Javascript, Pascal and Rust).

  + We never need to restore the cursor after `not`.  If `not` turns signal `f`
    into `t` then it sets `c` back to its old position; otherwise, `not`
    signals `f` and `c` will get reset by whatever ultimately handles this `f`
    (or the program exits and the position of `c` no longer matters).  This
    slightly improves the generated code for the `english` and `porter`
    stemmers.

  + Don't generate code for undefined or unused routines.

  + Avoid generating variable names and then not actually using them.  This
    eliminates mysterious gaps in the numbering of variables in the generated
    code.

  + Eliminate `!`/`not` from integer test code by generating the inverse
    comparison operator instead for all languages, e.g. for Python we now
    generate

      if self.I_p1 >= self.I_x:

    instead of

      if not self.I_p1 < self.I_x:

    This isn't going to be faster in compiled languages with an optimiser but
    for scripting languages it may be faster, and even if not, it makes for a
    little less work when loading the script.

  + Canonicalise `hop 1` to `next` as the generated code for `next` can be
    slightly more efficient.  This will also apply to `hop` followed by a
    constant expression which Snowball can reduce to `1`.

  + Avoid trailing whitespace in generated files.

  + Fix problems with --comments option:

    - When generating C code we would segfault for code containing `atleast`,
      `hop` or integer tests.
    - Fix missing comments for some commands in some target languages.
    - Fix inconsistent formatting of comments in some target languages.
    - Comments in C are now always on their own line - previously some were
      after at the end of the line and some on their own line which made them
      harder to follow.
    - Emit comments before `among` and before routine/external definitions.

  + Simplify more cases of numeric expressions (e.g. `x * 1` to `x`).

* Improve --help output.

* Division by zero during constant folding now gives an error.

* For `hop` followed by an unexpected token (e.g. `hop hop`) we were
  already emitting a suitable error but would then segfault.

* Emit error for redefinition of a grouping.

* Improve errors for `define` of an undeclared name.  We already peek at the
  next token to decide whether to try to parse as a routine or grouping.
  Previously we parsed as a routine if it was `as`, and a grouping otherwise,
  but routine definitions are more common and a grouping can only start with
  a literal string or a name, so now we assume a routine definition with a
  missing `as` if the next token isn't valid for either.

* Suppress duplicate (or even triplicate) "unexpected" errors for the same
  token when the compiler tried to recover from the error by adjusting the
  parse stare and marking the token to be reparsed, but the same token then
  failed to parse in the new state.

* Fix NULL pointer dereference if an undefined grouping is used in the
  definition of another grouping.

* Fix mangled error for `set` or `unset` on a non-boolean:

  test.sbl:2: nameInvalid type 98 in name_of_type()

* Emit warning if `=>` is used.  The documentation of how it works doesn't
  match the implementation, and it seems it has only ever been used in the
  Schinke stemmer implementation (which assumes the implemented behaviour).
  We've updated the Schinke implementation to avoid it.  If you're using it
  in your own Snowball code please let us know.

* Improve errors for unterminated string literals.

* Fix NULL pointer dereference on invalid code such as `$x = $y`.

* If malloc fails while compiling the compiler will now report the failure
  and exit.  Previously the NULL return from malloc wasn't checked for so
  we'd typically segfault.

* `lenof` and `sizeof` applied to a string variable now mark the variable
  as used, which avoids a bogus error followed by a confusing additional
  message if this is the only use of that variable:

  lenofsizeofbug.sbl:3: warning: string 's' is set but never used
  Unhandled type of dead assignment via sizeof

  This is situation is unlikely to occur in real world code.

* The reported line number for "string not terminated" error was one too high
  in the case where we were in a stringdef (but correct if we weren't).

* Eliminate special handling for among starter.  We now convert the starter
  to be a command before the among, adding an explict substring if there
  isn't one.

* We now warn if the body of a `repeat` or `atleast` loop always signals
  `t` (meaning it will loop forever which is very undesirable for a stemming
  algorithm) or always signals `f` (meaning it will never loop, which seems
  unlikely to be what was intended).

* Release memory in compiler before exit.  The OS will free all allocated
  memory when a process exits, so this memory isn't actually leaked, but it can
  be annoying with when using snowball as part of a larger build process with
  some leak-finding tools.  Patch from jsteemann in #166.

* Store textual data more efficiently in memory during Snowball compilation.
  Previously almost all textual data was stored as 16 bit values, but most
  such data only uses 8 bit character values.  Doubling the memory usage
  isn't really an issue as Snowball programs are tiny, but this also
  complicated code handling such data.  Now only literal strings use the
  16 bit values.

* Fix clang -Wunused-but-set-variable warning in compiler code.

* Fix a few -Wshadow warnings in compiler and enable this warning by default.

* Tighten parsing of `writef()` format strings.  We now error out on
  unrecognised escape codes or if a numbered escape is used with too high a
  number or a non-digit.  This change reveals that the Go and Rust generators
  were using invalid escape ~A - the old writef() code was substituting this
  with just A which is what is wanted so this case was harmless but being
  lenient here could hide bugs, especially when copying code between
  generators as they don't all support the same set of format codes.

Build system
------------

* Turn on Java warnings and make them errors.

* Compile C code with -g by default.  This makes debugging easier, and
  matches the default for at least some other build systems (e.g. autotools).

* Fix "make clean" to remove all built Ada files.

* Clean `stemtest` too.  Patch from Stefano Rivera.

* Add missing `COMMON_FILES` dependency to dist targets.

* GNUmakefile: Tidy up and make more consistent

* GNUmakefile: Make use of $* to improve speed and readability.

* Use $(patsubst ...) instead of sed in .java.class rule which gives cleaner
  make output and is a bit more efficient.

* Add `WERROR` make variable to provide a way to add `-Werror` to existing
  CFLAGS.

libstemmer
----------

Testsuite
---------

* Give a clear error if snowball-data isn't found.  Fixes #196, reported by
  Andrea Maccis.

* Handle not thinning testdata better.  If THIN_FACTOR is set to 1 we no longer
  run gzipped test data through awk.  We also now handle THIN_FACTOR being set
  empty as equivalent to 1 for convenience.

* csharp_stemwords: Correctly handle a stemmer name containing an underscore.

* csharp_stemwords: Make `-i` option optional and read from stdin if omitted,
  like the C version does.

* csharp_stemwords: Process the input line by line which is more helpful for
  interactive testing, and also a little faster.

* Fix Java TestApp to allow a single argument.  The documented command line
  syntax is that you only need to specify the language and there was already
  code to read from stdin if no input file was specified, but at least two
  command line options were required.

* Fix deprecation warning in TestApp.java.

* Optimise TestApp.java by creating fewer objects.  Patch from Robert Muir.

* stemwords.py: We no longer create an empty output file if we fail to open the
  input file.

* stemwords: Improve error message to say "Out of memory or internal error"
  rather than just "Out of memory".

Documentation
-------------

* Include "what is stemming" section in each README.

* Include section on threads in each README.  Based on patch for Python from
  dbcerigo.

* Document that input should be lowercase with composed accents.  See #186,
  reported by 1993fpale.

* Add README section on building, including notes on cross-compiling.  Fixes
  #205, reported by sin-ack.

* CONTRIBUTING.rst: Clarify which charsets to list

* CONTRIBUTING.rst: Add general advice section.  In particular, note to use
  spaces-only for indentation in most cases.  Thanks to Dmitry Shachnev for
  raising this point.

* CONTRIBUTING.rst: Note that UTF-8 is OK in comments.  Thanks to Dmitry
  Shachnev for asking.

* Fix some typos.  Patch from Josh Soref.

* Document that our CI now uses github actions.

* Update link to Greek stemmer PDF.  Patch from Michael Bissett (#33).

Snowball 2.2.0 (2021-11-10)
===========================

New Code Generators
-------------------

* Add Ada generator from Stephane Carrez (#135).

Javascript
----------

* Fix generated code to use integer division rather than floating point
  division.

  Noted by David Corbett.

Pascal
------

* Fix code generated for division.  Previously real division was used and the
  generated code would fail to compile with an "Incompatible types" error.

  Noted by David Corbett.

* Fix code generated for Snowball's `minint` and `maxint` constant.

Python
------

* Python 2 is no longer actively supported, as proposed on the mailing list:
  https://lists.tartarus.org/pipermail/snowball-discuss/2021-August/001721.html

* Fix code generated for division.  Previously the Python code we generated
  used integer division but rounded negative fractions towards negative
  infinity rather than zero under Python 2, and under Python 3 used floating
  point division.

  Noted by David Corbett.

Code quality Improvements
-------------------------

* C/C++: Generate INT_MIN and INT_MAX directly, including <limits.h> from
  the generated C file if necessary, and remove the MAXINT and MININT macros
  from runtime/header.h.

* C#: An `among` without functions is now generated as `static` and groupings
  are now generated as constant.  Patches from James Turner in #146 and #147.

Code generation improvements
----------------------------

* General:

  + Constant numeric subexpressions and constant numeric tests are now
    evaluated at Snowball compile time.

  + Simplify the following degnerate `loop` and `atleast` constructs where
    N is a compile-time constant:

    - loop N C where N <= 0 is a no-op.

    - loop N C where N == 1 is just C.

    - atleast N C where N <= 0 is just repeat C.

    If the value of N doesn't depend on the current target language, platform
    or Unicode settings then we also issue a warning.

Behavioural changes to existing algorithms
------------------------------------------

* german2: Fix handling of `qu` to match algorithm description.  Previously
  the implementation erroneously did `skip 2` after `qu`.  We suspect this was
  intended to skip the `qu` but that's already been done by the substring/among
  matching, so it actually skips an extra two characters.

  The implementation has always differed in this way, but there's no good
  reason to skip two extra characters here so overall it seems best to change
  the code to match the description.  This change only affects the stemming of
  a single word in the sample vocabulary - `quae` which seems to actually be
  Latin rather than German.

Optimisations to existing algorithms
------------------------------------

* arabic: Handle exception cases in the among they're exceptions to.

* greek: Remove unused slice setting, handle exception cases in the among
  they're exceptions to, and turn `substring ... among ...  or substring ...
  among ...` into a single `substring ... among ...` in cases where it is
  trivial to do so.

* hindi: Eliminate the need for variable `p`.

* irish: Minor optimisation in setting `pV` and `p1`.

* yiddish: Make use of `among` more.

Compiler
--------

* Fix handling of `len` and `lenof` being declared as names.

  For compatibility with programs written for older Snowball versions
  len and lenof stop being tokens if declared as names.  However this
  code didn't work correctly if the tokeniser's name buffer needed to
  be enlarged to hold the token name (i.e. 3 or 5 elements respectively).

* Report a clearer error if `=` is used instead of `==` in an integer test.

* Replace a single entry command list with its contents in the internal syntax
  tree.  This puts things in a more canonical form, which helps subsequent
  optimisations.

Build system
------------

* Support building on Microsoft Windows (using mingw+msys or a similar
  Unix-like environment).  Patch from Jannick in #129.

* Split out INCLUDES from CPPFLAGS so that CPPFLAGS can now be overridden by
  the user if required.  Fixes #148, reported by Dominique Leuenberger.

* Regenerate algorithms.mk only when needed rather than on every `make` run.

libstemmer
----------

* The libstemmer static library now has a `.a` extension, rather than `.o`.
  Patch from Michal Vasilek in #150.

Testsuite
---------

* stemtest: Test that numbers and numeric codes aren't damaged by any of the
  algorithms.  Regression test for #66.  Fixes #81.

* ada: Fix ada tests to fail if output differs.  There was an extra `| head
  -300` compared to other languages, which meant that the exit code of `diff`
  was ignored.  It seems more helpful (and is more consistent) not to limit how
  many differences are shown so just drop this addition.

* go: Stop thinning testdata.  It looks like we only are because the test
  harness code was based on that for rust, which was based on that for
  javascript, which was only thinning because it was reading everything into
  memory and the larger vocabulary lists were resulting in out of memory
  issues.

* javascript: Speed up stemwords.js.  Process input line-by-line rather than
  reading the whole file into memory, splitting, iterating, and creating an
  array with all the output, joining and writing out a single huge string.
  This also means we can stop thinning the test data for javascript, which we
  were only doing because the huge arabic test data file was causing out of
  memory errors.  Also drop the -p option, which isn't useful here and
  complicates the code.

* rust: Turn on optimisation in the makefile rather than the CI config.  This
  makes the tests run in about 1/5 of the time and there's really no reason to
  be thinning the testdata for rust.

Documentation
-------------

* CONTRIBUTING.rst: Improve documentation for adding a new stemming algorithm.

* Improve wording of Python docs.
netbsd-srcmastr pushed a commit that referenced this pull request Jun 13, 2025
What's Changed

 - Update colors for --verbose mode by @motusira in #76
 - Add yaml output by @motusira in #81
 - refactored generate_report function to match the new structure by @Samuel1505 in #83
 - Run feluda on a github repo directly by @hakymulla in #84
 - Bump the cargo group across 1 directory with 2 updates by @dependabot in #85
 - Add new generate command to generate NOTICE and THIRD_PARTY_LICENSE files by @anistark
 - Add more tests by @anistark
netbsd-srcmastr pushed a commit that referenced this pull request Jul 29, 2025
pkgsrc change: update HOMEPAGE.

0.8.1 (2025-07-15)

What's Changed

* Bump step-security/harden-runner from 2.10.2 to 2.10.3 by @dependabot[bot]
  in #84
* Bump step-security/harden-runner from 2.10.3 to 2.10.4 by @dependabot[bot]
  in #85
* Bump step-security/harden-runner from 2.10.4 to 2.11.0 by @dependabot[bot]
  in #86
* Bump step-security/harden-runner from 2.11.0 to 2.11.1 by @dependabot[bot]
  in #87
* Bump step-security/harden-runner from 2.11.1 to 2.12.0 by @dependabot[bot]
  in #89
* Alias value or join to take in old Ruby by @hsbt in #91
* Bump step-security/harden-runner from 2.12.0 to 2.12.1 by @dependabot[bot]
  in #92
* Ignore ^C at interrupt test by @nobu in #93
* Bump step-security/harden-runner from 2.12.1 to 2.12.2 by @dependabot[bot]
  in #94
* Bump rubygems/release-gem from 1.1.0 to 1.1.1 by @dependabot[bot] in #83
* Use host_os in RbConfig instead of RUBY_PLATFORM for JRuby by @nobu in #95
* Fix removing unexpected control chars by @nobu in #96
* Run have_func with the header providing the declarations by @nobu in #97
netbsd-srcmastr pushed a commit that referenced this pull request Aug 3, 2025
Release 0.22 (2026-07-29)
=========================

No changes to rc5.

Release 0.22rc5 (2025-06-24)
============================

* docutils/nodes.py

  - Don't invalidate indirect targets with duplicate name, if they refer to
    the same refname (similar to external targets refering to the same URI).

* docutils/parsers/rst/states.py

  - "Downgrade" targets generated from hyperlink references with embedded
    URI or alias from explicit to implicit (cf. bug #502).


Release 0.22rc4 (2025-06-17)
============================

* docutils/nodes.py

  - Don't include a "backlink" reference in system messages, if the
    referenced element is an external target (not visible in the output).

* docutils/parsers/rst/directives/references.py

  - Remove "name" from `TargetNotes.option_spec`.
    The "target-notes" directive generates one footnote element per
    external target but "name" must be unique across the document.
    So far, the name was silently dropped.

* docutils/parsers/rst/languages/en.py

  - Add alias "rst-class" for the "class" directive to improve the
    compatibility with Sphinx.


Release 0.22rc3 (2025-06-10)
============================

* docutils/parsers/rst/states.py

  - Warn about duplicate name in references with embedded internal targets.
    Fixes bug #502.

* docutils/transforms/references.py

  - New transform `CitationReferences`. Marks citation_references
    as resolved if BibTeX is used by the backend (LaTeX).

* docutils/writers/latex2e/__init__.py

  - Replace `Writer.bibtex_reference_resolver()` with a transform.
  - `LaTeXTranslator.visit_inline()` now inserts labels for the
    node's IDs.
  - Disable footnote handling by the "hyperref" LaTeX package (Docutils'
    ``\DUfootnotemark`` and ``\DUfootnotetext`` macros implement
    hyperlinks and backlinks).  Avoids "empty anchor" warnings.
  - Fix target position and re-style system messages.
  - Don't merge paragraphs if there is a target between them.

* docutils/writers/manpage.py

  - Do not drop text of internal targets.


Release 0.22rc2 (2025-05-22)
============================


* docutils/parsers/rst/directives/misc.py

  - Pass default settings to custom parser for included file.

* docutils/parsers/rst/states.py

  - Remove the `states.RSTStateMachine.memo.section_parents` cache
    (introduced in Docutils 0.22rc1) that broke 3rd-party applications
    employing a "mock memo".
  - Use `types.SimpleNamespace` instead of a local definition for
    the auxilliary class `states.Struct`.

* docutils/writers/_html_base.py

  - Fix error when determining the document metadata title from the
    source path and the internal `source` attribute is None.


Release 0.22rc1 (2025-05-06)
============================

* General

  - We have started to add type hints to Docutils (feature-request #87).

    This will be a complex programme of work and as such,
    for the time being, these type hints are "provisional"
    and should not be relied upon.

    By default, the Python interpreter treats type hints as annotations.
    Python >= 3.10 is required with active type hints
    (``typing.TYPE_CHECKING == True``).

* docs/ref/docutils.dtd

  - Allow multiple <term> elements in a <definition_list_item>.
    Fixes feature-request #60
  - The first element in a <figure> may also be a <reference>
    (with nested "clickable" <image>).

* docutils/core.py

  - Removed `Publisher.setup_option_parser()` (internal, obsolete).
  - Allow a string value (component name or alias) in the "reader",
    "parser", and "writer" arguments of `Publisher.__init__()` and
    the `publish_*()` convenience functions.

* docutils/frontend.py

  - Drop short options ``-i`` and ``-o`` for ``--input-encoding``
    and ``--output-encoding``.
  - Change the default input encoding from ``None`` (auto-detect) to "utf-8".
  - Change the default value of the root_prefix_ setting to the empty string
    (no change to the behaviour).

* docutils/io.py

  - Change the default input encoding from ``None`` (auto-detect) to "utf-8".

* docutils/nodes.py

  - Raise TypeError if the "rawsource" argument in `Element.__init__()`
    is an `Element` instance.
    Catches errors like ``nodes.hint(nodes.paragraph())``.
  - New element category classes `SubStructural` and `PureTextElement`.
  - Fix element categories.
  - New method `Element.validate()`: raise `nodes.ValidationError` if
    the element does not comply with the "Docutils Document Model".
    Provisional.
  - New "attribute validating functions"
    convert string representations to correct data type,
    normalize values, and
    raise ValueError for invalid attribute names or values.
  - New function `parse_measure()`.
  - Removed `Element.set_class()`.
  - Downgrade "duplicate ID" message level from SERIOUS to ERROR.
  - Fix recursion in `Element.get_language_code()`.
  - Do not insert <system_message> elements for duplicate explicit targets
    if this results in an invalid doctree (cf. bug #489).

* docutils/parsers/docutils_xml.py

  - New parser for Docutils XML sources. Provisional.

* docutils/parsers/recommonmark_wrapper.py

  - New method `Parser.finish_parse()` to clean up (before validating).

* docutils/parsers/rst/languages/

  - Remove mistranslations of the "admonition" directive name.

* docutils/parsers/rst/directives/__init__.py

  - Support CSS3 `length units`_. Fixes feature-request #57.

* docutils/parsers/rst/directives/images.py

  - New option "figname" for the "figure" directive.
    Fixes feature-request #44.

* docutils/parsers/rst/directives/misc.py

  - Pass the included file's path to the parser when the
    "include" directive is used with :parser: option.
    Enables system messages with correct source/line info.

* docutils/parsers/rst/directives/tables.py

  - Removed `CSVTable.decode_from_csv()` and `CSVTable.encode_from_csv()`.
    Not required with Python 3.

* docutils/parsers/rst/roles.py

  - Renamed `normalized_role_options()` to `normalize_options()`
    (it is now also used for directive options).

* docutils/parsers/rst/states.py

  - Raise warning for empty footnotes and citations.
  - Add source and line info to <enumerated-list> elements.
    Fix line number of "start value not ordinal-1" INFO message.
  - Change section handling to not rely on exceptions and reparsing.
    Based on patch #213 by Arne Skjærholt.
    Fixes bug #346 (duplicate System Messages).

* docutils/readers/__init__.py:

  - Deprecate "parser_name" argument of `Reader.__init__()`.

* docutils/transforms/frontmatter.py

  - Update `DocInfo` to work with corrected element categories.

* docutils/transforms/misc.py:

  - Fix for `misc.Transitions`: report an error if a <transition> element
    follows a <meta> or <decoration> element as this is invalid
    according to ``docutils.dtd``.

* docutils/transforms/writer_aux.py

  - Removed `Compound` transform.

* docutils/transforms/references.py

  - Make `AnonymousHyperlinks` transform idempotent.

* docutils/transforms/universal.py

  - `Messages` transform now also handles "loose" system messages
    generated by the parser.

* docutils/utils/__init__.py

  - Removed `Reporter.set_conditions()`.
    Set attributes via configuration settings or directly.

* docutils/utils/_roman_numerals.py

  - New implementation or Roman numeral support.
    Replaces the local copy of the roman.py package.

* docutils/utils/error_reporting.py

  - Removed. Obsolete in Python 3.

* docutils/writers/docutils-xml.py

  - Do not increase indentation of follow-up lines inside inline elements.
    when formatting with `indents`_.

* docutils/writers/__init__.py

  - New base class `writers.DoctreeTranslator`
    with auxiliary method `uri2path()`.

* docutils/writers/_html_base.py

  - Make MathML the default math_output_.
  - Revise image size handling methods,
    use "width" and "height" attributes for unitless values.
  - Add "px" to unitless table "width" values.

* docutils/writers/html4css1/__init__.py

  - Keep default math_output_ value "HTML math.css".
  - Add "px" to unitless table "width" values.

* docutils/writers/latex2e/__init__.py

  - `LaTeXTranslator.to_latex_length()`:
    Handle CSS3 `length units`_.
    Remove optional argument `pxunit` (ignored since at least 2012).
    Drop trailing zeroes from length values.
    Move XeTeX-specific code to the "xetex" writer.
  - Don't wrap references with custom reference-label_ in
    a ``\hyperref`` command.
  - Mark the main language when loading "babel".
  - Provide an "unknown_references_resolver" (cf. `docutils/TransformSpec`)
    for citation references resolved with BibTeX (cf. `use_bibtex`_ setting).
  - Support SVG image inclusion with the "svg" LaTeX package (see the
    `stylesheet`__ configuration setting). Solves feature-request #83
  - Add "template" to the parts returned by `Writer.assemble_parts()`.
  - Use standard `dict` for `LaTeXTranslator.requirements`
    and `LaTeXTranslator.fallbacks`.
  - Use <document> "title" attribute in pdfinfo.
  - Encode <meta> element content in pdfinfo.
  - Improve formatting of docinfo fields.
  - `LaTeXTranslator.pop_output_collector()` now returns the popped list.

  .. _reference-label: docs/user/config.html#reference-label
  __ docs/user/config.html#stylesheet-latex-writers

* docutils/writers/latex2e/docutils.sty

  - Replace use of ``\ifthenelse{\isundefined...`` (from "ifthen.sty")
    with the eTeX primitive ``\ifdefined``.
  - Add macros to emulate CSS3 `length units`_ unknown to LaTeX.

* docutils/writers/manpage.py

  - Remove code for unused emdash bullets.
  - Print Docutils version in header comment (feature-request #105).
  - Stop converting text to full capitals (bug #481).
  - Fix reference output (bug #497).
  - Use macros .UR/.UE for hyperlink references unless the new
    configuration setting text_references_ is True.
    The current default is True (text references), it will change
    to False (macro references) in Docutils 1.0.

* docutils/writers/null.py

  - `null.Writer.translate()` sets `self.output` to the empty string.

* docutils/writers/odf_odt/__init__.py

  - Use "px" as fallback unit for unitless image size attributes.
  - Fix conversion factor of "pc" (pica) to "cm".
  - Fix conversion of image width in "%" if the height is specified.
  - Adjust fallback DPI value (currently not used) to match CSS units.
  - Fix errors with ``*.xml`` style files (bug #494).
  - Use <document> "title" attribute in document metadata.

* pyproject.toml

  - Add tox.ini to the "include" list (fixes bug #486).

* tools/rst2odt.py

  - Use `core.publish_file()` instead of `core.publish_file_to_binary()`.

* tools/rst2odt_prepstyles.py

  - Removed. Use ``python -m docutils.writers.odf_odt.prepstyles``.

.. _length units: docs/ref/rst/restructuredtext.html#length-units
netbsd-srcmastr pushed a commit that referenced this pull request Aug 7, 2025
* Use cmake to build.

Changelog:
2022-10-03, LibOFX 0.10.9:

- Fix library name on Windows (#88)
- Fix several more memory issues (#90)

2022-09-27, LibOFX 0.10.8:

        - Fix null pointer dereference bugs (#87)
        - Initial support for exporting Config.cmake with targets (#81)
        - Fix version and tools description in vcpkg.json
        - Add cpack rules for "make source_package"
        - Fix installation path of libofx.h (#83)
        - Rename some variables that shadowed others to clarify different meanings #75 (#80)

2022-09-08, LibOFX 0.10.7:

        - autotools: fix LIBOFX_MAJOR_VERSION and friends in libofx.h (#76)
        - CMake: miscellaneous fixes (#73)

2022-09-04, LibOFX 0.10.6:

        - Update FindOpenSP; also allow to forcefully ENABLE SP_MULTI_BYTE (#71)
        - Add support for CMake build system (#63)
        - Minor code cleanup in CharStringtostring function and its header (#65)
        - Ignore SGML parser character error because the char is accepted fine (#60) (#64)
        - Fix find_dtd() when OFX_DTD_PATH env var is used (#66)
        - Add ./configure option to disable CLI tools
        - Only link ofx2qif against C++ STD lib
        - Win32 code fixes for MSVC compilation
        - Don't deconst iconv input buffer under Windows (#51)

2022-04-19, LibOFX 0.10.5:
        - Fix missing include for ptrdiff_t on Homebrew (#57)

2022-04-18, LibOFX 0.10.4:

        - #56: Fix parallel builds by fixing the man-page build
        - #54: Remove all "using namespace std" directives
        - #53: Fix some minor memory leaks
        - Revert #44 (fix "typos" in source code) because it was wrong

2021-09-29, LibOFX 0.10.3:

        - #45: fix gmt offset seconds
        - #44: fix various typos in source code
        - fix win32 build failure

2021-04-23, LibOFX 0.10.2:

        - #41: Improved imported date stability, see gnucash bug
        797848 and gnucash bug 636340.
        - #40: Respect --libdir for opensp. Don't override docdir.

2021-01-25, LibOFX 0.10.1:

        - Issue #37 fixed: Correct casting of iconv input argument
        - Issue #30 fixed: Let ofxdump also return an error value on error
        - Code cleanup towards normal C++

2021-01-03, LibOFX 0.10.0:

	- Issue #34 fixed: Remove unimplemented function from libofx.h header
	- Issue #30 fixed: Return error value if file parsing is unsuccessful in libofx_proc_file
	- Issue #29 fixed: Use given parameter for actual file type in libofx_proc_file

	- Large contribution adding investment / security handling in OFX files, by jeffjl74.
	- ABI-breaking change, hence MINOR version incremented (due to MAJOR still at zero),
	  but libofx.h API should only have additions
	- Details:
        - jeffjl74 Enhanced handling of investments in OFX files (support not added to OFC)
        - increased OFX_SECNAME_LENGTH to match the OFX spec (ABI-breaking change, hence MINOR version incremented)
        - OfxSecurityData now includes:
            - an enum for the type of the security (stock, bond, fund, option)
            - the optional <SECINFO> fields
            - the mandatory <DEBTINFO> and <OPTINFO> fields
            - the optional <DEBTINFO> and <OPTINFO> fields
        - added <INVBAL> parsing for cash balances in investment accounts
            - usefulness depends upon how the broker uses these fields
                - Vanguard fund account puts the market value in there instead of the cash balance
                - other tested brokers use it appropriately, though the date of the balance is sometimes inconsistent
                  usually due to unsettled trades, i.e. the "as of" date will say "today" but the cash
                  balance will actually be from a couple of days ago with the difference being unsettled trades.
        - <STMTTRN> fields under an <INVBANKTRAN> are now parsed into an OfxInvestmentTransactionContainer
            - This changes previous behaviour. LibOFX formerly provided an OfxBankTransactionContainer.
              Now it sets data.invtransactiontype_valid true with data.invtransactiontype = OFX_INVBANKTRAN.
              The end result is that the transaction callback now looks like an investment transaction
              (which it is) rather than a banking transaction (which it is not).
        - added the fields from section 13.9.2.4.2 of OFX spec 2.1.1 to OfxTransactionData
            - provides better support for bonds, options, and 401(k)
        - added <INVPOS> support to provide balances for securities
            - responds to sourceforge feature request #7
            - adds new callback for investment positions
                - adds new OfxPositionData struct
                - adds new ofx_set_position_cb function
        - added <CURRENCY>, <ORIGCURRENCY>, <CURRATE> and <CURSYM> parsing and fields to transactions, securities, and positions
        - added a new account type OfxAccountData::OFX_401K
            - if set, will add <INC401K>Y</INC401K> and <INC401KBAL>Y</INC401KBAL> in the investment statement request
                - this is currently untested
            - added parsing of transactions for 401k in the response (tested only via ofxdump on spec examples)
        - added a fix for sourceforge bug #46 account callback on <TRANSFER>
            - <TRANSFER> no longer results in redundant/irrelevant account and statement callbacks
        - modified ofxdump to support the above changes
        - added investment account examples from OFX 2.1.1 spec to "ofx_sample_files"
            - fixed some time offsets in the OFX spec examples
                - section 13.13: EST is GMT -5
                - section 16.5.3.2: August is not PST or GMT -8. Changed to -7 PDT
                - section 16.5.4.2: August is not PST or GMT -8. Changed to -7 PDT
            - updated existing samples to fix the time formats (added seconds to the time format)
        - could not get openSP to parse ofx201.dtd
            - for elements that actually still provide their data,
              ofxdump generates lots of parse errors on an OFX 2.x file.
              Data handling for these elements in ofx_sgml.cpp is a little unorthodox.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants