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

openjdk17 is having trouble with SSL #370

Open
vkz opened this issue Nov 23, 2023 · 0 comments
Open

openjdk17 is having trouble with SSL #370

vkz opened this issue Nov 23, 2023 · 0 comments

Comments

@vkz
Copy link

vkz commented Nov 23, 2023

Affected images:

  • base-64-lts
  • base-64-trunk

Likely culprit

openjdk17 but opnejdk11 appears to work just fine

Gist of it:

when Java attempts to transfer artifacts from https://repo1.maven.org/maven2/ getting this error
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac

Full Stacktrace
Error building classpath. Failed to read artifact descriptor for org.clojure:clojure:jar:1.11.1
org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.clojure:clojure:jar:1.11.1
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:255)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:171)
        at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:263)
        at clojure.tools.deps.alpha.extensions.maven$read_descriptor.invokeStatic(maven.clj:115)
        at clojure.tools.deps.alpha.extensions.maven$fn__1137.invokeStatic(maven.clj:143)
        at clojure.tools.deps.alpha.extensions.maven$fn__1137.invoke(maven.clj:143)
        at clojure.lang.MultiFn.invoke(MultiFn.java:244)
        at clojure.tools.deps.alpha$expand_deps$children_task__773$fn__775$fn__776.invoke(alpha.clj:405)
        at clojure.tools.deps.alpha.util.concurrent$submit_task$task__481.invoke(concurrent.clj:35)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact org.clojure:clojure:pom:1.11.1 from/to central (https://repo1.maven.org/maven2/): Received fatal alert: bad_record_mac
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:431)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:240)
        ... 13 more
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact org.clojure:clojure:pom:1.11.1 from/to central (https://repo1.maven.org/maven2/): Received fatal alert: bad_record_mac
        at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:52)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:401)
        at org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:669)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:290)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
        ... 16 more
Caused by: javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:358)
        at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
        at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:204)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
        at org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:359)
        at org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:294)
        at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:72)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:496)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:396)
        ... 21 more

Detailed steps

pkgin up
pkgin upgrade
pkgin in clojure
# ^^ depends on openjdk17
# try it
clojure
# or start a repl
clj

and you get the above stacktrace.

What happens? Clojure attempts to build classpath and pull packages it needs from Maven Central. Looks to me like Java blows up during SSL handshake or exchange or establishing a protocol.

Just to be sure I confirmed that Maven responds with TLSv1.2:

curl -vvvv -k https://repo1.maven.org/maven2/  |  head

Tried forcing Java's hand with esoteric nonsense like:

JAVA_OPTS="-Dhttps.protocols=TLSv1.2 -Djavax.net.debug=all -Djdk.tls.client.protocols=TLSv1.2" && clojure

which had no effect whatsoever, so I'm thinking problem is fundamental to openjdk17 build.

openjdk11 works or how to fix clojure package

$ which clojure
/opt/local/bin/clojure

is just a bash script that hardcodes on L181

JAVA_CMD=${JAVA_CMD:-$(type -p /opt/local/java/openjdk17/bin/java)}

which we can change by hand

JAVA_CMD=${JAVA_CMD:-$(type -p /opt/local/java/openjdk11/bin/java)}

now pkgin in openjdk11 and clojure works.

What are the chances of this being fixed?

I'm new here and don't know how active people are fixing and contributing. What are the chances that openjdk17 gets fixed and subsequent versions become available in packages?

Thank you

