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

Update rspamd 1.8.3 (Were missing 10 CritFixes) or maybe even 1.9.3 #197

Closed
sjorge opened this issue May 12, 2019 · 8 comments
Closed

Update rspamd 1.8.3 (Were missing 10 CritFixes) or maybe even 1.9.3 #197

sjorge opened this issue May 12, 2019 · 8 comments
Assignees

Comments

@sjorge
Copy link

sjorge commented May 12, 2019

Currently the newest rspamd is 1.8.0, there are a few minor release in the 1.8.x series that are marked CritFix. We can probably update to the newest 1.8.x release.

There is also a 1.9.x release that has a bunch of new and reworked stuff, not sure if it compliles.

@jperkin jperkin self-assigned this Jun 21, 2019
@jperkin
Copy link
Collaborator

jperkin commented Jun 21, 2019

I updated this to 1.9.4, will be in trunk tonight and will backport to 2018Q4 too.

@jperkin jperkin closed this as completed Jun 21, 2019
@sjorge
Copy link
Author

sjorge commented Jun 24, 2019

THe new one now segfaults!

[root@test ~]# rspamadm configwizard
Segmentation Fault (core dumped)

This is the first command you should run after installing,... https://www.rspamd.com/doc/quickstart.html#caching-setup

@jperkin
Copy link
Collaborator

jperkin commented Jun 24, 2019

Is that with a clean setup or an upgrade? I tried to reproduce on a host that hasn't configured it before and it seemed to work ok:

