This is a long term support version. It is scheduled to go to
security fixes only on October 20th, 2024, and EOL on October 20th,
2025.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 18.3.0 to Asterisk 18.4.0 ------------
------------------------------------------------------------------------------
logger
------------------
* The dateformat option in logger.conf will now control the remote
console (asterisk -r -T) timestamp format. Previously, dateformat
only controlled the formatting of the timestamp going to log
files and the main console (asterisk -c) but only for non-verbose
messages.
Internally, Asterisk does not send the logging timestamp with
verbose messages to console clients. It's up to the Asterisk
remote consoles to format verbose messages. Asterisk remote
consoles previously did not load dateformat from logger.conf.
Previously there was a non-configurable and hard-coded "%b %e
%T" dateformat that would be used no matter what on all verbose
console messages printed on remote consoles.
Example:
logger.conf
dateformat=%F %T.%3q
# asterisk -rvvv -T
[2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
[Mar 19 09:55:43] -- Goto (dialExten,s,1)
Given the following example configuration in logger.conf, Asterisk
log files and the console, will log verbose messages using the
given timestamp. Now ensuring that all remote console messages
are logged with the same dateformat as other log streams.
---
[general]
dateformat=%F %T.%3q
[logfiles]
console => notice,warning,error,verbose
full => notice,warning,error,debug,verbose
---
Now we have a globally-defined dateformat that will be used
consistently across the Asterisk main console, remote consoles,
and log files.
Now we have consistent logging:
# asterisk -rvvv -T
[2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
[2021-03-19 09:55:43.920-0400] -- Goto (dialExten,s,1)
res_pjsip
------------------
* PJSIP transports can now be partially reloaded safely. This
allows the local_net and external_* options to be updated without
restarting Asterisk.
* PJSIP endpoints can now be configured to skip authentication
when handling OPTIONS requests by setting the
allow_unauthenticated_options configuration property to 'yes.'
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 18.2.2 to Asterisk 18.3.0 ------------
------------------------------------------------------------------------------
app_mixmonitor
------------------
* app_mixmonitor now sends manager events MixMonitorStart,
MixMonitorStop and MixMonitorMute when the channel monitoring
is started, stopped and muted (or unmuted) respectively.
chan_iax2
------------------
* You can now specify a default "auth" method in the [general]
section of iax.conf
chan_pjsip, app_transfer
------------------
* Added TRANSFERSTATUSPROTOCOL variable. When transfer is performed,
transfers can pass a protocol specific error code. Example, in
SIP 3xx-6xx represent any SIP specific error received when
performing a REFER.
func_odbc
------------------
* Introduce an ARGC variable for func_odbc functions, along with
a minargs per-function configuration option.
minargs enables enforcing of minimum count of arguments to pass
to func_odbc, so if you're unconditionally using ARG1 through
ARG4 then this should be set to 4. func_odbc will generate an
error in this case, so for example
[FOO]
minargs = 4
and ODBC_FOO(a,b,c) in dialplan will now error out instead of
using a potentially leaked ARG4 from Gosub().
ARGC is needed if you're using optional argument, to verify
whether or not an argument has been passed, else it's possible
to use a leaked ARGn from Gosub (app_stack). So now you can
safely do ${IF($[${ARGC}>3]?${ARGV}:default value)} kind of
thing.
res_srtp
------------------
* SRTP replay protection has been added to res_srtp and
a new configuration option "srtpreplayprotection" has been added
to the rtp.conf config file. For security reasons, the default
setting is "yes". Buggy clients may not handle this correctly
which could result in no, or one way, audio and Asterisk error
messages like "replay check failed".
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 18.1.0 to Asterisk 18.2.0 ------------
------------------------------------------------------------------------------
Core
------------------
* The location where the media cache stores its temporary files
is no longer hardcoded to /tmp but can now be configured separately
via the astcachedir config variable in asterisk.conf. To retain
backwards compatibility, the default location remains /tmp.
app_voicemail
------------------
* The VoiceMail application can now be configured to send greetings
and instructions via early media and only answering the channel
when it is time for the caller to record their message. This
behavior can be activated by passing the new 'e' option to
VoiceMail.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 18.0.0 to Asterisk 18.1.0 ------------
------------------------------------------------------------------------------
Core
------------------
* Added debug logging categories that allow a user to output debug
information based on a specified category. This lets the user
limit, and filter debug output to data relevant to a particular
context, or topic. For instance the following categories are
now available for debug logging purposes:
dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
These debug categories can be enable/disable via an Asterisk
CLI command:
core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
core set debug category off [<category> [<category>] ...]
If no sub-level is associated all debug statements for a given
category are output. If a sub-level is given then only those
statements assigned a value at or below the associated sub-level
are output.
app_confbridge
------------------
* app_confbridge now has the ability to force the estimated bitrate
on an SFU bridge. To use it, set a bridge profile's remb_behavior
to "force" and set remb_estimated_bitrate to a rate in bits per
second. The remb_estimated_bitrate parameter is ignored if
remb_behavior is something other than "force".
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
------------------------------------------------------------------------------
chan_pjsip
------------------
* The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a
warning, and returns unsuccessful if it's used on a channel
prior to answering.
logger
------------------
* Added a new log formatter called "plain" that always prints
file, function and line number if available (even for verbose
messages) and never prints color control characters. Most
suitable for file output but can be used for other channels as
well.
You use it in logger.conf like so:
debug => [plain]debug
console => [plain]error,warning,debug,notice,pjsip_history
messages => [plain]warning,error,verbose
------------------------------------------------------------------------------
--- New functionality introduced in Asterisk 18.0.0 --------------------------
------------------------------------------------------------------------------
Core
------------------
* The Streams API becomes the home for the core ACN capabilities.
These include...
* Parsing and formatting of codec negotation preferences.
* Resolving pending streams and topologies with those configured
using configured preferences.
* Utility functions for creating string representations of
streams, topologies, and negotiation preferences.
For codec negotiation preferences:
* Added ast_stream_codec_prefs_parse() which takes a string
representation of codec negotiation preferences, which may
come from a pjsip endpoint for example, and populates a
ast_stream_codec_negotiation_prefs structure.
* Added ast_stream_codec_prefs_to_str() which does the reverse.
* Added many functions to parse individual parameter name
and value strings to their respectrive enum values, and the
reverse.
For streams:
* Added ast_stream_create_resolved() which takes a "live" stream
and resolves it with a configured stream and the negotiation
preferences to create a new stream.
* Added ast_stream_to_str() which create a string representation
of a stream suitable for debug or display purposes.
For topology:
* Added ast_stream_topology_create_resolved() which takes a
"live" topology and resolves it, stream by stream, with a
configured topology stream and the negotiation preferences
to create a new topology.
* Added ast_stream_topology_to_str() which create a string
representation of a topology suitable for debug or display
purposes.
* Renamed ast_format_caps_from_topology() to
ast_stream_topology_get_formats() to be more consistent with
the existing ast_stream_get_formats().
Additional changes:
* A new function ast_format_cap_append_names() appends the
results to the ast_str buffer instead of replacing buffer
contents.
app_bridgeaddchan
------------------
* The BridgeAdd application now behaves more like the Bridge
application. The application now sets the BRIDGERESULT channel
variable to indicate what happened when the channel resumes in
dialplan. This is instead of hanging up the channel on failure
conditions.
res_pjsip
------------------
* Two new options, incoming_call_offer_pref and outgoing_call_offer_pref
have been added to res_pjsip endpoints that specify the preferred
order of codecs to use between those received/sent in an SDP
offer and those set in the endpoint configuration.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
------------------------------------------------------------------------------
AMI
------------------
* You can now specify an optional 'Content-Type' as an argument
for the Asterisk SendText manager action.
ARI
------------------
* A new parameter 'inhibitConnectedLineUpdates' is now available
in the 'bridges.addChannel' call. This prevents the identity of
the newly connected channel from being presented to other bridge
members.
ARI Channels
------------------
* The Channel resource has a new sub-resource "externalMedia".
This allows an application to create a channel for the sole
purpose of exchanging media with an external server. Once
created, this channel could be placed into a bridge with existing
channels to allow the external server to inject audio into the
bridge or receive audio from the bridge. See
https://wiki.asterisk.org/wiki/display/AST/External+Media+and+ARI
for more information.
Core
------------------
* H.265/HEVC is now a supported video codec and it can be used by
specifying "h265" in the allow line. Please note however, that
handling of the additional SDP parameters described in RFC 7798
section 7.2 is not yet supported.
Features
------------------
* Adds support for AudioSocket, a very simple bidirectional audio
streaming protocol. There are both channel and application
interfaces.
A description of the protocol can be found on the referenced
wiki page. A short talk about the reasons and implementation
can be found on YouTube at the link provided.
ARI support has also been added via the existing "externalMedia"
ARI functionality. The UUID is specified using the arbitrary
"data" field.
Wiki: https://wiki.asterisk.org/wiki/display/AST/AudioSocket
YouTube: https://www.youtube.com/watch?v=tjduXbZZEgI
Messaging
------------------
* In order to reduce the amount of AMI and ARI events generated,
the global "Message/ast_msg_queue" channel can be set to suppress
it's normal channel housekeeping events such as "Newexten",
"VarSet", etc. This can greatly reduce load on the manager and
ARI applications when the Digium Phone Module for Asterisk is
in use. To enable, set "hide_messaging_ami_events" in asterisk.conf
to "yes" In Asterisk versions <18, the default is "no" preserving
existing behavior. Beginning with Asterisk 18, the option will
default to "yes".
STIR/SHAKEN
------------------
* STIR/SHAKEN support has been added to Asterisk. Configuration
is done in stir_shaken.conf. There is a sample configuration
file to help you get started
(asterisk/configs/samples/stir_shaken.conf.sample). Once that's
set up, you can enable STIR/SHAKEN on any endpoint by setting
stir_shaken to yes on the endpoint configuration object. This
will add an Identity header on outgoing INVITEs, and check for
an Identity header on incoming INVITEs. This option has been
added to Alembic as well.
The information received on an incoming INVITE can be checked
using the STIR_SHAKEN dialplan function. There are two variations:
STIR_SHAKEN(count)
STIR_SHAKEN(0, verify_result)
The first variation will tell you how many STIR/SHAKEN results
are on the channel. The second fetches information for a specific
result. The first parameter is the index, followed by what
information you want to retrieve. The available options are
'verify_result', 'identity', and 'attestation'.
app_chanisavail
------------------
* The ChanIsAvail application now tolerates empty positions in
the supplied device list. Dialplan can now be simplified by
not having to check for empty positions in the device list.
app_confbridge
------------------
* A new bridge profile option, maximum_sample_rate, has been added
which sets a maximum sample rate that the bridge will be mixed
at. This allows the bridge to move below the maximum sample rate
as needed but caps it at the maximum.
* A new option, "text_messaging", has been added to the user
profile which allows control over whether text messaging is
enabled or disabled for a user. If enabled (the default) text
messages will be sent to the user. If disabled no text messages
will be sent to the user.
app_dial
------------------
* The Dial application now tolerates empty positions in the supplied
destination list. Dialplan can now be simplified by not having
to check for empty positions in the destination list. If there
are no endpoints to dial then DIALSTATUS is set to CHANUNAVAIL.
app_mixmonitor
------------------
* An option 'S' has been added to MixMonitor. If used in combination
with the r() and/or t() options, if a frame is available to
write to one of those files but not the other, a frame of silence
if written to the file that does not have an audio frame. This
should prevent the two files from "drifting" when mixed after
the fact.
* If the 'filename' argument to MixMonitor() ended with '.wav49,'
Asterisk would silently convert the extension to '.WAV' when
opening the file for writing. This caused the MIXMONITOR_FILENAME
variable to reference the wrong file. The MIXMONITOR_FILENAME
variable will now reflect the name of the file that Asterisk
actually used instead of the filename that was passed to the
application.
app_page
------------------
* The Page application now tolerates empty positions in the supplied
destination list. Dialplan can now be simplified by not having
to check for empty positions in the destination list.
app_voicemail
------------------
* A feature was added in Asterisk 13.27.0 and 16.4.0 that removed
lock files from the Asterisk voicemail directory on startup.
Some users that store their voicemails on network storage devices
experienced slow startup times due to the relative expense of
traversing the voicemail directory structure looking for orphaned
lock files. This feature has now been removed.
Users who require the lock files to be removed at startup should
modify their startup scripts to do so before starting the asterisk
process.
chan_pjsip
------------------
* A new dialplan function, PJSIP_MOH_PASSTRHOUGH, has been added
to chan_pjsip. This allows the behaviour of the moh_passthrough
endpoint option to be read or changed in the dialplan. This
allows control on a per-call basis.
chan_rtp
------------------
* The UnicastRTP channel driver provided by chan_rtp now accepts
"<hostname>:<port>" as an alternative to "<ip_address>:<port>"
in the destination. The first AAAA (preferred) or A record
resolved will be used as the destination. The lookup is
synchronous so beware of possible dialplan delays if you specify
a hostname.
func_curl
------------------
* A new parameter, httpheader, has been added to CURLOPT function.
This parameter allows to set custom http headers for subsequent
calls of CURL function. Any setting of headers will replace
the default curl headers (e.g. "Content-type:
application/x-www-form-urlencoded")
* A new option, followlocation, can now be enabled with the
CURLOPT() dialplan function. Setting this will instruct cURL to
follow 3xx redirects, which it does not by default.
func_jitterbuffer
------------------
* The JITTERBUFFER dialplan function now has an option to enable
video synchronization support. When enabled and used with a
compatible channel driver (chan_sip, chan_pjsip) the video is
buffered according to the size of the audio jitterbuffer and is
synchronized to the audio.
func_volume
------------------
* Accept decimal number as argument.
http
------------------
* You can now disable the /httpstatus page served by Asterisk's
built-in HTTP server by setting 'enable_status' to 'no' in
http.conf.
minmemfree
------------------
* The 'minmemfree' configuration option now counts memory allocated
to the filesystem cache as "free" because it is memory that is
available to the process.
res_ari_channels
------------------
* When creating a channel in ARI using the create call
you can now specify dialplan variables to be set as part of the
same operation.
res_musiconhold
------------------
* This fix allows a realtime moh class to be unregistered from
the command line. This is useful when the contents of a directory
referenced by a realtime moh class have changed. The realtime
moh class is then reloaded on the next request and uses the new
directory contents.
* A new mode - playlist - has been added to res_musiconhold. This
mode allows the user to specify the files (or URLs) to play
explicitly by putting them directly in musiconhold.conf.
res_pjsip
------------------
* Added a new PJSIP system setting called disable_rport.
Default is no to keep support working as before.
If it is false (default) it adds the 'rport' parameter in the
outgoing request message. If it is true it does not add the
'rport' parameter in the outgoing request message.
This is a system option, but working as a global option.
res_pjsip_endpoint_identifier_ip
------------------
* In 'type = identify' sections, the addresses specified for the
'match' clause can now include a port number. For IP addresses,
the port is provided by including a colon after the address,
followed by the desired port number. If supplied, the netmask
should follow the port number. To specify a port for IPv6
addresses, the address itself must be enclosed in brackets to
be parsed correctly.
res_pjsip_logger
------------------
* The PJSIP packet logger now has the following CLI commands:
pjsip set logger pcap <filename>
When used this will create a pcap file containing the incoming
and outgoing SIP packets, in unencrypted form.
pjsip set logger console <on / off>
This allows you to toggle logging to console on and off.
pjsip set logger host <IP/subnet mask> add
This allows you to add an additional IP address or subnet mask
to logging, allowing you to log multiple instead of just a single
IP address or all traffic.
The normal "pjsip set logger host" CLI command has also been
expanded to allow subnet masks as well.
res_pjsip_session
------------------
* When placing an outgoing call to a PJSIP endpoint the intent
of any requested formats will now be respected. If only an audio
format is requested (such as ulaw) but the underlying endpoint
does not support the format the resulting SDP will still only
contain an audio stream, and not any additional streams such as
video.
* Two new options, incoming_call_offer_pref and outgoing_call_offer_pref
have been added to res_pjsip endpoints that specify the preferred
order of codecs to use between those received/sent in an SDP
offer and those set in the endpoint configuration.
res_rtp_asterisk
------------------
* This change include a new cli command 'rtp show settings'
The command display by general settings of rtp configuration.
For this point is added the fields: rtpstart, rtpend, dtmftimeout,
rtpchecksum, strictrtp, learning_min_sequential and icesupport.
* The blacklist mechanism in res_rtp_asterisk for ICE and STUN
was converted to an ACL mechanism.
As such six new options are now available:
ice_deny
ice_permit
ice_acl
stun_deny
stun_permit
stun_acl
These options have their obvious meanings as used elsewhere.
Backwards compatibility was maintained by adding {stun,ice}_blacklist
as aliases for {stun,ice}_deny.
res_sorcery_memory_cache
------------------
* The SorceryMemoryCacheExpireObject AMI action and CLI
command allow expiring of a specific object within the sorcery
memory cache. This is done by removing the object from the cache
with the expectation that the cache will then re-populate the
object when it is next needed.
For full backend caching this does not occur. The cache won't
repopulate until an entire refresh is done resulting in the
possibility that objects are missing until that time.
The AMI action and CLI command will now not allow expiring of
an object if the cache is configured as a full backend cache.
Instead you must use either the SorceryMemoryCacheExpire or
SorceryMemoryCachePopulate AMI actions or their associated CLI
commands.
taskprocessor.c
------------------
* Added two new CLI commands to reset stats for taskprocessors.
You can reset stats for a single, specific taskprocessor ('core
reset taskprocessor <taskprocessor>'), or you can reset all
taskprocessors ('core reset taskprocessors'). These commands
will reset the counter for the number of tasks processed as well
as the max queue size.
* Added "like" support for 'core show taskprocessors'. Now you
can specify a specific set of taskprocessors (or just one) by
adding the keyword "like" to the above command, followed by your
search criteria.
this is not used, rather it seems to use an internal copy of lua 5.3
instead. while it would be nice if it used our copy instead, for now
removing the luajit requirement at least improves portability.
0.92
- Released at 2021-04-15T23:53:55+0900
- Thanks to our contributors: chee
- Fix a message mentioning fish config. GitHub PR #712
- Fetch cperl releases from https://github.com/perl11/cperl/releases instead
- Let `clone-modules` command accept `--notest` and skip running module tests
0.91
- Released at 2021-01-31T17:10:27+0900
- Fix META info included in 0.90. No other feature changes.
0.90
- Released at 2021-01-29T09:43:17+0900
- Thanks to our contributors: Mose Schmiedel, gucchisk
- The output of 'available' command is split into sections of different type of distributions. Github issue #646.
- Let the output of `perlbrew -h` be the short usage. Github issue #647
- Unbreak env script for fish users. GitHub PR #698 and #708
- Prefer https URLs of www.cpan.org
0.89
- Released at 2020-10-19T09:26:19+0900
- Thanks to our contributors: Håkon Hægland, Nicolas R, Peter Tripp
- Make the bashrc compatible with 'bash -u'. Github PR #694
- Prevent build directory from being overwritten. Github PR #683
Upstream changes:
0.333 2021-03-14 15:45:02-04:00 America/New_York
- dial back required perl to v5.20.0
0.332 2021-03-12 21:25:38-05:00 America/New_York
- bump up minimum required perl to the one from 5yr ago
- make some tests laxer to prep for changes in Getopt::Long::Descriptive
- the App::Cmd object is constructed and blessed in new before _command
is called on it (thanks, Lucas Theisen)
Update LICENSE
Upstream changes:
0.52 Tue Dec 15 11:27:33 CET 2020
* set bugtracker metadata explicitly
0.51 Mon Dec 14 19:56:11 CET 2020
* fix licensing inconsistency (spotted by kentnl)
# dplyr 1.0.6
* `add_count()` is now generic (#5837).
* `if_any()` and `if_all()` abort when a predicate is mistakingly used
as `.cols=` (#5732).
* Multiple calls to `if_any()` and/or `if_all()` in the same
expression are now properly disambiguated (#5782).
* `filter()` now inlines `if_any()` and `if_all()` expressions. This
greatly improves performance with grouped data frames.
* Fixed behaviour of `...` in top-level `across()` calls (#5813, #5832).
* `across()` now inlines lambda-formulas. This is slightly more performant and
will allow more optimisations in the future.
* Fixed issue in `bind_rows()` causing lists to be incorrectly transformed as
data frames (#5417, #5749).
* `select()` no longer creates duplicate variables when renaming a variable
to the same name as a grouping variable (#5841).
* `dplyr_col_select()` keeps attributes for bare data frames (#5294, #5831).
* Fixed quosure handling in `dplyr::group_by()` that caused issues with extra
arguments (tidyverse/lubridate#959).
* Removed the `name` argument from the `compute()` generic (@ianmcook, #5783).
* row-wise data frames of 0 rows and list columns are supported again (#5804).
# dplyr 1.0.5
* Fixed edge case of `slice_sample()` when `weight_by=` is used and there
0 rows (#5729).
* `across()` can again use columns in functions defined inline (#5734).
* Using testthat 3rd edition.
* Fixed bugs introduced in `across()` in previous version (#5765).
* `group_by()` keeps attributes unrelated to the grouping (#5760).
* The `.cols=` argument of `if_any()` and `if_all()` defaults to `everything()`.
# dplyr 1.0.4
* Improved performance for `across()`. This makes `summarise(across())` and
`mutate(across())` perform as well as the superseded colwise equivalents (#5697).
* New functions `if_any()` and `if_all()` (#4770, #5713).
* `summarise()` silently ignores NULL results (#5708).
* Fixed a performance regression in `mutate()` when warnings occur once per
group (#5675). We no longer instrument warnings with debugging information
when `mutate()` is called within `suppressWarnings()`.
# dplyr 1.0.3
* `summarise()` no longer informs when the result is ungrouped (#5633).
* `group_by(.drop = FALSE)` preserves ordered factors (@brianrice2, #5545).
* `count()` and `tally()` are now generic.
* Removed default fallbacks to lazyeval methods; this will yield
better error messages when you call a dplyr function with the wrong
input, and is part of our long term plan to remove the deprecated
lazyeval interface.
* `inner_join()` gains a `keep` parameter for consistency with the other
mutating joins (@patrickbarks, #5581).
* Improved performance with many columns, with a dynamic data mask using active
bindings and lazy chops (#5017).
* `mutate()` and friends preserves row names in data frames once more (#5418).
* `group_by()` uses the ungrouped data for the implicit mutate step (#5598).
You might have to define an `ungroup()` method for custom classes.
For example, see https://github.com/hadley/cubelyr/pull/3.
* `relocate()` can rename columns it relocates (#5569).
* `distinct()` and `group_by()` have better error messages when the
mutate step fails (#5060).
* Clarify that `between()` is not vectorised (#5493).
* Fixed `across()` issue where data frame columns would could not be referred to
with `all_of()` in the nested case (`mutate()` within `mutate()`) (#5498).
* `across()` handles data frames with 0 columns (#5523).
* `mutate()` always keeps grouping variables, unconditional to `.keep=` (#5582).
* dplyr now depends on R 3.3.0
# dplyr 1.0.2
* Fixed `across()` issue where data frame columns would mask objects referred to
from `all_of()` (#5460).
* `bind_cols()` gains a `.name_repair` argument, passed to
`vctrs::vec_cbind()` (#5451)
* `summarise(.groups = "rowwise")` makes a rowwise data frame even if
the input data is not grouped (#5422).
# dplyr 1.0.1
* New function `cur_data_all()` similar to `cur_data()` but includes
the grouping variables (#5342).
* `count()` and `tally()` no longer automatically weights by column `n` if
present (#5298). dplyr 1.0.0 introduced this behaviour because of Hadley's
faulty memory. Historically `tally()` automatically weighted and `count()`
did not, but this behaviour was accidentally changed in 0.8.2 (#4408) so that
neither automatically weighted by `n`. Since 0.8.2 is almost a year old,
and the automatically weighting behaviour was a little confusing anyway,
we've removed it from both `count()` and `tally()`.
Use of `wt = n()` is now deprecated; now just omit the `wt` argument.
* `coalesce()` now supports data frames correctly (#5326).
* `cummean()` no longer has off-by-one indexing problem (@cropgen, #5287).
* The call stack is preserved on error. This makes it possible to `recover()`
into problematic code called from dplyr verbs (#5308).
# cpp11 0.2.7
* Fix a transient memory leak for functions that return values from
`cpp11::unwind_protect()` and `cpp11::safe` (#154)
# cpp11 0.2.6
* `cpp_register()` now uses symbols exclusively in the `.Call()`
interface. This allows it to be more robust in interactive use with
the pkgload package.
# cpp11 0.2.5
* `cpp_source()` gains a `cxx_std` argument to control which C++
standard is used. This allows you to use code from `C++14` and
later standards with cpp_source(). (#100)
* The cpp11 knitr engine now allows you to set the `cxx_std` chunk
option to control the C++ standard used.
* `cpp_source()` now has much more informative error messages when
compilation fails (#125, #139)
* `cpp_source()` now uses a unique name for the DLL, so works when run
multiple times on the same source file on Windows (#143)
* `writable::list_of<T>` now supports modification of vectors as
intended (#131).
* Errors when running
`tools::package_native_routine_registration_skeleton()` are no
longer swallowed (#134)
* `cpp_source()` can now accept a source file called `cpp11.cpp`
(#133)
* `named_arg` now explicitly protect their values, avoiding protection
issues when using large
inputs. [tidyverse/readr#1145](https://github.com/tidyverse/readr/issues/1145)
* `r_string(std::string)` now uses `Rf_mkCharLenCE()` instead of
`Rf_mkChar()`, which avoids the performance cost of checking the
string length.
* Writable vector classes now properly set their lengths as intended
when being copied to a read only class (#128).
Also, pull over the patched install.sh script from the main package,
for quite a lot faster installation, also for the benefit of the
upstream-delivered binaries. (Fix submitted upstream.)
Use the nb1 version suffix on the NetBSD binaries (one-time job for
1.52.1, to be removed on next go-around), but they still extract to
the non-nb1 work directory, so some adjustment needed for that.
Bump PKGREVISION.
-Adopt maintainership
-ripgrep 13 is a new major version release of ripgrep that primarily contains
bug fixes, some performance improvements and a few minor breaking changes.
There is also a fix for a security vulnerability on Windows
(CVE-2021-3013).
Some highlights:
A new short flag, -., has been added. It is an alias for the --hidden flag,
which instructs ripgrep to search hidden files and directories.
ripgrep is now using a new
vectorized implementation of memmem,
which accelerates many common searches. If you notice any performance
regressions (or major improvements), I'd love to hear about them through an
issue report!
Also, for Windows users targeting MSVC, Cargo will now build fully static
executables of ripgrep. The release binaries for ripgrep 13 have been compiled
using this configuration.
BREAKING CHANGES:
Binary detection output has changed slightly.
In this release, a small tweak has been made to the output format when a binary
file is detected. Previously, it looked like this:
Binary file FOO matches (found "\0" byte around offset XXX)
Now it looks like this:
FOO: binary file matches (found "\0" byte around offset XXX)
vimgrep output in multi-line now only prints the first line for each match.
See issue 1866 for more
discussion on this. Previously, every line in a match was duplicated, even
when it spanned multiple lines. There are no changes to vimgrep output when
multi-line mode is disabled.
In multi-line mode, --count is now equivalent to --count-matches.
This appears to match how pcre2grep implements --count. Previously, ripgrep
would produce outright incorrect counts. Another alternative would be to simply
count the number of lines---even if it's more than the number of matches---but
that seems highly unintuitive.
FULL LIST OF FIXES AND IMPROVEMENTS:
Security fixes:
CVE-2021-3013:
Fixes a security hole on Windows where running ripgrep with either the
-z/--search-zip or --pre flags can result in running arbitrary
executables from the current directory.
VULN #1773:
This is the public facing issue tracking CVE-2021-3013. ripgrep's README
now contains a section describing how to report a vulnerability.
Performance improvements:
PERF #1657:
Check if a file should be ignored first before issuing stat calls.
PERF memchr#82:
ripgrep now uses a new vectorized implementation of memmem.
Feature enhancements:
Added or improved file type filtering for ASP, Bazel, dvc, FlatBuffers,
Futhark, minified files, Mint, pofiles (from GNU gettext) Racket, Red, Ruby,
VCL, Yang.
FEATURE #1404:
ripgrep now prints a warning if nothing is searched.
FEATURE #1613:
Cargo will now produce static executables on Windows when using MSVC.
FEATURE #1680:
Add -. as a short flag alias for --hidden.
FEATURE #1842:
Add --field-{context,match}-separator for customizing field delimiters.
FEATURE #1856:
The README now links to a
Spanish translation.
Bug fixes:
BUG #1277:
Document cygwin path translation behavior in the FAQ.
BUG #1739:
Fix bug where replacements were buggy if the regex matched a line terminator.
BUG #1311:
Fix multi-line bug where a search & replace for \n didn't work as expected.
BUG #1401:
Fix buggy interaction between PCRE2 look-around and -o/--only-matching.
BUG #1412:
Fix multi-line bug with searches using look-around past matching lines.
BUG #1577:
Fish shell completions will continue to be auto-generated.
BUG #1642:
Fixes a bug where using -m and -A printed more matches than the limit.
BUG #1703:
Clarify the function of -u/--unrestricted.
BUG #1708:
Clarify how -S/--smart-case works.
BUG #1730:
Clarify that CLI invocation must always be valid, regardless of config file.
BUG #1741:
Fix stdin detection when using PowerShell in UNIX environments.
BUG #1756:
Fix bug where foo/** would match foo, but it shouldn't.
BUG #1765:
Fix panic when --crlf is used in some cases.
BUG #1638:
Correctly sniff UTF-8 and do transcoding, like we do for UTF-16.
BUG #1816:
Add documentation for glob alternate syntax, e.g., {a,b,..}.
BUG #1847:
Clarify how the --hidden flag works.
BUG #1866:
Fix bug when computing column numbers in --vimgrep mode.
BUG #1868:
Fix bug where --passthru and -A/-B/-C did not override each other.
BUG #1869:
Clarify docs for --files-with-matches and --files-without-match.
BUG #1878:
Fix bug where \A could produce unanchored matches in multiline search.
BUG 94e4b8e3:
Fix column numbers with --vimgrep is used with -U/--multiline.
Brief description of application changes:
integrate Official HN APIs:
-#36: use the official APIs to display the Story View - Front Page similarly to
HN front-page.
-#37: remove StoryPooling feature and replace it with LazyLoadingComments
feature which lazily loads comments on demand.
-#39: allow all configuration options to be optional. Previously, user needs to
create the config file based the example config. Now, if an option is not
specified, a default value will be used instead (for more information/
documentation, refer to the example config file).
Brief description of codebase changes:
-Refactor the repo into 3 separate crates: hackernews_tui for main binary crate,
config_parser (lib) and config_parser_derive (proc-macro) for the libraries to
parse configuration options from the config file.
-#38: reduce the .clone() usage, move the application's hn_client::HNClient to
global state.
-small refactoring and documentation improvements
Restore part of a patch lost in the last libxml2 update which is still
relevant. Reapplying it fixes segfaults caused by itstool, e.g., when
building editors/pluma, which is PR pkg/56229 from Andrius V.
Quoting from wiz@'s original commit from Jan 9, 2019, which covers
everything else:
"In some cases, invalid UTF-8 strings were returned which caused
Python interpreter crashes. See
itstool/itstool#22
Use a variant of the patch that was used in Fedora.
Bump PKGREVISION."
Fedora is still carrying this patch as-is.
(Also, evidently distinfo was not regenerated properly after the last
update, so there's a diff applied to it unrelated to this change set.)
Upstream changes:
1.27 2021-05-07 04:54:31 -0600
- Production release identical to 1.26_01
1.26_01 2021-04-27 05:15:20 -0600
- Fix bug in test where test files sometimes didn't have
execute permissions (gh#31)
- Add Env as an explicit test prereq (gh#13, gh#32)
1.25_01 2021-04-25 07:35:41 -0600
- Tests should now work when Perl isn't in the PATH (gh#29, gh#30)
Upstream changes:
changes:
new, richer, more readable bottom pane for the selection tool
add a "replace with" option to the eraser tool
use an adequate layout on LXDE or LXQt
force the release notes down users' throat
rewrite the help manual to better force it down users' throat
add color application mode support to the "shape" tool
persist the text background style
brush supporting pressure-sensitive input
hairy brush supporting pressure-sensitive input
airbrush supporting pressure-sensitive input
calligraphic nip supporting pressure-sensitive input
fix unexpected "jumps" when unselecting a selection that was defined by an undo
improve the fullscreen mode, with a way to toggle the tools list
add an "increase constrast" filter
deleting the selection can now leave something else than transparency #232
option to exclude the color left under the selection from the selection itself #232
rewrite the UI for changing the color application mode
remove the cool but deprecated GNOME Shell app menu
update several translations
== 4.9: May 3, 2021
- EV_TRACE also prints file/notify descriptor limit
- Don't raise rlim_cur on MacOS
- Set 2^16 watches if inotify limits cannot be read
- Raise an error and suggest '-n' if terminal attributes cannot be read