jperkin pushed a commit that referenced this issue Feb 23, 2024
✨ Read the highlights of this release: https://git-cliff.org/blog/2.0.0
⛰️ Features
    (args) Add --no-exec flag for skipping command execution (#458) - (7ae77ff)
    (args) Add -x short argument for --context - (327512a)
    (args) Support initialization with built-in templates (#370) - (4bee628)
    (args) Allow returning the bumped version (#362) - (5e01e4c)
    (args) Set CHANGELOG.md as default missing value for output option (#354) - (04d149e)
    (changelog) Set the timestamp of the previous release - (d408e63)
    (changelog) Improve skipping via .cliffignore and --skip-commit (#413) - (faa00c6)
    (changelog) Support tag prefixes with --bump (#347) - (2399e57)
    (changelog) [breaking] Set tag to 0.0.1 via --bump if no tags exist - (3291eb9)
    (changelog) [breaking] Support templating in the footer (#369) - (0945fa8)
    (commit) Add merge_commit flag to the context (#389) - (dd27a9a)
    (github) [breaking] Support integration with GitHub repos (#363) - (5238326)
    (parser) Support using SHA1 of the commit (#385) - (1039f85)
    (parser) Support using regex scope values (#372) - (19e65c2)
    (template) Support using PR labels in the GitHub template (#467) - (30d15bb)
    (template) Support using PR title in the GitHub template (#418) - (6f32f33)
    (website) Add search bar to the website - (2d30491)

🐛 Bug Fixes
    (cd) Use workaround for linux-arm64-glibc maturin builds - (dc79ed5)
    (cd) Disable PyPI publish for linux-arm64-glibc - (e24af12)
    (cd) Avoid creating artifacts with the same name - (1647fd8)
    (cd) Fix embedding examples for crates.io release - (46b7d88)
    (changelog) Fix previous version links (#364) - (44c93b7)
    (changelog) Set the correct previous tag when a custom tag is given - (6203f77)
    (ci) Update cargo-msrv arguments - (131dd10)
    (cli) Fix broken pipe when stdout is interrupted (#407) - (bdce4b5)
    (commit) Trim the trailing newline from message (#403) - (514ca4b)
    (git) Sort commits in topological order (#415) - (29bf355)
    (links) Skip checking the GitHub commit URLs - (273d6dc)
    (website) Use node version 18 - (46dcce3)
    (website) Use prism-react-renderer v2 with docusaurus - (664ff9b)
    Allow version bump with a single previous release - (d65aec9)

🚜 Refactor
    (changelog) Support --bump for processed releases (#408) - (89e4c72)
    (ci) Use hardcoded workspace members for cargo-msrv command - (ec6035a)
    (ci) Simplify cargo-msrv installation - (f04bf6e)
    (clippy) Apply clippy suggestions - (b23dd3e)
    (clippy) Apply clippy suggestions - (a38c3fa)
    (config) Use postprocessors for checking the typos - (764e858)
    (config) Remove unnecessary newline from configs - (8edec7f)

📚 Documentation
    (configuration) Fix typo (#466) - (34a58e6)
    (fixtures) Add instructions for adding new fixtures - (8290769)
    (readme) Mention RustLab 2023 talk - (668a957)
    (readme) Use the raw link for the animation - (2c524b8)
    (security) Update security policy - (fcaa502)
    (website) Add highlights for 2.0.0 (#504) - (49684d0)
    (website) Improve matching gitmoji tip (#486) - (0731646)
    (website) Add tips and tricks section - (82e93c2)
    (website) Add tip about link parsers - (4bd47a6)
    (website) Add git-cliff animation to the website (#404) - (0561124)
    (website) Split the configuration section - (67486cc)
    (website) Add installation instructions for Homebrew (#357) - (b2f8091)

🎨 Styling
    (website) Add GitHub logo to the header - (1da7cac)
    (website) [breaking] Use dark theme as default - (dcc5116)

🧪 Testing
    (changelog) Use the correct version for missing tags - (0ca4cdb)
    (fixture) Update the date for example test fixture - (991a035)
    (fixture) Add test fixture for bumping version - (c94cb6a)
    (fixtures) Update the bumped value output to add prefix - (f635bae)

⚙️ Miscellaneous Tasks
    (changelog) Disable the default behavior of next-version (#343) - (4eef684)
    (changelog) Use 0.1.0 as default next release if no tag is found - (3123fd2)
    (command) Explicitly set the directory of command to current dir - (722efd6)
    (config) Skip dependabot commits for dev updates - (7f89160)
    (config) Revamp the configuration files - (9500bf8)
    (config) Use postprocessors for checking the typos - (5212cc9)
    (dependabot) Group the dependency updates for creating less PRs - (c6a92bf)
    (docker) Update versions in Dockerfile - (51198a5)
    (embed) Do not allow missing docs - (7754cab)
    (example) Use full links in GitHub templates (#503) - (a521891)
    (example) Remove limited commits example - (8e1e0d7)
    (github) Update templates about GitHub integration - (3f5107a)
    (mergify) Don't update PRs for the main branch - (96a220c)
    (project) Add readme to core package - (9e6bad2)
    (project) Bump MSRV to 1.74.1 - (bd5e4d2)
    (project) Update copyright years - (edc6bc0)
    (website) Fix URLs in navigation bar (#438) - (70cab99)
    (website) Rename the header for GitHub integration - (3fd9476)
    (website) Fix broken anchors - (34593dd)
    (website) Bump docusaurus to 3.1.0 - (af4482b)
    (website) Update the titles for distro installations - (ff2881b)
    (website) Add Mastodon link to the website - (2e761c9)
jperkin pushed a commit that referenced this issue Mar 4, 2024
v0.17.0 is a new release with a lot of features, bug fixes, and specifically a
patch fixing a very annoying Spotify API bug.

This release also marks a big milestone for the project: 1k ⭐ 🥳🥳🥳 .
Thanks everyone for contributing, using, and starring the project!

What's Changed
    Add custom text input widget with cursor, to use in search page by @micleo2 in #329
    chore: update github actions by @LucasFA in #339
    reset buffered playback upon handling GetCurrentPlayback request by @aome510 in #341
    docs: fixes keymap command name by @massivebird in #342
    chore(docs): Remove unneeded explicit link by @LucasFA in #344
    Wait for the copy command to exit. by @Fuyukai in #346
    build: use cross for cross-compilation, locally and in CD by @LucasFA in #343
    feat: Souvlaki 0.7.0 and Linux Dbus volume control support by @LucasFA in #348
    extend capabilities for ShowActionsOn* commands by @aome510 in #352
    handle title padding with hidden borders by @aome510 in #351
    update dependencies, bump lyric_finder to v0.1.5 by @aome510 in #353
    Add miscellaneous UI code changes by @aome510 in #354
    update issue templates by @aome510 in #366
    fix clippy warning by @aome510 in #367
    re-create a new session when restarting the integrated client by @aome510 in #370
    Don't create streaming connections for non-streaming instances by @Schnouki in #371
    Remove winit from compilation on Linux by @LucasFA in #372
    Explicit cargo-binstall support by @LucasFA in #377
    Add popup for creating new playlist by @aome510 in #379
    Make Daemon feature imply streaming feature by @LucasFA in #376
    use liked icon's length to configure the column's width by @aome510 in #380
    Patch spotify API bugs by @aome510 in #386
jperkin pushed a commit that referenced this issue Aug 2, 2024
Release highlights

    The Apache and MIT license files are now distributed with all git-branchless sub-crates as required.
    Rust v1.74 or later is required to build.
    There are breaking changes to git hide and git sync; see below.
    Broken support for native Windows/Powershell due to bad hook invocations was probably fixed.
        If this was affecting you, please comment on #370 to confirm or refute.
    New merges() and branches() revset functions were introduced.

Changelog

See also the release notes for scm-record v0.3.0.
Added

    (#1129) Added a --dry-run option to git submit to report what would be submitted without actually doing so.
    (#1130) Added merges() revset function.
    (#1130) The branches() revset function now accepts an optional text pattern argument to limit which branches are matched.
    (#1150) The git record command now accepts -s/--stash to return to the previous commit immediately after committing.
    (#1167) The commit message for a new commit can now be written/edited during git record --interactive.
    (#1169) git record now accepts multiple --message arguments.
    (#1184) An initial Github forge was implemented as git submit --forge github, but it's too buggy for general use.
    (#1241) git smartlog now accepts --exact to skip rendering HEAD and the main branch.
    (#1244) git submit now accepts multiple arguments/revsets.

Changed

    BREAKING (#1128) Arguments/revsets passed to git sync are now resolved to their respective stacks.
        This allows git sync my-branch to work as expected, instead of needing to use git sync 'stack(my-branch)'. The behavior of git sync when called without arguments is not affected by this change. If you rely on the previous behavior, please use git move -x <commit(s)/revset> -d 'main()' instead.
    BREAKING (#1152) Previously, git hide would not delete branches pointing to the hidden commits unless -D/--delete-branches was passed. Now, deleting branches is the default behavior. Pass --no-delete-branches to restore the old behavior.
    BREAKING (#1292): The minimum supported Rust version (MSRV) is now 1.74.
    (#1204) The default instructions for git reword are now wrapped to 72 characters.
    (#1230) The icon for omitted commits in the smartlog was changed from ⊘ to ◌.

Fixed

    (#1071) The Apache and MIT licenses are now distributed with each constituent crate, not just the top-level git-branchless crate.
    (#1072) The current branch is no longer detached during git amend when the current commit has descendants.
    (#1073) Merge commits can now be amended with git amend.
    (#1095) The event log is now shared between all worktrees. Before, commits that were made in one worktree wouldn't be visible in other worktrees, etc.
    (#1095) git submit now runs in worktree that you invoked it in.
    (#1095) git submit --forge phabricator no longer records spurious commits when arc diffing.
    (#1127) Improved support for files with spaces in their name.
    (#1267) The correct "path" variable is now used on Windows, which fixes some cases of git-branchless failing on native Windows.
jperkin pushed a commit that referenced this issue Aug 24, 2024
## v2.1.4

**Implemented enhancements:**

- Config reload command for live profile reload [#811]
- Button to save/apply preferences [#801]
- Favorites/Bookmarks ??? [#706]
- Plugin Submission + Generic Plugin Utility Functions & KeyBinding Feature:   Mouseless / Mousefree / Keyboard URL opening or yanking  [#681]
- Add detachable tabs feature to preferences [#698]

**Closed issues:**

- Suddenly lagging on gnome4  [#899]
- Keybindings for cursor/caret movement  [#896]
- Group tab shortcut does not work for a window with 1 parent terminal with N internal terminals  [#893]
- Donations? [#891]
- [Feature request\] Possibility to enlarge edge bar of a tab [\#885]
- Neovim incompatible keybindings [#881]
- preferences -> layout -\> add/save does nothing [\#877]
- drag and drop file from file-manager to terminator-release 2.1.3 causes a crash [#871]
- Feature Request - Add the possibility to add padding for the output [#867]
- file:/// links not clickable if the root dir has a underscore [#865]
- terminator bug: can't get file path [#861]
- Window splits are transparent, showing screen behind [#854]
- terminator.py get_focussed\_terminal always returns none [\#852]
- [Feature Request\] Add SelectAll function [\#851]
- Issues with Terminal reloading [#850]
- Add custom keybinding to set ctrl+backspace to delete a full word instead of alt-backspace or ctrl+w [#838]
- Crash after unzooming a single terminal inside a tab [#835]
- Profile per window [#831]
- Option for prompt for closing against accidental closure [#830]
- FCITX input method does not work in Version 2.1.2  anymore  [#828]
- Slow Resize [#825]
- Adjust size / resize cursor area is 1px [#820]
- Add preferences about default window size [#815]
- Plugins don't receive keboard signals on newly opened windows [#808]
- keyboard-shortcut-support-for-plugins-code-decoupling [#805]
- Ability to undo or restore changes to the preferences [#802]
- Explain what "Smart copy" means [#800]
- Include global menu/preferences button in the window title bar [#799]
- Can't open context menu [#796]
- custom plugins are not found when using `--display` [#795]
- doc/help missing --display option [#794]
- In krusader terminator option --working-directory=DIR doesn't work [#793]
- Pasting on tab title bar closes tab. [#789]
- When in broadcast mode single character
- System wide defaults [#782]
- can't run on mac os ventura [#780]
- Implement OSC52 functionality to use clipboard [#779]
- Logger plugin crashes with "TypeError: 'NoneType' object is not subscriptable" [#776]
- Split panes based on size of current pane [#772]
- Broadcasting terminals duplicates keys in other terminals
- Terminator layouts don't respect any more the number of columns [#766]
- Different font for tabs
- Re-size the width of Terminator, the Shell Prompt will repeatedly increase in the terminal windows. [#762]
- No focus in right click menu [#761]
- sudden problem with line spacing
- After chaning to python3.11 getting a import error [#752]
- clipboard - putty style paste - copy using external app - cant paste into terminator [#749]
- Context Menu not showing in v2.1.3 [#746]
- Long delay before able to enter password [#745]
- terminal.py: AttributeError: 'bytes' object has no attribute 'encode'. Did you mean: 'decode'? [#743]
- drag and drop of path stopped working in terminator version 2.1.3 [#742]
- [Feature\] Have the ability to set custom geometry permanently [\#737]
- traceback when drag and drop [#727]
- Unset keybinding toggle_scrollbar prevents right-click menu from opening [\#724]
- Font size change unexpectedly when maximizing a splitted windows. [#721]
-  When broadcast terminator duplicates the keys in others terminals
- 2.1.3 release for Ubuntu 22.04 LTS [#718]
- Layouts menu not working [#717]
- "Don't ask, don't tell" focus hack causes gnome-shell to freeze for seconds / Xwayland to crash [#714]
- How to enable fast encoding change? [#712]
- Release file [#705]
- Failed to execute default Terminal Emulator on Kali Linux. [#700]
- Disable detachable tabs flag [#697]
- Focus loss when renaming a tab [#696]
- Slowdowns, hangs and crashes when used with ibus [#695]
- Pasting Primary Clipboard Pastes Mouse Clipboard [#636]
- Feature request: Save and restore terminal state [#563]

**Merged pull requests:**

- Install manpages to share/man on FreeBSD [#898]
- Properly parse file:/// URIs [#895]
- fix traceback in layout_done [\#887]
- fix syntax warnings [#886]
- Ask before close gui [#884]
- window.py: Fix window group toggle keybind [#883]
- [bug 760\] working directory feature is broken [\#882]
- add missing @with_proxy, fixes \#850 [\#875]
- Updates for file po/terminator.pot in ru [#863]
- [bug 852\] - 852-terminator\_py\_get\_focussed\_terminal\_always\_returns\_none [\#856]
- 846 mouseless keyboard url open fails to extract text and clear search between commands [#855]
- [bug 835\] 835-crash-after-unzooming-a-single-terminal-inside-a-tab \#835 [\#849]
- [bug 843\] 843-Plugin-SaveLastSessionLayout-not-saving-layout-when-use… [\#844]
- 706 favorites bookmarks plugin [#841]
- Ask before closing, even if there is only one terminal [#834]
- Fix: Add CLI command to reload configuration [#824]
-  [bug 802\] - Ability to undo or restore changes to the preferences \#802 [\#822]
- chore: bump ations/checkout
- Fix Insert Term Name Plugin error [#819]
- 681 Plugin submission mouseless keyboard url open decoupled code [#810]
- [bug 808\] Plugins-dont-receive-keboard-signals-on-newly-opened-windows [\#809]
- Document syntax error [#807]
- 805 keyboard shortcut support for plugins code decoupling [#806]
- Updates for file po/terminator.pot in zh_CN on branch master [\#798]
- Add command line option --toggle-visibility [#797]
- Revert "modify terminator separater size setting in gui to start from 1" [#778]
- Alter get_text\_range call based on VTE version [\#777]
- Updates for po/terminator.pot in hr [#774]
- Enable sixel support in VTE if it's available. [#770]
- add new tab after current tab option [#767]
- remove deprecated pytest-runner [#756]
- Rewrite terminator_config.5 man page in AsciiDoc format [\#747]
- fix: Minor fixes in terminatorlib/configjson.py [#741]
- fix: typo in french translation [#738]
- Fix for issue #676: title field not seem to be working with JSON profile [\#736]
- Remove more unused settings and update the docs accordingly [#735]
- Remove settings 'hide_tabbar' and 'disable\_real\_transparency' [\#734]
- Rewrite terminator.1 man page in AsciiDoc format [#733]
- fix drag and drop [#728]
- Do not remove focus from the last_active\_window [\#726]
- Fix context menu keybinding reading. [#725]
- Fix typo in man page [#722]
- Capitalize the first letter for "Read only" [#720]
- Remove hack to ensure that focus is set. [#716]
- feat: Add CLI command to reload configuration [#690]

## v2.1.3

**Implemented enhancements:**

- Option to set split ratio of terminals [#708]
- Add option to set given terminal to "read only" [#649]
- background image - respect ratio [#644]
- Shortcut for autosplit h/v depending on active terminal size [#613]
- Feature: Insert terminal name to terminal
- Background image drawing modes and alignment [#713]
- Zoom on notebook even if there is only one terminal in the tab + keep tab position and label in notebook rotation [#589]

**Fixed bugs:**

- Resets the tab title on rotation [#624]
- - bug context menu
- Fix missing icons when started with Ctrl-Alt-T [#628]

**Closed issues:**

- Terminator not working with latest version of python-cairo [#711]
- [Bug\]\[Fedora 36 KDE\]\[terminator v2.1.1\] "broadcast group" sends each terminal input/keystroke depending on the group's members count to everyone in the group [\#704]
- reset_clear doesn't show new prompt [\#703]
- `-x`/`--execute` still broken [#702]
- Make unfocused terminal text transparent instead of blacker [#694]
- A translucent separation occurs between terminals [#687]
- [2.1.2\] Foreground processes started in new window close immediately [\#673]
- Is there a official page to maintain a offical/third-part plugin list? [#668]
- What happened to the change terminal titlebar under preferences? [#664]
- [Feature Request\] - In the Context Menu\
- terminator: error: unrecognized arguments [#660]
- Plugin Submission : SaveLastSessionLayout Uses Layout to Auto-Save Last session and CWD on Terminal Window Close [#654]
- Loading layout loads only the last added layout from context menu
- When can we expect a new release? [#650]
- Profiles for different Shells - is it possible? how does it work? [#640]
- Double input to broadcasted group [#623]
- background images only  displaying on default profile [#595]
- The repository 'https://ppa.launchpadcontent.net/mattrose/terminator/ubuntu jammy Release' does not have a Release file. [#594]
- Increase the usage of augmented assignment statements [#555]

**Merged pull requests:**

- Better distinguishing of inactive windows from the active one, by changing the background brightness [#709]
- Ctrl+Click on group button automatically creates groups whenever needed [#691]
- [bug 680\] Open up keybindings page on keypress \#680 [\#686]
- Translate '/po/terminator.pot' in 'pt_BR' [\#684]
- Plugin and Group menu item that inserts the name of the terminal. [#683]
- Add Readonly toggle to popup menu [#679]
- Fix argument handling of the --execute flag [#678]
- Remove all ibus workarounds [#674]
- [bug 613\] -  Shortcut for autosplit h/v depending on active terminal … [\#671]
- [bug 662\] \[Feature Request\] - In the Context Menu\
- [bug 559\] Add menu autocomplete \#559 [\#665]
- [bug 662\] \[Feature Request\] - In the Context Menu\
- [bug 654\] - Plugin Submission : SaveLastSessionLayout Uses Layout to … [\#661]
- Update terminal.py [#659]
- docs: Change number of columns in repology badge [#657]
- Plugin Submission : SaveLastSessionLayout Uses Layout to Auto-Save Last session and CWD [#655]
- Fix typos [#651]
- data: Remove GNOME branding [#647]
- this line has an extra ';' symbol [#632]
- Use the term 'zero padded' instead of 'padded'. [#189]

## v2.1.2

**Implemented enhancements:**

- [Feature request\] move layout/session definitions into separate files with a dedicated extension in a dedicated directory [\#604]
- Bash completion [#495]
- Changing cursor foreground color [#467]
- Wallpaper configuration option from terminal [#466]
- Launch a new command in a vertical or horizontal split. [#446]
- Separators is wider after upgrading to ubuntu 21.04 [#445]
- Broadcast profile changes to existing terminals [#421]
- How to deactivate the middle mouse button paste? [#415]
- Feature request: expose the window and terminal title setting features in context menu [#405]
- Integrate --layout-json command line parameter so that it can be passed to dbus [#401]
- Feature request: move titlebar colors config to profiles, rather than global settings [#379]
- Visual aids [#367]
- Feature Request: detach tab [#302]
- Pls add version on OS X [#283]

**Fixed bugs:**

- Ctrl+Shift+Mouse-Scroll triggers Ctrl+Mouse Scroll [#606]
- None isn't a valid value of keybindings config anymore [#548]
- psutil.AccessDenied: psutil.AccessDenied
- Find functionality does not show matches on same line [#511]
- Ratio and/or position on a config file's layout ignored [#433]
- Black background remains after hide_window [\#425]
- Cannot create working config file with 5 terminals [#409]
- Terminal loses focus versus tab title [#400]
- Terminal title-bars are transparent on first start [#392]

**Closed issues:**

- Hide window in waybar [#633]
- Split window profile incorrect inheritance  [#631]
- [Question\] is there a way to prevent Terminator from dereferencing symbolic links? [\#617]
- Terminator not working on RHEL 9  [#616]
- Is there a right-click menu in sway? [#614]
- Set Terminator tab title via command line [#603]
- Unable to launch KeyError: b'Rss:' [#601]
- Cannot view emoji [#599]
- Clickable filepath:rownumber [#598]
- Feature Request: set initial window size in preferences [#593]
- Update the authorship in README [#586]
- xbindkeys doesn't work in Terminator, but works in other apps [#582]
- Unable to load Keybinder module [#580]
- terminator for MacOS user [#578]
- UTF-8 character breaks terminator config file [#577]
- Terminator need to highlight search string [#575]
- Custom Commands NOT Working in Linux Mint 20.3 [#573]
- Can't add/remove terminal panes from layout editor [#572]
- Language not applied after build [#569]
- Moving Cursor Word By Word using ALT + Arrows [#566]
- Enabling "putty style paste" causes context menu to be unreachable with 2-button mouse [#565]
- Setting stty options [#564]
- Switch focus and splits don't work when terminal is zoomed [#550]
- Will terminator ever consider picking up ligature support? [#543]
- feature request: Implement line spacing as a configuration option [#542]
- Change separator color [#538]
- remotinator split and execute command — cannot determine uuid [#537]
- Split vertical keyboard don't work on debian 11 [#535]
- Vte.Terminal
- Fix Keyboard Input [#533]
- group broadcasting switched on/off for all groups [#532]
- Drop a file from nautilus onto terminator window no longer works
- Crash everytime after encoding is changed to TCVN [#529]
- Change the color of the current tab to highlight it better [#522]
- Feature: Configuration to colorize split screens from default grey colour, Issue: Remove ability to select 0 and 1 handle_size from configuration gui [\#518]
- Error when using "Insert Terminal Number"
- Auto-scroll to the cursor position when typing [#513]
- hide_window mapped with Shift+Control+Alt+$an\_alphabet catches Control+Alt+$an\_alphabet instead [\#509]
- Cursor is blinking on inactive windows [#508]
- custom commands are not persisted [#505]
- Terminator slow to close if xclip was invoked [#503]
- terminator failing to open on ubuntu 21.04 [#502]
- Monospace Bold isn't working [#497]
- No prompt when closing terminator now, despite say vim running in terminal [#496]
- suppor for sixel graphics [#492]
- which is deprecated and should not be used [#488]
- could tmux Key bindings using in terminator? [#474]
- Support OpenType font features [#473]
- Crash on Terminal resize when using fish [#458]
- Incorrect layout sorting in notebook [#453]
- Coloring Tabs / Tabs Appearance [#449]
- Option to disable system notifications [#448]
- Window vanishes [#447]
- Multiple Terminator instances randomly crash on Ubuntu 20.04 [#444]
- Option to open URLs with just a click [#434]
- Doubled input from keyboard when broadcasting in tabs [#432]
- Does this tool support macOS Big Sur? [#430]
- terminator is slow [#426]
- Add more fundamental "editor-ish" feature [#424]
- Allow disabling and resetting keybindings in Preferences [#423]
- Project based layout [#418]
- Unable to Install from Source [#412]
- CTRL+A behaviour abnormal [#384]
- regexp/command hyperlink handler [#381]
- Update PPA to 2.1.0 [#374]
- Create Snap and Flatpak for Terminator [#206]
- Remove gtk-update-icon-cache handling in setup [#102]

**Merged pull requests:**

- update translations [#656]
- Terminal ctrl+mousewheel: do not try to zoom if shift is pressed [#609]
- More fixes to the Color pickers in the Preferences Editor [#592]
- Modification in the /terminatorlib/prefseditor.py file [#590]
- Various README fixes [#588]
- Remove duplicated info in some debug messages [#576]
- Added hotfix for #78 that deletes GTK\_IM\_MODULE environment variable [\#574]
- Fix POTFILES.in + update translation files [#571]
- Add initial flatpak-spawn support [#570]
- Fix: handle_size treated as cell\_width [\#561]
- Transifex translations from Dec 20 2021 [#558]
- Unzoom terminal on interaction [#553]
- Add ability to configure cell width
- Improve and optimize the code for background images [#551]
- Fix: 'None' value for keybindings breaks editor [#549]
- don't traceback while searching through /proc [#546]
- os.environ does not have LANGUAGE in Centos8. [#544]
- Remove Encoding settings
- Allow multiline commands in Custom Commands plugin [#525]
- Add paste_selection keybinding. [\#520]
- Fix terminal separator size setting [#519]
- Automatically focus the Keybindings menu [#516]
- Fix hide_window keybinding unset check [\#515]
- Add 'Disable mouse paste' [#512]
- Bug Fix: hide_window keybinding ignores Shift key [\#510]
- Improve argument parser + implement bash completion [#506]
- add Set Window Title item to context menu [#501]
- BugFix: terminal won't restart if there is no custom command [#500]
- Add a "Copy" button to clone profiles [#499]
- Make tabs detachable + minor bugfix [#494]
- remove gtk-update-icon-cache from setup.py [#493]
- remove vsplit_cmd and hsplit\_cmd from ipc.py, superseded by newer hsp… [\#491]
- Update tr.po [#490]
- add bg_img and bg\_img\_all commands to remotinator [\#487]
- Cursor: make it possible to change foreground color
- fixes for --config-json [#484]
- GUI: set all CheckButtons off to avoid blinking + remove grid empty rows/columns [#482]
- Move titlebar settings to profiles
- Issue 365 [#480]
- Fix typo in `po/de.po` [#476]
- add parameters to remotinator split commands [#472]
- add switch_profile\_all command to remotinator [\#471]
- Set CAN_FOCUS to False for notebook widgets [\#470]
- tell titlebar to start focussed out if it does not have focus [#462]
- Update translation [#460]
- Add new plugin for opening current directory using right mouse button [#459]
- Fixed Issue #425 \
- Incorrect layout sorting in notebook [#454]
- Closing tab on middle mouse button press [#451]
- Bug Fix: 'Clear selection on copy' is always unchecked [#443]
- Fixed issue #433 \
- Fix the background image loading exception handling [#436]
- Added set_tab\_title command to remotinator. [\#435]
- Ukrainianized by 93% [#428]
- Fixed geometry hints [#416]
- Feat+run cmd on match [#399]
- add feat: config to open links with single click [#398]
- Add new vsplit hsplit cmd dbus [#390]
- Added new get_focused\_terminal dbus command which returns uuid of current focused terminal [\#389]

## v2.1.1

**Implemented enhancements:**

- add "switch profile" command to remotinator [#321]

**Fixed bugs:**

- Terminal text isn't shown on lost focus of multiple tabs and hidden scroll bar [#372]

**Closed issues:**

- Terminator display freeze [#411]
- Albert hotkey
- ImportError: bad magic number in 'six': b'x03\xf3\r\n' [\#404]
- Last split in tab greyed out [#402]
- Using the `--debug-classes` option makes terminator crash [#397]
- cannot import name 'Validator' from 'validate' | arch community/terminator 2.1.0-2 [#395]
- Clicking on terminator title bars does not focus the terminal belonging to the title-bar [#394]
- Losing focus on a tabbed window will grey out the window [#393]
- Terminator turns white when using tabs [#391]
- unremovable background image [#387]
- Tab focus change causes white-out of console [#383]
- Allow hide title bar as global option [#377]
- Add project management tool [#376]
- module 'command_notify' has no attribute 'AVAILABLE' [\#375]
- weird bug with long commands [#373]
- Open in terminal [#368]
- Clipboard commands [#366]
- Background image not showing up on Xubuntu 20.04 [#364]
- Pasted text is highlighted [#363]
- [FR\] Option to elide terminal title from the left [\#362]
- Windows title are not udpated after ssh session disconnected [#359]
- No broadcast menu in sway [#357]
- Remove spaces between tabs [#331]
- Enhancement: Stjerm Layout Like Functionality [#298]
- Unwanted transparent pane separators [#293]
- clusterssh like behaviour via plugin [#222]

**Merged pull requests:**

- Release version 2.1.1 [#413]
- i18n: pt_BR: add missing space in translations with shortcuts [\#406]
- Fixed race condition when calling grab_focus after underlying vte could be closed [\#388]
- disable 2.7 tests until we can figure out how to run them in GH [#386]
- Revert 74 [#385]
- update spanish translation [#370]
- Remotinator "switch_profile" command [\#361]
- clarify config file sentences [#360]
- fix broadcast menu for sway and wayland [#358]
github-actions bot pushed a commit that referenced this issue Oct 13, 2024
[0.23.0] - 2024-10-12
Features
    Handle responses compressed in zstd format, see #364 (@zuisong)
    Suppress warnings when -qq flag is used, see #371 (@blyxxyz)
    Add --debug option for logging and backtraces, see #371 (@blyxxyz)
    Decode content-disposition and location headers as UTF-8, see #375 (@zuisong)
    Print headers as latin1, with the UTF-8 decoding also shown if applicable, see #377 (@blyxxyz)
    Print the actual reason phrase sent by the server instead of guessing it from the status code, see #377 (@blyxxyz)

Bug fixes
    Apply TLS options to non-HTTPS URLs, see #372 (@blyxxyz)

Other
    Ignore NO_COLOR if set to empty string, see #370 (@blyxxyz)
github-actions bot pushed a commit that referenced this issue Oct 13, 2024
## [2.1.0] - 2024-09-27

### Added

- Use `SLUMBER_CONFIG_PATH` to customize configuration (_not_ collection) file path [#370](LucasPickering/slumber#370)
- Add a dynamic variant to `!select` chain type, allowing your collection to present a list of values driven from the output of another chain. (thanks @anussel5559)
  - [See docs for more](https://slumber.lucaspickering.me/book/api/request_collection/chain_source.html#select)
- Cancel in-flight requests with the `cancel` action (bound to escape by default)
- Add `slumber new` subcommand to generate new collection files [#376](LucasPickering/slumber#376)
- Add `default` field to profiles
  - When using the CLI, the `--profile` argument can be omitted to use the default profile
- Reset edited recipe values to their default using `z`
  - You can [customize the key](https://slumber.lucaspickering.me/book/api/configuration/input_bindings.html) to whatever you want
- Add `selector_mode` field to chains, to control how single vs multiple results from a JSONPath selector are handled
  - Previously, if a selector returned multiple results, an error was returned. Now, the result list will be rendered as a JSON array. To return to the previous behavior, set `selector_mode: single` in your chain.
  - [See docs for more](https://slumber.lucaspickering.me/book/api/request_collection/chain.html#selector-mode)

### Changed

- Update file locations to adhere to XDG spec on Linux [#371](LucasPickering/slumber#371)
  - Move config file to [config dir](https://docs.rs/dirs/latest/dirs/fn.config_dir.html), which remains the same on MacOS/Windows but changes on Linux. For backward compatibility, the previous path ([data dir](https://docs.rs/dirs/latest/dirs/fn.data_dir.html)) will be checked and used if present
  - Move log files to [state dir](https://docs.rs/dirs/latest/dirs/fn.state_dir.html) on Linux and [cache dir](https://docs.rs/dirs/latest/dirs/fn.cache_dir.html) on MacOS/Windows
  - Database file remains in [data dir](https://docs.rs/dirs/latest/dirs/fn.data_dir.html) on all platforms
- Create config file on startup if it doesn't exist
- If config file fails to load during TUI startup, display an error and fall back to the default, rather than crashing
- De-deprecate `{{env.VARIABLE}}` template sources
  - They'll remain as a simpler alternative to `!env` chains

### Fixed

- Updated the Configuration docs to remove the non-existent `slumber show dir` command (thanks @SVendittelli)
- Retain all request history when collection file is reloaded
  - Previously, pending and failed requests were lost on reload within a single session. These will still be lost when a session is exited.
- Fix serialization of query parameter lists
- Don't update UI for useless events (e.g. cursor moves)

## [2.0.0] - 2024-09-06

2.0 is headlined by a highly requested feature: one-off edits to recipes! If you need to tweak a query parameter or edit a body, but don't want to modify your collection file, you can now highlight the value in question and hit `e` to modify it. The override will be retained until you modify the collection file or exit Slumber, at which point it will revert to its original value.

Aside from the major new feature, there is one breaking change to the escape syntax of templates. The old backslash-based syntax was fraught with edge cases and unpredictable behavior. This new syntax is simpler to use, simpler to implement, and much more bulletproof. This syntax was rare to use to begin with, so **most people will be unimpacted by this change.**

Here's the full list of changes:

### Breaking

- Replace backslash escape sequence with a simpler scheme based on `_`
  - For example, previously a key would be escaped as `\{{`. This introduced complexities around how to handle additional backslashes, and also required doubling up backslashes in YAML
  - The new equivalent would be `{_{`, which parses as `{{`
  - The goal of this change is to make escaping behavior simpler and more consistent
  - For more info on the new behavior, [see the docs](https://slumber.lucaspickering.me/book/api/request_collection/template.html#escape-sequences)
- Remove `--log` CLI argument
  - See note on log files in Changed section for why this is no longer necessary

### Added

- Edit recipe values (query params, headers, etc.) in the TUI to provide one-off values
  - Press `e` on any value you want to edit (you can [customize the key](https://slumber.lucaspickering.me/book/api/configuration/input_bindings.html))
- Add `editor` field to the config, allowing you to customize what editor Slumber opens for in-app editing
  - [See docs for more](https://slumber.lucaspickering.me/book/api/configuration/editor.html)
- Add `!select` chain type, allowing your collection to prompt the user to select a value from a static list (thanks @anussel5559)
  - [See docs for more](https://slumber.lucaspickering.me/book/api/request_collection/chain_source.html#select)

### Changed

- `!json` bodies are now prettified when sent to the server
- Use `vim` as default editor if none is configured
- Move logs back to a shared file
  - They had been split into one file per session, which made them hard to find
  - The file is now eventually deleted once it exceeds a certain size

### Fixed

- Fix basic auth being label as bearer auth in Recipe Authentication pane
- Use correct binding for `search` action in the placeholder of the response filter textbox
  - Previously it was hardcoded to display the default of `/`
- Fix response body filter not applying on new responses
- Support quoted arguments in editor commands
- Fix certain UI values not persisting correctly
- Propagate unconsumed key events from text boxes
  - E.g. F5 will now refresh the collection while a text box is in focus
- Redraw TUI when terminal is resized
- Clamp text window scroll state when window is resized or text changes
- Fix extraneous input events when exiting Vim [#351](LucasPickering/slumber#351)
- Improve performance and fix crashes when handling large request/response bodies [#356](LucasPickering/slumber#356)
  - Further improvements for large bodies will be coming in the future

## [1.8.1] - 2024-08-11

This release is focused on improving rendering performance. The TUI should generally feel more polished and responsive when working with large bodies, and CPU usage will be much lower.

### Added

- Add `debug` configuration field, to enable developer information

### Fixed

- Reduce CPU usage while idling
  - Previously, Slumber would re-render every 250ms while idling, which could lead to high CPU usage, dependending on what's on the screen. Now it will only update when changes occur, meaning idle CPU usage will be nearly 0
- Fix backlogged events when renders are slow
  - If renders are being particular slow, it was previously possible for input events (e.g. repeated scrolling events) to occur faster than the UI could keep up. This would lead to "lock out" behavior, where you'd stop scrolling and it'd take a while for the UI to catch up.
  - Now, the TUI will skip draws as necessary to keep up with the input queue. In practice the skipping should be hard to notice as it only occurs during rapid TUI movements anyway.
- Improve rendering performance for large bodies and syntax highlighting
- Fix incorrect decoration in folder tree visualization

## [1.8.0] - 2024-08-09

The highlight (no pun intended) of this release is syntax highlighting. Beyond that, the release contains a variety of small fixes and improvements.

### Added

- Add syntax highlighting to recipe, request, and response display [#264](LucasPickering/slumber#264)

### Changed

- Change layout of internal database for request and UI state storage
  - This _shouldn't_ have any user impact, it's just a technical improvement. If you notice any issues such as missing or incorrect request history, please [let me know](https://github.com/LucasPickering/slumber/issues/new?assignees=&labels=bug&projects=&template=bug_report.md)
- Upgrade to Rust 1.80
- Disable unavailable menu actions [#222](LucasPickering/slumber#222)
- Support template for header names in the `section` field of `!request` chains
- Expand `~` to the home directory in `!file` chain sources and when saving response body as a file
- Ignore key events with additional key modifiers
  - For example, an action bound to `w` will no longer match `ctrl w`
- Actions can now be unbound by specifying an empty binding
  - For example, binding `submit: []` will make the submit action inaccessible

### Fixed

- Fix `cargo install slumber` when not using `--locked`
- Don't type in text boxes when modifiers keys (other than shift) are enabled
  - Should mitigate some potential confusing behavior when using terminal key sequences
- Query parameter and header toggle rows no longer lose their state when switching profiles
github-actions bot pushed a commit that referenced this issue Nov 3, 2024
# cpp11 0.5.0

## R non-API related changes

* Removed usage of the following R non-API functions:

  * `SETLENGTH()`

  * `SET_TRUELENGTH()`

  * `SET_GROWABLE_BIT()`

  These functions were used as part of the efficient growable vectors that
  cpp11 offered, i.e. what happens under the hood when you use `push_back()`.
  The removal of these non-API functions means that cpp11 writable vectors that
  have been pushed to with `push_back()` will likely force 1 extra allocation
  when the conversion from `cpp11::writable::r_vector<T>` to `SEXP` occurs
  (typically when you return a result back to R). This does not affect the
  performance of `push_back()` itself, and in general these growable vectors
  are still quite efficient (#362).

* The `environment` class no longer uses the non-API function
  `Rf_findVarInFrame3()` (#367).

  * The `exists()` method now uses the new `R_existsVarInFrame()` function.

  * The `SEXP` conversion operator now uses the new `R_getVar()` function. Note
    that this is stricter than `Rf_findVarInFrame3()` in 3 ways. The object
    must exist in the environment (i.e. `R_UnboundValue` is no longer returned),
    the object cannot be `R_MissingArg`, and if the object was a promise, that
    promise is now evaluated. We have backported this new strictness to older
    versions of R as well.

## New features

* `cpp11::writable::r_vector<T>::proxy` now implements copy assignment.
  Practically this means that `x[i] = y[i]` now works when both `x` and `y`
  are writable vectors (#300, #339).

* New `writable::data_frame` constructor that also takes the number of rows as
  input. This accounts for the edge case where the input list has 0 columns but
  you'd still like to specify a known number of rows (#272).

* `std::max_element()` can now be used with writable vectors (#334).

* Read only `r_vector`s now have a move constructor and move assignment
  operator (#365).

## Improvements and fixes

* Repeated assignment to a `cpp11::writable::strings` vector through either
  `x[i] = elt` or `x.push_back(elt)` is now more performant, at the tradeoff
  of slightly less safety (as long as `elt` is actually a `CHARSXP` and `i` is
  within bounds, there is no chance of failure, which are the same kind of
  invariants placed on the other vector types) (#378).

* Constructors for writable vectors from `initializer_list<named_arg>` now
  check that `named_arg` contains a length 1 object of the correct type, and
  throws either a `cpp11::type_error` or `std::length_error` if that is not the
  case (#382).

* `cpp11::package` now errors if given a package name that hasn't been loaded
  yet. Previously it would cause R to hang indefinitely (#317).

* `cpp11::function` now protects its underlying function, for maximum safety
  (#294).

* `cpp11::writable::r_vector<T>::iterator` no longer implicitly deletes its
  copy assignment operator (#360).

* Added the missing implementation for `x.at("name")` for read only vectors
  (#370).

* Fixed an issue with the `writable::matrix` copy constructor where the
  underlying SEXP should have been copied but was not. It is now consistent with
  the behavior of the equivalent `writable::r_vector` copy constructor.

* Fixed a memory leak with the `cpp11::writable::r_vector` move assignment
  operator (#338).

* Fixed an issue where writable vectors were being protected twice (#365).

* The approach for the protection list managed by cpp11 has been tweaked
  slightly. In 0.4.6, we changed to an approach that creates one protection list
  per compilation unit, but we now believe we've found an approach that is
  guaranteed by the C++ standard to create one protection list per package,
  which makes slightly more sense and still has all the benefits of the reduced
  maintanence burden mentioned in the 0.4.6 news bullet (#364).

  A side effect of this new approach is that the `preserved` object exposed
  through `protect.hpp` no longer exists. We don't believe that anyone was using
  this. This also means you should no longer see "unused variable" warnings
  about `preserved` (#249).

## Breaking changes

* R >=3.6.0 is now required. This is in line with (and even goes beyond) the
  tidyverse standard of supporting the previous 5 minor releases of R.

* Implicit conversion from `sexp` to `bool`, `size_t`, and `double` has been
  marked as deprecated and will be removed in the next version of cpp11. The 3
  packages that were using this have been notified and sent PRs. The recommended
  approach is to instead use `cpp11::as_cpp<T>`, which performs type and length
  checking, making it much safer to use.

* Dropped support for gcc 4.8, mainly an issue for extremely old CentOS 7
  systems which used that as their default compiler. As of June 2024, CentOS 7
  is past its vendor end of support date and therefore also out of scope for
  Posit at this time (#359).
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

1 participant