[root@trunk ~]# pkgin in rspamd
...
[root@trunk ~]# /usr/sbin/svcadm enable -r svc:/pkgsrc/rspamd:default
svcadm: svc:/milestone/network:default depends on svc:/network/physical, which has multiple instances.
[root@trunk ~]# svcs -xv
[root@trunk ~]# rspamadm configwizard
  ____                                     _
 |  _ \  ___  _ __    __ _  _ __ ___    __| |
 | |_) |/ __|| '_ \  / _` || '_ ` _ \  / _` |
 |  _ < \__ \| |_) || (_| || | | | | || (_| |
 |_| \_\|___/| .__/  \__,_||_| |_| |_| \__,_|
             |_|

Welcome to the configuration tool
We use /opt/local/etc/rspamd/rspamd.conf configuration file, writing results to /opt/local/etc/rspamd
Modules enabled: arc, whitelist, force_actions, multimap, trie, mid, settings, dkim_signing, elastic, chartable, ip_score, rbl, forged_recipients, dkim, dmarc, spf, maillist, phishing, mime_types, metadata_exporter, asn, fuzzy_check, once_received, regexp, milter_headers, emails, hfilter, bayes_expiry, surbl
Modules disabled (explicitly): spamtrap, url_tags, mx_check, neural, url_reputation, dcc, rspamd_update
Modules disabled (unconfigured): fuzzy_collect, antivirus, clickhouse, maps_stats, dynamic_conf, external_services, metric_exporter, spamassassin, reputation, clustering
Modules disabled (no Redis): ratelimit, replies, url_redirector, history_redis, greylist
Modules disabled (experimental): 
Modules disabled (failed): 
Do you wish to continue?[Y/n]: 
Setup WebUI and controller worker:
Controller password is not set, do you want to set one?[Y/n]: 
Enter passphrase: 
...

@jperkin jperkin reopened this Jun 24, 2019
@sjorge
Copy link
Author

sjorge commented Jun 24, 2019

It was a clean setup on 2018Q4 (base-64-lts 18.4.0),

It seems to happen intermittendly :s I just tried it again and it segfaulted, I wanted to truss and it didn't :/

[root@test ~]# rspamadm configwizard
Segmentation Fault (core dumped)
[root@test ~]# rspamadm configwizard
  ____                                     _
 |  _ \  ___  _ __    __ _  _ __ ___    __| |
 | |_) |/ __|| '_ \  / _` || '_ ` _ \  / _` |
 |  _ < \__ \| |_) || (_| || | | | | || (_| |
 |_| \_\|___/| .__/  \__,_||_| |_| |_| \__,_|
             |_|

Welcome to the configuration tool
We use /opt/local/etc/rspamd/rspamd.conf configuration file, writing results to /opt/local/etc/rspamd
Modules enabled: mid, regexp, ratelimit, dmarc, bayes_expiry, settings, metadata_exporter, maillist, spf, milter_headers, forged_recipients, asn, greylist, emails, phishing, hfilter, dkim, surbl, dkim_signing, rbl, mx_check, ip_score, trie, fuzzy_check, whitelist, arc, mime_types, once_received, history_redis, chartable, replies, multimap, url_redirector, force_actions
Modules disabled (explicitly): rspamd_update, url_reputation, url_tags, spamtrap, neural, dcc
Modules disabled (unconfigured): elastic, spamassassin, clickhouse, external_services, fuzzy_collect, reputation, dynamic_conf, metric_exporter, clustering, maps_stats, antivirus
Modules disabled (no Redis):
Modules disabled (experimental):
Modules disabled (failed):
Do you wish to continue?[Y/n]: n

Other commands also gives error but don't seem to segfault

[root@test ~]# rspamadm configtest
lock on file failed: Bad file number
syntax OK

I double checked that the rspamd service was running and it was

[root@test ~]# svcs -a | grep rspamd:default
online         21:56:04 svc:/pkgsrc/rspamd:default

@jperkin
Copy link
Collaborator

jperkin commented Jun 24, 2019

Ok I'll see if I can tickle it, or if you ever get a core file out of it please send it over.

@sjorge
Copy link
Author

sjorge commented Jun 24, 2019

I couldn't find one for now.

Found a few! I have them for rspam and rspamadm! I included one of each: https://pkg.blackdot.be/cores/rspam_cores.tar.bz2

@sjorge
Copy link
Author

sjorge commented Jun 25, 2019

I rebooted the zone, not that it should matter... but it made it worse!

After a reboot rspamd doens't even start! (default config)

2019-06-25 12:00:48 #10620(main) rspamd_file_lock: lock on file failed: Bad file number
2019-06-25 12:00:48 #10620(main) <cb6389>; main; main: cannot write pid file /var/run/

There is indeed no longer a /var/run/rspamd directory!

pkgin rm rspamd
pkgin in rspamd

The /var/run/rspamd dir now exists! And rspamd starts again (unless it segfaults, that still happens at random)

@jperkin
Copy link
Collaborator

jperkin commented Jun 25, 2019

This is a bug in the package, /var/run is a tmpfs mount and as such needs to be created on startup, not on package install. We handle this correctly in other packages, I'll take a look at fixing this as well.

jperkin pushed a commit that referenced this issue Jul 1, 2019
For a security fix.

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

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

        Special thanks to:
            Benjamin Peterson
            Caolán McNamara
            Hanno Böck
            KangLin
            Kishore Kunche
            Marco Maggi
            Rhodri James
            Sebastian Dröge
            userwithuid
            Yury Gribov
jperkin pushed a commit that referenced this issue Oct 6, 2019
Switched to github for upstream, build system now uses cmake.

Changes in major release 2.0.0:

New Features

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

General

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

Changes in major release 2.0.0:

New Features

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

General

    CMake 3.1.0 or later is required for building
    consider channel pressure, key pressure and pitch wheel for lower attenuation boundary calculation (#163, thanks to @mawe42)
    complete rewrite of the LADSPA subsystem (#227, #235, thanks to @mawe42)
    complete rewrite of the Soundfont Loader API (#334, #309)
    avoid reverb amplitude growing exponentially (#279, thanks to @jjceresa)
    removed deprecated autotools build system
    a minimal build of fluidsynth without requiring pkg-config is supported
    remove deprecated LADCCA support
    use unique device names for the audio.portaudio.device setting (#284, thanks to @jjceresa)
    documentation of the settings moved to http://www.fluidsynth.org/api/fluidsettings.xml
    adjust MIDI Pan and Balance calculations as outlined by MIDI Recommended Practice (RP-036) (#317, thanks to @mawe42)
    make network support compile-time optional (#307, thanks to @carlo-bramini)
    speed up calculation of chorus modulation waveforms for devices without FPU (#321, thanks to @carlo-bramini)
    cleanup internal audio rendering and mixing engine (#197)
    reduce memory consumption of loaded soundfonts (#370, thanks to @mawe42)
@sjorge sjorge closed this as completed Oct 25, 2019
jperkin pushed a commit that referenced this issue Jan 3, 2020
1.2.4.0
* Add TH Lift instances for Data.Text.Text and Data.Text.Lazy.Text
  (gh-232)
* Update Haddock documentation to better reflect fusion eligibility;
  improve fusion rules for takeWhileEnd and length (gh-241, ghc-202)
* Optimise Data.Text.replicate from O(n) to O(log n) (gh-209)
* Support base-4.13.0.0

1.2.3.1
* Make decodeUtf8With fail explicitly for unsupported non-BMP
  replacement characters instead silent undefined behaviour (gh-213)
* Fix termination condition for file reads via Data.Text.IO operations
  (gh-223)
* A serious correctness issue affecting uses of take and drop with
  negative counts has been fixed (gh-227)
* A bug in the case-mapping functions resulting in unreasonably large
  allocations with large arguments has been fixed (gh-221)

1.2.3.0
* Spec compliance: toCaseFold now follows the Unicode 9.0 spec
  (updated from 8.0).
* Bug fix: the lazy takeWhileEnd function violated the lazy text
  invariant (gh-184).
* Bug fix: Fixed usage of size hints causing incorrect behavior
  (gh-197).
* New function: unsnoc (gh-173).
* Reduce memory overhead in encodeUTF8 (gh-194).
* Improve UTF-8 decoder error-recovery (gh-182).
* Minor documentation improvements (@SInCE annotations, more examples,
  clarifications).

1.2.2.2
* The toTitle function now correctly handles letters that immediately
  follow punctuation. Before, "there's" would turn into
  "There'S". Now, it becomes "There's".
* The implementation of unstreaming is faster, resulting in operations
  such as map and intersperse speeding up by up to 30%, with smaller
  code generated.
* The optimised length comparison function is now more likely to be
  used after some rewrite rule tweaking.
* Bug fix: an off-by-one bug in takeEnd is fixed.
* Bug fix: a logic error in takeWord16 is fixed.

1.2.2.1
* The switch to integer-pure in 1.2.2.0 was apparently mistaken. The
  build flag has been renamed accordingly. Your army of diligent
  maintainers apologizes for the churn.
* Spec compliance: toCaseFold now follows the Unicode 8.0 spec
  (updated from 7.0)
* An STG lint error has been fixed
jperkin pushed a commit that referenced this issue Mar 7, 2020
ChangeLog:

v5.6.2

Bug fixes:

    #271 fixes a corner-case bug with more than 100 CSV/TSV files with
    headers of varying lengths.

Documentation:

    The new http://johnkerl.org/miller/doc/whyc-details.html is an
    elaboration on http://johnkerl.org/miller/doc/whyc.html which answers
    a question posed by @BurntSushi on Reddit a couple years ago which
    I did not address in detail at the time.

v5.6.1

    The only change is that http://johnkerl.org/miller/doc is now
    more mobile-friendly.  All build artifacts are the same as at
    https://github.com/johnkerl/miller/releases/tag/v5.6.0

v5.6.0

    The new system DSL function allows you to run arbitrary shell commands
    and store them in field values. Some example usages are documented
    here. This is in response to issues #246 and #209.

    There is now support for ASV and USV file formats. This is in response
    to issue #245.

    The new format-values verb allows you to apply numerical formatting
    across all record values. This is in response to issue #252.

Documentation:

    The new DKVP I/O in Python sample code now works for Python 2 as
    well as Python 3.

    There is a new cookbook entry on doing multiple joins. This is in
    response to issue #235.

Bugfixes:

    The toupper, tolower, and capitalize DSL functions
    are now UTF-8 aware, thanks to @sheredom's marvelous
    https://github.com/sheredom/utf8.h. The internationalization page
    has also been expanded. This is in response to issue #254.

    #250 fixes a bug using in-place mode in conjunction with verbs
    (such as rename or sort) which take field-name lists as arguments.

    #253 fixes a bug in the label when one or more names are common
    between old and new.

    #251 fixes a corner-case bug when (a) input is CSV; (b) the last
    field ends with a comma and no newline; (c) input is from standard
    input and/or --no-mmap is supplied.

v5.5.0

    The new positional-indexing feature resolves #236 from @aborruso. You
    can now get the name of the 3rd field of each record via $[[3]], and
    its value by $[[[3]]]. These are both usable on either the left-hand
    or right-hand side of assignment statements, so you can more easily
    do things like renaming fields progrmatically within the DSL.

    There is a new capitalize DSL function, complementing the
    already-existing toupper. This stems from #236.

    There is a new skip-trivial-records verb, resolving #197. Similarly,
    there is a new remove-empty-columns verb, resolving #206. Both are
    useful for data-cleaning use-cases.

    Another pair is #181 and #256. While Miller uses mmap internally
    (and invisibily) to get approximately a 20% performance boost over
    not using it, this can cause out-of-memory issues with reading either
    large files, or too many small ones. Now, Miller automatically avoids
    mmap in these cases. You can still use --mmap or --no-mmap if you
    want manual control of this.

    There is a new --ivar option for the nest verb which complements
    the already-existing --evar. This is from #260 thanks to @jgreely.

    There is a new keystroke-saving urandrange DSL function:
    urandrange(low, high) is the same as low + (high - low) *
    urand(). This arose from #243.

    There is a new -v option for the cat verb which writes a low-level
    record-structure dump to standard error.

    There is a new -N option for mlr which is a keystroke-saver for
    --implicit-csv-header --headerless-csv-output.

Documentation:

    The new FAQ entry
    http://johnkerl.org/miller/doc/faq.html#How_to_escape_'%3F'_in_regexes%3F
    resolves #203.

    The new FAQ entry
    http://johnkerl.org/miller/doc/faq.html#How_can_I_filter_by_date%3F
    resolves #208.

    #244 fixes a documentation issue while highlighting the need for #241.

Bugfixes:

    There was a SEGV using nest within then-chains, fixed in response
    to #220.

    Quotes and backslashes weren't being escaped in JSON output with
    --jvquoteall; reported on #222.

v5.4.0

    The new clean-whitespace verb resolves #190 from @aborruso. Along with
    the new functions strip, lstrip, rstrip, collapse_whitespace, and
    clean_whitespace, there is now both coarse-grained and fine-grained
    control over whitespace within field names and/or values. See the
    linked-to documentation for examples.

    The new altkv verb resolves #184 which was originally opened via an
    email request. This supports mapping value-lists such as a,b,c,d to
    alternating key-value pairs such as a=b,c=d.

    The new fill-down verb resolves #189 by @aborruso. See the linked-to
    documentation for examples.

    The uniq verb now has a uniq -a which resolves #168 from @sjackman.

    The new regextract and regextract_or_else functions resolve #183
    by @aborruso.

    The new ssub function arises from #171 by @dohse, as a simplified way
    to avoid escaping characters which are special to regular-expression
    parsers.

    There are new localtime functions in response to #170 by
    @sitaramc. However note that as discussed on #170 these do
    not undo one another in all circumstances. This is a non-issue
    for timezones which do not do DST. Otherwise, please use with
    disclaimers: localdate, localtime2sec, sec2localdate, sec2localtime,
    strftime_local, and strptime_local.

Builds:

    Windows build-artifacts are now available in Appveyor at
    https://ci.appveyor.com/project/johnkerl/miller/build/artifacts,
    and will be attached to this and future releases. This resolves #167,
    #148, and #109.

    Travis builds at https://travis-ci.org/johnkerl/miller/builds now
    run on OSX as well as Linux.

    An Ubuntu 17 build issue was fixed by @singalen on #164.

Documentation:

    put/filter documentation was confusing as reported by @NikosAlexandris
    on #169.

    The new FAQ entry
    http://johnkerl.org/miller-releases/miller-head/doc/faq.html#How_to_rectangularize_after_joins_with_unpaired?
    resolves #193 by @aborruso.

    The new cookbook entry
    http://johnkerl.org/miller/doc/cookbook.html#Options_for_dealing_with_duplicate_rows
    arises from #168 from @sjackman.

    The unsparsify documentation had some words missing as reported by
    @tst2005 on #194.

    There was a typo in the cookpage page
    http://johnkerl.org/miller/doc/cookbook.html#Full_field_renames_and_reassigns
    as fixed by @tst2005 in #192.

Bugfixes:

    There was a memory leak for TSV-format files only as reported by
    @treynr on #181.

    Dollar sign in regular expressions were not being escaped properly
    as reported by @dohse on #171.

v5.3.0

    Comment strings in data files: mlr --skip-comments allows
    you to filter out input lines starting with #, for all file
    formats. Likewise, mlr --skip-comments-with X lets you specify
    the comment-string X. Comments are only supported at start of data
    line. mlr --pass-comments and mlr --pass-comments-with X allow you
    to forward comments to program output as they are read.

    The count-similar verb lets you compute cluster sizes by cluster
    labels.

    While Miller DSL arithmetic gracefully overflows from 64-integer
    to double-precision float (see also here), there are now the
    integer-preserving arithmetic operators .+ .- .* ./ .// for those
    times when you want integer overflow.

    There is a new bitcount function: for example, echo x=0xf0000206 |
    mlr put '$y=bitcount($x)' produces x=0xf0000206,y=7.

    Issue 158: mlr -T is an alias for --nidx --fs tab, and mlr -t is an
    alias for mlr --tsvlite.

    The mathematical constants π and e have been renamed from PI and
    E to M_PI and M_E, respectively. (It's annoying to get a syntax
    error when you try to define a variable named E in the DSL, when
    A through D work just fine.) This is a backward incompatibility,
    but not enough of us to justify calling this release Miller 6.0.0.

Documentation:

    As noted here, while Miller has its own DSL there will always be
    things better expressible in a general-purpose language. The new page
    Sharing data with other languages shows how to seamlessly share data
    back and forth between Miller, Ruby, and Python. SQL-input examples
    and SQL-output examples contain detailed information the interplay
    between Miller and SQL.

    Issue 150 raised a question about suppressing numeric conversion. This
    resulted in a new FAQ entry How do I suppress numeric conversion?,
    as well as the longer-term follow-on issue 151 which will make
    numeric conversion happen on a just-in-time basis.

    To my surprise, csvlite format options weren’t listed in mlr --help
    or the manpage. This has been fixed.

    Documentation for auxiliary commands has been expanded, including
    within the manpage.

Bugfixes:

    Issue 159 fixes regex-match of literal dot.

    Issue 160 fixes out-of-memory cases for huge files. This is an old
    bug, as old as Miller, and is due to inadequate testing of huge-file
    cases. The problem is simple: Miller prefers memory-mapped I/O
    (using mmap) over stdio since mmap is fractionally faster. Yet as
    any processing (even mlr cat) steps through an input file, more and
    more pages are faulted in -- and, unfortunately, previous pages are
    not paged out once memory pressure increases. (This despite gallant
    attempts with madvise.) Once all processing is done, the memory is
    released; there is no leak per se. But the Miller process can crash
    before the entire file is read. The solution is equally simple: to
    prefer stdio over mmap for files over 4GB in size. (This 4GB threshold
    is tunable via the --mmap-below flag as described in the manpage.)

    Issue 161 fixes a CSV-parse error (with error message "unwrapped
    double quote at line 0") when a CSV file starts with the UTF-8
    byte-order-mark ("BOM") sequence 0xef 0xbb 0xbf and the header line
    has double-quoted fields. (Release 5.2.0 introduced handling for
    UTF-8 BOMs, but missed the case of double-quoted header line.)

    Issue 162 fixes a corner case doing multi-emit of aggregate variables
    when the first variable name is a typo.

    The Miller JSON parser used to error with Unable to parse JSON data:
    Line 1 column 0: Unexpected 0x00 when seeking value on empty input,
    or input with trailing whitespace; this has been fixed.
jperkin pushed a commit that referenced this issue Mar 25, 2020
Update ruby-rbnacl to 7.1.1.


## [7.1.1] (2020-01-27)

- Test on Ruby 2.7 ([#208])
- Add project metadata to the gemspec ([#207])
- Resolve FFI deprecation warning ([#206])

## [7.1.0] (2019-09-07)

- Attached signature API ([#197], [#202])
- Fix the `generichash` state definition ([#200])

## [7.0.0] (2019-05-23)

- Drop support for Ruby 2.2 ([#194])

## [6.0.1] (2019-01-27)

- Add fallback `sodium_constants` for Argon2 ([#189])
- Support libsodium versions used by Heroku ([#186])
- Sealed boxes ([#184])
jperkin pushed a commit that referenced this issue Mar 25, 2020
Update ruby-puppet-resource_api to 1.8.12.

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

**Fixed bugs:**

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

**Merged pull requests:**

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

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

**Implemented enhancements:**

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

**Fixed bugs:**

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

**Merged pull requests:**

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

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

**Fixed bugs:**

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

**Merged pull requests:**

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

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

**Implemented enhancements:**

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

**Fixed bugs:**

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

**Closed issues:**

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

**Merged pull requests:**

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

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

**Fixed bugs:**

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

**Merged pull requests:**

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

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

**Merged pull requests:**

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

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

**Merged pull requests:**

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

# Changelog

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


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

**Fixed bugs:**

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

**Merged pull requests:**

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

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

**Implemented enhancements:**

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

**Fixed bugs:**

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

**Merged pull requests:**

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

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

**Implemented enhancements:**

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

**Merged pull requests:**

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

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

**Closed issues:**

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

**Merged pull requests:**

- \(packaging\) Update version to 1.6.3 [\#143](puppetlabs/puppet-resource_api#143) ([branan](https://github.com/branan))
- Move parameter and property logic to separate classes [\#140](puppetlabs/puppet-resource_api#140) ([bpietraga](https://github.com/bpietraga))
- \(maint\) Predeclare Puppet module before ResourceApi [\#139](puppetlabs/puppet-resource_api#139) ([caseywilliams](https://github.com/caseywilliams))
- \(maint\) minor fix to make data\_type\_handling change work [\#138](puppetlabs/puppet-resource_api#138) ([DavidS](https://github.com/DavidS))
- \(maint\) extract data type handling code [\#137](puppetlabs/puppet-resource_api#137) ([bpietraga](https://github.com/bpietraga))
- Release prep for v1.6.2 [\#135](puppetlabs/puppet-resource_api#135) ([DavidS](https://github.com/DavidS))
jperkin pushed a commit that referenced this issue May 3, 2020
pkgsrc changes:
 - Remove patches/patch-configure: applied uptsream
 - Convert the CHECK_PORTABILITY_SKIP to a REPLACE_BASH: it is more consistent
   with other REPLACE_BASHes (there are several files that are not installed
   then) and complaining about `==' test(1) operator in a bash script is
   not correct.

Changes:
1.27.4
------
- libcupsfilters, cups-browsed: Fix memory issues in
  ppdgenerator and cups-browsed (Pull request #226).
- pdftops: Mention cups-filters README, CUPS README in debug
  log (Pull request #225).
- pdftopdf, gstoraster, foomatic-rip: Use "-dSAFER"
  Ghostscript option, instead of the deprecated
  "-dPARANOIDSAFER" (Pull request #224).
- Build System: Replace '==' in configure.ac test with '=', as
  the former is a bashism (Pull request #222).

1.27.3
------
- cups-browsed: Allow sharing local queues pointing to remote
  CUPS queues and re-sharing printers discovered via
  BrowsePoll by default, using
  AllowResharingRemoteCUPSPrinters and
  NewBrowsePollQueuesShared directives in cups-browsed.conf
  (Issue #101, Pull request #218).
- driverless: Correctly unlink temporary file when generating
  PPD file (Pull request #220).
- cups-browsed: Fixed memory leaks (Pull request #219).
- foomatic-rip: PDF page count side-loads the PDF file to
  count the pages in, so it cannot be run in -dSAFER mode. Run
  even in -dNOSAFER mode to override the -dSAFER default of
  newer Ghostscript versions. This should not cause a security
  problem as we do not take an input file which could do
  arbitrary side-loads but we run hard-coded PostScript
  commands instead (Issue #216).
- libfontembed: Add checks to the test programs to not
  segfault if the test font file is not found (Pull request
  #214).
- Build System: Let ./configure fail if the supplied test font
  file path (or the default) does not exist (Pull request
  #214), also use the "find" command to find the test font
  file DejaVuSans.ttf under /usr/share/fonts, as every
  distribution has it somewhere else.

1.27.2
------
- foomatic-rip: In some PostScript input files it was possible
  that option settings did not get inserted or lines inserted
  on the wron place (Issue #208, Pull request #210).
- foomatic-rip: For the PDF page count call Ghostscript in
  sandbox mode and fix pointer arithmetics (Pull request
  #212).
- foomatic-rip: Zero-page-job handling changes made the last
  page of PostScript files not printed, also turning one-page
  jobs into zero-page jobs (Issue #200, Issue #206, Issue
  #208, Pull request #209, Pull request #210, Pull request
  #211).
- cups-browsed: check_printer_with_option() function:
  Initialize the value, add further checks, freeing memory and
  stop allocating magic numbers (Pull request #204).
- cups-browsed: Additional checks against crashes in the
  is_local_hostname() function (Ubuntu bug #1863716)

1.27.1
------
- libcupsfilters: Let the PPD generator not put any dashes
  into the PPD option and choice names when translating them
  from IPP attribute names, to avoid that on the
  back-translation by CUPS no double-dashes are
  generated. This broke paper tray selections with tray names
  like "tray-1", "tray-2", ... (Issue #192, Issue #201, Debian
  bug #949315).
- foomatic-rip: Fixed segfault when PRINTER environment
  variable is not supplied.
- pdftopdf, pdftops, gstoraster, gstopdf, gstopxl,
  rastertoescpx, rastertopclx, foomatic-rip: Handle zero-page
  jobs (Issue #117, Pull request #196, Pull request #197, Pull
  request #198, Pull request #200).
- texttopdf: Added support for CJK (double-width) fonts (Issue
  #135, Pull request #199).
- cups-browsed: Switched default for "CreateIPPPrinterQueues"
  from "local-only" to "All". The configure script options
  "--enable-auto-setup-local-only" and
  "--enable-auto-setup-driverless-only" can be used to change
  this default (Debian bug #921252).
- rastertoescpx: Fixed wrong freeing of a buffer.
- pdftops: Added options "crop-to-fit" and "fill" to the
  pdftopdf options which the pstops called by pdftops should
  not apply a second time.
- pdftops: Added missing "-sstdout=%stderr" to Ghostscript
  command line, to assure that all messages are redirected to
  stderr and do not mix up with the output data.

1.27.0
------
- cups-browsed: Eliminate the use of the local CUPS daemon's
  (the CUPS we are attached to) port number completely, so
  that for attaching to an arbitrary local CUPS daemon
  listening on an arbitrary port (or even not listening on
  localhost at all) it is enough to tell cups-browsed the
  domain socket the CUPS daemon is listening on.
- cups-browsed, libcupsfilters: Identify DNS-SD-reported
  printers as of the local CUPS daemon via UUID and not via
  the port on which the local CUPS is listening, as we do not
  always have this port available.
- cups-browsed: Leave the port for legacy CUPS browsing and
  broadcasting on 631, do not use a possible alternative port
  of the CUPS we are attached to. The legacy CUPS servers we
  communicate with are always remote ones.
- libcupsfilters: in the PPD generator prioritize
  print-color-mode-supported against
  pwg-raster-document-type-supported (Issue #186, Pull request
  #188)
- rastertopdf, rastertops, texttopdf, pdftoraster,
  mupdftoraster: Handle zero-page jobs, corrections on
  zero-page job handling (Issue #117)
- cups-browsed: When restarting after a crash make sure that
  local queue names have same upper/lower case as before.
- cups-browsed: Small code improvements to reduce crash
  probability.

1.26.2
------
- cups-browsed: Added crash guards to avoid crashes in case
  the dummy printer entry for a deleted master entry is used.
- cups-browsed: Set the port of the local CUPS daemon to be
  used according to the IPP_PORT environment variable.
- cups-browsed: Eliminated the use of the cupsGetPPD2()
  function of libcups completely, also the remaining calls
  in the record_printer_options() and update_cups_queues()
  functions, the former causing incomplete recording of
  option settings and the latter use of CUPS-generated
  PPDs not working when CUPS is running on a non-standard
  port.
- cups-browsed: Eliminated the use of the cupsGetPPD2()
  function of libcups in queue_overwritten(). The function
  actually loads the queue's PPD file if the queue is on a
  local CUPS on port 631. Due to a bug the function fails if
  an alternative port is used. This lets queue_overwritten()
  always assume that the PPD got removed and therefore the
  queue got overwritten. So queues got released from
  cups-browsed if it was printed on them or if they were
  supposed to be removed on shutdown.
- foomatic-rip: Fixed compilation with -fno-common. Starting
  from the upcoming GCC 10, the default of the -fcommon option
  will change to -fno-common. This causes compilation errors
  in foomatic-rip due to missing "external" declarations.
  (Pull request #184).
jperkin pushed a commit that referenced this issue Aug 25, 2020
v1.4.0 (2020-06-07)
-------------------

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

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

Trivial/Internal Changes
^^^^^^^^^^^^^^^^^^^^^^^^
* black shows diffs by default
* `#207 <https://github.com/readthedocs/sphinx-autoapi/issues/207>`:
  Fixed a typo in the code of the golang tutorial.
jperkin pushed a commit that referenced this issue Sep 30, 2020
Release RPyC 3.4.2:
* Fix ``export_function`` on python 3.6

Release rpyc 3.4.1:
* Fix issue high-cpu polling (#191,#218)
* Fix filename argument in logging (#197)
* Improved log messages (#191,#204)
* Drop support for python 3.2 and py 2.5
jperkin pushed a commit that referenced this issue Oct 30, 2020
…t (at) gmail.com>

 0.26.8          (2020-09-15):

  * Enhancement: %GITHUB%/issues/639
        A new method is available which enables copying of multiple cells
        into a target layout while maintaining common subcells are single
        cells.
  * Bugfix: %GITHUB%/issues/637
        Points have not been selected properly when inside mirrored subcells
        in partial edit mode.
  * Bugfix: %GITHUB%/issues/629
        Qt5 QTimer timeout signal was not available to Python or Ruby.
        This also applied to all "private" signals of Qt5. QTimer is just
        one important example for this case.
  * Bugfix: %GITHUB%/issues/617
        A problem with pseudo-const Python/Ruby objects in the netlist API
        was fixed.
  * Bugfix: %GITHUB%/issues/615
        Basic authentication for package manager now uses UTF-8 encoding.
        Most servers expect this kind of encoding today. UTF password
        characters are supported this way.

 0.26.7          (2020-07-07):

  * Bugfix: %GITHUB%/issues/381 and more
        Some bugs fixed that happened specifically on MacOS.
        1.) A segfault that happened in LVS
        2.) Some classes were not properly registered for usage in scripts.
  * Bugfix: %GITHUB%/issues/493
        LVS asserted on MacOS
  * Enhancement: %GITHUB%/issues/586
        As a safety feature, the stream writers now refuse to write layouts
        with cells carrying the same names. Writing such layers would result
        in corrupted or invalid layout files.
  * Bugfix: %GITHUB%/issues/589 (tentative)
        On Anaconda-based builds for MacOS 10.15 (Catalina) a loss of instances
        was observed. This could be traced down to compiler/library incompatibilities
        but not further.
  * Enhancements: %GITHUB%/issues/591
        Two enhancements in the macro editor:
        1.) A crash happening when adding a new location was fixed
        2.) The template selection popup can now be disabled by dismissing the
            tip dialog.
  * Bugfix: %GITHUB%/issues/592
        Reading a file into a layout with unnamed layers caused problems with
        layer mapping specs.
  * Bugfix: %GITHUB%/issues/596
        Library#_destroy was crashing the application. As this function must not
        be called, it's rerouted to "nothing" for backward compatibility.
  * Enhancement: %GITHUB%/issues/603
        The "adjust origin" feature now allows specifying the target
        coordinates for the adjustment.
  * Bugfix: %GITHUB%/issues/610
        An internal error happened for certain hierarchical configurations on
        netlist extraction.
  * Enhancement: LVS netlist compare
        The algorithm was improved to provide better reproducibility. The
        detection of matching paths in the presence of ambiguities was
        improved.
        In addition, the netlist compare now favours net names for resolving
        ambiguities. So if nets are named the same in the layout and the
        schematic, ambiguities are resolved based on these names. This is
        usually more efficient. A new function is available to turn this
        feature off: "consider_net_names(false)".

 0.26.6          (2020-06-05):

  * Enhancement: %GITHUB%/issues/522
        Skip comment lines with // in RVE DB reader
  * Bugfix: %GITHUB%/issues/547
        Doc fixes, better error messages on some Shape methods
  * Bugfix: %GITHUB%/issues/555
        Using 64bit coordinates on RVE reader to avoid overflow
  * Bugfix: %GITHUB%/issues/565
        Spice reader: .global should not add pin if the signal
        isn't used in a subcircuit
  * Bugfix: %GITHUB%/issues/568 and %GITHUB%/issues/578
        A CIF reader and writer bug was fixed
  * Bugfix: %GITHUB%/issues/570 and %GITHUB%/issues/579
        Perimenter can be included in antenna area for the
        antenna check. This also includes a mode in which only
        the perimeter is considered.
  * Enhancement: %GITHUB%/issues/560
        A library can be associated with multiple technologies now.
  * Bugfix: width of cell and library side panels could not be
        reduced below the width of the selection boxes in the
        header
  * Bugfix: cell view selection header text did not get updated
        when saving the layout to a different file

 0.26.5          (2020-05-02):

  * Bugfix: %GITHUB%/issues/539
        An internal error happened on netlist flatten sometimes
  * Bugfix: %GITHUB%/issues/524
        Failed queries leave layout in undefined state
  * Bugfix: %GITHUB%/issues/525
        Report true source line in DRC and LVS verbose mode
  * Bugfix: %GITHUB%/issues/526
        Makes script debugging more reliable
  * Enhancement: %GITHUB%/issues/527
        Wildcard layer mapping for stream readers
  * Bugfix: %GITHUB%/issues/544
        Duplicate .global statements in SPICE netlists created
        duplicate pins
  * Bugfix: %GITHUB%/issues/548
        A shielding issue was fixed for DRC space measurements
  * Bugfix: diff tool bug with paths
        Differences in path points where no reported
  * Enhancement: documentation clarifications and typos fixed

 0.26.4          (2020-03-02):

  * Bugfix: %GITHUB%/issues/517
        DEF reader could not read VIAS+VIARULE without pattern
  * Enhancement: %GITHUB%/issues/471
        Leaner way to specify LVS compare tolerances for device parameters
  * Enhancement: %GITHUB%/issues/473
        Direct access to image data in scripts (array of values instead of
        per-pixel calls)
  * Bugfix: %GITHUB%/issues/476
        Issues with "target" switching in DRC solved
  * Bugfix: %GITHUB%/issues/477
        Missing letter "J" in Times font .. actually this bug is of 1967.
  * Bugfix: %GITHUB%/issues/478
        Layout queries could not use the "shapes" method
  * Bugfix: %GITHUB%/issues/481
        "isolated" DRC function reported duplicate marker shapes
  * Enhancement: %GITHUB%/issues/482
        "join_symmetric_nets" feature in LVS for implementing
        "split gate" configurations
  * Enhancement: %GITHUB%/issues/486
        There is a "save as" function available now in the macro editor
        (in context menu of the macro tree)
  * Enhancement: %GITHUB%/issues/489
        Pin names can be attached as properties to port and pin shapes
        when reading LEF or DEF
  * Bugfix: %GITHUB%/issues/491
        Performance enhancement of L2N/LVS DB file loader
  * Bugfix: %GITHUB%/issues/496
        Fixed builds on CentOS 8 and Fedora 31
  * Enhancement: %GITHUB%/issues/500
        Option to limit number of shapes for net tracer
  * Bugfix: %GITHUB%/issues/501
        Issues with ownership transfer fixed in Qt binding
  * Bugfix: %GITHUB%/issues/502
        Issues with AbsoluteProgressReporter in scripts fixed

 0.26.3          (2020-01-05):

  * Bugfix: %GITHUB%/issues/466
        A crash happened when accessing layer properties tabs with
        an invalid index in Ruby or Python
  * Bugfix: %GITHUB%/issues/464
        Problem building a layer tree with "add_child" (Ruby/Python)
  * Bugfix: %GITHUB%/issues/463
        Configuring a layer color with a group node was not effective
        over multiple levels of hierarchy
  * Enhancement: %GITHUB%/issues/462
        MOS transistor gate figures can be more generic now,
        e.g. ring-like or non-rectangular
  * Bugfix: %GITHUB%/issues/458
        A net extraction bug related to certain array/array
        interactions is fixed

 0.26.2          (2019-12-18):

  * Bugfix: %GITHUB%/issues/453
        A crash happened when the "inverse" button is used on the TEXT
        PCell
  * Bugfix: %GITHUB%/issues/449
        The Qt windows styling plugin is now installed too on Windows.
  * Bugfix: %GITHUB%/issues/448
        The LVSDB database wasn't written with the proper device
        class statements in short form.
  * Bugfix: %GITHUB%/issues/447
        Net extraction did not work properly on a specific test case
        with folded and interleaving array instances.
  * Bugfix: %GITHUB%/issues/445
        "Selection/Merge shapes" gave cryptic message when instances are selected
  * Enhancement: %GITHUB%/issues/444
        Support for net joining though labels also for specific
        subcells (here: to support double-height standard cells)
  * Bugfix: %GITHUB%/issues/440
        LayoutView#each_annotation_selected wasn't working
  * Enhancement: %GITHUB%/issues/438
        Redefining a circuit in Spice netlists will give an error now
  * Enhancement: %GITHUB%/issues/436
        Option to silence instance copy mode dialog,
        Enhancements to interactive move, duplicate and copy (sensitive
        to transient selection now)
  * Enhancement: %GITHUB%/issues/434
        New preinstalled Ruby gems and Python packages (e.g. numpy, scipy,
        test/unit for Ruby) for the Windows packages.
  * Bugfix: %GITHUB%/issues/429
        Support for MAGIC file format (*.mag)
  * Enhancement: %GITHUB%/issues/428
        Edit buttons are not shown in user properties dialog
        in viewer mode
  * Enhancement: %GITHUB%/issues/426
        Techs can be grouped in menu now
  * Enhancement: %GITHUB%/issues/425
        Don't generate dummy pins for dummy gates
  * Bugfix: %GITHUB%/issues/419
        Multiple top circuits after flatten of netlist
  * Bugfix: %GITHUB%/issues/417
        Probe nets does not work with flat extraction on Tools/Trace All Nets/Flat
  * Bugfix: %GITHUB%/issues/415 and %GITHUB%/issues/439
        Macros need to be stored with CRLF on Windows for management
        with a versioning system like git
  * Enhancement: %GITHUB%/issues/411
        Multiple device extractors for same class
  * Bugfix: %GITHUB%/issues/410
        Errors were not reported on "rerun" from the DRC and LVS report dialogs
  * Bugfix: %GITHUB%/issues/408
        Internal error after EdgePairs#polygon
  * Enhancement: %GITHUB%/issues/407
        Variables can be used in technology base path now
          - $(tech_name) -> substituted by the technology name
          - $(tech_dir) -> substituted by the directory the technology file is stored in
          - $(tech_file) -> substituted by the absolute path to the tech file
          - $(appdata_path) -> substituted by KLayout's home directory (e.g. ~/.klayout)
          - $(env('X')) -> substituted by the environment variable $X
  * Enhancement: %GITHUB%/issues/406
        DRC edge layers: AND between intersecting edges gives point-like
        markers indicating the intersection points
  * Enhancement: netlist object properties
        User properties can be attached to the following netlist objects
        now: Pin, Device, Circuit, Net and SubCircuit. Properties are
        key/value pairs (keys and values can be strings can be strings
        or numbers).
        The property-enabled classes use "NetlistObject" as the base
        class now. NetlistObject provides "set_property" to set or reset
        a property and "property" to retrieve one.
        Properties are persisted in L2N and LVSDB files and written to
        layout shapes on "build_nets".
  * Enhancement: more detailed progress
        On certain nested operations, a double or triple progress bar is
        shown indicating the progress of nested operations.

 0.26.1          (2019-11-06):

  * Bugfix: %GITHUB%/issues/354
        Buddy scripts did segfault.
  * Bugfix: %GITHUB%/issues/352
        LVS: equivalent_pins required the cell to be present.
  * Enhancement: %GITHUB%/issues/353
        Session files: "file-path" and "rdb-file" behavior was inconsistent.
  * Bugfix: %GITHUB%/issues/358
        "strm2oas" was writing GDS files.
  * Bugfix: %GITHUB%/issues/363
        It was possible to produce bad polygons while drawing.
  * Bugfix: %GITHUB%/issues/372
        pymod build failed with HAVE_64BIT_COORD=1.
  * Enhancement: %GITHUB%/issues/376
        Parameters UI callback invoking.
  * Bugfix: %GITHUB%/issues/368
        Segfault with layer list manipulation while iterating.
  * Bugfix: %GITHUB%/issues/386
        "None" is a reserved keyword for Python binding - use "None_".
  * Enhancement: %GITHUB%/issues/382
        Possibility to copy user property value.
  * Enhancement: %GITHUB%/issues/387
        Salt: Python version can be specified in "api-version".
        Other requirements can be specified too.
  * Bugfix: %GITHUB%/issues/392
        Layers "Style" sub-pane was malformed.
  * Enhancement: %GITHUB%/issues/394
        Even bigger font sizes for rulers and labels for the 4k age:
        Now there is "XLarge", "XXLarge" and "XXXLarge" as well.
  * Enhancement: %GITHUB%/issues/393
        DRC syntax errors are now shown in their original code line
        of the DRC script.
  * Bugfix: %GITHUB%/issues/400
        Snap feature wasn't working for deep regions in certain use
        cases.
  * Enhancement: new "scale_and_snap" methods
        These methods allow scaling and snapping of layouts. Scaling
        is supported by a rational factor. After scaling, snapping can
        be applied to an integer grid. There are two incarnations.
        Region#scale_and_snap (or Region#scaled_and_snapped): this is
        a flat implementation which allows anisotropic scaling/snapping
        as well.
        And there is Layout#scale_and_snap which is a fully
        hierarchical scale-and-snap feature. The latter does not support
        anisotropic scaling/snapping, but works hierarchically without
        opening gaps. It operates on a top cell and on all layers.
  * Enhancement: new Region#pull_* methods and DRC features
        "pull_*" is a class of methods that allows rehierarchisation
        of shapes. These methods act similar to "interacting", but
        the other way around: instead of delivering interacting
        shapes of the first argument, it will deliver shapes of
        the second argument. For example, "a.pull_interacting(b)"
        will deliver polygons of b which interact with polygons
        of a. As a side effect, the polygons of b will be stored
        hierarchically close to the polygons of a. This provides
        a way to "re-hierarchise" layout.
        The full class of methods and DRC functions involve:
        Region#pull_interacting, Region#pull_inside, Region#pull_overlapping
        and the same functions for DRC.
        "pull_interacting" is also available for the Edges class
        and edge layers in DRC.
  * Enhancement: Net tracer bug fix for heavily decomposed polygons
        The net tracing feature now can operate on heavily decompose
        polygons as well. Such layouts can be created by using a low
        max. vertex count on GDS write. The problem were small
        triangles with an area of 0.5 square DBU.
  * Enhancements: General fixes of deep DRC mode
        Some inconsistencies with merged/raw mode have been
        removed. Performance was enhanced in a few places.
        Multithreaded mode now works more reliably.
  * Enhancements/bugfixes: various LVS improvements
        The backtracking algorithm should work more reliable
        in cases of ambiguities and floating nets or pins.
        Performance should be better in some cases.
        LVS script structure is less rigid now. "cheats" to
        forcibly ignore hierarchy interactions for some
        cells (useful for SRAM layout for example).
        Still there is some work to do.

 0.26            (2019-09-10):

  * Bugfix: %GITHUB%/issues/197
        Python: Reimplemented methods are not getting called
  * Bugfix: %GITHUB%/issues/236
        Crash when using "Delete all rulers"
  * Bugfix: %GITHUB%/issues/251
        Register application exit handler in Ruby
  * Bugfix: %GITHUB%/issues/264
        Python exceptions are redirected when PCell is used
  * Bugfix: %GITHUB%/issues/265
        LEF file can't be read
  * Bugfix: %GITHUB%/issues/277
        Region#min_coherence is not recognized by Region#sized
  * Bugfix: %GITHUB%/issues/293
        File/Setup menu and dialog names are inconsistent
  * Bugfix: %GITHUB%/issues/294
        Cannot display the right icon in Ubuntu
  * Bugfix: %GITHUB%/issues/302
        Display issues with small cells
  * Bugfix: %GITHUB%/issues/305
        CIF box positions are incorrect when a rotation is specified
  * Bugfix: %GITHUB%/issues/306
        Round corners issue
  * Bugfix: %GITHUB%/issues/316
        Text capture box has zero dimension for move
  * Bugfix: %GITHUB%/issues/318
        Unable to disable a key binding
  * Bugfix: %GITHUB%/issues/321
        Something's wrong with tip windows
  * Bugfix: %GITHUB%/issues/322
        CIF, error when changing layer name while file open in KLayout
  * Bugfix: %GITHUB%/issues/330
        DXF reader stalls
  * Bugfix: %GITHUB%/issues/337
        Annotation: make "cross" styles available for scripts
  * Bugfix: %GITHUB%/issues/338
        Unreadable Assistant document: QComboBox
  * Bugfix: Rare crash fixed with line width > 1
        With line widths > 1, segfaults have been observed in some
        rare cases.
  * Enhancement: %GITHUB%/issues/287
        Return an ObjectInstPath from the RecursiveShapeIterator
  * Enhancement: %GITHUB%/issues/317
        "infix move"
  * Enhancement: %GITHUB%/issues/333
        Ruby/Python automation of "auto measure"
  * Enhancement: %GITHUB%/issues/342
        Ruler properties editor: swap points and snap to object buttons
  * Enhancement: %GITHUB%/issues/343
        Dockable bookmark window
  * Enhancement: Hierarchical mode for DRC ("deep" keyword)
        DRC can be put into hierarchical mode with the "deep"
        statement at the beginning of the file.
        In hierarchical mode, most operations are performed
        in a hierarchical fashion - i.e. trying to maintain
        as much from the original hierarchy as possible.
  * Enhancements: Antenna checks for DRC
        DRC now got an antenna check feature. Netlist extraction
        is the basis for this feature.
  * Enhancement: Hierarchical mode in XOR tool and "strmxor"
        The XOR tool and the "strmxor" buddy tool provide
        switches to enable hierarchical mode. These options
        are considered experimental currently as XOR between
        two different layouts was not the implementation goal.
  * Enhancement: Netlist extraction
        KLayout supports extraction of netlists from a layout.
        This is the first step towards LVS. This feature includes
        an infrastructure providing netlist data structures
        (with Ruby/Python bindings), Netlist readers and writers
        (Spice format), device recognition and a netlist browser.
  * Enhancement: LVS
        The LVS feature is based on the netlist extraction capabilities.
        It adds netlist vs. netlist compare and the corresponding
        infrastructure.
        LVS is a new script environment that is based on the DRC feature
        and extends the DRC script language by LVS elements.
  * Enhancement: Command line option -mn to open netlist database
  * Enhancement: Net tracer "trace all nets"
        Based on the netlist extraction feature, an alternative mode
        for net tracing is provided. With "trace all nets", no a single
        but all nets are traced at once. Probing then happens in the
        final nets extracted rather than providing the seed shape.
        "Trace all nets" operates in hierarchical mode and therefore
        usually is faster and has a smaller memory footprint when
        extracting huge nets such as power nets.
  * Enhancement: Library browser
        The library browser is a dockable tool window which shows
        all libraries installed. Use drag and drop to place a library
        cell from the library browser in edit mode.
  * Enhancement: Layout query enhancements
        Layout queries (aka "Search and replace") now allow specification
        of Variables when using the script API. The performance of queries has been
        enhanced in the case of cell tree recursion.
  * Enhancement: Gridline colors
        The grid lines (or dots, depending on the style) can now be given
        different colors for axes, grid lines and the ruler inset.
  * Enhancement: Multiple files on import
        The "File/Import/Other files into current" feature now allows
        importing multiple files into the current layout.
  * Enhancement: Python standalone module
        KLayout supports production of standalone Python modules
        which provide the same features than the "pya" module but
        for use without the KLayout binary. If installed properly,
        "import klayout" will pull in all modules. "import klayout.db"
        will pull in the database part.
        Deployment on PyPI is supported.
  * Enhancement: Modal help dialog from modal windows
        When using Assistant links in the UI, the assistant now is shown
        as a modal window when called from a modal dialog. Before, the
        Assistant window wasn't usable in this case.
jperkin pushed a commit that referenced this issue Dec 14, 2020
# processx 3.4.5

* New options in `pty_options` to set the initial size of the pseudo
  terminal.

* Reading the standard output or error now does not crash occasionally
  when a `\n` character is at the beginning of the input buffer (#281).

# processx 3.4.4

* processx now works correctly for non-ASCII commands and arguments passed
  in the native encoding, on Windows (#261, #262, #263, #264).

* Providing multiple environment variables now works on windows (#267).

# processx 3.4.3

* The supervisor (activated with `supervise = TRUE`) does not crash
  on the Windows Subsystem on Linux (WSL) now (#222).

* Fix ABI compatibility for pre and post R 4.0.1 versions. Now CRAN
  builds (with R 4.0.2 and later 4.0.x) work well on R 4.0.0.

* Now processx can run commands on UNC paths specified with
  forward slashes: `//hostname/...` UNC paths with the usual
  back-slashes were always fine (#249).

* The `$as_ps_handle()` method works now better; previously it
  sometimes created an invalid `ps::ps_handle` object, if the system
  clock has changed (#258).

# processx 3.4.2

* `run()` now does a better job with displaying the spinner on terminals
  that buffer the output (#223).

* Error messages are now fully printed after an error. In non-interactive
  sessions, the stack trace is printed as well.

* Further improved error messages. Errors from C code now include the
  name of the C function, and errors that belong to a process include the
  system command (#197).

* processx does not crash now if the process receives a SIGPIPE signal when
  trying to write to a pipe, of which the other end has already exited.

* processx now to works better with fork clusters from the parallel
  package. See 'Mixing processx and the parallel base R package' in the
  README file (#236).

* processx now does no block SIGCHLD by default in the subprocess,
  blocking potentially causes zombie sub-subprocesses (#240).

* The `process$wait()` method now does not leak file descriptors on
  Unix when interrupted (#141).
jperkin pushed a commit that referenced this issue Jan 25, 2021
2.9.0 / 2021-01-14

* Handle CSS functions in a CSS shorthand property (like
  background). [#199, #200]

2.8.0 / 2020-11-25

* Allow CSS properties order, flex-direction, flex-grow, flex-wrap,
  flex-shrink, flex-flow, flex-basis, flex, justify-content, align-self,
  align-items, and align-content. [#197] (Thanks, @miguelperez!)
jperkin pushed a commit that referenced this issue May 24, 2021
1.4.2 (2021-05-11)

* Pool - fix busy-loop issue (#197)
jperkin pushed a commit that referenced this issue Jul 22, 2021
Changelog:

2021 July 5
=================
(version 1.22)

FIXED: The prince can now grab a ledge at the bottom right corner of
       a room with no room below.
	Details: https://forum.princed.org/viewtopic.php?p=30410#p30410
	Testcase: doc/replays-testcases/SNES-PC-set level 11.p1r
	See FIX_CORNER_GRAB in config.h .
FIXED: Don't allow killing a skeleton in cheat mode.
FIXED: Ctrl+S didn't mute music (except death music).
FIXED: A falling tile on the left side of a pillar could cause the
       blue stripe to be drawn over the pillar.
FIXED: The top of moving gates became glitched on levels using
       non-default palettes.
FIXED: The right edge of pressed drop buttons was black if a big
       pillar was next to them.
FIXED: Guards appeared in the current room when they fell into spikes
       in an adjacent room. (Example: original level 11, room 22.)
FIXED: Show an error message if a data file is missing.
FIXED: "Remember guard hp" for non-standard guards.
FIXED: Colored torches were not restored on quickload if you (quit
       and) restarted the game after quicksave.
DONE: Added command-line parameter "mute": Start the game with sound off.
FIXED: Fixed compiling with some features #undefined. (USE_TEXT,
       USE_LIGHTING, USE_MENU)
DONE: Hide references to various features if the game was compiled
       without them.
DONE: A scrollbar appears in the pause menu if scrolling is possible.
	It's not clickable yet, it just shows where you are in the list.
DONE: Added command-line parameter "playdemo": Make the demo level
       playable.
FIXED: Fixed the detection of Ctrl+L during the demo level.
FIXED: Create the screenshots directory in SDLPoP's directory, even
       if the current directory is something else.
	This is to match how the replay folder works.
FIXED: On Windows, use Unicode/UTF-8 for mkdir().
	So the replay and screenshots directories can be created
        within non-ASCII paths.
FIXED: After quickload, show the room where the prince is, even if
       the player moved the view away from it (with the H,J,U,N keys).
FIXED: After quickload, don't draw guard HP if a previously viewed
       room (with the H,J,U,N keys) had a guard but the current room
       doesn't have one.
DONE: Speed up music, sounds, and transitions during fast forwarding.
FIXED: Prevent the modifier remapping from accessing out-of-range rooms.
FIXED: Don't show the mirror image if the prince is not in the
       currently shown room.
DONE: Added a new cheat key: Ctrl+B: Go back to the room where the
      prince is. (Undo H,J,U,N.)
FIXED: Fixed the length of feather fall in fast-forward mode.
FIXED: Prevent torches from being randomly colored when an older
       replay is loaded.
FIXED: If the prince is fighting a guard, and the player does a
       quickload to a state where the prince is near the mouse,
       the prince would draw the sword.
DONE: Added options for changing speeds. They are detected from
       PRINCE.EXE. (Used in Hurry up Prince, for example.)
DONE: In the settings menu, allow using Page Up, Page Down, Home, End.
FIXED: Fixed graphical glitches with an opening gate:
	1. with a loose floor above and a wall above-right.
	2. with the top half of a big pillar above-right.
	See FIX_ABOVE_GATE in config.h .
FIXED: Validate mode crashed with the error "init_scaling:
       SDL_CreateTexture: Invalid renderer".
DONE: Rewrote all mentions of key combinations to the "Ctrl+A" style.
DONE: Marked which features of SDLPoP are not in the original game.
      (To prevent confusions like #197)
DONE: Allow Backspace and Ctrl+C during replay.
DONE: During playback, display the number of ticks since start, if
      the timer is shown (debug cheats: T).
FIXED: Fixed crashing when a MIDI music interrupted another one.
FIXED: Make it possible to go through a certain closed gate on level 11
       of Demo by Suave Prince.
	Details: https://forum.princed.org/viewtopic.php?p=32326#p32326
	Testcase: doc/replays-testcases/Demo by Suave Prince level 11.p1r
	See FIX_COLL_FLAGS in config.h .
FIXED: When the prince jumps up at the bottom of a big pillar split
       between two rooms, a part near the top of the screen disappears.
	Example: The top row in the first room of the original level 5.
	Details: See FIX_BIGPILLAR_JUMP_UP in config.h .
DONE: Added a debug cheat to quickload but keep the currently loaded
      level. (Shift+F9)
	Motivation: https://forum.princed.org/viewtopic.php?p=32556#p32556
FIXED: Fixed spiked/chomped/bumped guards teleporting into the wrong room.
       (if fixes are enabled)
	Details: NagyD/SDLPoP#237
FIXED: Quicksave during feather fall mode. (if fixes are enabled)
	Details: NagyD/SDLPoP#236
FIXED: Prevent the prince from entering a glitched room when he falls
       into a wall or he is revived near a wall.
	Details: doc/replays-testcases/Original level 2 falling into wall.txt
	Testcase: doc/replays-testcases/Original level 2 falling into wall.p1r
	See FIX_ENTERING_GLITCHED_ROOMS in config.h .
FIXED: Optimized OPL mixing (MIDI music).
	Details: NagyD/SDLPoP#238
	"More importantly: when run on a Raspberry Pi Zero, the music went
        from unusable to perfect,"
FIXED: Fixed the prince sliding through closed gates when you are using
       the caped prince graphics.
	Details: See FIX_CAPED_PRINCE_SLIDING_THROUGH_GATE in config.h .
DONE: Added a compilation-time flag to disable all fixes for vanilla
      execution.
	Details: NagyD/SDLPoP#239
FIXED: If the prince dies on level 14, don't return to the intro after
       the level was restarted.
	Details: See FIX_LEVEL_14_RESTARTING in config.h .
DONE: Waste an RNG cycle in loose_shake() to match DOS PoP.
DONE: In new replays, use deprecation_number = 2. On playback, waste
      the RNG cycle only if deprecation_number >= 2.
	Older replays have deprecation_number <= 1, and we don't waste
	the RNG cycle when playing them back.
DONE: When backing offscreen (to the left) from the first guard on
      level 7 (among others), simulate the glitch from DOS PoP, which
      causes the prince to fall through the floor.
	Details: See NagyD/SDLPoP#229
FIXED: On Windows, use Unicode/UTF-8 for stat().
	So SDLPoP can load levels from mod folders when a replay file
	restarts the level or advances to the next level.
DONE: Added a more visible error message when a mod referenced by a
      replay file cannot be found in the mods folder.
DONE: Allow guard skill customizations in SDLPoP.ini.
DONE: Made FIX_DOORTOP_DISABLING_GUARD configurable.
jperkin pushed a commit that referenced this issue Sep 6, 2021
# htmltools 0.5.2

## Breaking Changes

* Closed #205: When calling `tagGetAttribute(x)` on an object with a
  non-atomic attribute, a list of untouched values will be
  returned. It is still recommended to only store character values
  inside attributes. (#212)

## New Features & Improvements

* `{htmltools}` now has its own `{pkgdown}` site hosted at
  <https://rstudio.github.io/htmltools/>.

* The new `tagQuery()` function provides a
  [jQuery](https://jquery.com/) inspired interface to query and/or
  modify HTML `tag()` (e.g., `div()`) or `tagList()` objects. To learn
  more, see the [{pkgdown}
  article](https://rstudio.github.io/htmltools/articles/tagQuery.html). (#208)

* Added `tagAddRenderHook()` for delaying modification of a tag object
  until it is rendered. A list of render-time hooks may also be added
  via the new `.renderHook` argument added to all `tag()`
  functions. (#215)

* Closed #243: Added `withTags(.noWS)` to change the default
  whitespace behavior for all tags within the call to
  `withTags()`. (#245)

* Closed #251: Added `.cssSelector` parameters to tag modifying
  functions such as `tagAppendChildren()` or
  `tagAppendChildren()`. The `.cssSelector` allows you to target
  particular (inner) tags of interest. See `tagAppendChildren()` for
  examples. (#224)

* Closed #225: Added `tagInsertChildren()` to be able to insert child
  tag objects at a particular location. (#224)

## Bug Fixes

* When retrieving a tag attribute using `tagGetAttribute(tag, attr)`,
  `NA` values will be removed before combining remaining attribute
  values. If all attribute values are `NA`, then a single `NA` value
  will be returned. (#212)

* Closed #197: Fixed rendering of boolean attributes in `<script>`
  tags rendered via `renderDependencies()` (#197, thanks @atusy).

* Closed #222: Unnamed attributes are no longer allowed to be appended
  via `tagAppendAttribs()`. When trying to print unnamed tag attribs,
  a better error message is provided. (#229)
jperkin pushed a commit that referenced this issue Sep 20, 2021
# NLopt Release Notes

## NLopt 2.6.2

15 April 2020

* Fixed forced stop exception with dimension elimination ([#317])

* Fixed `get_initial_step` wrapping ([#319])

* Various build fixes ([#314], [#308], [#303], [#278])

## NLopt 2.6.1

13 April 2019

* Fix `nlopt_version` result for 2.6.x and update soname.

## NLopt 2.6

12 April 2019

* New `nlopt_set_upper_bound` and `nlopt_set_lower_bound` functions in the low-level C API to set one bound at a time ([#257]).

* There is no longer a separate `libnlopt_cxx` library: C++ algorithms (STOGO and AGS) are compiled and included by default ([#198]).

* Various build fixes ([#197], [#216], [#245], [#250], [#230], [#261], etc.), other fixes ([#242], [#258]).

## NLopt 2.5

26 July 2018

* New AGS global solver ([#194]), thanks to Vladislav Sovrasov.

* New `nlopt_get_numevals` function providing a built-in evaluation counter ([#160]).

* New `nlopt_get_errmsg` function for more descriptive error messages.

* Build system is converted to `cmake` ([#49]), thanks to Julien Schueller

* Plugins updated for recent Octave and Guile versions.

* Various other build fixes and minor bug fixes.
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 Feb 21, 2022
3.1.1
* More time-ordered logging functions
  [#199](kazu-yamamoto/logger#199

3.1.0
* Having a single Buffer in LoggerSet for locking
  [#197](kazu-yamamoto/logger#197. This would have
  performance penalty. So, the major version bumps up. If you see
  performance regression, please register an issue on github.
jperkin pushed a commit that referenced this issue Feb 21, 2022
0.11.7.0
    Support aeson 2 #202

0.11.6.0
    yaml2json: add --help and --version options #197
    json2yaml: add --help and --version options #198
    Add the -o options to both yaml2json and json2yaml #200
jperkin pushed a commit that referenced this issue Mar 15, 2022
                Internet Systems Consortium DHCP Distribution
                            Version 4.4.3
                            9 March 2022
                            Release Notes

                            NEW FEATURES

Please note that that ISC DHCP is licensed under the Mozilla Public
License, MPL 2.0. Please see https://www.mozilla.org/en-US/MPL/2.0/ to read
the MPL 2.0 license terms.

NOTE: The client and relay components are now End-Of-Life.
4.4.3 is the final release for those components.

For information on how to install, configure, and run this software, as
well as how to find documentation and report bugs, please consult the
README file.

ISC DHCP uses the standard GNU configure command for installation. Please review the
output of `./configure --help` to see what options are available.

The system has only been tested on Linux and FreeBSD, and may not work on
other platforms. Please subscribe to the dhcp-users mailing list at
https://lists.isc.org/mailman/listinfo/dhcp-users and report any problems
and/or suggested fixes to dhcp-users@lists.isc.org.

ISC DHCP is open source software maintained by Internet Systems
Consortium.  This product includes cryptographic software written
by Eric Young (eay@cryptsoft.com).

		Changes since 4.4.2-P1 (New Features)

- Two new OMAPI function calls were added, `dhcpctl_timed_connect()`
  and `dhcpctl_timed_wait_for_completion()`. These provide timed
  versions of creating a connection and waiting for an operation
  to complete.
  [GitLab #76]

- The BIND libraries have been updated to the latest version, 9.11.36. This fixes a number
  of compilation issues on various systems, including OpenWRT. Thanks to
  Philip Prindeville for testing on OpenWRT.
  [GitLab #218, #171, #180, #192]

- Support was added for the new DHCPv4 option v6-only-preferred, specified
  in RFC 8925. A new reason code, V6ONLY, was added to the client script
  and the client Linux script sample was updated.
  [GitLab #132]

		Changes since 4.4.2-P1 (Bug Fixes)

- Minor corrections were made to allow compilation under gcc 10.
  [GitLab #117]

- The logic in dhclient that causes it to decline DHCPv4 leases if the
  client script exits abnormally (i.e. crashes) has been corrected.
  [GitLab #123]

- The limit on the size of a lease file that can be loaded at startup
  is now only enforced on 32-bit systems.
  [GitLab #92]

- The PRNG initialization has been improved. It now uses the configure flag
  `--with-randomdev=PATH`, which specifies the device from which to read the
  initial seed. That is typically `/dev/random` (the default value) or
  `/dev/urandom`, but may be specified otherwise on the local system. The old
  behavior can be forced by disabling this feature (`--with-randomdev=no`).
  If the initialization is disabled or reading from the random device fails,
  the previous algorithm (retrieve the last four bytes of hardware addresses
  from all network interfaces that have them, and use the current time and
  process ID) is used.
  [GitLab #197]

- A minor dhclient code fix was made to remove compilation warnings.
  [GitLab #190]

- The hard-coded MD5 algorithm name was removed in OMAPI connection logic.
  Previously, using any other algorithm via a key-algorithm statement would
  allow OMAPI connections to be made, but subsequent actions such as updating
  an object would fail.
  [GitLab #148]

- The parallel build has been improved. Thanks to Sergei Trofimovich for
  the patch. The parallel build is still experimental, as officially the
  BIND 9 code does not support the parallel build for libraries.
  [GitLab #91]

- Handling of LDAP options (`ldap-gssapi-principal` and `ldap-gssapi-keytab`)
  has been improved. This is contributed code that has not been tested by ISC. Thank
  you to Petr Mensik and Pavel Zhukov for the patches!
  [GitLab !56,!75]

- It is now possible to use `option -g ipaddr` in the dhcrelay to replace the giaddr sent to
  clients with the given ipaddr, to work around bogus clients like Solaris 11
  grub which use giaddr instead of the announced router (3) to set up their
  default route. Thanks to Jens Elkner for the patch!
  [GitLab #223, !86, !92]
jbarfield pushed a commit to bissinc/pkgsrc that referenced this issue Mar 22, 2022
New features:

- make install now creates /usr/local/libexec/mold/ld as a symlink to the
  mold executable. We do this for GCC. By passing -B/usr/local/libexec/mold,
  you can tell GCC to use ld inside that directory instead of /usr/bin/ld.
  (e8dcecf)
- xxHash library is now included in the mold's source tree as a subtree for
  ease of building. If you want to link against a libxxhash in a system
  library directory, pass SYSTEM_XXHASH=1 to make. (665bffa)
- The extern "C++" directive is now supported in the dynamic list. (7aa5c39)
- --color-diagnostics is supported. mold used to ignore that flag. (6e290aa)
- Not only * but also ? are now treated as special characters in the version
  script wildcard pattern. (31b0248)
- The --threads=N option has been added as an alias for --thread-count=N.
  (f9ff048)
- The following option has been added: --defsym (f6e8006), -z nodefaultlib
  (8c86c28), -z separate-code, -z noseparate-code and
  -z separate-lodable-segments (5601cf4), -z max-page-size (f3766cd)

Bug fixes and compatibility improvements:

- mold now issue a warning instead of an error for an unknown -z option.
  (8bc5736)
- mold previously created a PT_NOTE segment for non-SHF_ALLOC note segments.
  This is a wrong behavior because we should create segments only for
  memory-allocated sections. This problem has been fixed. (76407a6)
- Previously, a version script can affect symbol visibility of undefined
  symbols when they are promoted to dynamic symbols. This is a semantically
  incorrect behavior and caused a libQt build failure (TritonDataCenter#151). The issue has
  been fixed. (3663389)
- Previously, mold silently turned unresolved undefined symbols into absolute
  symbols with value 0 if -shared, -z defs and -warn-undefined-symbols are
  specified. Even though this behavior makes sense, it's not compatible
  with GNU ld which promotes such symbols into dynamic symbols.
  This incompatibility causes a link failure for Firefox. Since 1.0.1, mold
  behaves the same as GNU ld. (04ccd4d)
- Previously, mold applied wrong values for relocations against Initial-Exec
  thread-local variables. That caused a link failure for Mesa 3D graphics
  library (TritonDataCenter#197). The issue has been resolved. (d116113)
- GCC 7 has a bug that it emits incorrect relocations against thread-local
  variables under a certain condition. That bug was unnoticed because
  existing linkers silently produces an output that works fine in most
  cases but is technically corrupted. mold used to check for that error
  condition and report an error. Now, mold does not report it as an error
  for the sake of bug-compatibility with GCC 7. I don't think relaxing the
  error check will cause any new issue to existing GCC 7 users, because if
  it does, they would have been experiencing the issue with existing
  linkers already. (d9606d6)
- If an output file has more than one sections for thread-local BSS, they
  were laid out in such that they are overlapping with each other. This bug
  caused a runtime error for programs compiled with DMD, a compiler for the
  D language (TritonDataCenter#126). This layout issue has been resolved. (b151de6)
- Previously, mold failed to look up correct files under --sysroot in some
  conditions. That caused a link failure for ClickHouse (TritonDataCenter#150). This bug
  has been fixed. (135f17c)
jperkin pushed a commit that referenced this issue May 13, 2022
fping 5.1 (2022-02-06)
======================

## Bugfixes and other changes

- Use setcap to specify specific files in fping.spec (#232, thanks @zdyxry)
- Netdata: use host instead name as family label (#226, thanks @k0ste)
- Netdata: use formatstring macro PRId64 (#229, thanks @gsnw)
- Allow -4 option to be given multiple times (#215, thanks @normanr)
- Documentation fix (#208, thanks @timgates42)
- Retain privileges until after privileged setsockopt (#200, thanks @simetnicbr)
- Set bind to source only when option is set (#198, thanks @dinoex)
- Update Azure test pipeline (#197, thanks @gsnw)
- Fix getnameinfo not called properly for IPv4 (#227, thanks @aafbsd)
- Fixed wrong timestamp under Free- and OpenBSD and macOS (#217, thanks @gsnw)
- Documentation updates (#240, thanks @auerswal)
- Updated autotools (autoconf 2.71, automake 1.16.5, libtool 2.4.6)


fping 5.0 (2020-08-05)
======================

## Incompatible Changes

- In non-quiet loop and count mode, a line is printed for every lost packet
  (#175, thanks @kbucheli):

  ```
  $ fping -D -c2 8.8.8.8 8.8.8.7
  [1596092373.18423] 8.8.8.8 : [0], 64 bytes, 12.8 ms (12.8 avg, 0% loss)
  [1596092374.18223] 8.8.8.7 : [0], timed out (NaN avg, 100% loss)
  [1596092374.18424] 8.8.8.8 : [1], 64 bytes, 12.3 ms (12.5 avg, 0% loss)
  [1596092375.18344] 8.8.8.7 : [1], timed out (NaN avg, 100% loss)

  8.8.8.8 : xmt/rcv/%loss = 2/2/0%, min/avg/max = 12.3/12.5/12.8
  8.8.8.7 : xmt/rcv/%loss = 2/0/100%
  ```

- The returned size in bytes now always excludes the IP header, so if before it
  reported '84 bytes' e.g. when using 'fping -l', now it reports '64 bytes'.
  This is to make the reported size consistent with ping(8) from iputils and
  also with fping when pinging a IPv6 host (which never included the IPv6
  header size).

## New features

- The number of sent pings is only counted when the pings are received or have
  timed out, ensuring that the loss ratio will be always correct. This makes it
  possible, for example, to use loop mode (-l) with interval statistics (-Q)
  and a timeout larger than period, without having the issue that initially
  some pings would be reported as missing (#193)

- Improved precision of measurements from 10us to 1us (#136, thanks @tycho)

## Bugfixes and other changes

- The reported size of received packets is now always correct on Linux even for
  packets > 4096 bytes (#180)

- Travis CI automated testing now also macos testing and additional ubuntu
  distributions (#196)
jperkin pushed a commit that referenced this issue Aug 30, 2022
## Version 0.5.3.0

 * Improve error messages for `lookup` and NamedRecord parsers (#197)
 * Fix bug (infinite loop) in `FromField Const` instance (#185)
 * Turn flag `bytestring--LT-0_10_4` off by default (#183)
 * Doc: Add cassava usage example of reading/writing to file (#97)
 * Update to latest version of dependencies (#190, #193, #199)
 * Tested with GHC 7.4 - 9.4 (#184, #204)
jperkin pushed a commit that referenced this issue Sep 2, 2022
                Internet Systems Consortium DHCP Distribution
                            Version 4.4.3
                            9 March 2022
                            Release Notes

                            NEW FEATURES

Please note that that ISC DHCP is licensed under the Mozilla Public
License, MPL 2.0. Please see https://www.mozilla.org/en-US/MPL/2.0/ to read
the MPL 2.0 license terms.

NOTE: The client and relay components are now End-Of-Life.
4.4.3 is the final release for those components.

For information on how to install, configure, and run this software, as
well as how to find documentation and report bugs, please consult the
README file.

ISC DHCP uses the standard GNU configure command for installation. Please review the
output of `./configure --help` to see what options are available.

The system has only been tested on Linux and FreeBSD, and may not work on
other platforms. Please subscribe to the dhcp-users mailing list at
https://lists.isc.org/mailman/listinfo/dhcp-users and report any problems
and/or suggested fixes to dhcp-users@lists.isc.org.

ISC DHCP is open source software maintained by Internet Systems
Consortium.  This product includes cryptographic software written
by Eric Young (eay@cryptsoft.com).

		Changes since 4.4.2-P1 (New Features)

- Two new OMAPI function calls were added, `dhcpctl_timed_connect()`
  and `dhcpctl_timed_wait_for_completion()`. These provide timed
  versions of creating a connection and waiting for an operation
  to complete.
  [GitLab #76]

- The BIND libraries have been updated to the latest version, 9.11.36. This fixes a number
  of compilation issues on various systems, including OpenWRT. Thanks to
  Philip Prindeville for testing on OpenWRT.
  [GitLab #218, #171, #180, #192]

- Support was added for the new DHCPv4 option v6-only-preferred, specified
  in RFC 8925. A new reason code, V6ONLY, was added to the client script
  and the client Linux script sample was updated.
  [GitLab #132]

		Changes since 4.4.2-P1 (Bug Fixes)

- Minor corrections were made to allow compilation under gcc 10.
  [GitLab #117]

- The logic in dhclient that causes it to decline DHCPv4 leases if the
  client script exits abnormally (i.e. crashes) has been corrected.
  [GitLab #123]

- The limit on the size of a lease file that can be loaded at startup
  is now only enforced on 32-bit systems.
  [GitLab #92]

- The PRNG initialization has been improved. It now uses the configure flag
  `--with-randomdev=PATH`, which specifies the device from which to read the
  initial seed. That is typically `/dev/random` (the default value) or
  `/dev/urandom`, but may be specified otherwise on the local system. The old
  behavior can be forced by disabling this feature (`--with-randomdev=no`).
  If the initialization is disabled or reading from the random device fails,
  the previous algorithm (retrieve the last four bytes of hardware addresses
  from all network interfaces that have them, and use the current time and
  process ID) is used.
  [GitLab #197]

- A minor dhclient code fix was made to remove compilation warnings.
  [GitLab #190]

- The hard-coded MD5 algorithm name was removed in OMAPI connection logic.
  Previously, using any other algorithm via a key-algorithm statement would
  allow OMAPI connections to be made, but subsequent actions such as updating
  an object would fail.
  [GitLab #148]

- The parallel build has been improved. Thanks to Sergei Trofimovich for
  the patch. The parallel build is still experimental, as officially the
  BIND 9 code does not support the parallel build for libraries.
  [GitLab #91]

- Handling of LDAP options (`ldap-gssapi-principal` and `ldap-gssapi-keytab`)
  has been improved. This is contributed code that has not been tested by ISC. Thank
  you to Petr Mensik and Pavel Zhukov for the patches!
  [GitLab !56,!75]

- It is now possible to use `option -g ipaddr` in the dhcrelay to replace the giaddr sent to
  clients with the given ipaddr, to work around bogus clients like Solaris 11
  grub which use giaddr instead of the announced router (3) to set up their
  default route. Thanks to Jens Elkner for the patch!
  [GitLab #223, !86, !92]
jperkin pushed a commit that referenced this issue Sep 4, 2022
pkgsrc change: remove redundant PKGNAME.

2.3.0 (2022-06-19)

Minor Enhancements

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

Development Fixes

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

Documentation

* Updated Bayes docs for filters (#191)
jperkin pushed a commit that referenced this issue Sep 13, 2022
37.1 (2022-09-03)
-----------------

* Allow HTML5 `nav` tag through cleaner (#259)

37.0 (2022-08-21)
-----------------

* Remove command line example from docs (#197)
* Multiple pyproject.toml fixes (#251)
* Confirm handling multiple inline strong (#252)
* Convert RST output to HTML5 (#253)
* Add Typing to classifiers (#254)
* Development tweaks - coverage reporting, actions updates (#255)
* Add test confirming behavior with unknown lexers (#256)

36.0 (2022-08-06)
-----------------

* Enable gitpod development (#238)
* Allow rst admonitions to render (#242)
* Add badges to README (#243)
* Update codebase for modern Python (#244)
* Fix table cell spans (#245)
* Allow ``math`` directive in rst (#246)
* Preserve ``lang`` attribute in ``pre`` (#247)

35.0 (2022-04-19)
-----------------

* Add py.typed to the built wheel (#228)
* Use isolated build for tox (#229)
* Fix renderer ignore (#230)
* Remove legacy check command and distutils (#233)
* Emit a warning when no content is rendered (#231)
* Drop support for Python 3.6 (#236)
* Update html attribute order in tests (#235)

34.0 (2022-03-11)
-----------------

* Add static types (#225)

33.0 (2022-03-05)
-----------------

* Support cmarkgfm>=0.8.0 (#224)

33.0 (2022-02-05)
-----------------

* Support cmarkgfm>=0.8.0 (#224)
* Support Python 3.10

32.0 (2021-12-13)
-----------------

* Allow start attribute in ordered lists (#216)
* No limit rendering RST one column field names (#219)

31.0 (2021-12-09)
-----------------

* Render disabled checkboxes from Markdown (#217)

30.0 (2021-09-30)
-----------------

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

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

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

1.50      2021-06-26 20:52:16-07:00 America/Los_Angeles
        * New modules: CurrencyRates
        * Updated modules: ASX, TIAA-CREF, Fool, Currencies
        * Corrected some POD issues (thanks to the Debian Perl Group)
jperkin pushed a commit that referenced this issue Jan 4, 2023
# dbplyr 2.2.1

* Querying Oracle databases works again. Unfortunately, the fix requires every
  column to be explicitly selected again (@mgirlich, #908).

* `semi_join()` and `anti_join()` work again for Spark (@mgirlich, #915).

* `str_c()` is now translated to `||` in Oracle (@mgirlich, #921).

* `sd()`, `var()`, `cor()` and `cov()` now give clear error messages on
  databases that don't support them.

* `any()` and `all()` gain default translations for all backends.

# dbplyr 2.2.0

## New features

* SQL formatting has been considerably improved with new wrapping and indenting.
  `show_query()` creates more readable queries by printing the keywords in blue
  (@mgirlich, #644). When possible dbplyr now uses `SELECT *` instead of
  explicitly selecting every column (@mgirlich).

* Added support for `rows_insert()`, `rows_append()`, `rows_update()`,
  `rows_patch()`, `rows_upsert()`, and `rows_delete()` (@mgirlich, #736).

* Added `copy_inline()` as a `copy_to()` equivalent that does not need write
  access (@mgirlich, #628).

* `remote_query()`, `show_query()`, `compute()` and `collect()` have an
  experimental `cte` argument. If `TRUE` the SQL query will use common table
  expressions instead of nested queries (@mgirlich, #638).

* New `in_catalog()`, which works like `in_schema()`, but allows creation of
  table identifiers consisting of three components: catalog, schema, name
  (#806, @krlmlr).

## Improvements to SQL generation

* When possible, dbplyr now uses `SELECT *` instead of explicitly selecting
  every column (@mgirlich).

* New translation for `cut()` (@mgirlich, #697).

* Improved translations for specific backends:
  * `as.Date()` for Oracle (@mgirlich, #661).
  * `case_when()` with a final clause of the form `TRUE ~ ...` uses `ELSE ...`
     for SQLite (@mgirlich, #754).
  * `day()`, `week()`, `isoweek()`, and `isoyear()` for Postgres (@mgirlich, #675).
  * `explain()` for ROracle (@mgirlich).
  * `fill()` for SQL Server (#651, @mgirlich) and RPostgreSQL (@mgirlich).
  * `quantile()` for SQL Server (@mgirlich, #620).
  * `str_flatten()` for Redshift (@hdplsa, #804)
  * `slice_sample()` for MySQL/MariaDB and SQL Server (@mgirlich, #617).
  * `union()` for Hive (@mgirlich, #663).

* The backend function `dbplyr_fill0()` (used for databases that lack
  `IGNORE NULLS` support) now respects database specific translations
  (@rsund, #753).

* Calls of the form `stringr::foo()` or `lubridate::foo()` are now evaluated in
  the database, rather than locally (#197).

* Unary plus (e.g. `db %>% filter(x == +1)`) now works (@mgirlich, #674).

* `is.na()`, `ifelse()`, `if_else()`, `case_when()`, and `if()`
  generate slightly more compact SQL (@mgirlich, #738).

* `if_else()` now supports the `missing` argument (@mgirlich, #641).

* `n()` now respects the window frame (@mgirlich, #700).

* `quantile()` no longer errors when using the `na.rm` argument (@mgirlich, #600).

* `remote_name()` now returns a name in more cases where it makes sense
  (@mgirlich, #850).

* The partial evaluation code is now more aligned with `dtplyr`. This makes it
  easier to transfer bug fixes and new features from one package to the other.
  In this process the second argument of `partial_eval()` was changed to a lazy
  frame instead of a character vector of variables (@mgirlich, #766).
  Partially evaluated expressions with infix operations are now correctly
  translated. For example `translate_sql(!!expr(2 - 1) * x)` now works
  (@mgirlich, #634).

## Minor improvements and bug fixes

* New `pillar::tbl_format_header()` method for lazy tables: Printing a lazy
  table where all rows are displayed also shows the exact number of rows in the
  header. The threshold is controlled by `getOption("pillar.print_min")`,
  with a default of 10 (#796, @krlmlr).

* The 1st edition extension mechanism is formally deprecated (#507).

* `across()`, `if_any()` and `if_all()` now defaults to `.cols = everything()`
  (@mgirlich, #760). If `.fns` is not provided `if_any()` and `if_all()` work
  like a parallel version of `any()`/`any()` (@mgirlich, #734).

* `across()`, `if_any()`, and `if_all()` can now translate evaluated lists
  and functions (@mgirlich, #796), and accept the name of a list of functions
  (@mgirlich, #817).

* Multiple `across()` calls in `mutate()` and `transmute()` can now access
  freshly created variables (@mgirlich, #802).

* `add_count()` now doesn't change the groups of the input (@mgirlich, #614).

* `compute()` can now handle when `name` is named by unnaming it first
  (@mgirlich, #623), and now works when `temporary = TRUE` for Oracle
  (@mgirlich, #621).

* `distinct()` now supports `.keep_all = TRUE` (@mgirlich, #756).

* `expand()` now works in DuckDB (@mgirlich, #712).

* `explain()` passes `...` to methods (@mgirlich, #783), and
  works for Redshift (@mgirlich, #740).

* `filter()` throws an error if you supply a named argument (@mgirlich, #764).

* Joins disambiguates columns that only differ in case (@mgirlich, #702).
  New arguments `x_as` and `y_as` allow you to control the table alias
  used in SQL query (@mgirlich, #637). Joins with `na_matches = "na"` now work
  for DuckDB (@mgirlich, #704).

* `mutate()` and `transmute()` use named windows if a window definition is
  used at least twice and the backend supports named windows (@mgirlich, #624).

* `mutate()` now supports the arguments `.keep`, `.before`, and `.after`
  (@mgirlich, #802).

* `na.rm = FALSE` only warns once every 8 hours across all functions (#899).

* `nesting()` now supports the `.name_repair` argument (@mgirlich, #654).

* `pivot_longer()` can now pivot a column named `name` (@mgirlich, #692),
  can repair names (@mgirlich, #694), and can work with multiple `names_from`
  columns (@mgirlich, #693).

* `pivot_wider(values_fn = )` and `pivot_longer(values_transform = )`
  can now be formulas (@mgirlich, #745).

* `pivot_wider()` now supports the arguments `names_vary`, `names_expand`, and
  `unused_fn` (@mgirlich, #774).

* `remote_name()` now returns a name in more cases where it makes sense
  (@mgirlich, #850).

* `sql_random()` is now exported.

* `ungroup()` removes variables in `...` from grouping (@mgirlich, #689).

* `transmute()` now keeps grouping variables (@mgirlich, #802).
jperkin pushed a commit that referenced this issue Feb 7, 2023
1.9.12.p2 (2023-01-18)

 * Fixed a compilation error on Linux/aarch64.  GitHub issue #197.

 * Fixed a potential crash introduced in the fix for GitHub issue #134.
   If a user's sudoers entry did not have any RunAs user's set,
   running "sudo -U otheruser -l" would dereference a NULL pointer.

 * Fixed a bug introduced in sudo 1.9.12 that could prevent sudo
   from creating a I/O files when the "iolog_file" sudoers setting
   contains six or more Xs.

 * Fixed CVE-2023-22809, a flaw in sudo's -e option (aka sudoedit)
   that coud allow a malicious user with sudoedit privileges to
   edit arbitrary files.
jperkin pushed a commit that referenced this issue Mar 7, 2023
security/sudo: security update

Revisions pulled up:
- security/sudo/Makefile                                        1.194
- security/sudo/distinfo                                        1.126

-------------------------------------------------------------------
   Module Name:	pkgsrc
   Committed By:	taca
   Date:		Mon Feb  6 14:35:32 UTC 2023

   Modified Files:
   	pkgsrc/security/sudo: Makefile distinfo

   Log Message:
   security/sudo: update to 1.9.12p2

   1.9.12.p2 (2023-01-18)

    * Fixed a compilation error on Linux/aarch64.  GitHub issue #197.

    * Fixed a potential crash introduced in the fix for GitHub issue #134.
      If a user's sudoers entry did not have any RunAs user's set,
      running "sudo -U otheruser -l" would dereference a NULL pointer.

    * Fixed a bug introduced in sudo 1.9.12 that could prevent sudo
      from creating a I/O files when the "iolog_file" sudoers setting
      contains six or more Xs.

    * Fixed CVE-2023-22809, a flaw in sudo's -e option (aka sudoedit)
      that coud allow a malicious user with sudoedit privileges to
      edit arbitrary files.


   To generate a diff of this commit:
   cvs rdiff -u -r1.193 -r1.194 pkgsrc/security/sudo/Makefile
   cvs rdiff -u -r1.125 -r1.126 pkgsrc/security/sudo/distinfo
jperkin pushed a commit that referenced this issue Mar 12, 2023
# rgl 1.0.1

## Major changes

* The long promised deprecations of the `rgl.*` functions
have happened.  Now deprecated: `rgl.abclines`,
`rgl.bbox`, `rgl.bg`, `rgl.clear`, `rgl.clipplanes`,
`rgl.close`, `rgl.light`, `rgl.lines`,
`rgl.linestrips`, `rgl.material`,  `rgl.open`,
`rgl.planes`, `rgl.points`, `rgl.quads`,
`rgl.select3d`, `rgl.set`, `rgl.setAxisCallback`,
`rgl.sprites`, `rgl.surface`, `rgl.texts`,
`rgl.triangles`, and `rgl.viewpoint`.
* A vignette "Deprecating the `rgl.*` interface"
has been added.
* Also deprecated: `elementId2Prefix`, `writeWebGL`

## Minor changes

* Since `rgl.material` is deprecated and no
longer contains the list of material types in its
argument list, `rgl.material.names` and `rgl.material.readonly` have been
added.
* Similarly, `rgl.par3d.names` and `rgl.par3d.readonly`
contain lists of properties that may be set or queried
in `par3d()`.
* The flexibility improvements for `surface3d()` in
0.111.6 were incomplete.
* Argument `flip` has been added to `surface3d()` to allow
front and back to be switched.

# rgl 0.111.6

## Minor changes

* Added a panning example to the help page for `setUserCallbacks()`.
* Replaced all calls to `sprintf` from C/C++ code with calls to
`snprintf`.
* `surface3d` and `rgl.surface` are now more flexible,
allowing any of the 3 coordinates to be a vector or matrix
as long as at least one is a matrix.
* `material3d` can now specify an `id` to query properties
for individual objects.
* Since `rgl.material` is soon to be deprecated and no
longer contain the list of material types in its
argument list, `rgl.material.names` and `rgl.material.readonly` have been
added.
* Similarly, `rgl.par3d.names` and `rgl.par3d.readonly`
contain lists of properties that may be set or queried
in `par3d()`.
* Made some examples conditional on interactive use
to save time on CRAN.

## Bug fixes

* Default mouse modes used when a window is opened by an `rgl.*`
call (which is not recommended!) now match
the defaults in `rgl::r3dDefaults`.
* Missing values could cause `surface3d()` to segfault.
* The C source code for `gl2psGetFileFormat` missed declaring
a prototype.

# rgl 0.110.2

## Major changes

* Material property `"blend"` has been added, to allow
various kinds of blending for semi-transparent objects
(issue #245).

## Minor changes

* The `Buffer` object now handles reading of sparse
accessors.
* Low level drawing of primitives has been made more
memory efficient.  This is only likely to make a
noticeable change with very large objects, where R
was running out of memory because of unnecessary
duplication. (Related to issue #260.)
* Recycling of x, y and z vectors in several functions
is more consistent.
* The `polygon3d()` function now chooses coordinates
automatically, as `triangulate()` does (PR #262.)
* The `mtext3d()` and related functions such as
`title3d()` now accept language objects
other than expressions, as `plotmath3d()` always has
(issue #273).

## Bug fixes

* The bounding box could be calculated incorrectly
if data all had large values (issue #250).
* Shiny displays failed to load the shaders (issue #249).
* `transform3d()` failed due to missing argument (issue #253).
* `readOBJ()` is now more flexible in what kinds of
separators it will accept. (issue #258).
* Failure to initialize could cause a segfault.
* On non-macOS platforms, gray-scale textures failed
to display, with a message about an invalid enumerant.
* The third coordinate for `adj` that was added in 0.108.3
was not rendered properly in `rglwidget()` displays of
text.  This sometimes caused text to disappear when it
was near the far limit of the display (issue #269).
* The X11 error fix in 0.109.6 could result in R
freezing in `Rcmdr`.
* Low level drawing functions are now more consistent
about returning an invisible `NULL` if asked to plot zero
items, rather than raising an error or crashing (issue #274).
* Calling `axis3d()` with no ticks or labels no longer triggers
an error, it now silently returns `NULL`.

# rgl  0.109.6

## Minor changes

* `rglwidget()` displays now act on "pointer" events,
not just "mouse" events, so they should be more usable
on touch screens and tablets (PR #240).

## Bug fixes

* Plotting `scene3d()` objects didn't handle suppressed
axes properly, drawing the default axis instead (issue
#241).
* On some systems using X11, `rgl` would segfault when
the "fixed" font was not found.
* X11 errors could cause R to abort.

# rgl  0.109.2

## Major changes

* Changes to support glTF animation:
  - Handling of `embedding = "modify"` for the model matrix
    has changed.  Now the centering step is only done for
    `embedding = "replace"`.  In addition, various bugs
    have been fixed.
  - If a subscene has no lights defined, the lights from the parent
    are used.
  - `plot.rglscene()` now ends with the root subscene as
    current.  It also allows specification of `open3d()`
    parameters in a list.
  - The `MATn` types in `Buffer` are returned as arrays with
    dim `c(n, n, count)`.
  - The `plot3d.rglscene` method now passes `...` to `open3d()`.
  - The `setUserShaders()` function now allows arrays of 4x4 matrices as "uniforms", and allows additional textures to be specified.
* `sprites3d()` now has the option of
`rotating = TRUE`, to allow 3D sprites to rotate with
the scene.
* Added `getShaders()` function to get shaders used in WebGL.
* Now detects if `rgl` is running within `reprex::reprex()`
and if so arranges that a screenshot will be included in the
output.
* Added default shaders to be used in `rglwidget()`, rather than
constructing them on the fly.  This incompatibly affects the use
of lights and clipping planes with user shaders:  their data
is now stored in arrays rather than multiple numbered variables.

## Minor changes

* Now that `pkgdown` 2.0.0 has been released, a number
of internal workarounds to support the development version
have been removed.
* Added `as.mesh3d()` methods for `"rglsubscene"` and `"rglscene"`.
* `open3d()` now handles `useNULL` and `silent` arguments
passed in `params`.
* Controls passed to `playwidget()` may now include a
component specifying HTML dependencies.
* Added `rglwidgetClass.readAccessor()` method to let other
code use the buffering.
* Changed the internal organization of bounding box calculations.
* All functions that produce meshes now accept
material properties.  Newly modified to do so using the `...`
argument:  `cylinder3d()`, and `getBoundary3d()`.
* Updated the system requirements and installation instructions.
* Solid bounding box decorations now try harder to display 3 faces (issue #206).
* Now that `webshot2` is on CRAN, instructions for
installing it from Github have been removed.
* Sometimes `webshot2` snapshots are very slow, so
the default for the `webshot` argument to `snapshot3d()`
now depends on the `RGL_USE_WEBSHOT` environment
variable, using `TRUE` if it is unset. (Reported by Prof. B. D. Ripley.)
* If the Chrome browser is not found, `snapshot3d(webshot = TRUE)` now issues a warning and
reverts to using `rgl.snapshot()`.
* Buffers now use "normalized integers" to store
color or texture coordinate values that lie between 0
and 1 when it saves some space.
* At the request of CRAN, the `akima` package is no
longer suggested.

## Bug fixes

* `as.mesh3d.rglobject()` didn't handle objects with indices
properly.
* In WebGL, the front vs back calculation sometimes
got the wrong result (issue #164).
* `pop3d(tag = x)` did not always find the objects with `tag == x` if they were not in the current subscene.
* The default values for `front` and `back` in `rgl.material`
and `material3d` are now `"filled"`, as documented in some
places.
* The `fog` setting wasn't handled properly by `bg3d()`.
* Numerous cases of partial argument matching were fixed
(suggestion of Henrik Bengtsson in issue #170.)
* Argument `col` is accepted as a synonym for `color` in `material3d()` and `rgl.material()`.
* `planes3d()` objects were not displayed consistently
in `rgl` windows and WebGL displays, because the bounding
boxes were not computed consistently (issue #169).
* Some initialization wasn't done properly in Shiny apps,
so they failed after a redraw (issue #173).
* Buffers are now optional, as they don't work with
Shiny scene changes (also issue #173).
* The NULL device would sometimes miscalculate the
bounding box.
* `selectpoints3d(closest = TRUE)` selected too many points
when multiple objects were in the scene.
* Clearing nested subscenes could cause a segfault and crash.
* In `knitr` and `rmarkdown`, blank plots could be shown
when `par3d(skipRedraw=TRUE)` was set (issue #188).
* Objects drawn with `sprites3d()` weren't lit correctly
in WebGL (issue #189).
* Objects with textures were sometimes drawn more than once, both
before the texture loaded and after.  This was most noticeable for
objects with user textures.
* Axis mode `"pretty"` got lost when scenes were redrawn.
* Tick labels were sometimes lost in WebGL displays and
`snapshot3d()` results (issue #197).
* The new material properties from 0.107.10 and 0.108.3
were not handled properly by `plotmath3d()`.
* `rglMouse()` did not set the default value of the drop-down
selector properly (issue #213).
* `merge.mesh3d()`, used by `filledContour3d()`, didn't handle
colors properly (issue #212).
* `bg3d(sphere = TRUE)` has been fixed (issue #207).
* Textures were not appearing on spheres, and front-back
differences weren't being rendered (issue #217).
* When "knitting" within RStudio under R 4.2.0 on
Windows, `rgl` scenes didn't appear (reported by
Dieter Menne.) A workaround has been added.
* In `rglwidget()`, axis labels were not always
displayed, and did not move with solid bounding box
decorations properly (issue #206).
* On some systems, `lines3d()` using both missing values
and transparency did not draw properly (issue #234,
originally reported by Gaspar Jekely).
* The `rglShared()` example failed when `crosstalk`
was uninstalled.


# rgl  0.108.3.2

## Bug fixes

* Changes introduced in 0.100.50 lacked checks; these caused
segfaults in Windows with R 4.2.0 and RStudio (issue #208).
* A typo caused problems loading fonts on some systems.

# rgl  0.108.3

## Major changes

* Added `getBoundary3d()` function to extract the boundary
edges of a mesh.
* Added material property `tag`, a string associated
with each object.  The value is reported by `ids3d(tags = TRUE)` and
may be used to select objects in most functions that use ids,
but otherwise is
largely ignored by `rgl`.  The `tagged3d()` function returns
information on tags.
* Primitive types (points, lines, segments, triangles, quads)
can now accept an `indices` parameter, similar to the
indices in `mesh3d` objects.
* Added `Buffer` object, based on glTF design, for holding binary
data for `rglwidget()`.

## Minor changes

* Allowed for a third coordinate in `text3d()`'s `adj`
parameter.
* Added support for `adj`, `pos` and `offset` to
`sprites3d()`.
* Added support for `pos` values of `0` (at specified
location), `5` (in front of it), and `6` (behind it) in
`text3d()`, `sprites3d()` and `plotmath3d()`.
* `crosstalk` is now a Suggested package, rather than
a required one.
* The `Makevars.ucrt` file has been modified with
contributions from Tomas Kalibera to work with his `winutf8`
build of R.
* `bgplot3d()` no longer pauses for each page when running
examples.
* `deldir` version 1.0-2 is incompatible with `rgl`.  Added
the `checkDeldir()` function to avoid running it.
* `shade3d()` treated texture coordinates like colors, and
  duplicated the first one for the whole face when `meshColor = "faces"` was chosen.
  Instead, they are now treated like vertex coordinates.
  (Reported by Michael Sumner in issue #145).
* Corrected the documentation and made the implementations
of `asHomogeneous()`, `asEuclidean()` etc. more consistent.
* An `as.rglscene()` generic has been added, though no methods
are defined in this package.
* `downlit` 0.4.0 has been released with support for `rgl`, so instructions
for installing the devel version have been removed.

## Bug fixes

* Fixed rendering of text as sprites3d() objects.
* Added `--static` flag to configure script for FreeType
  installation.  (Suggestion of Simon Urbanek and Prof. Brian Ripley.)
* `shade3d()`, `wire3d()` and `dots3d()` overrode
  `"front"` and `"back"` material settings in mesh objects.
* `rglwidget()` handling of bounding box decorations had
  several bugs.
* `rgl` could not find routines in the DLL on some Windows
installs (Issue 148.)
* Some cases where allocations were not protected have been fixed.
jperkin pushed a commit that referenced this issue Jun 11, 2023
# gargle 1.4.0

## Google Compute Engine

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

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

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

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

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

## Behaviour in a cloud/server context

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

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

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

## Everything else

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

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

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

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

# gargle 1.3.0

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

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

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

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

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

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

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

## gargle-specific notion of OAuth client

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

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

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

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

## Google Compute Engine and Google Kubernetes Engine

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

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

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

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

## Credential function registry

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

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

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

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

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

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

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

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

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

# gargle 1.2.1

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

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

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

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

## Dependency changes

* The minimum versions of rlang and testthat have been bumped. The
  motivation is to exploit and adapt to the changes to the display of
  error messages.
jperkin pushed a commit that referenced this issue Aug 8, 2023
v0.13.1
Bugfixes
 - Correctly handle discontinuous input (stdin), see #196 and #197 (@sharifhsn)
jperkin pushed a commit that referenced this issue Oct 20, 2023
## v3.4.0

#### Fixes

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

#### Additions

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

#### Changes:

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

#### Build system:

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

Support for Python 3.12 (#204)

* Fix for Python 3.12
* Getting rid of Python 3.7, since it's not supported anymore.
* Precommit hooks' autoupdate.
* Disabling `aiohttp` for testing Python 3.12.

3.11.1

Replace aiohttp with httpx for a few tests by @mindflayer in #197
Fix for urllib2>=2 by @mindflayer in #201

3.11.0


Migrating the HTTP[S] mock from relying on http-parser to httptools.

Never discovered the root cause for the failing tests with
aiohttp/Python 3.11 (first time ever I added @pytest.mark.xfail
to a few tests). Same test works with httpx, so I suspect it's
related to a client issue. I'll probably migrate to httpx as
the reference client for testing async/await code.
jperkin pushed a commit that referenced this issue Nov 9, 2023
[1.0.0] - 2023-11-07

A quick note to any packages. The generated shell completions and man page are
now in the gen directory of the repo. They're also included in the pre-built
release artifacts on the releases page.

Improvements
 #115 Do not replace symlink with output file (@SimplyDanny)
      Fixes an issue where a symlink would be replaced with a regular file
 #124 Fix tests (@Linus789)
      Removed displaying the file path when passing the --preview flag and fixed how text coloring was handled in tests

Breaking
 #192 Rename --string-mode to --fixed-strings (@CosmicHorrorDev)
      Renamed -s --string-mode to -f --fixed-strings to better match similar
      tools
      -s and --string-mode will still continue to work for backwards
      compatibility, but are no longer documented
 #258 Error on $<num><non_num> capture replacement names (@CosmicHorrorDev)
      Previously when you tried to use a numbered capture group right before
      some letters in the replacement text (e.g. $1foo) then it would be
      considered the impossible-to-use 1foo capture. The correct way to pass
      the numbered capture group in this case would be to surround the number
      with curly braces like so ${1}foo. The error just detects this case and
      informs the user of the issue

Docs
 #93 Add note about in-place file modification to --help output (@jchook)
 #148 Doc: nitpick -- has no special meaning to shells (@hexagonrecursion)
 #181 Fix man page -f flag help text (@ulope)
      Fixed copy-pasted text in the man page's -f flag's help text
 #186 Improve error message for failed replacements (@CosmicHorrorDev)
 #187 Freshen up README (@CosmicHorrorDev)
      Added a repology badge to document different installation methods
      Improved the formatting of the benchmarks
 #207 Documenting $ escape (@yahkbar)
      Adds a section in the README that covers that $$ is a literal $ in the
      replacement text
 #227 Improve README readability (@vassudanagunta)
      Various formatting improvements
 #231 Use clap_mangen and roff to generate manpage (@nc7s)
      This change ensures the man page contents stay in sync with the CLI
      automatically, and fixes some broken rendering of the existing manpage
 #243 Exclude unsupported packages from the repology badge (@CosmicHorrorDev)

Pre-built Releases
 (11295fb) Add ARM target (@chmln)
           Added the arm-unknown-linux-gnueabihf target to CI and releases
 #114 Adding aarch64-apple-darwin target (@yahkbar)
 #143 Fix paths to release binary in "publish" action (@skrattaren)
 #179 Build Adjustments (@yahkbar)
      striped release binaries and added the aarch64-ubuntu-linux-musl target
 #204 Adding armv7-unknown-linux-gnueabihf target (@yahkbar)
      Added the armv7-unknown-linux-gnueabihf target to the list of targets to
      build in CI and for each release
 #205 Resolving broken aarch64-apple-darwin tests (@yahkbar)
      Switched aarch64-apple-darwin to only try building the executable without
      running the tests since there seems to be no easy way to test for ARM
      Apple targets
 #206 Adding Windows builds back (@yahkbar)
      Added the x86_64-pc-windows-gnu and x86_64-windows-musl targets back to
      the list of targets to build in CI and for each release

Internal
 #118 Fix master (@SimplyDanny)
      Fixes several cross-compilation issues that effected different targets
      in CI
 #182 cargo update (@CosmicHorrorDev)
      Bumps dependencies to their latest compatible versions
 #183 Switch memmap -> memmap2 (@CosmicHorrorDev)
      Switches away from an unmaintained crate
 #184 Add editor config file matching rustfmt config (@CosmicHorrorDev)
      Adds an .editorconfig file matching the settings listed in the
      .rustfmt.toml file
 #185 Fix warnings and clippy lints (@CosmicHorrorDev)
 #188 Switch atty for is-terminal (@CosmicHorrorDev)
      Switches away from an unmaintained crate
 #189 Replace structopt with clap v4 (@CosmicHorrorDev)
      Switches away from a defacto deprecated crate
 #190 Change how all shell variants are expressed (@CosmicHorrorDev)
      Tiny tidying up PR
 #196 Move generating static assets to a cargo-xtask task (@CosmicHorrorDev)
      Moves the generation of the man page and shell completions from a build
      script to a cargo-xtask task
 #197 Add a release checklist (@CosmicHorrorDev)
 #209 Dependency updates (@yahkbar)
 #235 Update generated assets (@CosmicHorrorDev)
 #236 Tone down dependabot (@CosmicHorrorDev)
 #245 Update sd to 2021 edition (@CosmicHorrorDev)
      Updates sd to the Rust 2021 edition
 #248 Misc Cargo.toml tweaks (@CosmicHorrorDev)
      Switches to use workspace edition and dependencies where appropriate
 #249 Resolve CI warnings (@CosmicHorrorDev)
      Switched from actions-rs actions to dtolnay@rust-toolchain
      Switched from using ::set-output to $GITHUB_ENV
 #251 Update dependencies (@CosmicHorrorDev)
 A lot of sad CI tweaking:
      #252 Fix build target usage in CI (@CosmicHorrorDev)
      #253 Improve publishing CI job (@CosmicHorrorDev)
      #256 More CI tweaks (@CosmicHorrorDev)
      #257 Fix publish action (@CosmicHorrorDev)
 #267 Rework the replacements flag (@CosmicHorrorDev)
 #269 Make modified text blue instead of green (@CosmicHorrorDev)
 #271 Fix release checklist indentation (@CosmicHorrorDev)
 #272 Remove outdated release checklist step (@CosmicHorrorDev)
 #274 Prepare 1.0.0-beta.0 release (@CosmicHorrorDev)
 #275 Update sd version in lockfile (@CosmicHorrorDev)
jperkin pushed a commit that referenced this issue Feb 14, 2024
0.20.5

    Replace non-JSON-standard single-quotes with double-quotes in binding.gyp by @nordlow in #240
    Fixes by @amaanq in #245

0.20.4

not documented

0.20.3

    fix: heredocs with many trailing file redirects by @ahlinc in #197
    fix: don't expose \n rule anchors as visible anonymous nodes by @ahlinc in #198
    fix: restore missed redirect field by @ahlinc in #200
    fix: alias simple_heredoc_body to heredoc_body by @ahlinc in #201
jperkin pushed a commit that referenced this issue Feb 14, 2024
v0.20.1

What's Changed

    Switch to GitHub Actions CI. by @patrickt in #166
    Add the same PR template as for tree-sitter-javascript by @mjambon in #169
    Fixed CRLF behavior for tests by @ahelwer in #188
    Fix CRLF behavior mismatch during error recovery by @ahelwer in #189
    Endless methods by @aibaars in #190
    Add forwarded parameters/arguments by @aibaars in #191
    Disable C++ exceptions when compile for wasm32-wasi by @glebpom in #192
    Pattern matching by @aibaars in #193
    Improve grammar after the introduction of case-in pattern matching by @aibaars in #197
    Add parenthesized_pattern by @aibaars in #198
    Ruby 3.1 features by @aibaars in #201
    Update to Node 16 by @mattmassicotte in #206
    C bindings by @mattmassicotte in #199
    Parser improvements by @aibaars in #207
    CI: use windows-2019 for now by @aibaars in #209
    Add named rules for the various call operators by @aibaars in #211
    Update Makefile by @mattmassicotte in #213
    Allow newer tree-sitter upstream library. by @patrickt in #215
    Bump tree-sitter version to 0.20 by @hendrikvanantwerpen in #214
    Fix parse error in 'foo! if condition' by @aibaars in #216
    Parser improvements: != operator and key: [line_break] by @aibaars in #220
    Some improvements to the parser by @aibaars in #222
    Wrap class, module, method, and block bodies in a named node by @npezza93 in #224
    Parser improvments: quoted heredocs and short-hand interpolations by @aibaars in #225
    Add body field for end-less methods by @aibaars in #226
    Swift bindings by @mattmassicotte in #227
    fix: rename reserved word “arguments” by @drwpow in #229
    Bump versions in #208
    Anonymous (hash) splat arguments by @aibaars in #233
    One-line pattern matching by @aibaars in #194
    Scanner: do not skip LINE_BREAKs before .. and ... by @aibaars in #238
    Fix non-termination in parser by @aibaars in #239
    Fix scanning of division vs regex before line ending by @aibaars in #246
    Fix 'case' with newlines before expression by @aibaars in #247
jperkin pushed a commit that referenced this issue Jun 10, 2024
## [2024.1] - 2024-05-20

### Added

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

### Changed

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

### Fixed

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

### Removed

- Revert "generate: Add fallback for missing "since"" [#179]
jperkin pushed a commit that referenced this issue Sep 10, 2024
Features
 - Added alpha property to set command, see #218 (@kanielrkirby)
 - Add support for HSV, see #169 (@jameshurst)
 - Added support for parsing LCh colors, see #2 and #167 (@MForster)
 - Added hyprpicker as --color-picker, see #186 (@mrusme)
 - Implement Color::from_u32 for the rgba, see #202 (@irevoire)

Bugfixes
 - pastel pick does not display all colors in some terminals, see #121 and #168 (@Divoolej)
 - Fix lines in kitty terminal with text_fg_override_threshold set, see #197 (@joveian)
jperkin pushed a commit that referenced this issue Oct 4, 2024
…vel/boost-headers,

devel/boost-libs,devel/boost-mpi,devel/py-boost: Uodate to 1.86.0

Changelog:
New Libraries

  * No new libraries.

Updated Libraries

  * Atomic:
      + Use futex(2) system call on OpenBSD since recent OpenBSD versions have
        removed support for syscall(2).
  * Beast:
      + API Changes
          o Added HTTP status code 418 I'm a teapot.
      + Fixes
          o Narrowing conversion in read_size_hint_db().
          o Overloads that are ambiguous when using default completion tokens.
          o Misplaced static_assert in http::basic_fields move-assignment
            operator.
          o Underflow of bytes_transferred in WebSocket partial write
            operations.
          o websocket::stream::read_size_hint() does not exceed
            read_message_max.
          o Various warnings in tests.
          o Error handling in SSL shutdown operations in examples.
          o Annotate fallthrough case in zlib.
          o Handling of expired timers in basic_stream::ops::transfer_op.
          o Ambiguity in test::basic_stream constructor overloads.
          o Partial parsing of the final chunk in http::parser.
      + Improvements
          o Graceful shutdown in server_flex_awaitable example.
          o Simplified awaitable examples.
          o Added fuzzing targets.
          o Remove superfluous uses of std::bind in some examples.
          o ssl_stream does not use flat_stream.
      + Documentation
          o ssl_stream and flat_stream marked as deprecated.
          o net::ssl::stream is canonical in snippets and examples.
          o Added SSL/TLS Shutdown Procedure section.
      + Acknowledgements
          o tyler92, Ruslan Zakirov, Orgad Shaneh, Alexander Kernozhitsky
  * Charconv:
      + Fixed support for PPC64LE architecture.
      + Fixed support for platforms like Alpine linux that provide the <
        quadmath.h> header but not the compiled library.
      + Fixed first character pattern matching in from_chars for integer types.
      + Fixed overflow detection for integers with base greater than 10.
      + Added native support for std::float16_t and std::bfloat16_t instead of
        using interchange formats.
  * Cobalt:
      + Added support for asio::cancel_after
      + Made asio::deferred co_await-able, because it's asio's default token
      + Added noop utility
      + Added experimental support for stackful coroutines/fibers
      + Fixed movability of channel & coroutine types
  * Compat:
      + Added bind_front.hpp, bind_back.hpp, invoke.hpp, mem_fn.hpp,
        integer_sequence.hpp and type_traits.hpp.
      + Added function_ref.hpp.
  * Container:
      + Fixed bugs/issues:
          o GitHub #285: "devector<>::push_front asserts after clear()".
          o GitHub #280: "Several containers don't support non-movable types
            when move assigning".
          o GitHub #279: "small_vector cannot go back to use stack space".
          o GitHub #277: "Remove dep on boost::static_assert".
          o GitHub #275: "Compilation fails if custom key comparison is used".
          o GitHub #273: "flat_map/vector crashes on appends (memory
            corruption)".
          o GitHub #269: "flat_multimap::emplace not sorting elements under
            GCC".
          o GitHub #266: "small_vector<T> is misaligned on the stack in 32
            bits".
          o GitHub #259: "Global variables".
          o GitHub #245: "flat_tree::insert ordered range doesn't assert
            sorting".
          o GitHub #241: "flat_map should support same interface as std::map".
  * Core:
      + Added a boost/core/pointer_in_range.hpp header with a pointer_in_range
        function template to check if a pointer is within a given range.
      + Fixed type_name for abstract classes. (#172)
      + Fixed boost/core/type_name.hpp compilation error with MSVC with
        disabled native wchar_t type. (#173)
      + Added a workaround for an MSVC bug causing empty_value compilation
        errors when it is used with a nested class. (PR#175)
  * CRC:
      + C++03 is no longer supported; a C++11 compiler is required. (This
        includes GCC 4.6 or later, and MSVC 10.0 (VS 2010) or later.)
      + Removed dependencies on Array, Config, Integer, and TypeTraits. The
        library is now standalone.
  * Filesystem:
      + is_empty operation is now better protected against concurrent
        filesystem modifications.
      + On POSIX systems, is_empty now indicates error if invoked on a file
        other than a regular file or a directory.
      + On Windows, fixed file_size and is_empty operating on symlinks rather
        than the files the symlinks refer to. (#313)
      + directory_entry::refresh no longer throws an exception if the file
        referenced by the entry doesn't exist. This makes directory_entry::
        status and directory_entry::symlink_status, as well as methods based on
        them, behave similarly to the equivalent standalone operations. The
        fact that the file does not exist is still indicated via the error_code
        returned by the corresponding directory_entry::refresh overload, or can
        be seen by testing if the file type returned by directory_entry::status
        or directory_entry::symlink_status calls is file_type::file_not_found.
        (#314)
      + Fixed weakly_canonical testing path elements for existence relative to
        the current path instead of the base path specified in the call, if the
        input path was a relative path.
      + On Windows, fixed weakly_canonical producing incorrect result path when
        the input path started with "..". (#311)
  * Format:
      + C++03 is no longer supported; a C++11 compiler is required. (This
        includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.)
  * Function:
      + Removed dependency on Boost.TypeTraits.
      + Brought back the argN_type typedefs that were accidentally lost in
        1.85.
  * GIL:
      + Added
          o Added tell() and error() functions to istream_device and
            ostream_device classes (PR#747).
      + Changed
          o Don't ignore custom color converter in color_converted_view
            function (PR#726).
          o Added workaround for conflict with min() and max() macros on WinAPI
            (PR#745).
          o The use of boost::filesystem in GIL is now configurable in CMake
            via option BOOST_GIL_USE_BOOST_FILESYSTEM (PR#743).
      + Fixed
          o Fixed convolution in convolve_2d (PR#723)
          o Normalize Gaussian 2D kernel to avoid darkening (PR#725)
          o Wrong buffer size in path string conversion functions for std::
            wstring is fixed, avoiding buffer overflows when using I/O-related
            functions with std::wstring paths (PR#746).
      + Acknowledgements
          o Christoph Gringmuth, Christopher Kormanyos, nicolacandussi, Dirk
            Stolle, Olzhas Zhumabek
  * Graph:
      + Major update: C++14 is the new minimum standard; this was partly
        dictated by dependencies (at least to C++11) and partly by choice. If
        you require support for an older standard, please contact the
        maintainer.
      + Remove direct dependency on Boost.Regex.
      + Fix several compilation errors caused by not explicitly including
        common headers.
      + isomorphism: Fix docs, ignore vertex_max_invariant parameter in favour
        of cheaply calculating upper exclusive bound, fix bug with Associative
        Property Map, improve space efficiency from linear in the size of the
        maximum invariant to linear in the size of g1.
      + boykov_kolmogorov_max_flow: Fix named parameter overload.
      + adj_list_edge_iterator: Fix maybe-uninitialized warnings.
      + hawick_circuits: Add a parameter to optionally limit the depth of the
        search, causing a potentially suboptimal answer to be returned early.
      + disjoint_sets: Improve performance of link_sets by removing redundant
        lookup of set representatives.
      + maximum_adjacency_search: Refactor and more tests.
      + property: Use BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS to remove wasted space.
      + labeled_graph: Fix remove_labeled_vertex so that it actually removes
        the label too.
      + r_c_shortest_paths: Fix bug that the single-solution variant did not
        always return the shortest path.
      + read_graphviz: Fix stack overflow (oss-fuzz issue 66719) and
        non-keyword subgraph parsing.
      + Many miscellaneous improvements: broken links, typos, etc.
  * Interprocess:
      + Fixed bugs:
          o GitHub #191 ("vectorstream: support file sizes larger than INT_MAX
            ").
          o GitHub #198 ("Minor fixes for documentation of offset_ptr").
          o GitHub #202 ("Allow to map message_queue in anonymous memory").
          o GitHub #207 ("cmake: link system libraries").
          o GitHub #214 ("Doc: Fix github links").
  * Intrusive:
      + Fixed bug GitHub #86: Invalid UTF-8 character in comment
  * JSON:
      + Support for GCC versions older than version 5.0 is deprecated and will
        stop in Boost 1.88.0.
      + source_location parameter was added to throwing accessor functions.
      + Parse option to tolerate invalid UTF-16 surrogate pairs, and produce
        WTF-8.
      + Added accessor functions that return system::result.
      + Handle missing error case in direct parsing.
  * LexicalCast:
      + Fixed conversion of std::basic_string_view and boost::basic_string_view
        containing one or more \0 characters. Issue was introduced in 1.85.0.
  * leaf:
      + More optimal verbose_diagnostic_info implementation.
      + Bug fixes.
      + Added [[nodiscard]] to class result<>.
  * Locale:
      + Add support for custom allocators in conv::utf_to_utf
      + Don't build examples by default
  * Log:
      + Added a workaround for windres.exe issue, when it is used in CMake to
        compile event log resource files on MinGW-w64. (PR#231)
  * Math:
      + Correct Bessel function results at infinity, see 1143.
      + Improve Non Central T numerical stability, see scipy20693.
      + Correct float_next/float_prior behaviour at infinity.
      + Prevent spurious underflow in non-central beta, see scipy20693.
      + Add improvement to Heuman Lambda precision.
      + Improve Skew Normal root finding, see 1120.
      + Lots of minor fixes and improved code coverage.
  * Multiprecision:
      + Make sure eval_convert_to() does not terminate with super large
        numbers, see 618.
      + Fix sinc implementation to match behavior of Boost.Math.
      + Fix divide-by-zero in cpp_int modulus operations.
      + Fix underflow behavior consistency for integers greater than 128-bits,
        see 626.
  * MySQL:
      + The long-deprecated functions query, start_query, execute_statement and
        start_statement_execution (and their async equivalents) have been
        removed.
      + Breaking changes to experimental APIs:
          o The identifier class (client-side SQL formatting) has been removed.
            Use the new format specifiers feature, instead.
          o The required interface for custom formatters has been changed to
            accomodate the new format specifiers API.
          o any_connection::async_connect now requires that its connect_params
            argument be kept alive until the operation completes. The overload
            taking a const connect_params* has been removed.
          o character_set::name is now a const char* instead of a string_view,
            as MySQL character set names can't contain NULL characters.
          o any_connection internal buffer is now limited to 64MB. If you need
            to read or write rows bigger than that, increase
            any_connection_params::max_buffer_size. connection and their helper
            typedefs are not limited.
          o Renamed any_connection_params::initial_read_buffer_size to
            initial_buffer_size.
          o Renamed pool_params::initial_read_buffer_size to
            initial_buffer_size.
      + New experimental API: pipelines. Pipelines can increase efficiency by
        coalescing several requests in a single network packet. Pipelines can
        be used to run text queries, prepare, execute and close statements,
        reset session state and set the connection's character set.
      + Client-side SQL formatting now supports ranges out of the box.
        Formatting can be further customized using the new sequence function.
        Use cases like batch inserts and batch lookups can be significantly
        simplified using this functionality.
      + Client-side SQL formatting now supports format specifiers which modify
        how values are formatted. {:i} formats a string as a dynamic SQL
        identifiers, and {:r} outputs a raw unescaped
      + The static interface (static_results and static_execution_state) now
        supports Boost.Pfr types using pfr_by_name and pfr_by_position. Added
        underlying_row_t to support such types.
      + date and datetime can now be constructed from and converted to C++20
        std::chrono::local_time.
      + Added any_connection_params::max_buffer_size, which allows to set a
        limit to the connection's internal buffer.
      + Added is_fatal_error, which allows users can now distinguish between
        fatal (which require closing and re-opening the connection) and
        non-fatal error codes.
      + Added formattable_ref, a type-erased reference type that can refer to
        any type satisfying the Formattable concept.
      + Fixed an ODR violation under MSVC which could cause crashes in release
        builds when using Boost.MySQL with other code also using asio::
        coroutine in different translation units.
  * Odeint:
      + Added CMake Option BOOST_NUMERIC_ODEINT_NO_ADAPTORS to reduce
        dependencies, see 82
      + Fixed CMake detection of MPI.
  * Process:
      + Moved the old boost.process to v1 subfolder and inline namespace.
        deprecated process/*.hpp v1 headers
      + Turned v2 into a compile library.
      + Fixed usage on alpine linux / musl
  * Stacktrace:
      + Big new feature: stacktrace from arbitrary exception for Windows. std::
        stacktrace::from_current_exception() now works on Windows platform.
        Many thanks to huangqinjin for the implementation PR#159 Now on POSIX
        and Windows the from_current_exception() function returns the
        stacktrace of the current exception object as if the stacktrace was
        captured at the point of throwing the exception.
      + Fixed inclusion of rarely used Windows SDK headers which can cause
        conflict with other code using Windows SDK. Thanks to Marat Abrarov for
        fixing the issue PR#157.
      + Build option boost.stacktrace.from_exception now properly works on
        MacOS. Thanks to Peter Dimov for the fix PR#166.
      + Fixed a typo in assert expression. Thanks to Kilian Henneberger for the
        bug report #164.
      + Fixed shadowing warnings. Thanks to Nigel Stewart for the bug report #
        141.
      + Added dladdr minimal support for AIX. Many thanks to Cl??ment Chigot
        for the implementation PR#114.
      + Added Boost::stacktrace CMake alias that refers to the best supported
        implementation of Boost.Stacktrace on the platform. Thanks to Alex for
        the feature PR#167.
      + Significant improvement of CMake: multiple fixes, added many new tests,
        improved CI. Many thanks to Peter Dimov for all the improvements.
      + Fix addr2line work when the process is looked up via PATH. Thanks to
        Schreischildkroete for the bug report and to Jens Richter for fix #72.
  * Test:
      + Fix -Wundef in configuration step.
      + Fix unreachable return compilation error on MSVC.
  * Unordered:
      + Added container pmr aliases when header <memory_resource> is available.
        The alias boost::unordered::pmr::[container] refers to boost::unordered
        ::[container] with a std::pmr::polymorphic_allocator allocator type.
      + Equipped open-addressing and concurrent containers to internally
        calculate and provide statistical metrics affected by the quality of
        the hash function. This functionality is enabled by the global macro
        BOOST_UNORDERED_ENABLE_STATS.
      + Avalanching hash functions must now be marked via an is_avalanching
        typedef with an embedded value constant set to true (typically,
        defining is_avalanching as std::true_type). using is_avalanching = void
        is deprecated but allowed for backwards compatibility.
      + Added Visual Studio Natvis framework custom visualizations for
        containers and iterators. This works for all containers with an
        allocator using raw pointers. In this release, containers and iterators
        are not supported if their allocator uses fancy pointers. This may be
        addressed in later releases.
  * UUID:
      + Major update.
      + C++03 is no longer supported, a C++11 compiler is required. (This
        includes GCC 4.8 or later, MSVC 14.0 (VS 2015) or later, and
        MinGW-w64.)
      + Decreased number of Boost dependencies from 39 (in total) to just 5.
      + Updated to reflect the newer RFC 9562.
      + Added generators for time-based UUIDs.
      + Many other improvements, see the revision history.
  * Wave:
      + Replaced one use of vsprintf with the more secure vsnprintf
      + Fixed bug:
          o #197: Improper signed overflow handling (UB and a missing division
            check)
  * WinAPI:
      + Added BOOST_USE_WINAPI_VERSION CMake option, which allows users to
        specify the Windows version for Boost to target.

Updated Tools

  * BoostBook:
      + DTD updated: constructor, copy-assignment and destructor elements are
        now allowed inside method-group elements.
      + Many fixes and improvements in Doxygen-generated documentation:
          o Fixed duplicate equal signs in Doxygen-generated enum value
            initializers.
          o Disabled alphabetical sorting of function arguments. The sorting
            can be re-enabled by setting the new boost.sort.params XSL
            parameter to 1.
          o Added support for custom class member grouping. See Doxygen tags @
            name and @{/@}.
          o Added support for Doxygen references to classes, methods, enums,
            variables, etc. (see @ref tag).
          o Added support for @remark and @Important tags.
          o Added support for @parblock tags, which can be used to place
            multiple paragraphs under a tag that expects a single paragraph as
            an argument (e.g. @returns).
          o Template parameter defaults that refer to implementation details
            are now concealed, similar to function parameter defaults.
          o Improved presentation of unnamed enums. Instead of showing a
            synthesized name such as @0, the name is either omitted or is [
            unnamed], if the name is necessary to introduce a link to the enum
            documentation.
          o Changed the "See Also" (@sa) blocks to be displayed inline, similar
            to "Returns".
          o Fixed presentation of multiple exception specifications (@throws).
          o Added support for free form description of throwing behavior. If
            the exception type after the @throws tag is "~" then the exception
            type is omitted from the output, and the following description is
            displayed directly in the "Throws" section.
          o Removed redundant spaces in return types and template parameters.
  * Build:
      + Includes release of B2 version 5.2.1.
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