Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[request] pftop for Darwin #178

Open
grylem opened this issue Mar 15, 2019 · 4 comments
Open

[request] pftop for Darwin #178

grylem opened this issue Mar 15, 2019 · 4 comments
Assignees

Comments

@grylem
Copy link

grylem commented Mar 15, 2019

please add pftop to Darwin package

@jperkin
Copy link
Collaborator

jperkin commented Mar 15, 2019

This package failure is here: http://us-east.manta.joyent.com/pkgsrc/public/reports/Darwin/trunk/x86_64/20190311.0823/meta/report.html

Couldn't find pfvar.h header; please make sure that this header is available in /usr/include/net.

This package seems pretty OS-specific, and isn't available in either Homebrew or MacPorts, possibly for that reason. Are you sure it is appropriate for macOS?

@jperkin jperkin self-assigned this Mar 15, 2019
@grylem
Copy link
Author

grylem commented Mar 15, 2019

pfvar.h can be found in https://opensource.apple.com in
xnu-$version.tar.gz
for example for High Sierra is
https://opensource.apple.com/tarballs/xnu/xnu-4570.71.2.tar.gz

Are you sure it is appropriate for macOS?

Yes. macOS has pf, pfctl like the NetBSD, OpenBSD etc.

@jperkin
Copy link
Collaborator

jperkin commented Mar 15, 2019

Ok, interesting. However, I'm not sure this is going to help. I had a go at compiling this with the xnu headers, but it's not just pfvar it needs, it also needs all the altq bits, all the pktsched bits, then delves into a lot more sys/ headers, at which point I gave up for now.

Even if I manage to get it to build, this is going to be highly version-specific, and I can't see how it's going to work for our package sets, which are designed to work on any OS version since the version they were built on (currently Sierra).

For this one I'd recommend building it yourself from pkgsrc on the version of macOS you intend to run it on.

@grylem
Copy link
Author

grylem commented Mar 16, 2019

I tried but my knowledge is not enough.
maybe you will have time and desire and you will get better.
Anyway thanks

jperkin pushed a commit that referenced this issue Mar 26, 2019
Pkgsrc changes:
 * Track rename of logrotate-default to logrotate.conf
 * Add a fix so that the log file name is actually passed
   to the various script hooks(!)
   logrotate/logrotate#245

Upstream changes:

3.15.0
======
 * timer unit: change trigger fuzz from 12h to 1h (#230)
 * service unit: only run if /var/log is mounted (#230)
 * preserve fractional part of timestamps when compressing (#226)
 * re-indent source code using spaces only (#188)
 * minage: avoid rounding issue while comparing the amount of seconds (#36)
 * never remove old log files if rotate -1 is specified (#202)
 * return non-zero exit status if a config file contains an error (#199)
 * make copytruncate work with rotate 0 (#191)
 * warn user if both size and the time interval options are used (#192)
 * pass rotated log file name as the 2nd argument of the postrotate
   script when sharedscript is not enabled (#193)
 * rename logrotate-default to logrotate.conf (#187)

3.14.0
======
 * make configure show support status for SELinux and ACL at the end (#179)
 * make logrotate build again on FreeBSD (#178)
 * move wtmp and btmp definitions from logrotate.conf to
 * separate configuration files in logrotate.d (#168)
 * print a warning about logrotate doing nothing when -d is used (#165)
 * do not reject executable config files (#166)
 * add hardening options to logrotate.service in examples (#143)
 * fix spurious compressor failure when using su and compress (#169)
 * keep logrotate version in .tarball-version in release tarballs (#156)
 * introduce the hourago configuration directive (#159)
 * ignore empty patterns in tabooext to avoid exclusion of everything (#160)
 * properly report skipped test cases instead of pretending success

3.13.0
======
 * make distribution tarballs report logrotate version properly (RHBZ#1500264)
 * make (un)compress work even if stdin and/or stdout are closed (#154)
 * remove -s from DEFAULT_MAIL_COMMAND and improve its documenation (#152)
 * uncompress logs before mailing them even if delaycompress is enabled (#151)
 * handle unlink of a non-existing log file as a warning only (#144)
 * include compile-time options in the output of logrotate --version (#145)
 * make logrotate --version print to stdout instead of stderr (#145)
 * flush write buffers before syncing state file (#148)
 * specify (un)compress utility explicitly in tests (#137)
 * enable running tests in parallel (#132)
 * explicitly map root UID/GID to 0 on Cygwin (#133)
 * add .dpkg-bak and .dpkg-del to default tabooext list (#134)

3.12.3
======
 * copy and copytruncate directives now work together again
 * unlink() is no longer preceded by open() unless shred is enabled (#124)
 * compress and uncompress now take commands from $PATH, too (#122)

3.12.2
======
 * build fixes related to -Werror (#119) and -Werror=format= (#108)
 * configure --enable-werror now controls use of the -Werror flag (#123)

3.12.1
======
 * Included forgotten build-aux directory in release tarballs.

3.12.0
======
 * Fixed accident removal of rotated files with dateext. (#118)
 * Line comments inside globs in config files are now skipped. (#109)
 * logrotate now recovers from a corrupted state file. (#45)
 * Makefile.legacy has been removed. (#103)
 * config.h is now generated by autotools. (#102 and #103)
 * createolddir now creates old directory as unprivileged user. (#114)
 * weekly rotations are now predictable and configurable. (#93)
 * Errors in config files are no longer treated as fatal errors. (#81)
 * configure --with-default-mail-command specifies default mail command. (#100)
 * Fixed heap buffer overflow when parsing crafted config file. (#33)
jperkin pushed a commit that referenced this issue Apr 2, 2019
Changes:
1.8.1
-----
### Added
 - Support for:
   - `35photo` (#162)
   - `500px` (#185)
 - `instagram` extractor for hashtags (#202)
 - Option to get more metadata on `deviantart` (#189)
 - Man pages and bash completion (#150)
 - Snap improvements (#197, #199, #207)
### Changed
 - Metadata for `luscious` albums
 - FFmpeg arguments for `--ugoira-conv`
### Fixed
 - `tumblr` avatar URLs when not using OAuth1.0 (#193)
 - `instagram` multi-image posts (#178, #201)
 - Miscellaneous issues on `exhentai`, `komikcast`
jperkin pushed a commit that referenced this issue Jul 15, 2019
What's new in 0.4.3:

- New API addition: WildMidi_InitVIO(). It is like WildMidi_Init(),
- but tells the library to use caller-provided functions for file IO.
- See wildmidi_lib.h or the man page WildMidi_InitVIO(3) for details.
- This was suggested and implemented by Christian Breitwieser.
- Fixed Visual Studio optimized builds (bug #192, function ptr issue.)
- Fixed a thinko in one of the buffer size checks added in v0.4.2.
- Fixed possible out of bounds reads in sysex commands (bug #190).
- Fixed invalid reads during config parse with short patch file names.
- Do not treat a missing end-of-track marker as an error for type-0
- midi files (bug #183).
- Fixed bad reading of high delta values in XMI converter (bug #199).
- Fixed a memory leak when freeing a midi (bug #204).
- Fixed slurred/echoy playback at quick tempos on looped instruments
- (bug #185).
- Fixed certain midis sounding different compared to timidity, as if
- instruments not turned off (bug #186).
- Fixed compilation on systems without libm.
- Support for RISC OS, Nintendo Switch and PS Vita.
- Several clean-ups.

What's new in 0.4.2:

- Fixed CVE-2017-11661, CVE-2017-11662, CVE-2017-11663, CVE-2017-11664
- (Bug #175).
- Fixed WildMidi_Open() might read beyond buffer with too short inputs
- (Bug #178).
- Fixed a buffer overflow during playback with malformed midi files
- (Bug #180).
- GUS patch processing changes to meet users expectations (Bug #132).
- Worked around a build failure with newer FreeBSD versions failing to
- retrieve the ONLCR constant (Bug #171).
- Fixed a minor Windows unicode issue (PR #170).
- A few other fixes / clean-ups.

What's new in 0.4.1:

- Fixed bug in handling of the "source" directive in config files.
- Fixed a nasty bug in dBm_pan_volume. Other fixes and clean-ups.
- Build system updates. Install a pkg-config file on supported platforms such as Linux. New android ndk makefile.
- File i/o updates.
- Support for OS/2.
- Support for Nintendo 3DS
- Support for Nintendo Wii
- Support for AmigaOS and its variants like MorphOS and AROS.
jperkin pushed a commit that referenced this issue Jan 3, 2020
Version 1.3.0.0
* Semantic change of Hashable Arg instance to not hash the second
  argument of Arg in order to be consistent with Eq Arg (#171)
* Semantic change of Hashable Float and Hashable Double instances to
  hash -0.0 and 0.0 to the same value (#173)
* Add Hashable instance for Fingerprint (#156)
* Add new Data.Hashable.Generic module providing the default
  implementations genericHashWithSalt and genericLiftHashWithSalt
  together with other Generics support helpers (#148, #178)
* Bump minimum version requirement of base to base-4.5 (i.e. GHC >=
  7.4)

Version 1.2.7.0
* Add Hashable and Hashable1 instances for Complex
* Fix undefined behavior in hashable_fn_hash() implementation due to
  signed integer overflow (#152)
* Mark Data.Hashable.Lifted as Trustworthy (re SafeHaskell)
* Support GHC 8.4

Version 1.2.6.1
* Use typeRepFingerprint from Type.Reflection.Unsafe
* Bump minimum version of base to 4.4.

Version 1.2.6.0
* Add support for type-indexed Typeable.
* Rework the Generic hashable for sums.

Version 1.2.5.0
* Add Hashable1 and Hashable2
* Add instances for: Eq1, Ord1, Show1, Ptr, FunPtr, IntPtr, WordPtr
* Add Hashed type for caching the hash function result.

Version 1.2.4.0
* Add instances for: Unique, Version, Fixed, NonEmpty, Min, Max, Arg,
  First, Last, WrappedMonoid, Option
* Support GHC 8.0
jperkin pushed a commit that referenced this issue Jan 11, 2020
1.0.15.1
* Remove whitespace after @ in as-patterns for GHC HEAD #186

1.0.15.0
* Added toNonEmpty to Data.NonNull #185

1.0.14.0
* Added WrappedMono to Data.MonoTraversable #182

1.0.13.0
* Added WrappedPoly to Data.MonoTraversable #180

1.0.12.0
* Added filterSet to Data.Containers
* Use container specific implementations for filterSet and filterMap
  #178

1.0.11.0
* Adding monomorphic instances for GHC.Generics and Data.Proxy types
  #175

1.0.10.0
* Make index work on negative indices #172 #114

1.0.9.0
* Added filterMap to Data.Containers #167
jperkin pushed a commit that referenced this issue Jan 19, 2020
Update ruby-mocha to 1.11.2.

## 1.11.2

### External changes

* Fix regression introduced in v1.10.0 that meant `Object#inspect` was called unnecessarily (368abd98)
* Warn when mock object receives invocations in another test - thanks to @nitishr (#442)
* Avoid rubocop comments appearing in YARD-generated docs (d8019eed)

### Internal changes

* Replace `StubbedMethod#original_method` & `#original_visibility` attribute reader methods with instance variables - thanks to @nitishr (d917f332)
* Set up `MochaExampleTest` & `StubbaExampleTest` as acceptance tests - thanks to @nitishr (4881cc58)
* Delete unused `PrettyParameters` class - thanks to @nitishr (314ea922)

## 1.11.1

### External changes

* The `reinstate_undocumented_behaviour_from_v1_9` configuration option is now enabled by default to give people a chance to see and fix the relevant deprecation warnings before the behaviour is removed in a future release (b91b1c9e)

## 1.11.0

### External changes

* Add `Expectation#with_block_given` & `Expectation#with_no_block_given` (#441).
  * Allows non-deprecated solution for #382. Thanks to @yemartin for reporting and to @techbelly & @nitishr for feedback.
* Fix issue with non-Array arguments passed to `Expectation#multiple_yields` (#444).
  * The undocumented behaviour is now properly supported and documented.

### Internal changes

* Move static YARD options from Rake task to `.yardopts` file - thanks to @nitishr (#429)
* Simplify implementation of yielding functionality - thanks to @nitishr (#439)
* Add missing require statement to `acceptance_test_helper.rb` (1070fc02)
* Add some baseline acceptance tests for yielding behaviour (c2cac911)
* Display a sponsor button on GitHub repo page (9fc5911b)
* Use new Deprecation.warning behaviour in `Invocation#call` (932d1166)

## 1.10.2

* Optionally reinstate undocumented behaviour from v1.9. This introduces a new configuration option (`reinstate_undocumented_behaviour_from_v1_9`) to reinstate a couple of bits of undocumented behaviour from v1.9 which were changed in v1.10 without any prior deprecation warning (#438):
  * The behaviour of `API#mock`, `API#stub` and `API#stub_everything` when called with a symbol as the first argument.
  * The behaviour of `Expectation#yields` and `Expectation#multiple_yields` when the stubbed method is called without a block.

## 1.10.1

* Ensure ObjectMethods & ClassMethods included when API extended (43778756)
* Fix regression in `any_instance` stubbing of methods on object which has an implementation of `#respond_to?` that depends on the object's internal state - thanks to @rafaelfranca for reporting & @nitishr for fixing (#432, #434, 469d4b17)

## 1.10.0

* Improve deprecation warning when requiring 'mocha/setup' (388f44d7)
* Add documentation for Cucumber integration (13ab797b)
* Add documentation about an undocumented feature of `API#mock`, `API#stub` & `API#stub_everything` being changed (7ed2e4e7, d30c1717)

## 1.10.0.beta.1

* Hide `ClassMethods#method_visibility` & `#method_exists?` methods to avoid clash with Rails (#428)

## 1.10.0.alpha

### External changes

* Remove dependency on metaclass gem (#49, #365)
* Accept symbol (as well as a string) as mock/stub name - thanks to @nitishr (#347, #353, #377)
* More realistic examples in documentation for `Expectation#yields` and `#multiple_yields` - thanks to @nitishr (#352, #383)
* Improve documentation for `Mock#responds_like` & `#responds_like_instance_of` - thanks to @nitishr (#337, #384)
* Make `Expectation#yields` & `Expectation#multiple_yields` fail when the caller of the stubbed method does not provide a block. This is a change to an undocumented aspect of the public API's behaviour. If this causes your tests to fail, then fix it by removing the unnecessary call to `Expectation#yields` or `Expectation#multiple_yields` - thanks to @nitishr (#382)
* Document `MOCHA_OPTIONS` in README - thanks to @nitishr (#311, #386)
* Add documentation to explain how Mocha is intended to be used - thanks to @nitishr (#330, #385)
* Deprecation warning if integration using 'mocha/test_unit' or 'mocha/minitest' fails - thanks to @nitishr (#229, #389, c6032d0b)
* Require at least one specified sequence for `Expectation#in_sequence` - thanks to @nitishr (#79, #396, 9020248a)
* Make signatures of `Mock#unstub` & `ObjectMethods#unstub` consistent - thanks to @nitishr (#397, f04d437)
* Deprecate requiring 'mocha/setup' (36adf880)
* Optionally display matching invocations alongside expectations - thanks to @nitishr (#178, #394, 00f0540, #410)
* Put deprecations into effect (#400, #418):
  * Remove deprecated 'mocha_standalone.rb' & 'mocha/standalone.rb'
  * Fail fast if no test library loaded
  * Removed optional block for `Mocha::API#mock`, `#stub` & `#stub_everything`
  * Remove deprecated `ParameterMatchers#has_equivalent_query_string` method
  * Remove deprecated 'mocha/mini_test.rb'
* Fix typo in docs for `Mocha::Configuration.prevent` (266ce71c)
* New-style configuration (see documentation for `Mocha::Configuration`) (#407, #421)
* Deprecate support for Ruby versions earlier than v1.9 (#325, c5f8496d)
* Deprecate support for versions of test-unit & minitest which need monkey-patching (a34e1a88)
* Deprecate old-style Rails plugin (#403, 2df77134)
* Documentation fixes & improvements which also fix YARD warnings (472d5416, a2c0d64a)

### Internal changes

* Pin minitest to v5.11.3 for Ruby v1.8.7 to fix build; minitest no longer supports Ruby v1.8.7 (4a0a580)
* Upgrade JRuby to v9.2.8.0 in Travis CI builds (aa29b3f)
* Only run rubocop for MRI Ruby versions & non-integration test builds (8f1c6af)
* Reduce duplication in any instance method class - thanks to @nitishr (#378)
* Simplify `AnyInstanceMethod`, `ClassMethod`, `InstanceMethod`, `ModuleMethod` class hierarchy - thanks to @nitishr (#381)
* Simplify `ClassMethods#method_exists?` & `ObjectMethods#method_exists?` making them consistent - thanks to @nitishr (#270, #362, #370)
* Don't override definition of `singleton_class` in `ClassMethods` - thanks to @nitishr (#391, #392)
* Do not include 'method_definer' methods into all objects (#268, #402)
* Distinguish different `ObjectMethods` modules (#268, #404)
* Pass invocation to expectation list methods - thanks to @nitishr (#408, #409, #411)
* Consistently use `assert_raises` - thanks to @nitishr (#405, #412, a66b7bed)
* Update Ruby & JRuby versions in Travis CI config (18cb1a93, eb061c53)
* Rubocop improvements (aa16ea67...6f4db70b, 2a1240e6...e95716ae)
* Fix inconsistency in CardinalityTest (aa10e0a8)
* Fix test failures on Mac OSX Catalina - thanks to @nitishr (#413, #417, #419, 8a0f2535)
* Remove default argument in `Expectation#invoke` - thanks to @nitishr (#414, #420)
jperkin pushed a commit that referenced this issue Mar 25, 2020
Update ruby-mixlib-shellout to 3.0.9.


3.0.9 (2019-12-30)

* Add Ruby 2.6/2.7 and Windows testing #198 (tas50)
* Substitute require for require_relative #199 (tas50)


3.0.7 (2019-07-31)

* Add the actual BK pipeline config #185 (tas50)
* Blinding applying chefstyle -a. #191 (zenspider)
* Fix return type of Process.create to be a ProcessInfo instance again. #190
  (zenspider)


3.0.4 (2019-06-07)

* update travis/appveyor, drop ruby 2.2 support, test on 2.6 #176
  (lamont-granquist)
* Misnamed parameter in README #178 (martinisoft)
* Add new github templates and codeowners file #179 (tas50)
* Add BuildKite pipeline #184 (tas50)
* Support array args on windows WIP #182 (lamont-granquist)
* Load and unload user profile as required #177 (dayglojesus)


2.4.4 (2018-12-12)

* Have expeditor promote the windows gem as well #172 (tas50)
* Don't ship the readme in the gem artifact #173 (tas50)


2.4.2 (2018-12-06)

* Test on ruby-head and Ruby 2.6 in Travis #170 (tas50)
* Remove dev deps from the gemspec #171 (tas50)
jperkin pushed a commit that referenced this issue May 17, 2020
Update ruby-loofah to 2.5.0.


## 2.5.0 / 2020-04-05

### Features

* Allow more CSS length units: "ch", "vw", "vh", "Q", "lh", "vmin", "vmax". [#178] (Thanks, @JuanitoFatas!)


### Fixes

* Remove comments from `Loofah::HTML::Document`s that exist outside the `html` element. [#80]


### Other changes

* Gem metadata being set [#181] (Thanks, @JuanitoFatas!)
* Test files removed from gem file [#180,#166,#159] (Thanks, @JuanitoFatas and @greysteil!)
jperkin pushed a commit that referenced this issue Jun 22, 2020
05/20/2020 Version 4.3.3
    - Increase cache buffers size to accomodate VLAN edits (#594)
    - Correct L2 header length to correct IP header offset (#583)
    - Fix warnings from gcc version 10 (#580)
    - Heap Buffer Overflow in randomize_iparp (#579)
    - Use after free in get_ipv6_next (#578)
    - Heap Buffer Overflow in git_ipv6_next (#576)
    - Call pcap_freecode() on pcap_compile() (#572)
    - Increase max snaplen to 262144 (#571)
    - Fix divide by zero in fuzzing (#570)
    - Unique IP repeats at very high iteration counts (#566)
    - Fails to compile on FreeBSD amd64 13.0 (#558)
    - Heap Buffer Overflow in do_checksum (#556) (#577)
    - Attempt to correct corrupt pcap files, if possible (#557)
    - Fix GCC v10 warnings (#555)
    - Remove some duplicated SOURCES entries (#551)
    - Expand /dev/bpfX hard limit to fix macOS Mojave (#550)
    - Implement --loopdelay-ms when using --loop=0 (#546)
    - Heap overflow packet2tree and get_l2len (#530)

03/12/2019 Version 4.3.2
    - CVE-2019-8381 memory access in do_checksum() (#538)
    - CVE-2019-8376 NULL pointer dereference get_layer4_v6() (#537)
    - CVE-2019-8377 NULL pointer dereference get_ipv6_l4proto() (#536)
    - Rename Ethereal to Wireshark (#545)

12/27/2018 Version 4.3.1
    - Fix checkspell detected typos (#531)

11/10/2018 Version 4.3.0
    - Fix maxOS TOS checksum failure (#524)
    - TCP sequence edits seeding (#514)
    - Fix issues identifed by Codacy (#493)
    - CVE-2018-18408 use-after-free in post_args (#489)
    - CVE-2018-18407 heap-buffer-overflow csum_replace4 (#488)
    - CVE-2018-17974 heap-buffer-overflow dlt_en10mb_encode (#486)
    - CVE-2018-17580 heap-buffer-overflow fast_edit_packet (#485)
    - CVE-2018-17582 heap-buffer-overflow in get_next_packet (#484)
    - Out-of-tree build (#482)
    - CVE-2018-13112 heap-buffer-overflow in get_l2len (#477 dup #408)
    - Closing stdin on pipe (#479)
    - Second pcap file hangs on multiplier option (#472)
    - Jumbo frame support for fragroute option (#466)
    - TCP sequence edit ACK corruption (#451)
    - TCP sequence number edit initial SYN packet should have zero ACK (#450)
    - Travis CI build fails due to new build images (#432)
    - Upgrade libopts to 5.18.12 to address version build issues (#430)
    - Add ability to change tcp SEQ/ACK numbers (#425)
    - Hang using loop and netmap options (#424)
    - tcpprep -S not working for large cache files (#423)
    - Unable to tcprewrite range of ports with --portmap (#422)
    - --maxsleep broken for values less than 1000 (#421)
    - -T flag breaks traffic replay timing (#419)
    - Respect 2nd packet timing (#418)
    - Avoid non-blocking behaviour when using STDIN (#416)
    - pcap containing >1020 packets produces invalid cache file (#415)
    - manpage typos (#413)
    - Fails to open tap0 on Zephyr (#411)
    - Heap-buffer-overflow in get_l2protocol (#410)
    - Heap-buffer-overflow in packet2tree (#409)
    - Heap-buffer-overflow in get_l2len (#408)
    - Heap-buffer-overflow in flow_decode (#407)
    - Rewrite zero IP total length field to match the actual packet length (#406)
    - Stack-buffer-overflow in tcpcapinfo (#405)
    - tcpprep --include option does not exclude (#404)
    - Negative-size-param memset in dlt_radiotap_get_80211 (#402)
    - tcpeplay --verbose option not working (#398)
    - Fix replay when using --with-testnic (#178)
jperkin pushed a commit that referenced this issue Jul 8, 2020
v1.4.1

  • Use sudo when necessary to install in system-wide NSS stores (#192)
  • Add a -version flag (#191)
  • Speed up macOS execution by 4x for most users (#135)
  • Minor usability improvements (#182, #178, #188)


v1.4.0

macOS Catalina compatibility, URL and email SANs, and more

macOS 10.15 Catalina introduced certificate lifespan limits which block mkcert
certificates. As a temporary measure, mkcert certificates now have a fixed
notBefore date of June 1st, 2019. Once the ACME server is implemented,
certificate lifespan will be shortened to 3 months. (#174)

Certificates generated by previous versions of mkcert after July 1st, 2019 will
not work on macOS 10.15 Catalina, and will have to be regenerated. The root CA
is unaffected and there is no need to rerun mkcert -install.

URL (#166) and email (for S/MIME, #152) SANs are now supported.

Client certificates are now created with a -client filename suffix, and they
claim the serverAuth EKU as well as the clientAuth one.

The certificate subject now includes the full user name, like
filippo@Bistromath.local (Filippo Valsorda).

SLES, OpenSUSE (#162), Snapcraft (#116), and CentOS 7 (#120) are now supported.

Linux release binaries are now fully static, and will work regardless of the
system libc. (#169)

v1.3.0

New advanced options:

  • -ecdsa to generate ECDSA private keys
  • -client to generate client certificates
  • -csr to sign certificate signing requests
  • $TRUST_STORES to select what stores to install into

Also, in other news:

  • Add "Firefox Nightly.app" support on macOS
  • Set the CommonName when generating PKCS#12 files for IIS
jperkin pushed a commit that referenced this issue Sep 9, 2020
0.2.2
Changes

-DBus: Fetch playback progress when position is queried (fixes #223, #236)
-DBus: Fix trackid replacing string with d-bus path, Seek & SetPosition
implementation (#252)
-Add notifications (#247)
-Do not delete from empty queue (fixes #253)
-Make contextmenu aware of commands (e.g. for Vim-like bindings)
(fixes #108, #157, #178, #199, #250)
-Use libc for setlocale() to fix non-ASCII (#256)
jperkin pushed a commit that referenced this issue Sep 18, 2020
0.60:

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

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

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

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


0.59.1:

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

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

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


0.59:

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

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

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

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

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


0.58.1:

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

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

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


0.58:

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

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

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

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

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

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

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

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

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

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

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

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

Documentation:
 * Various cleanups by Golubev Alexander (GitHub's #190 & #191)
jperkin pushed a commit that referenced this issue Nov 6, 2020
Version 1.64.1
--------------

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

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

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

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

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

- No change from 1.63.92.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Various build fixes [Philip Chimento]

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

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

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

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

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

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

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

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

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

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

- No change from 1.57.92.

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

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

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

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

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

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

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

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

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

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

- Various CI fixes [Philip Chimento]

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

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

- Misc documentation changes [Philip Chimento]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- No change from 1.55.92.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Closed bugs and merge requests:

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

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

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

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

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

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

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

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

- Backported various maintenance from 3.31 [Philip Chimento]

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

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

- Closed bugs and merge requests:

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

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

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

- Closed bugs and merge requests:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  We estimate this will cover many common use cases.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      let byteArray = functionThatReturnsByteArray();

  to this:

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

  To port to the new code:

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

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

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

    should be replaced by this code:

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

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

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

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

- Closed bugs and merge requests:

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

- Various build fixes [Philip Chimento]
jperkin pushed a commit that referenced this issue Feb 23, 2021
Changelog:
## [1.7.2](rime/librime@1.7.1...1.7.2) (2021-02-07)


### Bug Fixes

* **chord_composer:** should clear raw input after committing text ([79b34ab](rime/librime@79b34ab))



## [1.7.1](rime/librime@1.7.0...1.7.1) (2021-02-06)


### Bug Fixes

* **chord_composer:** press Return key to commit raw key sequence ([2b25861](rime/librime@2b25861))



# [1.7.0](rime/librime@1.6.1...1.7.0) (2021-01-17)


### Bug Fixes

* **chord_composer:** more safely handle the placeholder ZWSP ([025d9fb](rime/librime@025d9fb))
* **cmake:** use full paths defined by GNUInstallDirs ([bb8c263](rime/librime@bb8c263)), closes [#424](rime/librime#424)
* **opencc:** update submodule to fix [#425](rime/librime#425) ([3fa1571](rime/librime@3fa1571))
* **script_translator:** always_show_comments also applies to phrases ([440a97c](rime/librime@440a97c)), closes [#272](rime/librime#272) [#419](rime/librime#419)
* **table_translator:** index out of bound access in string ([ff7acdc](rime/librime@ff7acdc))


### Features

* **chareset_filter:** add CJK Compatibility Ideographs in is_extended_cjk() ([3cb1128](rime/librime@3cb1128)), closes [#305](rime/librime#305)
* **setup:** find and load external RIME plugins as shared libs [#431](rime/librime#431) ([b2abd09](rime/librime@b2abd09))



## [1.6.1](rime/librime@1.6.0...1.6.1) (2020-09-21)


### Bug Fixes

* **rime_api.cc:** dangling pointer returned from RimeGetSharedDataDir ([78abaa8](rime/librime@78abaa8))



# [1.6.0](rime/librime@1.5.3...1.6.0) (2020-09-20)


### Bug Fixes

* **ascii_composer:** do not comsume Shift key release ([debc2c0](rime/librime@debc2c0))
* **ascii_composer:** first read ascii_composer/good_old_caps_lock from schema config ([3fc56c4](rime/librime@3fc56c4))
* **chord_composer:** commit raw input with uppercase letters ([cc983d5](rime/librime@cc983d5))
* **CMakeLists.txt:** ensure paths in pkgconfig file are absolute ([0e96e51](rime/librime@0e96e51))
* **CMakeLists.txt:** would not use signals v1 due to a typo ([6662a28](rime/librime@6662a28)), closes [#225](rime/librime#225)
* **custom_settings:** accept "*.schema" as config id ([604da0b](rime/librime@604da0b))
* **dict:** issues with user db recovery ([0f3d0df](rime/librime@0f3d0df))
* **dict_compiler:** build prism with loaded syllabary when not rebuilding primary table ([93fe827](rime/librime@93fe827))
* **plugins/CMakeLists.txt:** avoid rime_library linking to itself via rime_plugins_deps ([fe744db](rime/librime@fe744db))
* **rime_api.cc:** check struct has member of non-pointer type ([090dfa4](rime/librime@090dfa4))
* **rime_api.cc:** using unchecked fields introduced an ABI breakage ([62bbead](rime/librime@62bbead)), closes [/github.com/rime/librime/pull/328#pullrequestreview-335125464](https://github.com//github.com/rime/librime/pull/328/issues/pullrequestreview-335125464)
* **rime_test:** set data directories to working directory using rime::SetupDeployer API ([7c08a90](rime/librime@7c08a90))
* **simplifier:** opencc::DictEntry::Values() type change in opencc 1.1.0 ([beae5b1](rime/librime@beae5b1)), closes [#367](rime/librime#367)
* **user_db:** pointer cast error caused by multiple inheritance ([2ed780b](rime/librime@2ed780b))
* use official emoji 12.0 data ([#304](rime/librime#304)) ([75a60dc](rime/librime@75a60dc))


### Features

* **api:** implement capnproto api ([873f648](rime/librime@873f648))
* **api:** include candidate labels in proto message ([aae7a0c](rime/librime@aae7a0c))
* **charset_filter:** support charset options with emoji ([#293](rime/librime#293)) ([943c95b](rime/librime@943c95b))
* **charset_filter:** support CJK Unified Ideographs Extension G ([#393](rime/librime#393)) ([0a1573d](rime/librime@0a1573d))
* **chord_composer:** support chording with Shift keys ([94cf479](rime/librime@94cf479))
* **chord_composer:** use Control, Alt, Shift to input chord ([f3a2ad0](rime/librime@f3a2ad0))
* **dictionary:** packs extends the dictionary with extra binary table files ([930074c](rime/librime@930074c))
* **key_binder:** bind key to a key sequence ([3b5dbf6](rime/librime@3b5dbf6)), closes [#301](rime/librime#301)
* **logging:** setup min log level, log dir and set file mode to log files ([90839b0](rime/librime@90839b0))
* **selector:** support 4 combinations of horizontal/vertical text orientation and stacked/linear candidate list layout ([c498f71](rime/librime@c498f71))
* **selector:** support vertical UI ([dbb35c6](rime/librime@dbb35c6))
* **switcher:** enable schema in cases where conditions are met ([217c72b](rime/librime@217c72b))
* **tools/rime_proto_console:** demo for proto api ([d88ef9f](rime/librime@d88ef9f))


### Performance Improvements

* **poet:** optimize for performance in making sentences (~40% faster) ([0853465](rime/librime@0853465))



## [1.5.3](rime/librime@1.5.2...1.5.3) (2019-06-22)


### Bug Fixes

* **cmake, xcode.mk:** find optional dependency icu, while building xcode/release-with-icu target  [skip appveyor] ([17a80f8](rime/librime@17a80f8))
* **single_char_filter:** broken in librime 1.5.2 ([6948a62](rime/librime@6948a62))


### Features

* **appveyor:** build variant "rime-with-plugins" for tagged commits  [skip travis] ([eef8c30](rime/librime@eef8c30))
* **travis-ci:** build variant "rime-with-plugins" for tagged commits  [skip appveyor] ([cf11c27](rime/librime@cf11c27))
* **travis-ci:** deploy artifacts for macOS to GitHub releases  [skip appveyor] ([3f03784](rime/librime@3f03784))



## [1.5.2](rime/librime@1.5.1...1.5.2) (2019-06-17)


### Bug Fixes

* **user_dictionary, contextual_translation:** fix user phrase quality; order contextual suggestions by type ([69d5c32](rime/librime@69d5c32))



## [1.5.1](rime/librime@1.5.0...1.5.1) (2019-06-16)


### Bug Fixes

* **user_dictionary:** make user phrases comparable in weight to system words ([982f69d](rime/librime@982f69d))



# [1.5.0](rime/librime@1.4.0...1.5.0) (2019-06-06)


### Bug Fixes

* **ci:** update build script ([84a1a1b](rime/librime@84a1a1b))
* **ci:** use submodules in AppVeyor CI build script ([7b515b4](rime/librime@7b515b4))
* **cmake:** libboost Windows XP compatibility fix ([#270](rime/librime#270)) ([fecfe39](rime/librime@fecfe39)), closes [rime/weasel#337](rime/weasel#337)
* **CMakeLists.txt:** install header files in all platforms ([821d563](rime/librime@821d563))
* **CMakeLists.txt:** set "-std=c++11" in CMAKE_CXX_FLAGS ([5d8a836](rime/librime@5d8a836))
* **config/plugins.h:** memory leak caused by non-virtual destructor ([316a659](rime/librime@316a659)), closes [#259](rime/librime#259)
* **deploy:** treat schema dependencies as optional; do not report errors if missing ([ff3d5e9](rime/librime@ff3d5e9))
* **engine:** schema doesn't match the one used by switcher ([e41bb63](rime/librime@e41bb63)), closes [#269](rime/librime#269)
* **rime_levers_api.h:** customize_bool() misused `bool` type ([42bacc5](rime/librime@42bacc5))
* **syllabifier:** enable_completion not working ([2714131](rime/librime@2714131)), closes [#343](rime/librime#343)
* **table_translator:** null pointer exception when dict entries are filtered ([77438a9](rime/librime@77438a9))
* **test:** compile error in unit test ([7076d9e](rime/librime@7076d9e))
* **travis-install.sh:** working directory ([97220ce](rime/librime@97220ce))


### Features

* **appveyor:** install RIME_PLUGINS  [skip travis] ([c7ce66f](rime/librime@c7ce66f))
* **CMakeList.txt:** add plugin build support ([#257](rime/librime#257)) ([dfa341b](rime/librime@dfa341b))
* **contextual_translation:** weight and re-order phrases by context ([2390da3](rime/librime@2390da3))
* **dict:** specify vocabulary db name in dict settings ([dcdc301](rime/librime@dcdc301))
* **grammar:** compare homophones/homographs in sentence ([9248a6b](rime/librime@9248a6b))
* **install-plugins.sh:** git-clone or update plugins ([70483b4](rime/librime@70483b4))
* **poet:** find best sentence candidates ([b3f4005](rime/librime@b3f4005))
* **rime_api:** get candidate list from index ([c587900](rime/librime@c587900))
* **translator:** contextual suggestions in partially selected sentence ([12a7501](rime/librime@12a7501))
* **translator:** look at preceding text when making sentence ([6ae34de](rime/librime@6ae34de))
* **travis-ci:** install plugins specified in envvar RIME_PLUGINS ([c857639](rime/librime@c857639))


### Performance Improvements

* **dictionary:** refactor DictEntryIterator and do partial sort ([0258c7f](rime/librime@0258c7f))


### BREAKING CHANGES

* **rime_levers_api.h:** in signature of C API function `customize_bool()`,
change type `bool` to `Bool` (alias of `int`).

Impact: the changed function is not in use by any first party code,
known to be in use by osfans/trime.



# [1.4.0](rime/librime@1.3.2...1.4.0) (2019-01-16)


### Bug Fixes

* **config:** user_config should not fall back to shared data ([68c8a34](rime/librime@68c8a34)), closes [#271](rime/librime#271)
* **SymlinkingPrebuiltDictionaries:** remove dangling symlinks ([5ad333d](rime/librime@5ad333d)), closes [#241](rime/librime#241)
* **SymlinkingPrebuiltDictionaries:** remove dangling symlinks ([f8e4ebf](rime/librime@f8e4ebf)), closes [#241](rime/librime#241)


### Features

* spelling correction ([#228](rime/librime#228)) ([ad3638a](rime/librime@ad3638a))
* **Dockerfile:** for build ([#246](rime/librime#246)) ([cafd0d5](rime/librime@cafd0d5))



## [1.3.2](rime/librime@1.3.1...1.3.2) (2018-11-12)


### Bug Fixes

* **CMakeLists.txt:** do not link binaries when building static library ([99573e3](rime/librime@99573e3))
* **CMakeLists.txt:** do not require boost::signals, which will be deprecated in Boost 1.69 ([8a9ef3b](rime/librime@8a9ef3b)), closes [#225](rime/librime#225)
* **config_compiler:** ambiguous operator overload with cmake option ENABLE_LOGGING=OFF ([b86b647](rime/librime@b86b647)), closes [#211](rime/librime#211)
* **config_compiler:** support creating list in-place by __patch and __merge ([0784eb0](rime/librime@0784eb0))
* **table_translator:** enable encoding uniquified commit history ([74e31bc](rime/librime@74e31bc))


### Features

* **language:** shared user dictionary per language (Closes [#184](rime/librime#184)) ([#214](rime/librime#214)) ([9f774e7](rime/librime@9f774e7))
* always_show_comments option ([#220](rime/librime#220)) ([19cea07](rime/librime@19cea07))



## [1.3.1](rime/librime@1.3.0...1.3.1) (2018-04-01)


### Bug Fixes

* **config_file_update:** clean up deprecated user copy ([#193](rime/librime#193)) ([8d8d2e6](rime/librime@8d8d2e6))
* **thirdparty/src/leveldb:** do not link to snappy library ([6f6056a](rime/librime@6f6056a))



# 1.3.0 (2018-03-09)


### Bug Fixes

* **CMakeLists.txt, build.bat:** install header files (public API) ([06c9e86](rime/librime@06c9e86))
* **config_compiler:** "/" mistaken as path separator in merged map key ([#192](rime/librime#192)) ([831ffba](rime/librime@831ffba)), closes [#190](rime/librime#190)
* **ConfigFileUpdate:** no need to create user build if shared build is up-to-date ([cafd5c4](rime/librime@cafd5c4))
* **SchemaUpdate:** read compiled schema from shared build if there is no user build ([45a04dd](rime/librime@45a04dd))
* **simplifier:** fix typo ([9e1114e](rime/librime@9e1114e)), closes [#183](rime/librime#183)
* **user_db:** unwanted implicit instantiation of UserDbFormat template ([3cbc9cb](rime/librime@3cbc9cb)), closes [#188](rime/librime#188)


### Chores

* **release tag:** deprecating tag name prefix 'rime-' in favor of semver 'X.Y.Z'


### BREAKING CHANGES

* **release tag:** After 1.3.0 release, we'll no longer be creating tags in the format 'rime-X.Y.Z'. Downstream packagers please change automated scripts accordingly.



## 1.2.10 (2018-02-21)


### Bug Fixes

* **config_compiler:** linking failure on blocking root node of a dependency resource ([ecf3397](rime/librime@ecf3397))
* table_translator not making sentence if table entry is hidden by charset filter. ([77eb12e](rime/librime@77eb12e))
* **appveyor.install.bat:** switch to a more stable download server for libboost ([bcc4d10](rime/librime@bcc4d10))
* **appveyor.yml:** archive header files ([c8b1e67](rime/librime@c8b1e67))
* **ascii_composer:** support key binding Shift+space in ascii mode ([7077389](rime/librime@7077389))
* **build.bat:** fix build errors with VS2015 build tools ([ec940c6](rime/librime@ec940c6))
* **calculus, recognizer:** memory leak due to unchecked regex error ([19ddc1e](rime/librime@19ddc1e)), closes [#171](rime/librime#171)
* **chord_composer:** allow editor to define BackSpace key behavior ([7f41f65](rime/librime@7f41f65))
* **chord_composer:** letters with modifier keys should not be committed by a following enter key ([aab5eb8](rime/librime@aab5eb8))
* **ci:** call cmake under /usr/local with sudo by passing $PATH environment variable ([a0e6d2f](rime/librime@a0e6d2f))
* **cmake:** fix build break for mingw ([939893c](rime/librime@939893c))
* **config:** auto save modified config data; fixes [#144](rime/librime#144) ([2736f4b](rime/librime@2736f4b))
* **config:** treat "@" as map key rather than list index ([a1df9c5](rime/librime@a1df9c5))
* **config_compiler:** duplicate PendingChild dependencies happen from multiple commands on the same node ([25c28f8](rime/librime@25c28f8))
* **config_compiler:** enforce dependency priorities ([69a6f3e](rime/librime@69a6f3e))
* **config_compiler:** null value should not overwrite a normal key in a merged tree ([4ecae44](rime/librime@4ecae44))
* **config_compiler:** template operator overload had compile error with NDK ([71817a0](rime/librime@71817a0))
* **config/build_info_plugin:** referenced but unavailable resources should also be recorded ([cd46f7a](rime/librime@cd46f7a))
* **ConfigFileUpdate:** should succeed if shared copy does not exist ([8a3e25c](rime/librime@8a3e25c))
* **custom_settings:** fall back to $shared_data_dir/build when loading config ([caf8ebb](rime/librime@caf8ebb))
* **custom_settings:** load built settings from $user_data_dir/build directory ([463dc09](rime/librime@463dc09))
* **deployment_tasks:** symbols.yaml is no longer a build target ([f920e4f](rime/librime@f920e4f))
* **dict_compiler:** prism should load compiled schema ([c2fd0cf](rime/librime@c2fd0cf)), closes [#176](rime/librime#176)
* **key_event:** KeySequence::repr() prefer unescaped punctuation characters ([aa43e5e](rime/librime@aa43e5e))
* **levers:** update deployment tasks for copy-free resource resolution ([1f86413](rime/librime@1f86413))
* **Makefile:** make install-debug; do return error code on mac ([1177142](rime/librime@1177142))
* **rime_api:** use user_config_open() to access user.yaml ([4e4a491](rime/librime@4e4a491))
* **rime_console:** not showing switcher's context ([632cf4b](rime/librime@632cf4b))
* **schema:** create a "schema" component that opens Config by schema_id ([555f990](rime/librime@555f990))
* **simplifier:** fix crash if no opencc file ([091cb9d](rime/librime@091cb9d))
* **simplifier:** tips option for show_in_comment simplifier ([e7bb757](rime/librime@e7bb757))
* **uniquifier:** half of the duplicate candidates remain after dedup [Closes [#114](rime/librime#114)] ([2ab76bc](rime/librime@2ab76bc))


### Features

* **build.bat:** customize build settings via environment variables ([#178](rime/librime#178)) ([1678b75](rime/librime@1678b75))
* **chord_composer:** accept escaped chording keys ([79a32b2](rime/librime@79a32b2))
* **chord_composer:** support chording with function keys ([48424d3](rime/librime@48424d3))
* **config:** add config compiler plugin that includes default:/menu into schema ([b51dda8](rime/librime@b51dda8))
* **config:** best effort resolution for circurlar dependencies ([2e52d54](rime/librime@2e52d54))
* **config:** build config files if source files changed ([0d79712](rime/librime@0d79712))
* **config:** config compiler plugins that port legacy features to the new YAML syntax ([a7d253e](rime/librime@a7d253e))
* **config:** config_builder saves output to $rime_user_dir/build/ ([e596155](rime/librime@e596155))
* **config:** references to optional config resources, ending with "?" ([14ec858](rime/librime@14ec858))
* **config:** save __build_info in compiled config ([45a7337](rime/librime@45a7337))
* **config:** separate out config_builder and user_config components ([9e9493b](rime/librime@9e9493b))
* **config:** support append and merge syntax ([04dcf42](rime/librime@04dcf42))
* **customizer:** disable saving patched config files ([88f5a0c](rime/librime@88f5a0c))
* **detect_modifications:** quick test based on last write time of files ([285fbcc](rime/librime@285fbcc))
* **dict:** no conditional compilation on arm ([85b945f](rime/librime@85b945f))
* **dict:** relocate binary files to $user_data_dir/build ([bc66a47](rime/librime@bc66a47))
* **dict:** use resource resolver to find dictionary files ([8ea08b3](rime/librime@8ea08b3))
* add property notifier ([fa7b5a5](rime/librime@fa7b5a5))
* **resource_resolver:** add class and unit test ([03ee8b4](rime/librime@03ee8b4))
* **resource_resolver:** fallback root path ([02151da](rime/librime@02151da))
* **translator:** add history_translator ([#115](rime/librime#115)) ([ae13354](rime/librime@ae13354))



## 1.2.9 (2014-12-14)

* **rime_api.h:** add `RIME_MODULE_LIST`, `RIME_REGISTER_MODULE_GROUP`.
* **Makefile:** add make targets `thirdparty/*` to build individual libraries.
* **legacy/src/legacy_module.cc:** plugin module `rime-legacy` for GPL code,
  providing component `legacy_userdb` for user dictionary upgrade.
* **src/setup.cc:** define module groups `"default"` and `"deployer"`, to avoid
	naming a list of built-bin modules in `RimeTraits::modules`.
* **test/table_test.cc:** fix random segment faults when run shuffled.
* **thirdparty/src/leveldb:** new dependency LevelDB, replacing Kyoto Cabinet.
* **dict/level_db:** userdb implementation based on LevelDB, replacing treeDb.
* **dict/tree_db:** moved to `legacy/src/`.
* **dict/user_db:** refactored and modularized to ease adding implementations.
* **gear/cjk_minifier:** support CJK Extension E.
* **gear/memory:** save cached phrases as soon as the next composition begins.
* **gear/recognizer:** match space iff set `recognizer/use_space: true`.
* **gear/simplifier:** catch and log OpenCC exceptions when loading.
* **gear/single_char_filter:** bring single character candidates to the front.
* **gear/simplifier:** adapt to OpenCC 1.0 API.
* **thirdparty/src/opencc:** update OpenCC to v1.0.2 (incompatible with v0.4).
* **lever/deployment_tasks:** update and rename task `user_dict_upgrade`.



## 1.2 (2014-07-15)

* **rime_api:** add API functions to access complex structures in config;
  add API to get the raw input and cursor position, or to select a candidate.
* **config:** support references to list elements in key paths.
  eg. `schema_list/@0/schema` is the id of the first schema in schema list.
* **switcher:** enable folding IME options in the switcher menu.
* **dict_compiler:** also detect changes in essay when updating a dictionary;
  support updating prism without the source file of the dictionary.
* **preset_vocabulary:** load `essay.txt` instead of `essay.kct`.
* **reverse_lookup_dictionary:** adopt a new file format with 50% space saving.
* **table:** add support for a new binary format with 20% space saving;
  fix alignment on ARM.
* **ascii_composer:** do not toggle IME states when long pressing `Shift` key;
  support discarding unfinished input when switching to ASCII mode.
* **affix_segmentor:** fix issues with selecting a partial-match candidate.
* **chord_composer:** commit raw input composed with original key strokes.
* **cjk_minifier:** a filter to hide characters in CJK extension set, works
  with `script_translator`.
* **navigator:** do not use `BackSpace` to revert selecting a candidate but to
  edit the input after moving the cursor left or right.
* **punctuator:** support `ascii_punct` option for switching between Chinese and
  Western (ASCII) punctuations.
* **speller:** auto-select candidates by pattern matching against the code;
  fix issues to cooperate with punctuator.
* **CMakeLists.txt:** add options `ENABLE_LOGGING` and `BOOST_USE_CXX11`;
  introduce a new dependency: `libmarisa`.
* **cmake/FindYamlCpp.cmake:** check the availability of the new (v0.5) API.
* **sample:** the directory containing a sample plug-in module.
* **tools/rime_patch.cc:** a command line tool to create patches.
* **thirdparty:** include source code of third-party libraries to ease
  building librime on Windows and Mac.



## 1.1 (2013-12-26)

* **new build dependency:** compiler with C++11 support.
  tested with GCC 4.8.2, Apple LLVM version 5.0, MSVC 12 (2013).
* **encoder:** disable warnings for phrase encode failures in log output;
  limit the number of results in encoding a phrase with multiple solutions.
* **punctuator:** fixed a bug in matching nested "pairs of 'symbols'".
* **speller:** better support for auto-committing, allowing users of table
  based input schema to omit explicitly selecting candidates in many cases.
* **schema_list_translator:** option for static schema list order.
* **table_translator:** fixed the range of CJK-D in charset filter.
jperkin pushed a commit that referenced this issue Jun 15, 2021
# pillar 1.6.1

- Bump required versions of ellipsis and vctrs to avoid warning during package load.
- `obj_sum()` no longer includes shape twice (#315).


# pillar 1.6.0

## Features

- New `num()` and `char()` offer a flexible way to customize the display of numeric and character columns (#191, #84).
- New `"pillar.max_dec_width"` option (#308).
- New `format_type_sum.AsIs()` avoids the need to implement your own `format_type_sum()` method (#286).
- `align()` gains `space` argument to control the character used for filling (#285).
- Numbers in scientific and decimal notation are formatted with the same rules regarding significant or decimal digits (#297).

## Bug fixes

- Load the debugme package only if the `DEBUGME` environment variable is set.
- More accurate detection if the decimal dot is necessary, and how many digits to show after the decimal dot (#298).
- Use display width instead of number of characters when truncating character columns.

## Documentation

- New `vignette("numbers")` and `vignette("digits")` (#308).

## Internal

- Compatibility with vctrs 0.3.7 (#291).
- `format.pillar_shaft_simple()` requires `"na"` attribute and no longer defaults to `pillar_na()` (#273).


# pillar 1.5.1

## Features

- New `format_glimpse()` (#177).

## Bug fixes

- Color and formatting can now be reliably turned off by setting the `"cli.num_colors"` option to 1 (#269).

## Documentation

- Add examples for new functions (#264).
- Fix lifecycle badges everywhere.


# pillar 1.5.0

## Breaking changes

- `obj_sum()` now always returns a string. `pillar_shaft.list()` iterates over its elements and calls `obj_sum()` for each (#137).

- Breaking: `print.pillar()` and `print.pillar_ornament()` now show  `<pillar>` `<pillar_ornament>` in the first line (#227, #228).

- pillar has been re-licensed as MIT (#215).

## Extensibility

- New `size_sum()` generic (#239).

- New `ctl_new_pillar()` and `ctl_new_compound_pillar()` used via `print.tbl()`, `format.tbl()` and `tbl_format_setup.tbl()` (#230).

- New `new_pillar()` low-level constructor (#230).

- New `new_pillar_component()` and `pillar_component()` (#230).

- New articles `vignette("extending")` and `vignette("printing")` (#251).

## Formatting

- All printing code has been moved from tibble to pillar (#179), including `glimpse()` (#234). This concentrates the printing code in one package and allows for better extensibility.

- Improve formatting for `"Surv"` and `"Surv2"` classes from the survival package (#199).

- Vectors of the `vctrs_unspecified()` class are formatted better (#256).

- Arrays are now formatted by showing only their first slice (#142).

- Avoid wrapping extra column names with spaces (#254).

## Internal

- Now using debugme to simplify understand the complex control flow, see `vignette("debugme")` (#248).

- New `format.pillar_ornament()` (#228).

- Using testthat 3e (#218).

- Avoid pillar.bold option in most tests (#216).

- Change internal storage format for `colonnade()` and `extra_cols()` (#204).


# pillar 1.4.7

- Adapt to changed environment on CRAN's Solaris machine.


# pillar 1.4.6

- Restore compatibility with R 3.2.


# pillar 1.4.5

## Features

- New `pillar.min_chars` option allows controlling the minimum number of characters shown for a character column (#178, @statsmaths).

- `bit64::integer64()` columns are now formatted the same way as numeric columns (#175).

- New `align()` to support easy alignment of strings within a character vector (existing function exported by @davidchall, #185).

## Technical

- `pillar_shaft()`, `format_type_sum()` and `extra_cols()` issue a warning if dots are unused.

- `new_pillar_title()` and `new_pillar_type()` warn if `...` is not empty.

## Internal

- Use lifecycle package.

- Remove compatibility code for R < 3.3.


# pillar 1.4.4

- `obj_sum()` uses `vctrs::vec_size()` internally.

- `is_vector_s3.default()` is soft-deprecated and no longer used. Please ensure that `vctrs::vec_is()` is `TRUE` for your class.

- Rely on vctrs for type abbreviations.


# pillar 1.4.3

- `new_pillar_shaft_simple()` gains `na` argument to control appearance of `NA` values.

- String columns are quoted if at least one value needs quotes (#171).

- Apply subtle style to `list_of` columns (#172).

- Fix formatting if mantissa is very close to 1 (#174).

- Use `as.character()` instead of `as_character()`.

- Remove compatibility with testthat < 2.0.0.
jperkin pushed a commit that referenced this issue Nov 28, 2021
Changes since 0.1.1:

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

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

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

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

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

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


**Full Changelog**: ankitpokhrel/jira-cli@v0.1.1...v0.2.0
jperkin pushed a commit that referenced this issue Dec 9, 2021
## [1.1.0]

### Added

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

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

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

### Changed

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

### Fixed

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

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

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

## [1.0.1] - 2021-12-02

### Fixed

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

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

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

## [1.0.0] - 2021-12-01

### Added

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

## [0.0.9] - 2021-12-01

### Added

* CLI: Skipped dependencies are now listed in the output of `pip-audit`,
  for supporting output formats
  ([#145](pypa/pip-audit#145))
* CLI: `pip-audit` now supports a "strict" mode (enabled with `-S` or
  `--strict`) that fails if the audit if any individual dependency cannot be
  resolved or audited. The default behavior is still to skip any individual
  dependency errors ([#146](pypa/pip-audit#146))
jperkin pushed a commit that referenced this issue Feb 21, 2022
Changes in version 0.12.3.1
* Bugfix for ghcjs and Double memset for Storable vector: #410
* Avoid haddock bug: #383
* Improve haddock and doctests
* Disable problematic tests with -boundschecks #407

Changes in version 0.12.3.0
* Fix performance regression due to introduction of keepAlive# primop in
  ghc-9.0: #372
* Add monadic functions for mutable vectors: #338
  * Added folds for monadic functions: mapM_, imapM_, forM_, iforM_, foldl,
    foldl', foldM, foldM', ifoldl, ifoldl', ifoldM, ifoldM'
  * Added modifyM and unsafeModifyM for mutable vectors
  * Added generate and generateM for mutable vectors

Changes in version 0.12.2.0
* Add MINIMAL pragma to Vector & MVector type classes: #11
* Export unstreamM fromfrom Data.Vector.Generic: #70
* New functions: unfoldrExactN and unfoldrExactNM: #140
* Added iforM and iforM_: #262
* Added MonadFix instance for boxed vectors: #178
* Added uncons and unsnoc: #212
* Added foldMap and foldMap': #263
* Added isSameVector for storable vectors
* Added toArray, fromArray, toMutableArray and fromMutableArray
* Added iscanl, iscanl', iscanr, iscanr' to Primitive, Storable and Unboxed
* Added izipWithM, izipWithM_, imapM and imapM_ to Primitive and Storable
* Added ifoldM, ifoldM', ifoldM_ and ifoldM'_ to Primitive and Storable
* Added eqBy and cmpBy
* Added findIndexR to Generic: #172
* Added catMaybes: #329
* Added mapMaybeM and imapMaybeM: #183

Changes in version 0.12.1.2
* Fix for lost function Data.Vector.Generic.mkType: #287

Changes in version 0.12.1.1 (deprecated)
* add semigrioups dep to test suite so CI actually runs again on GHC < 8

Changes in version 0.12.1.0 (deprecated)
* Fix integer overflows in specializations of Bundle/Stream enumFromTo on
  Integral types
* Fix possibility of OutOfMemory with take and very large arguments.
* Fix slice function causing segfault and not checking the bounds properly.
* updated specialization rule for EnumFromTo on Float and Double to make
  sure it always matches the version in GHC Base (which changed as of 8.6)
  Thanks to Aleksey Khudyakov @Shimuuar for this fix.
* fast rejection short circuiting in eqBy operations
* the O2 test suite now has reasonable memory usage on every GHC version,
  special thanks to Alexey Kuleshevich (@lehins).
* The Mutable type family is now injective on GHC 8.0 or later.
* Using empty Storable vectors no longer results in division-by-zero
  errors.
* The Data instances for Vector types now have well defined implementations
  for toConstr, gunfold, and dataTypeOf.
* New function: partitionWith.
* Add Unbox instances for Identity, Const, Down, Dual, Sum, Product, Min,
  Max, First, Last, WrappedMonoid, Arg, Any, All, Alt, and Compose.
* Add NFData1 instances for applicable Vector types.
jperkin pushed a commit that referenced this issue Feb 21, 2022
texmath (0.12.4)

  * TeX reader: handle hyperref better (#186).  We don't parse it as a link,
    but we pass its contents through rather than failing.

  * Update scripts and data in `lib/` directory. These are not build
    dependencies, but they were used to produce some of the large
    tables in the source code.  Fixed the scripts and Makefile to work
    with recent texmath and cabal.  Removed two very large unicode data
    files that can be downloaded when needed.  (This reduces the size of
    the source tarball considerably.) Remove `lib/toascii` (no longer used).

  * Update MMLDict using latest unicode.xml.

  * TeX reader: support siunitx `\qty`, `\qtyrange`, `\unit` (#185).

  * Remove Text.TeXMath.Compat.  We can now safely require mtl >= 2.2.1.

  * Use symbolMap from ToTeX to shorten the long hardcoded symbols list.
    Now we only hard-code items that differ what what is in symbolMap.
    This reduces the code size by thousands of lines.

  * Unicode.ToTeX: export `symbolMap` [API change].  This uses the data in
  `records` to create a backwards mapping from TeX commands to Exps (ESymbol
      elements).  This can replace most of the hardcoded list in the current
  TeX reader.

  * Split out TeXMath.Readers.TeX.Commands internal module.
    This makes the TeX reader shorter and should help compile times.

  * OMML reader: better handling of m:t nodes (#151).
    Previously we parsed an m:t element as an EIdentifier if it contains a
    single letter, but an EText TextNormal if it contains more than one.  This
    gave bad results in some cases.  It is better to reserve EText for the
    case where the m:nor property is specified for "normal text."

  * Require base >= 4.11.

  * Remove `network-uri` flag from stack.yaml.


texmath (0.12.3.3)

  * OMML writer: use nary only for operators supported by LibreOffice
    (Albert Krewinkel).  LibreOffice (and possibly Word, too) can handle
    only a small set of operators in an `nary` element.

  * TeX writer: use `\xleftarrow`, `\xrightarrow` where sensible
    (Albert Krewinkel).  The commands are generated for expressions over `←`
    or `→`. Besides being more idiomatic, this change also prevents the
    generation of invalid LaTeX, as `\leftarrow` and `\rightarrow` are not
    math operators and hence may not be followed by `\limit`.
    Both commands are part of amsmath.sty.

  * TeX reader:

    + Improve angled-bracket support (Albert Krewinkel).
      The amsmath package allows `\left<` and `\right>` as alternatives to
      `\left\langle` and `\right\rangle`, respectively.
    + Ignore stared version of `\tag` (Albert Krewinkel).
    + Support \dots{c,b,m,i,o} from amsmath (#179).
    + Change symbol returned for \dots{b,i,m} from `…` to `⋯`
      (Albert Krewinkel).

texmath (0.12.3.2)

  * OMML writer: remove m:nor element in math operators (#178).
    This caused the document's main font, rather than the math
    font, to be used in formatting operators, which is undesirable.

texmath (0.12.3.1)

  * MathML reader: don't allow mfenced attributes to inherit (#177).
    When open and close attributes aren't given on an mfenced,
    we should use defaults rather than inheriting these from a
    parent mfenced.

texmath (0.12.3)

  * TeX reader: implement logic to convert a Bin symbol to
    an Op to Op when it occurs at the beginning of a group,
    or after an Open, Pun, or Op symbol. This will give much
    better results for unary `-` (#176).

  * OMML writer: fixed rendering of EDelimited (#173).
    We now properly render "middles" (separators).
jperkin pushed a commit that referenced this issue Jul 4, 2022
4.30 2022-06-14 (rurban)
        - Fix perl 5.37 utf8n_to_uvuni deprecation. GH #196

4.29 2022-05-27 (rurban)
        - Hack: Revert native bool (unblessed) overloads via JSON::PP 4.08.
          JSON::PP ignores unblessed bools for now. GH #194

4.28 2022-05-05 (rurban)
        - Validate the JSON struct which might get corrupted by wrong FREEZE/THAW
          methods, or other serializers, or corrupting our magic object. (GH #192)
        - Improve our DESTROY and END methods to avoid NULL dereferences.
          Fixes perl-compiler/#438
        - Fix 3 tests in t/20_unknown.t with the latest 5.35.10 bool enhancements
          and JSON::PP (GH #194)
        - Fix t/118_type.t with Windows ivtype long long. (GH #178)
        - Added github actions

4.27 2021-10-13 (rurban)
        - Only add -Werror=declaration-after-statement for 5.035004 and earlier (PR #186 nwc)
	- Fix 125_shared_boolean.t for threads (PR #184 Sinan Unur)

4.26 2021-04-12 (rurban)
        - Fix compilation with C++ (GH #177)

4.25 2020-10-28 (rurban)
        - Fix decode relaxed with comment at the end of the buffer (GH #174 fgaspar), a regression
          introduced with 3.0220, to fix n_number_then_00.
        - Possible fix for a gcc-9 optimizer bug (GH #172)

4.24 2020-10-02 (rurban)
        - Fix decode_json(scalar, 0) (GH #171 plicease), check 2nd arg for true-ness
jperkin pushed a commit that referenced this issue Aug 1, 2022
Fixes
  Fixed not being able to move window under Wayland (#134).
  Fixed showing add and remove options for tracks in collaborative playlists
   (#160).
  Fixed some possible issues with selecting a device (#162).
  Fixed MPRIS support under KDE (#178).
  Fixed crash when opening links on some artists.

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

    Disable quiet nan test on windows by @floitsch in #174
    Test on all platforms. by @floitsch in #175
    Fix warnings on Windows by @floitsch in #176
    Run ctests first. by @floitsch in #177
    Give shared-lib option and test install by @floitsch in #179
    Install Windows debbuger (pdb) files. by @floitsch in #178
    Add a cast to silence a signedness conversion warning. by @pkasting in #182
    Issue #184 : Fixed all -Wzero-as-null-pointer-constant warnings by @seanm in #185
jperkin pushed a commit that referenced this issue Sep 17, 2022
Patches privately shared by <pin> and RVP, thanks!

Changes:
608
---
* Add the --header option (github #43).
* Add the --no-number-headers option (github #178).
* Add the --status-line option.
* Add the --redraw-on-quit option (github #36).
* Add the --search-options option (github #213).
* Add the --exit-follow-on-close option (github #244).
* Add 'H' color type to set color of header lines.
* Add #version conditional to lesskey.
* Add += syntax to variable section in lesskey files.
* Allow option name in -- command to end with '=' in addition to '\n'.
* Add $HOME/.config to possible locations of lesskey file (github #153).
* Add $XDG_STATE_HOME and $HOME/.local/state to possible locations
  of history file (github #223).
* Don't read or write history file in secure mode (github #201).
* Fix display of multibyte and double-width chars in prompt.
* Fix ESC-BACKSPACE command when BACKSPACE key does not send 0x08
  (github #188).
* Add more \k codes to lesskey format.
* Fix bug when empty file is modified while viewing it.
* Fix bug when parsing a malformed lesskey file (githb #234).
* Fix bug scrolling history when --incsearch is set (github #214).
* Fix buffer overflow when invoking lessecho with more than 63 -m/-n
  options (github #198).
* Fix buffer overflow in bin_file (github #271).
* Fix bug restoring color at end of highlighted text.
* Fix bug in parsing lesskey file.
* Defer moving cursor to lower left in some more cases.
* Suppress TAB filename expansion in some cases where it doesn't make sense.
* Fix termlib detection when compiler doesn't accept
  calls to undeclared functions.
* Fix bug in input of non-ASCII characters on Windows (github #247)
* Escape filenames when invoking LESSCLOSE.
* Fix bug using multibyte UTF-8 char in search string
  with --incsearch (github #273).

590
---
* Make less able to read lesskey source files (deprecating lesskey).
* If XDG_CONFIG_HOME is set, find lesskey source file
  in $XDG_CONFIG_HOME/lesskey rather than $HOME/.lesskey.
* If XDG_DATA_HOME is set, find and store history file
  in $XDG_DATA_HOME/lesshst rather than $HOME/.lesshst.
* Add the --lesskey-src option.
* Add the --file-size option.
* With -F, if screen is resized to make file fit on one screen, don't exit.
* Fix bug which could leave terminal in mouse-reporting mode
  after exiting less.
* Fix bug which caused failure to respond to window resize.
* Fix backslash bug searching in tag file.

581
---
* Change ESC-u command to toggle, not disable, highlighting per man page.
* Add ESC-U command.
* Add ctrl-W search modifier for wrapping search.
* F command can be interrupted by ^X.
* Support OSC 8 hyperlinks when -R is in effect.
* g command with no number will ignore -j and put first line at top of screen.
* Multiple + or -p command line options are handled better.
* Add the --incsearch option.
* Add the --line-num-width option.
* Add the --status-col-width option.
* Add the --use-color and --color options.
* Display -w highlight even if highlighted line is empty.
* If search result is in a long line, scroll to ensure it is visible.
* Editing the same file under different names now creates only
  one entry in the file list.
* Make visual bell more visible on some terminals.
* Ring end-of-file bell no more than once per second.
* Build can use either Python or Perl for Makefile.aut operations.
* Fix crash when using the @ search modifier.
* Fix crash in the 's' command due to duplicate free.
* Fix realpath crash on Darwin.
jperkin pushed a commit that referenced this issue Dec 6, 2022
Features
 - Significantly improved performance, see #173 and #176 (@sharifhsn)
 - Added variable panels through the --panels and --terminal-width flags,
   see #13 and #164 (@sharifhsn)
 - Added new --group-bytes/-g option, see #104 and #170 (@RinHizakura)
 - Added new --base B option (where B can be binary, octal, decimal or
   hexadecimal), see #147 and #178 (@sharifhsn)
 - Show actual zero bytes as ⋄ in the character panel (previously: 0), in
   order not to confuse them with ASCII
 - 0 bytes if colors are deactivated. Closes #166 (@sharkdp)

hexyl as a library
 - Breaking change: Printer::new is deprecated as a part of the public API.
   Alternatively, you can now construct a Printer using the PrinterBuilder
   builder API, see #168. (@sharifhsn)

Other
 - More tests for the squeezing feature, see #177 (@mkatychev)

Thank you
 - Special thanks go to @sharifhsn, not just for the new features, bugfixes
   and performance improvements. But also for many internal improvements of
   the code base and other maintenance tasks.
jperkin pushed a commit that referenced this issue Apr 28, 2023
Now installs a library.

## v3.3.0

#### Fixes:

-   fixed null pointer dereference in parser when exceptions are disabled (#169) (@ncaklovic)
-   fixed spurious warnings in MSVC 19.34
-   fixed `toml::parse_file()` on windows for non-ASCII paths
-   fixed a spurious table redefinition error (#187) (@jorisvr)
-   fixed UB edge-case in integer parsing (#188) (@jorisvr)
-   fixed some build issues with Apple-flavoured Clang (#189) (@eddelbuettel)

#### Additions:

-   added `toml::format_flags::terse_key_value_pairs`
-   added `TOML_ENABLE_FLOAT16` config (#178) (@Scrumplex)

#### Removals:

-   removed automatic detection of `_Float16` (you must explicitly set `TOML_ENABLE_FLOAT16` to enable it) (#186) (@benthetechguy)

#### Build system:

-   re-wrote the meson scripts to fix a number of issues (#185, #186) (@Tachi107, @benthetechguy)
-   increased the minimum required meson version to `0.61.0`
jperkin pushed a commit that referenced this issue Sep 1, 2023
3.5.1 (2023-08-21)

1 bug fix:

* Better handle possible line-termination strings (legal in Unix filenames)
  such as \n in MIME::Types.type_for.  Reported by ooooooo-q in #177,
  resolved in #178.
jperkin pushed a commit that referenced this issue Oct 3, 2023
What's Changed
 - docs: Add installation instructions for Arch Linux by @orhun in #140
 - docs: Add installation instructions for Alpine Linux by @orhun in #142
 - Docs: Update README by @AmmarAbouZor in #144
 - Added: Unit Tests for UI Functions by @AmmarAbouZor in #171
 - Chore: Bump Swatinem/rust-cache from 2.6.2 to 2.7.0 by @dependabot in #166
 - Added: Unit Tests for the main App Logic by @AmmarAbouZor in #176
 - Migrate to Ratatui & Update Crossterm to 27 by @AmmarAbouZor in #178
 - Fix Input Boxes Border color by @AmmarAbouZor in #181
jperkin pushed a commit that referenced this issue Oct 23, 2023
This is the biggest update ever, with 36 new features, 24 bug fixes,
and 3 performance improvements.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Overview of changes in gnome-calculator 3.38.0

Overview of changes in gnome-calculator 3.37.92

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

Overview of changes in gnome-calculator 3.36.0

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

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

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

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

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

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

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

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

### Added

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

### Changed

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

### Fixed

- Support of libheif `1.17.x`. #156
- Windows : Build from source with MinGW Python. #178
jperkin pushed a commit that referenced this issue Dec 18, 2023
15.0.0 (2022-01-04)

Added
* [Ruby,JavaScript,Go] Add bigdecimal, biginteger parameter types (#42)
* [.NET] Implementation of Cucumber Expressions by porting the Java parser
  (#1743)
* [Python] Added Python Cucumber Expressions (#65)

Changed
* [Go] Parameters of type {float} are now parsed as float32 (previously it
  was float64). Use {double} if you need float64. (#42)

15.0.1 (2022-01-04)

Fixed
* Fixed release scripts

15.0.2 (2022-03-15)

Fixed
* Add missing name field in CommonJS package file (#87)

15.1.0 (2022-04-21)

Added
* [JavaScript] Add CucumberExpression.ast and expose the AST types.

15.1.1 (2022-04-21)

Fixed
* [JavaScript] Make CucumberExpression.ast public (it was accidentally
  private in 15.1.0)

15.2.0 (2022-05-24)

Added
* [JavaScript] Add ParameterInfo (#124)

Fixed
* [.NET] Fix casing in "word" parameter type constant

16.0.0 (2022-06-12)

Changed
* [JavaScript] The ParameterType constructor's regexps parameter has a new
  type: type Regexps = StringOrRegExp | readonly StringOrRegExp[]; type
  StringOrRegExp = string | RegExp.

16.0.1 (2022-11-06)

Fixed
* [JavaScript] The ParameterType constructor's transform, useForSnippets and
  preferForRegexpMatch should be optional. (#178)

16.1.0 - 2022-11-28

Added
* [Java] Enabled reproducible builds
* [JavaScript] Added ParameterType.builtin. This is to allow JSON
  serialization of only the non-builtin parameter types.

16.1.1 - 2022-12-08

Fixed
* [Java] Improve expression creation performance (#187, #189)

16.1.2 (2023-01-17)

Fixed
* [Java] Improve cucumber expression creation performance (#202)

17.0.0 (2023-10-06)

Changed
* [JavaScript] Added TypeScript source to the package (#211)
* [Ruby] Minimum supported ruby is now 2.5+ (#232)
* [Ruby] Large suite wide refactor for basic rubocop compliance (#233 #235)
* [Ruby] Expose ParameterType#transformer as a new public reader (#234)
* [Ruby] Remove ParameterType#prefer_for_regexp_match? and
  ParameterType#use_for_snippets? -> Use their standard reader equivalents
  instead (Remove the ?) (#234)

17.0.1 (2023-11-24)

Fixed
* [JavaScript] Fix import paths lacking file suffix (#243)
* [Ruby] Fixed up Layout rubocop autofixes
jperkin pushed a commit that referenced this issue Jan 25, 2024
# later 1.3.2

* Fixed `unused variable` compiler warning. (@MichaelChirico, #176)

* Fixed #177: The order of includes in `later.h` could cause compilation
   errors on some platforms. (@jeroen, #178)

* Closed #181: Fix R CMD check warning re error() format strings (for r-devel). (#133)

# later 1.3.1

* For C function declarations that take no parameters, added `void` parameter. (#172)
jperkin pushed a commit that referenced this issue Feb 20, 2024
0.0.33

What's Changed

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

0.0.32

What's Changed

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

0.0.31

What's Changed

    Test against pip==22.2 by @di in #152
    Test against pip==22.2.1 by @di in #158
    Test against pip==22.2.2 by @di in #160
    Test against pip==22.3 by @di in #163
    Test against Python 3.11 by @di in #154
    workflows/release: bump gh-action-sigstore-python, update slug by @woodruffw in #161
    Test against pip==22.3.1 by @di in #165
    Add alls-greens configuration by @di in #166
    Contributions from @webknjaz by @di in #172
    Use sdist as a testing source in CI by @webknjaz in #174
    Test against pip==23.0 by @di in #176
    Test against pip==23.0.1 by @di in #178
    Test against pip==23.1 by @di in #180
    Test against pip==23.1.1 by @di in #183
    Test against pip==23.1.2 by @di in #185
    Test against pip==23.2 by @di in #188
    Test against pip==23.2.1 by @di in #190
    Test against pip==23.3 by @di in #192
    Test against pip==23.3.1 by @di in #194
    Test against pip==23.3.2 by @di in #198
    Handle editable projects with pyproject.toml by @di in #200
    Version 0.0.31 by @di in #201
jperkin pushed a commit that referenced this issue Apr 3, 2024
Features / Improvements ✨
    Links should be "openable" (#43)
    Add support for previewing images in room scrollback (#108)
    Enable sending strikethrough text (#141)
    Support composing messages in an external editor (#155)
    Add support for logging in with SSO (#160)
    Add new command for logging out of iamb session (#162)
    Support custom sorting for room and user lists (#170)
    feat: desktop file for GUI environment launchers (#178)
    Add a new :chats window that lists both DMs and Rooms (#184)
    Add support for desktop notifications (#192)
    Support coloring entire message with the user color (#193)
    Indicate and sort on rooms with unread messages (#205)
    Support following the .well-known entries for a username's domain (#209)
    Add support for threads (#216)
    Add support for custom key macros (#217)
    Support displaying shortcodes instead of Emojis in messages (#222)
    Support configuring user gutter width (#223)
    Enable autolinking when rendering Markdown (#226)
    Support notifications via terminal bell (#227)
    Support loading a TOML configuration (#229)
    Add commands for importing and exporting room keys (#233)

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

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

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

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

Released on 2024-04-27

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


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

Released on 2023-07-24

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


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

Released on 2023-06-12

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

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

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

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


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

Released on 2023-04-15

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


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

Released on 2023-03-17

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


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

Released on 2022-09-23

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


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

Released on 2021-10-04

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


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

Released on 2020-10-29

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


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

Released on 2019-09-05

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


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

Released on 2019-02-15

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


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

Released on 2019-02-12

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


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

Released on 2019-02-08

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

* Drop Python 2.6, 2.7 and 3.4 support
* Test with Python 3.7
* Clean code, tests and packaging
jperkin pushed a commit that referenced this issue May 3, 2024
0.14.1.1
    Add GPRBuild syntax.
    Update syntax descriptions for clojure, cmake, coffee, cpp, cs, erlang, graphql, haskell, javascript, julia, kotlin, lilypond, markdown, objectivec, objectivecpp, ocaml, perl, python, ruby, rust, stan, typescript, yaml.

0.14.1
    Update syntax definitions for julia, actionscript, bash, cpp, css, djangotemplate, dosbat, groovy, html, ini, isocpp, java, javadoc, json, jsp, latex, makefile, mustache, php, powershell, rest, rhtml, sass, scala, scss, toml, xml, raku (with patch).
    Many improvements to regular expression compilation:
        Properly recognize unicode characters.
        Handle \Q..\E literal sequences.
        Handle group modifiers like (?i:etc.). (The only one we actually pay attention to is i.)
        Allow unicode category escapes outside of character classes.
        Support one-letter unicode category escapes like \p{L}. These are found in some of the newer syntax definitions.
    Improve regex matching:
        Fix wordDetect to work around an issue in the new html.xml.
        Refactor and fix atWordBoundary: remove redundant checks, and fix behavior (/x\b/ was behaving like /\bx\b/) (Côme ALLART).
        Fix bug in lastCharOffset (Côme ALLART).
    Style: Allow colors to be specified in ARGB format (#178). We currently just ignore the A part, but at least we don't fail.
jperkin pushed a commit that referenced this issue May 3, 2024
0.14.1.1

    Add GPRBuild syntax.

    Update syntax descriptions for clojure, cmake, coffee, cpp, cs, erlang, graphql, haskell, javascript, julia, kotlin, lilypond, markdown, objectivec, objectivecpp, ocaml, perl, python, ruby, rust, stan, typescript, yaml.

0.14.1

    Update syntax definitions for julia, actionscript, bash, cpp, css, djangotemplate, dosbat, groovy, html, ini, isocpp, java, javadoc, json, jsp, latex, makefile, mustache, php, powershell, rest, rhtml, sass, scala, scss, toml, xml, raku (with patch).

    Many improvements to regular expression compilation:
        Properly recognize unicode characters.
        Handle \Q..\E literal sequences.
        Handle group modifiers like (?i:etc.). (The only one we actually pay attention to is i.)
        Allow unicode category escapes outside of character classes.
        Support one-letter unicode category escapes like \p{L}. These are found in some of the newer syntax definitions.

    Improve regex matching:
        Fix wordDetect to work around an issue in the new html.xml.
        Refactor and fix atWordBoundary: remove redundant checks, and fix behavior (/x\b/ was behaving like /\bx\b/) (Côme ALLART).
        Fix bug in lastCharOffset (Côme ALLART).

    Style: Allow colors to be specified in ARGB format (#178). We currently just ignore the A part, but at least we don't fail.
jperkin pushed a commit that referenced this issue Jun 4, 2024
1.5.2 (2024-05-24)

What's Changed

* Yet Another memleak with str(list) by @mknkmyzk in #169
* Use exec instead of eval in raise test by @mrkn in #179
* Fix segvs by @mrkn in #178
* Use RTYPEDDATA_GET_DATA if exist by @mrkn in #181
jperkin pushed a commit that referenced this issue Jul 20, 2024
Based on PR 58426 by jonathan buschmann.

## 2.4.7 2024-05-05

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

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


## 2.4.6 2024-04-07

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

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


## 2.4.5 2024-02-18

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

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


## 2.4.4 2024-02-11

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

### Changed
- chore: update dependencies


## 2.4.3 2024-02-04

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

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

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


## 2.4.2 2023-12-26

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


## 2.4.1 2023-12-10

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

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


## 2.4.0 2023-10-08

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


## 2.3.3 2023-10-04

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

### Changed
- update dependencies


## [2.3.2] 2023-08-19

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

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


## [2.3.1] 2023-07-25

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

### Changed
- update dependencies


## [2.3.0] 2023-05-25

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

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

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

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


## [2.2.4] 2023-05-15

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

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

### Changed
- chore: update dependencies


## [2.2.3] 2023-04-26

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

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


## [2.2.2] 2023-04-01

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


## [2.2.1] 2023-03-29

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

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


## [2.2.0] 2023-02-24

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

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

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

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


## [2.1.0] 2022-12-12

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

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

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


## [2.0.4] 2022-11-30

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

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


## [2.0.3] 2022-11-21

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

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


## [2.0.2] 2022-11-17

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

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

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


## [2.0.1] 2022-11-07

### Changed
- chore: Update to clap 4.0.22

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


## [2.0.0] 2022-11-06

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

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

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

### Fixed

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

### Changed since 2.0.0-rc.2

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

### Removed
- Removed Python implementation of StGit.

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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


## [1.5] 2022-01-28

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

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

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


## [1.4] 2021-10-27

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

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

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

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


## [1.3] 2021-09-26

### Removed

### Added

### Changed

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

## [1.2] 2021-09-26

### Removed

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

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

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

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

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


## [1.1] 2021-04-30

### Removed

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

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

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


## [1.0] 2021-02-07

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

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

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

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


## [0.23] 2020-06-12

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

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

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

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

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

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

## [0.22] - 2020-03-02

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

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

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

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

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


## [0.21] - 2019-10-28

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

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


## [0.20] - 2019-10-04

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

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

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


## [0.19] 2018-11-05

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

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


## [0.18] 2017-08-14

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

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

### Fixed
- Various fixes and test coverage improvements
github-actions bot pushed a commit that referenced this issue Dec 2, 2024
# wk 0.9.4

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

# wk 0.9.3

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

# wk 0.9.2

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

# wk 0.9.1

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

# wk 0.9.0

## Breaking changes

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

## Bugfixes and improvements

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

# wk 0.8.0

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

# wk 0.7.3

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

# wk 0.7.2

* Fix use-after-free warnings.

# wk 0.7.1

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

# wk 0.7.0

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

# wk 0.6.0

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

# wk 0.5.0

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

# wk 0.4.1

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

# wk 0.4.0

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

# wk 0.3.4

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

# wk 0.3.3

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

# wk 0.3.2

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

# wk 0.3.1

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

No branches or pull requests

2 participants