ee6ec50b158b378b613a8cb49bc3ef76bd16ee4f
21959
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ee6ec50b15 |
Fix - being a word character for selections (#17171)
Co-Authored-By: Mikayla <mikayla@zed.dev> Co-Authored-By: Nate <nate@zed.dev> Closes #15606 Closes #13515 Release Notes: - Fixes `-` being considered a word character for selections in some languages Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Nate <nate@zed.dev> |
||
|
|
c0731bfa28 |
assistant: Fix formatting in settings (#17172)
This PR fixes some formatting issues in `assistant_settings.rs` that were being caused by long lines. Release Notes: - N/A |
||
|
|
68ea661711 |
assistant: Add foundation for receiving tool uses from Anthropic models (#17170)
This PR updates the Assistant with support for receiving tool uses from Anthropic models and capturing them as text in the context editor. This is just laying the foundation for tool use. We don't yet fulfill the tool uses yet, or define any tools for the model to use. Here's an example of what it looks like using the example `get_weather` tool from the Anthropic docs: <img width="644" alt="Screenshot 2024-08-30 at 1 51 13 PM" src="https://github.com/user-attachments/assets/3614f953-0689-423c-8955-b146729ea638"> Release Notes: - N/A |
||
|
|
ea25d438d1 |
anthropic: Remove cache_control field from ResponseContent (#17165)
This PR removes the `cache_control` field from the variants in `ResponseContent`. This field is used on requests to control the caching behavior, but is not needed on content in the response. Release Notes: - N/A |
||
|
|
8901d926eb |
anthropic: Use separate Content type in requests and responses (#17163)
This PR splits the `Content` type for Anthropic into two new types: `RequestContent` and `ResponseContent`. As I was going through the Anthropic API docs it seems that there are different types of content that can be sent in requests vs what can be returned in responses. Using a separate type for each case tells the story a bit better and makes it easier to understand, IMO. Release Notes: - N/A |
||
|
|
00eed768ce |
Fix Go test task when using Git submodules (#17108)
I have found an error running tests in Golang projects that use submodules. This PR fixes the issue by accessing the directory before running the test.  The `commons` in the image is a git submodule in a subfolder inside a parent folder where the workspace is set. Release Notes: - Fixed Go tests not being able to run in case the package (and the `go.mod`) was in a nested folder. Pre-defined Go tasks have been changed to now run in the package's directory. That means `go test ./package -run MyTest` will run in `./package` and execute `go test -run MyTest`. Also, `go test ./...` will run in the package directory, not at the root of the Zed project, which is a small breaking change. In case one wants to run `go test ./...` from the root, one can spawn a manual task that does this.  --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com> |
||
|
|
89632ff5c2 |
gpui: Fix typo in DefaultThemeAppearance doc comment (#17157)
Release Notes: - N/A |
||
|
|
c909bc09db | docs: Fix Ollama formatting; remove stale link to stable Nix package (#17158) | ||
|
|
226d683ba4 |
story: Remove unneeded lib.name (#17156)
This PR removes the `lib.name` field from the `story` crate's `Cargo.toml`, as it is not needed. Release Notes: - N/A |
||
|
|
9c8b6f4a9f |
workspace: Fix weird behavior when save replaces the existing open file (#17123)
Fixes this weird behavior: - open an file, like `test.rs` - `ctrl-n` create an new buffer - `ctrl-s` save new buffer with name `test.rs`, select replace old file. - the older open file also exist, this is weird. Release Notes: - Fixed two panes staying opening when saving a new buffer with the same filename as a file that was already open. |
||
|
|
7cc24eaf4b |
ruby: Bump version to v0.2.0 (#17128)
**Changelog:** - Replace default tasks with a stub message (#16752) - Update tree-sitter grammar for the Ruby language (#16892) - Rename `rbs` to `RBS` (#16893) - Upgrade `zed_extension_api` to v0.1.0 (#16907) Release Notes: - N/A |
||
|
|
0835d456dc |
gpui: Fix text ellipsis appearing even the flex element has space (#17149)
Release Notes: - N/A There was a calculation bug before. When we added `text_ellipsis` to the flex element, it would always show ellipsis no matter how long it was. Actually we can't use `flex` and `text_ellipsis` at same time, the CSS also not support this. But this bug will let user confuse. ### Before <img width="731" alt="image" src="https://github.com/user-attachments/assets/b7d60017-6785-45f5-8b40-dd5efa154a1e"> ### After <img width="521" alt="image" src="https://github.com/user-attachments/assets/a3117793-284e-48d4-8c15-059fe61abe60"> |
||
|
|
b62e63349b |
Ollama max_tokens settings (#17025)
- Support `available_models` for Ollama - Clamp default max tokens (context length) to 16384. - Add documentation for ollama context configuration. |
||
|
|
d401ab1efc | Make links in assistant configuration clickable (#17011) | ||
|
|
eb7367d8f2 |
vim: Disable inline completions if not Insert/Replace mode (#17154)
This is a follow-up to - https://github.com/zed-industries/zed/pull/17137 - https://github.com/zed-industries/zed/pull/17138 (revert of #17137) and it does what I originally thought I wouldn't have to do: add another boolean to `Editor`. cc @ConradIrwin Release Notes: - Fixed inline completions (Copilot or Supermaven) showing up in Vim's normal mode. |
||
|
|
32e96e126f |
workspace: Ensure last_active_center_pane is updated on focus (#17140)
This fixes a bug that I've been running into for quite a while: - Open a new terminal inside Zed - (Center pane loses focus) - (Workspace is serialized) - Quit Zed - Open Zed - (Workspace is deserialized without an active pane) - Put cursor in assistant panel - Try to use `ActivatePaneInDirection` to go to the center - Does not work So what this fix does is to ensure that in case the pane does become focused, even though it was already marked as focused, the active center pane is set. It also adds a fallback when trying to get the last active pane. Release Notes: - Fixed an issue where `workspace::ActivatePaneInDirection` could not activate the center pane (i.e. one couldn't navigate from terminal or assistant panel to the center pane) after loading Zed. |
||
|
|
820ad488e4 |
Revert "vim: Don't show inline completions in normal mode (#17137)" (#17138)
This reverts commit
|
||
|
|
9206561662 |
vim: Don't show inline completions in normal mode (#17137)
This fixes an annoying bug I ran into, where supermaven completions would show up in normal mode. cc @ConradIrwin not sure if this is the best way to fix this, but it seems like the neatest? On one hand, I didn't want to touch into Vim from the editor, and on the other I didn't want to add another boolean on the editor that flips on when in normal mode. So instead I extended the Addon interface. Release Notes: - Fixed inline completions (Copilot or Supermaven) showing up in Vim's normal mode. |
||
|
|
6403385468 |
linux: Add an option to disable middle-click paste (#16572)
Release Notes: - Added an editor setting to toggle Linux middle-click pasting (enabled by default) |
||
|
|
02cd5128c7 | repl: Make output buffer be readonly, never dirty (#17121) | ||
|
|
6646b15f29 |
Standardize story crate lib name (#17117)
`crates/story/src/lib.rs` -> `crates/story/src/story.rs` Release Notes: - N/A |
||
|
|
3d175f685f |
Unify Story/StoryContainers (#17114)
Unify the various Story containers, and use gpui default colors over the custom `StoryColors`. Release Notes: - N/A |
||
|
|
449e744c14 |
context_servers: Normalize the line endings of context servers (#17112)
Context servers might return CR characters, which are not acceptable in Zed and cause ranges to be invalidated. We need to normalize them. Closes #17109 Release Notes: - context_servers: Fixed an issue where context servers returning a carriage return character would result in a panic. |
||
|
|
5bae6eb493 |
context_servers: Completion support for context server slash commands (#17085)
This PR adds support for completions via MCP. The protocol now supports a new request type "completion/complete" that can either complete a resource URI template (which we currently don't use in Zed), or a prompt argument. We use this to add autocompletion to our context server slash commands! https://github.com/user-attachments/assets/08c9cf04-cbeb-49a7-903f-5049fb3b3d9f Release Notes: - context_servers: Added support for argument completions for context server prompts. These show up as regular completions to slash commands. |
||
|
|
01f8d27f22 |
Add a simple set of default colors to gpui (#17110)
This PR adds an initial set of default colors to `gpui`.
These will power default-styled gpui components (things like checkboxes,
buttons, inputs, etc.), storybook, and give a very simple,
appearance-aware set of colors out of the box for folks to build with.
These colors will evolve and be updated in the near future, they are
literally pulled from Finder for now :)
The API might not be perfect, I focused on getting something in quickly
that we can iterate on!
### Usage
```rs
use gpui::{colors, DefaultColor}
fn auto(cx: &WindowContext) -> {
// Init the full set of DefaultColors
let colors = colors(cx.appearance());
// Use a color
// It will automatically give you the correct color for the system's
// current appearance.
let background = DefaultColor::Background.hsla(&colors)
}
fn manual() -> {
// Init the full sets of DefaultColors
let light_colors = DefaultColors::light();
let dark_colors = DefaultColors::dark();
// Use a color
// Maybe for some fancy inverted element
let background = DefaultColor::Background.hsla(&light_colors)
let inverted_background = DefaultColor::Background.hsla(&dark_colors)
let inverted_text = DefaultColor::Text.hsla(&dark_colors)
}
```
Note: We need `cx` for the auto way as we need to get the system
appearance from the App/Window/ViewContext via `cx.appearance()`.
### Example
You can run `script/storybook default_colors` to open the Default Colors
story:
| Light | Dark |
|-------|------|
| 
| 
|
Release Notes:
- N/A
|
||
|
|
82ceb4c091 |
repl: Refactor outputs for externalization (#16971)
Working on addressing large outputs, refactored as part of it. https://github.com/user-attachments/assets/48ea576c-e13a-4d09-b45a-4baa41bf6f72 Release Notes: - N/A |
||
|
|
89487772b0 |
assistant: Remove outdated comment (#17105)
This used to appear on a call to `prune_invalid_workflow_steps`, but that method doesn't exist anymore. Release Notes: - N/A |
||
|
|
d60466212d |
Hide Markdown-Inline language from users with a new 'hidden' flag on language configs (#17104)
/cc @mrnugget Release Notes: - Fixed an issue where toggling inline completions in a markdown file did not work correctly --------- Co-authored-by: Marshall <marshall@zed.dev> |
||
|
|
cdaa80fefb |
linux: Consistent clipboard shortcuts in context menus (#17103)
- Fixes incorrect shorcuts being displayed in Linux context menus. - Re-ordering them within the json object doesn't work, but putting them in a dedicate block does. |
||
|
|
895c3e7207 |
Update Rust crate sqlx to v0.8.1 [SECURITY] (#17102)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sqlx](https://togithub.com/launchbadge/sqlx) | dev-dependencies | patch | `0.8.0` -> `0.8.1` | | [sqlx](https://togithub.com/launchbadge/sqlx) | dependencies | patch | `0.8.0` -> `0.8.1` | ### GitHub Vulnerability Alerts #### [GHSA-xmrp-424f-vfpx](https://togithub.com/launchbadge/sqlx/issues/3440) The following presentation at this year's DEF CON was brought to our attention on the SQLx Discord: > SQL Injection isn't Dead: Smuggling Queries at the Protocol Level > <http://web.archive.org/web/20240812130923/https://media.defcon.org/DEF%20CON%2032/DEF%20CON%2032%20presentations/DEF%20CON%2032%20-%20Paul%20Gerste%20-%20SQL%20Injection%20Isn't%20Dead%20Smuggling%20Queries%20at%20the%20Protocol%20Level.pdf> > (Archive link for posterity.) Essentially, encoding a value larger than 4GiB can cause the length prefix in the protocol to overflow, causing the server to interpret the rest of the string as binary protocol commands or other data. It appears SQLx _does_ perform truncating casts in a way that could be problematic, for example: <https://github.com/launchbadge/sqlx/blob/6f2905695b9606b5f51b40ce10af63ac9e696bb8/sqlx-postgres/src/arguments.rs#L163> This code has existed essentially since the beginning, so it is reasonable to assume that all published versions `<= 0.8.0` are affected. ## Mitigation As always, you should make sure your application is validating untrustworthy user input. Reject any input over 4 GiB, or any input that could _encode_ to a string longer than 4 GiB. Dynamically built queries are also potentially problematic if it pushes the message size over this 4 GiB bound. [`Encode::size_hint()`](https://docs.rs/sqlx/latest/sqlx/trait.Encode.html#method.size_hint) can be used for sanity checks, but do not assume that the size returned is accurate. For example, the `Json<T>` and `Text<T>` adapters have no reasonable way to predict or estimate the final encoded size, so they just return `size_of::<T>()` instead. For web application backends, consider adding some middleware that limits the size of request bodies by default. ## Resolution Work has started on a branch to add `#[deny]` directives for the following Clippy lints: * [`cast_possible_truncation`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_truncation) * [`cast_possible_wrap`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_wrap) * [`cast_sign_loss`](https://rust-lang.github.io/rust-clippy/master/#/cast_sign_loss) and to manually audit the code that they flag. A fix is expected to be included in the `0.8.1` release (still WIP as of writing). --- ### Release Notes <details> <summary>launchbadge/sqlx (sqlx)</summary> ### [`v0.8.1`](https://togithub.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#081---2024-08-23) [Compare Source](https://togithub.com/launchbadge/sqlx/compare/v0.8.0...v0.8.1) 16 pull requests were merged this release cycle. This release contains a fix for [RUSTSEC-2024-0363]. Postgres users are advised to upgrade ASAP as a possible exploit has been demonstrated: [#​3440 (comment)](https://togithub.com/launchbadge/sqlx/issues/3440#issuecomment-2307956901) MySQL and SQLite do not *appear* to be exploitable, but upgrading is recommended nonetheless. ##### Added - \[[#​3421]]: correct spelling of `MySqlConnectOptions::no_engine_substitution()` \[\[[@​kolinfluence](https://togithub.com/kolinfluence)]] - Deprecates `MySqlConnectOptions::no_engine_subsitution()` (oops) in favor of the correctly spelled version. ##### Changed - \[[#​3376]]: doc: hide `spec_error` module \[\[[@​abonander](https://togithub.com/abonander)]] - This is a helper module for the macros and was not meant to be exposed. - It is not expected to receive any breaking changes for the 0.8.x release, but is not designed as a public API. Use at your own risk. - \[[#​3382]]: feat: bumped to `libsqlite3-sys=0.30.1` to support sqlite 3.46 \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3385]]: chore(examples):Migrated the pg-chat example to ratatui \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3399]]: Upgrade to rustls 0.23 \[\[[@​djc](https://togithub.com/djc)]] - RusTLS now has pluggable cryptography providers: `ring` (the existing implementation), and `aws-lc-rs` which has optional FIPS certification. - The existing features activating RusTLS (`runtime-tokio-rustls`, `runtime-async-std-rustls`, `tls-rustls`) enable the `ring` provider of RusTLS to match the existing behavior so this *should not* be a breaking change. - Switch to the `tls-rustls-aws-lc-rs` feature to use the `aws-lc-rs` provider. - If using `runtime-tokio-rustls` or `runtime-async-std-rustls`, this will necessitate switching to the appropriate non-legacy runtime feature: `runtime-tokio` or `runtime-async-std` - See the RusTLS README for more details: <https://github.com/rustls/rustls?tab=readme-ov-file#cryptography-providers> ##### Fixed - \[[#​2786]]: fix(sqlx-cli): do not clean sqlx during prepare \[\[[@​cycraig](https://togithub.com/cycraig)]] - \[[#​3354]]: sqlite: fix inconsistent read-after-write \[\[[@​ckampfe](https://togithub.com/ckampfe)]] - \[[#​3371]]: Fix encoding and decoding of MySQL enums in `sqlx::Type` \[\[[@​alu](https://togithub.com/alu)]] - \[[#​3374]]: fix: usage of `node12` in `SQLx` action \[\[[@​hamirmahal](https://togithub.com/hamirmahal)]] - \[[#​3380]]: chore: replace structopt with clap in examples \[\[[@​tottoto](https://togithub.com/tottoto)]] - \[[#​3381]]: Fix CI after Rust 1.80, remove dead feature references \[\[[@​abonander](https://togithub.com/abonander)]] - \[[#​3384]]: chore(tests): fixed deprecation warnings \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3386]]: fix(dependencys):bumped cargo_metadata to `v0.18.1` to avoid yanked `v0.14.3` \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3389]]: fix(cli): typo in error for required DB URL \[\[[@​ods](https://togithub.com/ods)]] - \[[#​3417]]: Update version to 0.8 in README \[\[[@​soucosmo](https://togithub.com/soucosmo)]] - \[[#​3441]]: fix: audit protocol handling \[\[[@​abonander](https://togithub.com/abonander)]] - This addresses [RUSTSEC-2024-0363] and includes regression tests for MySQL, Postgres and SQLite. [#​2786]: https://togithub.com/launchbadge/sqlx/pull/2786 [#​3354]: https://togithub.com/launchbadge/sqlx/pull/3354 [#​3371]: https://togithub.com/launchbadge/sqlx/pull/3371 [#​3374]: https://togithub.com/launchbadge/sqlx/pull/3374 [#​3376]: https://togithub.com/launchbadge/sqlx/pull/3376 [#​3380]: https://togithub.com/launchbadge/sqlx/pull/3380 [#​3381]: https://togithub.com/launchbadge/sqlx/pull/3381 [#​3382]: https://togithub.com/launchbadge/sqlx/pull/3382 [#​3384]: https://togithub.com/launchbadge/sqlx/pull/3384 [#​3385]: https://togithub.com/launchbadge/sqlx/pull/3385 [#​3386]: https://togithub.com/launchbadge/sqlx/pull/3386 [#​3389]: https://togithub.com/launchbadge/sqlx/pull/3389 [#​3399]: https://togithub.com/launchbadge/sqlx/pull/3399 [#​3417]: https://togithub.com/launchbadge/sqlx/pull/3417 [#​3421]: https://togithub.com/launchbadge/sqlx/pull/3421 [#​3441]: https://togithub.com/launchbadge/sqlx/pull/3441 [RUSTSEC-2024-0363]: https://rustsec.org/advisories/RUSTSEC-2024-0363.html </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
5af116d676 |
ruby: Replace default tasks with a stub message (#16752)
The Ruby world has many testing frameworks: - Minitest - RSpec - quickdraw - tldr - and many others. Attempting to support all of them through a single `tasks.json` file is a challenging task and nearly impossible. All testing frameworks have different running options and commands. It's still possible to use tree-sitter queries to detect runnables in Ruby code but Zed lacks the ability to detect the testing framework in a project that can be used to detect the correct commands to run tests or runnables. The end user knows the correct command and it's wise to delegate creating the command to them. It would be a bit strange to leave the user without any guidance, so this commit adds example tasks for various Ruby testing frameworks. Closes #12579 Here is the screenshot how it looks:  Release Notes: - N/A |
||
|
|
b6c3ef7e79 |
Improve Rust highlight queries (#17097)
See #16747. Removed markdown injections so that only the rust highlights are implemented Release Notes: - Improved Rust syntax highlighting queries. |
||
|
|
f84ef5e48a |
Immediate edit step resolution (#16447)
## Todo * [x] Parse and present new XML output * [x] Resolve new edits to buffers and anchor ranges * [x] Surface resolution errors * [x] Steps fail to resolve because language hasn't loaded yet * [x] Treat empty `<symbol>` tag as None * [x] duplicate assists when editing steps * [x] step footer blocks can appear *below* the following message header block ## Release Notes: - N/A --------- Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Peter <peter@zed.dev> Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com> |
||
|
|
fc4c533d0a |
zed: Use CLI env for lang servers, tasks, terminal (#17075)
This changes the Zed CLI `zed` to pass along the environment to the Zed project that it opens (if it opens a new one). In projects, this CLI environment will now take precedence over any environment that's acquired by running a login shell in a projects folder. The result is that `zed my/folder` now always behaves as if one would run `zed --foreground` without any previous Zed version running. Closes #7894 Closes #16293 Related issues: - It fixes the issue described in here: https://github.com/zed-industries/zed/issues/4977#issuecomment-2305272027 Release Notes: - Improved the Zed CLI `zed` to pass along the environment as it was on the CLI to the opened Zed project. That environment is then used when opening new terminals, spawning tasks, or language servers. Specifically: - If Zed was started via `zed my-folder`, a terminal spawned with `workspace: new terminal` will inherit these environment variables that existed on the CLI - Specific language servers that allow looking up the language server binary in the environments `$PATH` (such as `gopls`, `zls`, `rust-analyzer` if configured, ...) will look up the language server binary in the CLI environment too and use that environment when starting the process. - Language servers that are _not_ found in the CLI environment (or configured to not be found in there), will be spawned with the CLI environment in case that's set. That means users can do something like `RA_LOG=info zed .` and it will be picked up the rust-analyzer that was spawned. Demo/explanation: https://github.com/user-attachments/assets/455905cc-8b7c-4fc4-b98a-7e027d97cdfa |
||
|
|
4f408ec65a |
collab: Record geoip_country_code on HTTP request spans (#17092)
This PR attaches the `geoip_country_code` that we source from Cloudflare's `CF-IPCountry` header to the HTTP request spans. This will allow us to see where traffic is originating geographically. Release Notes: - N/A |
||
|
|
4d6bb52d1f |
Anthropic/OpenAI: Add country codes for territories (#17089)
- Cloudflare provides ISO-3166-1 country code for protectorates. Expand our allowlist to include the territories of countries on the allowlist (US, UK, France, Australia, New Zealand). - Also include the country_code in the error message when we block. Co-authored-by: Marshall Bowers <elliott.codes@gmail.com> |
||
|
|
7db8d80c30 |
Make selection more consistent across languages (#17084)
- Remove "-" from word_character for CSS/JS/TSX/Markdown - Makes our word-selection behavior consistent across language modes (and consistent with VSCode). |
||
|
|
376828e92f |
editor: Fix flaky navigation test (#17087)
This test was flaky because both tasks were started at the same time and the first one that would win, would navigate the editor. Now the order is fixed, because the second task is only spawned after the first one. Release Notes: - N/A --------- Co-authored-by: Kirill <kirill@zed.dev> |
||
|
|
70018a167a |
Revert "Update Rust crate clickhouse to 0.12.0 (#17034)" (#17086)
This PR reverts the `clickhouse` upgrade from #17034.
After testing in staging I'm seeing errors when trying to write events
to Clickhouse. Going to revert so we can investigate.
This reverts commit
|
||
|
|
d666cc5fba |
collab: Report when upstream rate limit is exceeded (#17083)
This PR makes it so we report a trace when the upstream rate limit is exceeded. Release Notes: - N/A |
||
|
|
6d3fbc4123 |
Update Cargo.lock (#17081)
This PR updates `Cargo.lock`, as it was missed in #17063. Release Notes: - N/A |
||
|
|
01284c261c |
Update Rust crate sqlx to v0.8.1 [SECURITY] (#17064)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sqlx](https://togithub.com/launchbadge/sqlx) | dev-dependencies | patch | `0.8.0` -> `0.8.1` | | [sqlx](https://togithub.com/launchbadge/sqlx) | dependencies | patch | `0.8.0` -> `0.8.1` | ### GitHub Vulnerability Alerts #### [GHSA-xmrp-424f-vfpx](https://togithub.com/launchbadge/sqlx/issues/3440) The following presentation at this year's DEF CON was brought to our attention on the SQLx Discord: > SQL Injection isn't Dead: Smuggling Queries at the Protocol Level > <http://web.archive.org/web/20240812130923/https://media.defcon.org/DEF%20CON%2032/DEF%20CON%2032%20presentations/DEF%20CON%2032%20-%20Paul%20Gerste%20-%20SQL%20Injection%20Isn't%20Dead%20Smuggling%20Queries%20at%20the%20Protocol%20Level.pdf> > (Archive link for posterity.) Essentially, encoding a value larger than 4GiB can cause the length prefix in the protocol to overflow, causing the server to interpret the rest of the string as binary protocol commands or other data. It appears SQLx _does_ perform truncating casts in a way that could be problematic, for example: <https://github.com/launchbadge/sqlx/blob/6f2905695b9606b5f51b40ce10af63ac9e696bb8/sqlx-postgres/src/arguments.rs#L163> This code has existed essentially since the beginning, so it is reasonable to assume that all published versions `<= 0.8.0` are affected. ## Mitigation As always, you should make sure your application is validating untrustworthy user input. Reject any input over 4 GiB, or any input that could _encode_ to a string longer than 4 GiB. Dynamically built queries are also potentially problematic if it pushes the message size over this 4 GiB bound. [`Encode::size_hint()`](https://docs.rs/sqlx/latest/sqlx/trait.Encode.html#method.size_hint) can be used for sanity checks, but do not assume that the size returned is accurate. For example, the `Json<T>` and `Text<T>` adapters have no reasonable way to predict or estimate the final encoded size, so they just return `size_of::<T>()` instead. For web application backends, consider adding some middleware that limits the size of request bodies by default. ## Resolution Work has started on a branch to add `#[deny]` directives for the following Clippy lints: * [`cast_possible_truncation`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_truncation) * [`cast_possible_wrap`](https://rust-lang.github.io/rust-clippy/master/#/cast_possible_wrap) * [`cast_sign_loss`](https://rust-lang.github.io/rust-clippy/master/#/cast_sign_loss) and to manually audit the code that they flag. A fix is expected to be included in the `0.8.1` release (still WIP as of writing). --- ### Release Notes <details> <summary>launchbadge/sqlx (sqlx)</summary> ### [`v0.8.1`](https://togithub.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#081---2024-08-23) [Compare Source](https://togithub.com/launchbadge/sqlx/compare/v0.8.0...v0.8.1) 16 pull requests were merged this release cycle. This release contains a fix for [RUSTSEC-2024-0363]. Postgres users are advised to upgrade ASAP as a possible exploit has been demonstrated: [#​3440 (comment)](https://togithub.com/launchbadge/sqlx/issues/3440#issuecomment-2307956901) MySQL and SQLite do not *appear* to be exploitable, but upgrading is recommended nonetheless. ##### Added - \[[#​3421]]: correct spelling of `MySqlConnectOptions::no_engine_substitution()` \[\[[@​kolinfluence](https://togithub.com/kolinfluence)]] - Deprecates `MySqlConnectOptions::no_engine_subsitution()` (oops) in favor of the correctly spelled version. ##### Changed - \[[#​3376]]: doc: hide `spec_error` module \[\[[@​abonander](https://togithub.com/abonander)]] - This is a helper module for the macros and was not meant to be exposed. - It is not expected to receive any breaking changes for the 0.8.x release, but is not designed as a public API. Use at your own risk. - \[[#​3382]]: feat: bumped to `libsqlite3-sys=0.30.1` to support sqlite 3.46 \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3385]]: chore(examples):Migrated the pg-chat example to ratatui \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3399]]: Upgrade to rustls 0.23 \[\[[@​djc](https://togithub.com/djc)]] - RusTLS now has pluggable cryptography providers: `ring` (the existing implementation), and `aws-lc-rs` which has optional FIPS certification. - The existing features activating RusTLS (`runtime-tokio-rustls`, `runtime-async-std-rustls`, `tls-rustls`) enable the `ring` provider of RusTLS to match the existing behavior so this *should not* be a breaking change. - Switch to the `tls-rustls-aws-lc-rs` feature to use the `aws-lc-rs` provider. - If using `runtime-tokio-rustls` or `runtime-async-std-rustls`, this will necessitate switching to the appropriate non-legacy runtime feature: `runtime-tokio` or `runtime-async-std` - See the RusTLS README for more details: <https://github.com/rustls/rustls?tab=readme-ov-file#cryptography-providers> ##### Fixed - \[[#​2786]]: fix(sqlx-cli): do not clean sqlx during prepare \[\[[@​cycraig](https://togithub.com/cycraig)]] - \[[#​3354]]: sqlite: fix inconsistent read-after-write \[\[[@​ckampfe](https://togithub.com/ckampfe)]] - \[[#​3371]]: Fix encoding and decoding of MySQL enums in `sqlx::Type` \[\[[@​alu](https://togithub.com/alu)]] - \[[#​3374]]: fix: usage of `node12` in `SQLx` action \[\[[@​hamirmahal](https://togithub.com/hamirmahal)]] - \[[#​3380]]: chore: replace structopt with clap in examples \[\[[@​tottoto](https://togithub.com/tottoto)]] - \[[#​3381]]: Fix CI after Rust 1.80, remove dead feature references \[\[[@​abonander](https://togithub.com/abonander)]] - \[[#​3384]]: chore(tests): fixed deprecation warnings \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3386]]: fix(dependencys):bumped cargo_metadata to `v0.18.1` to avoid yanked `v0.14.3` \[\[[@​CommanderStorm](https://togithub.com/CommanderStorm)]] - \[[#​3389]]: fix(cli): typo in error for required DB URL \[\[[@​ods](https://togithub.com/ods)]] - \[[#​3417]]: Update version to 0.8 in README \[\[[@​soucosmo](https://togithub.com/soucosmo)]] - \[[#​3441]]: fix: audit protocol handling \[\[[@​abonander](https://togithub.com/abonander)]] - This addresses [RUSTSEC-2024-0363] and includes regression tests for MySQL, Postgres and SQLite. [#​2786]: https://togithub.com/launchbadge/sqlx/pull/2786 [#​3354]: https://togithub.com/launchbadge/sqlx/pull/3354 [#​3371]: https://togithub.com/launchbadge/sqlx/pull/3371 [#​3374]: https://togithub.com/launchbadge/sqlx/pull/3374 [#​3376]: https://togithub.com/launchbadge/sqlx/pull/3376 [#​3380]: https://togithub.com/launchbadge/sqlx/pull/3380 [#​3381]: https://togithub.com/launchbadge/sqlx/pull/3381 [#​3382]: https://togithub.com/launchbadge/sqlx/pull/3382 [#​3384]: https://togithub.com/launchbadge/sqlx/pull/3384 [#​3385]: https://togithub.com/launchbadge/sqlx/pull/3385 [#​3386]: https://togithub.com/launchbadge/sqlx/pull/3386 [#​3389]: https://togithub.com/launchbadge/sqlx/pull/3389 [#​3399]: https://togithub.com/launchbadge/sqlx/pull/3399 [#​3417]: https://togithub.com/launchbadge/sqlx/pull/3417 [#​3421]: https://togithub.com/launchbadge/sqlx/pull/3421 [#​3441]: https://togithub.com/launchbadge/sqlx/pull/3441 [RUSTSEC-2024-0363]: https://rustsec.org/advisories/RUSTSEC-2024-0363.html </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
df883a4803 |
docs: Link to docs for individual settings from "Configuring Languages" (#17082)
This PR updates the "Configuring Languages" page to link to the docs for individual settings when it mentions them. <img width="770" alt="Screenshot 2024-08-29 at 8 30 35 AM" src="https://github.com/user-attachments/assets/7b593aed-86b7-4b20-a141-6cd51be005d9"> Release Notes: - N/A |
||
|
|
cf0a8a7a1a |
context_servers: Add ability to provide labels for prompt outputs (#17077)
Server can now include an optional description in a `prompts/get` response. Zed will displayed the description as label of the slash command. Release Notes: - context_servers: Servers can provide an optional description in `prompts/get` responses that is displayed as the slash command label. |
||
|
|
4b6cd60b89 |
Update extension docs link in CONTRIBUTING.md (#17074)
This follows up the changes at https://github.com/zed-industries/extensions/pull/1318 Should the rewording not be wanted, I can revert that. Release Notes: - N/A |
||
|
|
895b4148a5 | Revert "Improve Rust highlight queries (#16747)" (#17073) | ||
|
|
804d1997f2 |
image_viewer: Fix image view tab icon lost (#17063)
Closes #16989 Release Notes: - N/A |
||
|
|
64fa7a5234 |
Set *_font_fallbacks default to None (#16941)
In the current `default.json`, `*_font_fallbacks=[]`, which results in the `fallbacks` value in the `Font` struct always being `Some(...)`. This PR introduces the following improvements: 1. Changed `*_font_fallbacks = []` to `*_font_fallbacks = null` in `default.json`. 2. Enhanced the macOS and Windows implementations. Release Notes: - N/A |
||
|
|
6c8836ec21 |
Update Rust crate itertools to v0.13.0 (#17048)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [itertools](https://togithub.com/rust-itertools/itertools) | dependencies | minor | `0.10` -> `0.13` | | [itertools](https://togithub.com/rust-itertools/itertools) | workspace.dependencies | minor | `0.11.0` -> `0.13.0` | --- ### Release Notes <details> <summary>rust-itertools/itertools (itertools)</summary> ### [`v0.13.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0130) [Compare Source](https://togithub.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0) ##### Breaking - Removed implementation of `DoubleEndedIterator` for `ConsTuples` ([#​853](https://togithub.com/rust-itertools/itertools/issues/853)) - Made `MultiProduct` fused and fixed on an empty iterator ([#​835](https://togithub.com/rust-itertools/itertools/issues/835), [#​834](https://togithub.com/rust-itertools/itertools/issues/834)) - Changed `iproduct!` to return tuples for maxi one iterator too ([#​870](https://togithub.com/rust-itertools/itertools/issues/870)) - Changed `PutBack::put_back` to return the old value ([#​880](https://togithub.com/rust-itertools/itertools/issues/880)) - Removed deprecated `repeat_call, Itertools::{foreach, step, map_results, fold_results}` ([#​878](https://togithub.com/rust-itertools/itertools/issues/878)) - Removed `TakeWhileInclusive::new` ([#​912](https://togithub.com/rust-itertools/itertools/issues/912)) ##### Added - Added `Itertools::{smallest_by, smallest_by_key, largest, largest_by, largest_by_key}` ([#​654](https://togithub.com/rust-itertools/itertools/issues/654), [#​885](https://togithub.com/rust-itertools/itertools/issues/885)) - Added `Itertools::tail` ([#​899](https://togithub.com/rust-itertools/itertools/issues/899)) - Implemented `DoubleEndedIterator` for `ProcessResults` ([#​910](https://togithub.com/rust-itertools/itertools/issues/910)) - Implemented `Debug` for `FormatWith` ([#​931](https://togithub.com/rust-itertools/itertools/issues/931)) - Added `Itertools::get` ([#​891](https://togithub.com/rust-itertools/itertools/issues/891)) ##### Changed - Deprecated `Itertools::group_by` (renamed `chunk_by`) ([#​866](https://togithub.com/rust-itertools/itertools/issues/866), [#​879](https://togithub.com/rust-itertools/itertools/issues/879)) - Deprecated `unfold` (use `std::iter::from_fn` instead) ([#​871](https://togithub.com/rust-itertools/itertools/issues/871)) - Optimized `GroupingMapBy` ([#​873](https://togithub.com/rust-itertools/itertools/issues/873), [#​876](https://togithub.com/rust-itertools/itertools/issues/876)) - Relaxed `Fn` bounds to `FnMut` in `diff_with, Itertools::into_group_map_by` ([#​886](https://togithub.com/rust-itertools/itertools/issues/886)) - Relaxed `Debug/Clone` bounds for `MapInto` ([#​889](https://togithub.com/rust-itertools/itertools/issues/889)) - Documented the `use_alloc` feature ([#​887](https://togithub.com/rust-itertools/itertools/issues/887)) - Optimized `Itertools::set_from` ([#​888](https://togithub.com/rust-itertools/itertools/issues/888)) - Removed badges in `README.md` ([#​890](https://togithub.com/rust-itertools/itertools/issues/890)) - Added "no-std" categories in `Cargo.toml` ([#​894](https://togithub.com/rust-itertools/itertools/issues/894)) - Fixed `Itertools::k_smallest` on short unfused iterators ([#​900](https://togithub.com/rust-itertools/itertools/issues/900)) - Deprecated `Itertools::tree_fold1` (renamed `tree_reduce`) ([#​895](https://togithub.com/rust-itertools/itertools/issues/895)) - Deprecated `GroupingMap::fold_first` (renamed `reduce`) ([#​902](https://togithub.com/rust-itertools/itertools/issues/902)) - Fixed `Itertools::k_smallest(0)` to consume the iterator, optimized `Itertools::k_smallest(1)` ([#​909](https://togithub.com/rust-itertools/itertools/issues/909)) - Specialized `Combinations::nth` ([#​914](https://togithub.com/rust-itertools/itertools/issues/914)) - Specialized `MergeBy::fold` ([#​920](https://togithub.com/rust-itertools/itertools/issues/920)) - Specialized `CombinationsWithReplacement::nth` ([#​923](https://togithub.com/rust-itertools/itertools/issues/923)) - Specialized `FlattenOk::{fold, rfold}` ([#​927](https://togithub.com/rust-itertools/itertools/issues/927)) - Specialized `Powerset::nth` ([#​924](https://togithub.com/rust-itertools/itertools/issues/924)) - Documentation fixes ([#​882](https://togithub.com/rust-itertools/itertools/issues/882), [#​936](https://togithub.com/rust-itertools/itertools/issues/936)) - Fixed `assert_equal` for iterators longer than `i32::MAX` ([#​932](https://togithub.com/rust-itertools/itertools/issues/932)) - Updated the `must_use` message of non-lazy `KMergeBy` and `TupleCombinations` ([#​939](https://togithub.com/rust-itertools/itertools/issues/939)) ##### Notable Internal Changes - Tested iterator laziness ([#​792](https://togithub.com/rust-itertools/itertools/issues/792)) - Created `CONTRIBUTING.md` ([#​767](https://togithub.com/rust-itertools/itertools/issues/767)) ### [`v0.12.1`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0121) [Compare Source](https://togithub.com/rust-itertools/itertools/compare/v0.12.0...v0.12.1) ##### Added - Documented iteration order guarantee for `Itertools::[tuple_]combinations` ([#​822](https://togithub.com/rust-itertools/itertools/issues/822)) - Documented possible panic in `iterate` ([#​842](https://togithub.com/rust-itertools/itertools/issues/842)) - Implemented `Clone` and `Debug` for `Diff` ([#​845](https://togithub.com/rust-itertools/itertools/issues/845)) - Implemented `Debug` for `WithPosition` ([#​859](https://togithub.com/rust-itertools/itertools/issues/859)) - Implemented `Eq` for `MinMaxResult` ([#​838](https://togithub.com/rust-itertools/itertools/issues/838)) - Implemented `From<EitherOrBoth<A, B>>` for `Option<Either<A, B>>` ([#​843](https://togithub.com/rust-itertools/itertools/issues/843)) - Implemented `PeekingNext` for `RepeatN` ([#​855](https://togithub.com/rust-itertools/itertools/issues/855)) ##### Changed - Made `CoalesceBy` lazy ([#​801](https://togithub.com/rust-itertools/itertools/issues/801)) - Optimized `Filter[Map]Ok::next`, `Itertools::partition`, `Unique[By]::next[_back]` ([#​818](https://togithub.com/rust-itertools/itertools/issues/818)) - Optimized `Itertools::find_position` ([#​837](https://togithub.com/rust-itertools/itertools/issues/837)) - Optimized `Positions::next[_back]` ([#​816](https://togithub.com/rust-itertools/itertools/issues/816)) - Optimized `ZipLongest::fold` ([#​854](https://togithub.com/rust-itertools/itertools/issues/854)) - Relaxed `Debug` bounds for `GroupingMapBy` ([#​860](https://togithub.com/rust-itertools/itertools/issues/860)) - Specialized `ExactlyOneError::fold` ([#​826](https://togithub.com/rust-itertools/itertools/issues/826)) - Specialized `Interleave[Shortest]::fold` ([#​849](https://togithub.com/rust-itertools/itertools/issues/849)) - Specialized `MultiPeek::fold` ([#​820](https://togithub.com/rust-itertools/itertools/issues/820)) - Specialized `PadUsing::[r]fold` ([#​825](https://togithub.com/rust-itertools/itertools/issues/825)) - Specialized `PeekNth::fold` ([#​824](https://togithub.com/rust-itertools/itertools/issues/824)) - Specialized `Positions::[r]fold` ([#​813](https://togithub.com/rust-itertools/itertools/issues/813)) - Specialized `PutBackN::fold` ([#​823](https://togithub.com/rust-itertools/itertools/issues/823)) - Specialized `RepeatN::[r]fold` ([#​821](https://togithub.com/rust-itertools/itertools/issues/821)) - Specialized `TakeWhileInclusive::fold` ([#​851](https://togithub.com/rust-itertools/itertools/issues/851)) - Specialized `ZipLongest::rfold` ([#​848](https://togithub.com/rust-itertools/itertools/issues/848)) ##### Notable Internal Changes - Added test coverage in CI ([#​847](https://togithub.com/rust-itertools/itertools/issues/847), [#​856](https://togithub.com/rust-itertools/itertools/issues/856)) - Added semver check in CI ([#​784](https://togithub.com/rust-itertools/itertools/issues/784)) - Enforced `clippy` in CI ([#​740](https://togithub.com/rust-itertools/itertools/issues/740)) - Enforced `rustdoc` in CI ([#​840](https://togithub.com/rust-itertools/itertools/issues/840)) - Improved specialization tests ([#​807](https://togithub.com/rust-itertools/itertools/issues/807)) - More specialization benchmarks ([#​806](https://togithub.com/rust-itertools/itertools/issues/806)) ### [`v0.12.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0120) [Compare Source](https://togithub.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0) ##### Breaking - Made `take_while_inclusive` consume iterator by value ([#​709](https://togithub.com/rust-itertools/itertools/issues/709)) - Added `Clone` bound to `Unique` ([#​777](https://togithub.com/rust-itertools/itertools/issues/777)) ##### Added - Added `Itertools::try_len` ([#​723](https://togithub.com/rust-itertools/itertools/issues/723)) - Added free function `sort_unstable` ([#​796](https://togithub.com/rust-itertools/itertools/issues/796)) - Added `GroupMap::fold_with` ([#​778](https://togithub.com/rust-itertools/itertools/issues/778), [#​785](https://togithub.com/rust-itertools/itertools/issues/785)) - Added `PeekNth::{peek_mut, peek_nth_mut}` ([#​716](https://togithub.com/rust-itertools/itertools/issues/716)) - Added `PeekNth::{next_if, next_if_eq}` ([#​734](https://togithub.com/rust-itertools/itertools/issues/734)) - Added conversion into `(Option<A>,Option<B>)` to `EitherOrBoth` ([#​713](https://togithub.com/rust-itertools/itertools/issues/713)) - Added conversion from `Either<A, B>` to `EitherOrBoth<A, B>` ([#​715](https://togithub.com/rust-itertools/itertools/issues/715)) - Implemented `ExactSizeIterator` for `Tuples` ([#​761](https://togithub.com/rust-itertools/itertools/issues/761)) - Implemented `ExactSizeIterator` for `(Circular)TupleWindows` ([#​752](https://togithub.com/rust-itertools/itertools/issues/752)) - Made `EitherOrBoth<T>` a shorthand for `EitherOrBoth<T, T>` ([#​719](https://togithub.com/rust-itertools/itertools/issues/719)) ##### Changed - Added missing `#[must_use]` annotations on iterator adaptors ([#​794](https://togithub.com/rust-itertools/itertools/issues/794)) - Made `Combinations` lazy ([#​795](https://togithub.com/rust-itertools/itertools/issues/795)) - Made `Intersperse(With)` lazy ([#​797](https://togithub.com/rust-itertools/itertools/issues/797)) - Made `Permutations` lazy ([#​793](https://togithub.com/rust-itertools/itertools/issues/793)) - Made `Product` lazy ([#​800](https://togithub.com/rust-itertools/itertools/issues/800)) - Made `TupleWindows` lazy ([#​602](https://togithub.com/rust-itertools/itertools/issues/602)) - Specialized `Combinations::{count, size_hint}` ([#​729](https://togithub.com/rust-itertools/itertools/issues/729)) - Specialized `CombinationsWithReplacement::{count, size_hint}` ([#​737](https://togithub.com/rust-itertools/itertools/issues/737)) - Specialized `Powerset::fold` ([#​765](https://togithub.com/rust-itertools/itertools/issues/765)) - Specialized `Powerset::count` ([#​735](https://togithub.com/rust-itertools/itertools/issues/735)) - Specialized `TupleCombinations::{count, size_hint}` ([#​763](https://togithub.com/rust-itertools/itertools/issues/763)) - Specialized `TupleCombinations::fold` ([#​775](https://togithub.com/rust-itertools/itertools/issues/775)) - Specialized `WhileSome::fold` ([#​780](https://togithub.com/rust-itertools/itertools/issues/780)) - Specialized `WithPosition::fold` ([#​772](https://togithub.com/rust-itertools/itertools/issues/772)) - Specialized `ZipLongest::fold` ([#​774](https://togithub.com/rust-itertools/itertools/issues/774)) - Changed `{min, max}_set*` operations require `alloc` feature, instead of `std` ([#​760](https://togithub.com/rust-itertools/itertools/issues/760)) - Improved documentation of `tree_fold1` ([#​787](https://togithub.com/rust-itertools/itertools/issues/787)) - Improved documentation of `permutations` ([#​724](https://togithub.com/rust-itertools/itertools/issues/724)) - Fixed typo in documentation of `multiunzip` ([#​770](https://togithub.com/rust-itertools/itertools/issues/770)) ##### Notable Internal Changes - Improved specialization tests ([#​799](https://togithub.com/rust-itertools/itertools/issues/799), [#​786](https://togithub.com/rust-itertools/itertools/issues/786), [#​782](https://togithub.com/rust-itertools/itertools/issues/782)) - Simplified implementation of `Permutations` ([#​739](https://togithub.com/rust-itertools/itertools/issues/739), [#​748](https://togithub.com/rust-itertools/itertools/issues/748), [#​790](https://togithub.com/rust-itertools/itertools/issues/790)) - Combined `Merge`/`MergeBy`/`MergeJoinBy` implementations ([#​736](https://togithub.com/rust-itertools/itertools/issues/736)) - Simplified `Permutations::size_hint` ([#​739](https://togithub.com/rust-itertools/itertools/issues/739)) - Fix wrapping arithmetic in benchmarks ([#​770](https://togithub.com/rust-itertools/itertools/issues/770)) - Enforced `rustfmt` in CI ([#​751](https://togithub.com/rust-itertools/itertools/issues/751)) - Disallowed compile warnings in CI ([#​720](https://togithub.com/rust-itertools/itertools/issues/720)) - Used `cargo hack` to check MSRV ([#​754](https://togithub.com/rust-itertools/itertools/issues/754)) ### [`v0.11.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0110) [Compare Source](https://togithub.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0) ##### Breaking - Make `Itertools::merge_join_by` also accept functions returning bool ([#​704](https://togithub.com/rust-itertools/itertools/issues/704)) - Implement `PeekingNext` transitively over mutable references ([#​643](https://togithub.com/rust-itertools/itertools/issues/643)) - Change `with_position` to yield `(Position, Item)` instead of `Position<Item>` ([#​699](https://togithub.com/rust-itertools/itertools/issues/699)) ##### Added - Add `Itertools::take_while_inclusive` ([#​616](https://togithub.com/rust-itertools/itertools/issues/616)) - Implement `PeekingNext` for `PeekingTakeWhile` ([#​644](https://togithub.com/rust-itertools/itertools/issues/644)) - Add `EitherOrBoth::{just_left, just_right, into_left, into_right, as_deref, as_deref_mut, left_or_insert, right_or_insert, left_or_insert_with, right_or_insert_with, insert_left, insert_right, insert_both}` ([#​629](https://togithub.com/rust-itertools/itertools/issues/629)) - Implement `Clone` for `CircularTupleWindows` ([#​686](https://togithub.com/rust-itertools/itertools/issues/686)) - Implement `Clone` for `Chunks` ([#​683](https://togithub.com/rust-itertools/itertools/issues/683)) - Add `Itertools::process_results` ([#​680](https://togithub.com/rust-itertools/itertools/issues/680)) ##### Changed - Use `Cell` instead of `RefCell` in `Format` and `FormatWith` ([#​608](https://togithub.com/rust-itertools/itertools/issues/608)) - CI tweaks ([#​674](https://togithub.com/rust-itertools/itertools/issues/674), [#​675](https://togithub.com/rust-itertools/itertools/issues/675)) - Document and test the difference between stable and unstable sorts ([#​653](https://togithub.com/rust-itertools/itertools/issues/653)) - Fix documentation error on `Itertools::max_set_by_key` ([#​692](https://togithub.com/rust-itertools/itertools/issues/692)) - Move MSRV metadata to `Cargo.toml` ([#​672](https://togithub.com/rust-itertools/itertools/issues/672)) - Implement `equal` with `Iterator::eq` ([#​591](https://togithub.com/rust-itertools/itertools/issues/591)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Mikayla <mikayla@zed.dev> |
||
|
|
5d5ae1ec6f |
Update Rust crate bindgen to 0.70.0 (#17024)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [bindgen](https://rust-lang.github.io/rust-bindgen/) ([source](https://togithub.com/rust-lang/rust-bindgen)) | build-dependencies | minor | `0.65.1` -> `0.70.0` | --- ### Release Notes <details> <summary>rust-lang/rust-bindgen (bindgen)</summary> ### [`v0.70.1`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0701-2024-08-20) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.70.0...v0.70.1) #### Added #### Changed #### Removed #### Fixed - Fix regression where the `const` layout tests were triggering the `unnecessary_operation` and `identity_op` clippy warnings. #### Security ### [`v0.70.0`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0700-2024-08-16) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.69.4...v0.70.0) #### Added - Add target mappings for riscv64imac and riscv32imafc. - Add a complex macro fallback API ([#​2779](https://togithub.com/rust-lang/rust-bindgen/issues/2779)). - Add option to use DST structs for flexible arrays (--flexarray-dst, [#​2772](https://togithub.com/rust-lang/rust-bindgen/issues/2772)). - Add option to dynamically load variables ([#​2812](https://togithub.com/rust-lang/rust-bindgen/issues/2812)). - Add option in CLI to use rustified non-exhaustive enums (--rustified-non-exhaustive-enum, [#​2847](https://togithub.com/rust-lang/rust-bindgen/issues/2847)). #### Changed - Remove which and lazy-static dependencies ([#​2809](https://togithub.com/rust-lang/rust-bindgen/issues/2809), [#​2817](https://togithub.com/rust-lang/rust-bindgen/issues/2817)). - Generate compile-time layout tests ([#​2787](https://togithub.com/rust-lang/rust-bindgen/issues/2787)). - Print `bindgen-cli` errors to stderr instead of stdout ([#​2840](https://togithub.com/rust-lang/rust-bindgen/issues/2840)) #### Removed #### Fixed - Fix `--formatter=prettyplease` not working in `bindgen-cli` by adding `prettyplease` feature and enabling it by default for `bindgen-cli` ([#​2789](https://togithub.com/rust-lang/rust-bindgen/issues/2789)) . - Fix `--allowlist-item` so anonymous enums are no longer ignored ([#​2827](https://togithub.com/rust-lang/rust-bindgen/issues/2827)). - Use clang_getFileLocation instead of clang_getSpellingLocation to fix clang-trunk ([#​2824](https://togithub.com/rust-lang/rust-bindgen/issues/2824)). - Fix generated constants: `f64::INFINITY`, `f64::NEG_ INFINITY`, `f64::NAN` ([#​2854](https://togithub.com/rust-lang/rust-bindgen/issues/2854)). #### Security - Update `tempfile` and `rustix` due to [GHSA-c827-hfw6-qwvm](https://togithub.com/advisories/GHSA-c827-hfw6-qwvm). ### [`v0.69.4`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0694-2024-02-04) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.69.3...v0.69.4) #### Added #### Changed - Allow older itertools. ([#​2745](https://togithub.com/rust-lang/rust-bindgen/issues/2745)) #### Removed #### Fixed #### Security ### [`v0.69.3`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0693-2024-02-04) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.69.2...v0.69.3) #### Added - Added blocklist_var ([#​2731](https://togithub.com/rust-lang/rust-bindgen/issues/2731)) - Stabilized thiscall_abi ([#​2661](https://togithub.com/rust-lang/rust-bindgen/issues/2661)) #### Changed - Use CR consistently on windows ([#​2698](https://togithub.com/rust-lang/rust-bindgen/issues/2698)) - Replaced peeking_take_while by itertools ([#​2724](https://togithub.com/rust-lang/rust-bindgen/issues/2724)) #### Removed #### Fixed - Try to avoid repr(packed) for explicitly aligned types when not needed ([#​2734](https://togithub.com/rust-lang/rust-bindgen/issues/2734)) - Improved destructor handling on Windows ([#​2663](https://togithub.com/rust-lang/rust-bindgen/issues/2663)) - Support Float16 ([#​2667](https://togithub.com/rust-lang/rust-bindgen/issues/2667)) - Fix alignment contribution from bitfields ([#​2680](https://togithub.com/rust-lang/rust-bindgen/issues/2680)) - Fixed msrv build. #### Security - Updated shlex dependency (RUSTSEC-2024-0006) ### [`v0.69.2`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0692-2024-01-13) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.69.1...v0.69.2) #### Added #### Changed #### Removed #### Fixed - Fixed generation of extern "C" blocks with llvm 18+. See [#​2689](https://togithub.com/rust-lang/rust-bindgen/issues/2689). #### Security ### [`v0.69.1`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0691-2023-11-02) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.69.0...v0.69.1) #### Fixed - Allow to run `bindgen -v` without an input header argument. ### [`v0.69.0`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0690-2023-11-01) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.68.1...v0.69.0) #### Added - Added the `ParseCallbacks::header_file` callback which runs on every filename passed to `Builder::header`. - Added the `CargoCallbacks::new` constructor which emits a cargo-rerun line for every input header file by default. - Added the `CargoCallbacks::rerun_on_header_files` method to configure whether a cargo-rerun line should be emitted for every input header file. #### Changed - The `--wrap-static-fns` feature was updated so function types that has no argument use `void` as its sole argument. - `CargoCallbacks` is no longer a [unit-like struct](https://doc.rust-lang.org/reference/items/structs.html) and the `CargoCallbacks` constant was added to mitigate the breaking nature of this change. This constant has been marked as deprecated and users will have to use the new `CargoCallbacks::new` method in the future. #### Removed #### Fixed - Allow compiling `bindgen-cli` with a static libclang. - Emit an opaque integer type for pointer types that don't have the same size as the target's pointer size. - Avoid escaping Objective-C method names unless they are `Self`, `self`, `crate` or `super`. #### Security ### [`v0.68.1`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0681) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.68.0...v0.68.1) #### Fixed - Fixed errors on the windows artifact build process. ### [`v0.68.0`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0680) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.66.1...v0.68.0) #### Added - The `system` ABI is now supported as an option for the `--override-abi` flag. - The `allowlist_item` method and the `--allowlist-item` flag have been included to filter items regardless or their kind. - Include installers as release artifacts on Github. #### Changed - The `Clone` implementation for `_BindgenUnionField` has been changed to pass the `incorrect_clone_impl_on_copy_type` Clippy lint. - The `c_unwind` ABI can be used without a feature gate for any Rust target version equal to or greater than 1.71. This comes as a result of the ABI being stabilised (in Rust 1.71). - Formatting changes when using prettyplease as a formatter due to a new prettyplease version. - Avoid generating invalid `CStr` constants when using the `--generate-cstr` option. #### Removed - The `extra_assert` and `extra_assert_eq` macros are no longer exported. #### Fixed - Bindgen no longer panics when parsing an objective-C header that includes a Rust keyword that cannot be a raw identifier, such as: `self`, `crate`, `super` or `Self`. ### [`v0.66.1`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0661) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.66.0...v0.66.1) #### Removed - Revert source order sorting ([#​2543](https://togithub.com/rust-lang/rust-bindgen/issues/2543)) due to correctness regressions [#​2558](https://togithub.com/rust-lang/rust-bindgen/issues/2558). ### [`v0.66.0`](https://togithub.com/rust-lang/rust-bindgen/blob/HEAD/CHANGELOG.md#0660) [Compare Source](https://togithub.com/rust-lang/rust-bindgen/compare/v0.65.1...v0.66.0) #### Added - Added the `--generate-cstr` CLI flag to generate string constants as `&CStr` instead of `&[u8]`. (Requires Rust 1.59 or higher.) - Added the `--generate-shell-completions` CLI flag to generate completions for different shells. - The `--wrap-static-fns` option can now wrap `va_list` functions as variadic functions with the experimental `ParseCallbacks::wrap_as_variadic_fn` method. - Add target mappings for riscv32imc and riscv32imac. - Add the `ParseCallbacks::field_visibility` method to modify field visibility. #### Changed - Non-UTF-8 string constants are now generated as references (`&[u8; SIZE]`) instead of arrays (`[u8; SIZE]`) to match UTF-8 strings. - Wrappers for static functions that return `void` no longer contain a `return` statement and only call the static function instead. - The `--wrap-static-fns` option no longer emits wrappers for static variadic functions. - Depfiles generated with `--depfile` or `Builder::depfile` will now properly generate module names and paths that include spaces by escaping them. To make the escaping clear and consistent, backslashes are also escaped. - Updated `bitflags` dependency to 2.2.1. This changes the API of `CodegenConfig`. - Prettyplease formatting is gated by an optional, enabled by default Cargo feature when depending on `bindgen` as a library. - Items are now parsed in the order they appear in source files. This may result in auto-generated `_bindgen_*` names having a different index. - Use default visibility for padding fields: Previously, padding fields were always public. Now, they follow the default visibility for the type they are in. - Compute visibility of bitfield unit based on actual field visibility: A bitfield unit field and its related functions now have their visibility determined based on the most private between the default visibility and the actual visibility of the bitfields within the unit. #### Removed - Remove redundant Cargo features, which were all implicit: - bindgen-cli: `env_logger` and `log` removed in favor of `logging` - bindgen (lib): - `log` removed in favor of `logging` - `which` removed in favor of `which-logging` - `annotate-snippets` removed in favor of `experimental` - Prettyplease is available as a `Formatter` variant now. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Mikayla <mikayla@zed.dev> |