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

no_std support for form_urlencoded, data-url and idna #722

Merged
merged 6 commits into from
Apr 2, 2023

Conversation

madsmtm
Copy link
Contributor

@madsmtm madsmtm commented Oct 5, 2021

Split out from #717.

no_std support for url is going to take more effort, but we can start with this.

The builds (if they were run) are failing because of servo/unicode-bidi#63 Fixed.

@madsmtm
Copy link
Contributor Author

madsmtm commented Oct 8, 2021

The linked unicode-bidi issue has been merged and a new version released, so this PR should be ready

@bors-servo
Copy link
Contributor

☔ The latest upstream changes (presumably #755) made this pull request unmergeable. Please resolve the merge conflicts.

@madsmtm madsmtm force-pushed the partial_no_std branch 2 times, most recently from 6853f7f to 97221bd Compare February 17, 2022 13:12
@codecov-commenter
Copy link

codecov-commenter commented Feb 17, 2022

Codecov Report

Patch coverage has no change and project coverage change: -0.03 ⚠️

Comparison is base (edeaea7) 82.74% compared to head (4afc982) 82.71%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #722      +/-   ##
==========================================
- Coverage   82.74%   82.71%   -0.03%     
==========================================
  Files          20       20              
  Lines        3303     3339      +36     
==========================================
+ Hits         2733     2762      +29     
- Misses        570      577       +7     
Impacted Files Coverage Δ
data-url/src/forgiving_base64.rs 87.23% <ø> (ø)
data-url/src/lib.rs 83.47% <ø> (ø)
data-url/src/mime.rs 94.87% <ø> (ø)
form_urlencoded/src/lib.rs 68.65% <ø> (ø)
idna/src/lib.rs 66.66% <ø> (ø)
idna/src/punycode.rs 85.00% <ø> (ø)
idna/src/uts46.rs 94.17% <ø> (ø)
percent_encoding/src/lib.rs 59.83% <ø> (ø)

... and 5 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@MathiasKoch
Copy link

Small ping on this

@bors-servo
Copy link
Contributor

☔ The latest upstream changes (presumably #783) made this pull request unmergeable. Please resolve the merge conflicts.

@madsmtm madsmtm force-pushed the partial_no_std branch 5 times, most recently from 0c1df5f to 4169865 Compare February 21, 2023 05:42
Copy link
Contributor Author

@madsmtm madsmtm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that I've added required features to the default list, which is not outlined in cargo's SemVer Compatibility document, but would probably constitute as a "possibly-breaking change".

Specifically, if a user specified default-features = false, their crate would now fail to build until they also specified features = ["alloc"]. Note that they would not have a reason to disable default features, since there were no default features; but they might still have done it, hence why it could be considered a breaking change.
So I wrote a script to check this for all crates on crates.io, and the crates that would be affected are the following (all relying on form_urlencoded):

If we want to avoid breaking those, I could either open PRs for those projects to fix it, or I could change form_urlencoded such that specifying default-features = false actually means specifying features = ["alloc"] (though that would prevent us from making it no_alloc in the future) EDIT: I have opened PRs for all three projects, see above.

Though I would like some confirmation from the maintainers (@valenting?) that this is a desired change and approach before working further on this.

Comment on lines +19 to +21
// For forwards compatibility
#[cfg(feature = "std")]
extern crate std as _;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To expand on this: We include it to force no_std users to disable the std feature (since otherwise their program won't compile). This ensures that if we in the future want to add something that relies on std, we can.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you explain how that works? Or point me to a resource that does that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we didn't have this line, a user could add a dependency on data-url on a platform like the Arduino, and since we've specified #![no_std] in the crate, compilation will succeed, even though the std feature is enabled.

Let's say that in the future, we wanted to add an error type to this crate, and have it implement std::error::Error. To do so, we'd have to introduce a #[cfg(feature = "std")] extern crate std;. But since the hypothetical Arduino user didn't specify default-features = false, their crate would now fail to build.

With this line in place to begin with, we know the user has specified default-features = false to even compile the library.

For reference, the error looks something like this (can be simulated with -Zbuild-std=core,alloc):

error[E0463]: can't find crate for `std`
 --> data-url/src/lib.rs:21:1
  |
  | extern crate std as _;
  | ^^^^^^^^^^^^^^^^^^^^^^ can't find crate
  |

Did that clear it up? Or do you want me to try explaining it in a different way? Unfortunately, I haven't found many resources for "building Rust libraries that work well with no_std", so I can't really link to a blog post or something explaining the details, this is mostly figured out by trial and error :/

@valenting
Copy link
Collaborator

Sorry for the delayed response.

Thank you for looking into which crates would be broken by this change.
I assume there might also be non-public projects that might break, but there's not much we can do about those.
I think this is the right approach, though I don't have a lot of experience with no_std support.

Please fix the remaining CI issues - I think we can merge after that.

@lucacasonato
Copy link
Collaborator

Also don't have much experience with no_std - the code change looks correct though. Let's land once green.

madsmtm added a commit to madsmtm/did_url that referenced this pull request Mar 1, 2023
In servo/rust-url#722, we would like to make the crate potentially not need `alloc` in the future, but to do so, we must now introduce a required `alloc` feature.

Since this crate uses `default-features = false` on `form_urlencoded` (which previously did nothing), it will break once that change lands.
madsmtm added a commit to madsmtm/identity.rs that referenced this pull request Mar 1, 2023
In servo/rust-url#722, we would like to make the crate potentially not need `alloc` in the future, but to do so, we must now introduce a required `alloc` feature.

Since this crate uses `default-features = false` on `form_urlencoded` (which previously did nothing), it will break once that change lands.

Also requires l1h3r/did_url#2 to land (since this crate depends on `did_url`).
madsmtm added a commit to madsmtm/bk-rs-facebook-rs that referenced this pull request Mar 1, 2023
In servo/rust-url#722, we would like to make the crate potentially not need `alloc` in the future, but to do so, we must now introduce a required `alloc` feature.

Since the `facebook-fb-login-deauth-callback` uses `default-features = false` on `form_urlencoded` (which previously did nothing), it will break once that change lands.
@madsmtm
Copy link
Contributor Author

madsmtm commented Mar 1, 2023

I've fixed the CI (I think) and opened PRs for the known affected projects.

Tip: If you want to avoid having to click the "approve workflow" button all the time, you can change the default in the repository settings.

@OverOrion
Copy link

Thank you very much for your work @madsmtm!

This PR seems to be almost ready to be merged. I can see that there is one CI check failure, is there anything we could do to help with it? @valenting

Copy link
Collaborator

@lucacasonato lucacasonato left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One minor nit, but LGTM - thanks for working on this. I hope we'll be able to better support no_std going forward.

idna/src/lib.rs Outdated Show resolved Hide resolved
data-url/src/lib.rs Outdated Show resolved Hide resolved
@madsmtm
Copy link
Contributor Author

madsmtm commented Apr 1, 2023

I can see that there is one CI check failure, is there anything we could do to help with it?

Not sure about that one, it's a coverage check that has regressed very, very slightly, in a file that I haven't modified, so it may just be spurious?

Copy link
Collaborator

@valenting valenting left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Thank you for all the good work.

@valenting valenting merged commit 6385c81 into servo:master Apr 2, 2023
@madsmtm madsmtm deleted the partial_no_std branch April 3, 2023 16:13
o0Ignition0o referenced this pull request in apollographql/router Jun 13, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing |
Confidence |
|---|---|---|---|---|---|---|---|
| [clap](https://github.com/clap-rs/clap) | dependencies | patch |
`4.3.0` -> `4.3.3` |
[![age](https://badges.renovateapi.com/packages/crate/clap/4.3.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/clap/4.3.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/clap/4.3.3/compatibility-slim/4.3.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/clap/4.3.3/confidence-slim/4.3.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [dd-trace](https://github.com/DataDog/dd-trace-js) | dependencies |
minor | [`3.21.0` ->
`3.22.1`](https://renovatebot.com/diffs/npm/dd-trace/3.21.0/3.22.1) |
[![age](https://badges.renovateapi.com/packages/npm/dd-trace/3.22.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/dd-trace/3.22.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/dd-trace/3.22.1/compatibility-slim/3.21.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/dd-trace/3.22.1/confidence-slim/3.21.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [flate2](https://github.com/rust-lang/flate2-rs) | dependencies |
patch | `1.0.24` -> `1.0.26` |
[![age](https://badges.renovateapi.com/packages/crate/flate2/1.0.26/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/flate2/1.0.26/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/flate2/1.0.26/compatibility-slim/1.0.24)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/flate2/1.0.26/confidence-slim/1.0.24)](https://docs.renovatebot.com/merge-confidence/)
|
| [once_cell](https://github.com/matklad/once_cell) | dev-dependencies
| minor | `1.17.2` -> `1.18.0` |
[![age](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/compatibility-slim/1.17.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/confidence-slim/1.17.2)](https://docs.renovatebot.com/merge-confidence/)
|
| [once_cell](https://github.com/matklad/once_cell) | dependencies |
minor | `1.17.2` -> `1.18.0` |
[![age](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/compatibility-slim/1.17.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/once_cell/1.18.0/confidence-slim/1.17.2)](https://docs.renovatebot.com/merge-confidence/)
|
| [regex](https://github.com/rust-lang/regex) | dependencies | patch |
`1.8.3` -> `1.8.4` |
[![age](https://badges.renovateapi.com/packages/crate/regex/1.8.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/regex/1.8.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/regex/1.8.4/compatibility-slim/1.8.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/regex/1.8.4/confidence-slim/1.8.3)](https://docs.renovatebot.com/merge-confidence/)
|
| [rust-embed](https://github.com/pyros2097/rust-embed) | dependencies
| minor | `6.6.1` -> `6.7.0` |
[![age](https://badges.renovateapi.com/packages/crate/rust-embed/6.7.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/rust-embed/6.7.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/rust-embed/6.7.0/compatibility-slim/6.6.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/rust-embed/6.7.0/confidence-slim/6.6.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [serde](https://serde.rs)
([source](https://github.com/serde-rs/serde)) | dependencies | patch |
`1.0.163` -> `1.0.164` |
[![age](https://badges.renovateapi.com/packages/crate/serde/1.0.164/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/serde/1.0.164/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/serde/1.0.164/compatibility-slim/1.0.163)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/serde/1.0.164/confidence-slim/1.0.163)](https://docs.renovatebot.com/merge-confidence/)
|
| [tempfile](https://stebalien.com/projects/tempfile-rs/)
([source](https://github.com/Stebalien/tempfile)) | dev-dependencies |
minor | `3.5.0` -> `3.6.0` |
[![age](https://badges.renovateapi.com/packages/crate/tempfile/3.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/tempfile/3.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/tempfile/3.6.0/compatibility-slim/3.5.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/tempfile/3.6.0/confidence-slim/3.5.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [typescript](https://www.typescriptlang.org/)
([source](https://github.com/Microsoft/TypeScript)) | devDependencies
| minor | [`5.0.4` ->
`5.1.3`](https://renovatebot.com/diffs/npm/typescript/5.0.4/5.1.3) |
[![age](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/compatibility-slim/5.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/confidence-slim/5.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
| [url](https://github.com/servo/rust-url) | dependencies | minor |
`2.3.1` -> `2.4.0` |
[![age](https://badges.renovateapi.com/packages/crate/url/2.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/url/2.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/url/2.4.0/compatibility-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/url/2.4.0/confidence-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>clap-rs/clap</summary>

###
[`v4.3.3`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;433---2023-06-09)

[Compare
Source](https://github.com/clap-rs/clap/compare/v4.3.2...v4.3.3)

##### Features

- `Command::defer` for delayed initialization of subcommands to reduce
startup times of large applications like deno

###
[`v4.3.2`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;432---2023-06-05)

[Compare
Source](https://github.com/clap-rs/clap/compare/v4.3.1...v4.3.2)

##### Fixes

- *(derive)* Don't produce `unused_equalifications` warnings when
someone brings a clap type into scope

###
[`v4.3.1`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#&#8203;431---2023-06-02)

[Compare
Source](https://github.com/clap-rs/clap/compare/v4.3.0...v4.3.1)

##### Performance

-   *(derive)* Reduce the amount of generated code

</details>

<details>
<summary>DataDog/dd-trace-js</summary>

###
[`v3.22.1`](https://github.com/DataDog/dd-trace-js/releases/tag/v3.22.1)

[Compare
Source](https://github.com/DataDog/dd-trace-js/compare/v3.22.0...v3.22.1)

##### Bug Fixes

- **pg**: do not throw when query contains getter
([#&#8203;3212](https://github.com/DataDog/dd-trace-js/issues/3212))
- **esbuild**: graceful continue when bundling dead code
([#&#8203;3215](https://github.com/DataDog/dd-trace-js/issues/3215))

##### Improvements

- **express**: improve express regex middleware path parsing
([#&#8203;3203](https://github.com/DataDog/dd-trace-js/issues/3203))
- **core**: include send-data missing headers and organize telemetry
config variables
([#&#8203;3055](https://github.com/DataDog/dd-trace-js/issues/3055))
- **ci**: add ability to create and publish .deb and .rpm packages
([#&#8203;3189](https://github.com/DataDog/dd-trace-js/issues/3189))

###
[`v3.22.0`](https://github.com/DataDog/dd-trace-js/releases/tag/v3.22.0):
3.22.0

[Compare
Source](https://github.com/DataDog/dd-trace-js/compare/v3.21.0...v3.22.0)

##### Features

- **waf:** Support RC custom rules
([#&#8203;3126](https://github.com/DataDog/dd-trace-js/issues/3126))
- **waf:** Update blocking page and status from RC
([#&#8203;3195](https://github.com/DataDog/dd-trace-js/issues/3195))
- **iast:** Detect SSRF vulnerabilities
([#&#8203;3115](https://github.com/DataDog/dd-trace-js/issues/3115))
- **iast:** Detect Insecure cookie vulnerabilities
([#&#8203;3184](https://github.com/DataDog/dd-trace-js/issues/3184))

##### Improvements

- **profiling:** Use process as default strategy for oom export
([#&#8203;3136](https://github.com/DataDog/dd-trace-js/issues/3136))
- **tracer:** Service Naming API
([#&#8203;3161](https://github.com/DataDog/dd-trace-js/issues/3161),
[#&#8203;2941](https://github.com/DataDog/dd-trace-js/issues/2941),
[#&#8203;2961](https://github.com/DataDog/dd-trace-js/issues/2961))
- **tracer:** Cache integrations - Service Naming
([#&#8203;3056](https://github.com/DataDog/dd-trace-js/issues/3056))
- **tracer:** More beautiful debug logs
([#&#8203;3171](https://github.com/DataDog/dd-trace-js/issues/3171))
- **tracer:** postgres: DBM full service fallback w/ prepared statements
([#&#8203;3186](https://github.com/DataDog/dd-trace-js/issues/3186))
- **tracer:** Make HTTP clients fit in the plugin hierarchy
([#&#8203;3178](https://github.com/DataDog/dd-trace-js/issues/3178))
- **ci-visibility:** Extract code coverage from cypress
([#&#8203;3159](https://github.com/DataDog/dd-trace-js/issues/3159))
- **ci-visibility:** Change gitlab's pipeline URL extraction
([#&#8203;3183](https://github.com/DataDog/dd-trace-js/issues/3183))
- **ci-visibility:** Test skipping logic for cypress
([#&#8203;3167](https://github.com/DataDog/dd-trace-js/issues/3167))
- **waf:** Update AppSec blocking templates
([#&#8203;3181](https://github.com/DataDog/dd-trace-js/issues/3181))
- **waf:** Update AppSec rules to 1.7.1
([#&#8203;3185](https://github.com/DataDog/dd-trace-js/issues/3185))
- **iast:** Detect SQL injection with sequelize
([#&#8203;3154](https://github.com/DataDog/dd-trace-js/issues/3154))

##### Bug Fixes

- **iast:** Fix evidence redaction
([#&#8203;3160](https://github.com/DataDog/dd-trace-js/issues/3160))
- **iast:** Fix path traversal vulnerability detection on close file
([#&#8203;3172](https://github.com/DataDog/dd-trace-js/issues/3172))
- **ci-visibility:** Fix cucumber parallel mode
([#&#8203;3156](https://github.com/DataDog/dd-trace-js/issues/3156))
- **ci-visibility:** Remove git.properties error log
([#&#8203;3179](https://github.com/DataDog/dd-trace-js/issues/3179))
- **ci-visibility:** Fix playwright@1.30.0
([#&#8203;3180](https://github.com/DataDog/dd-trace-js/issues/3180))
- **waf:** Fix ASM_DD batch update
([#&#8203;3165](https://github.com/DataDog/dd-trace-js/issues/3165))

</details>

<details>
<summary>rust-lang/flate2-rs</summary>

###
[`v1.0.26`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.26)

[Compare
Source](https://github.com/rust-lang/flate2-rs/compare/1.0.25...1.0.26)

#### What's Changed

- Add decompress file example by
[@&#8203;MichaelMcDonnell](https://github.com/MichaelMcDonnell) in
[https://github.com/rust-lang/flate2-rs/pull/329](https://github.com/rust-lang/flate2-rs/pull/329)
- Remove `extern crate`s by
[@&#8203;JohnTitor](https://github.com/JohnTitor) in
[https://github.com/rust-lang/flate2-rs/pull/331](https://github.com/rust-lang/flate2-rs/pull/331)
- Make clippy happy + a few more cleanups by
[@&#8203;nyurik](https://github.com/nyurik) in
[https://github.com/rust-lang/flate2-rs/pull/285](https://github.com/rust-lang/flate2-rs/pull/285)
- Fix left-overs on decoder docs by
[@&#8203;JohnTitor](https://github.com/JohnTitor) in
[https://github.com/rust-lang/flate2-rs/pull/333](https://github.com/rust-lang/flate2-rs/pull/333)
- Mention MSRV policy by
[@&#8203;JohnTitor](https://github.com/JohnTitor) in
[https://github.com/rust-lang/flate2-rs/pull/332](https://github.com/rust-lang/flate2-rs/pull/332)
- Bump miniz-oxide to prevent assertion failure by
[@&#8203;softdevca](https://github.com/softdevca) in
[https://github.com/rust-lang/flate2-rs/pull/335](https://github.com/rust-lang/flate2-rs/pull/335)
- Enable all-features, Use doc_auto_cfg on docs.rs by
[@&#8203;wcampbell0x2a](https://github.com/wcampbell0x2a) in
[https://github.com/rust-lang/flate2-rs/pull/336](https://github.com/rust-lang/flate2-rs/pull/336)
- Fix a typo in doc for write::GzDecoder by
[@&#8203;yestyle](https://github.com/yestyle) in
[https://github.com/rust-lang/flate2-rs/pull/337](https://github.com/rust-lang/flate2-rs/pull/337)
- Fixed overflow bug in crc combine by
[@&#8203;AntonJMLarsson](https://github.com/AntonJMLarsson) in
[https://github.com/rust-lang/flate2-rs/pull/330](https://github.com/rust-lang/flate2-rs/pull/330)
- Added feature for enabling default zlib-sys features by
[@&#8203;taco-paco](https://github.com/taco-paco) in
[https://github.com/rust-lang/flate2-rs/pull/322](https://github.com/rust-lang/flate2-rs/pull/322)
- Add write::MultiGzDecoder for multi-member gzip data by
[@&#8203;jongiddy](https://github.com/jongiddy) in
[https://github.com/rust-lang/flate2-rs/pull/325](https://github.com/rust-lang/flate2-rs/pull/325)
- gha: Upgrade to windows-2022 by
[@&#8203;JohnTitor](https://github.com/JohnTitor) in
[https://github.com/rust-lang/flate2-rs/pull/343](https://github.com/rust-lang/flate2-rs/pull/343)
- gha: Specify tag instead of branch on actions/checkout by
[@&#8203;JohnTitor](https://github.com/JohnTitor) in
[https://github.com/rust-lang/flate2-rs/pull/342](https://github.com/rust-lang/flate2-rs/pull/342)
- Prepare 1.0.26 release by
[@&#8203;JohnTitor](https://github.com/JohnTitor) in
[https://github.com/rust-lang/flate2-rs/pull/341](https://github.com/rust-lang/flate2-rs/pull/341)

#### New Contributors

- [@&#8203;MichaelMcDonnell](https://github.com/MichaelMcDonnell) made
their first contribution in
[https://github.com/rust-lang/flate2-rs/pull/329](https://github.com/rust-lang/flate2-rs/pull/329)
- [@&#8203;JohnTitor](https://github.com/JohnTitor) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/331](https://github.com/rust-lang/flate2-rs/pull/331)
- [@&#8203;softdevca](https://github.com/softdevca) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/335](https://github.com/rust-lang/flate2-rs/pull/335)
- [@&#8203;wcampbell0x2a](https://github.com/wcampbell0x2a) made their
first contribution in
[https://github.com/rust-lang/flate2-rs/pull/336](https://github.com/rust-lang/flate2-rs/pull/336)
- [@&#8203;yestyle](https://github.com/yestyle) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/337](https://github.com/rust-lang/flate2-rs/pull/337)
- [@&#8203;AntonJMLarsson](https://github.com/AntonJMLarsson) made
their first contribution in
[https://github.com/rust-lang/flate2-rs/pull/330](https://github.com/rust-lang/flate2-rs/pull/330)
- [@&#8203;taco-paco](https://github.com/taco-paco) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/322](https://github.com/rust-lang/flate2-rs/pull/322)
- [@&#8203;jongiddy](https://github.com/jongiddy) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/325](https://github.com/rust-lang/flate2-rs/pull/325)

**Full Changelog**:
rust-lang/flate2-rs@1.0.25...1.0.26

###
[`v1.0.25`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.25)

[Compare
Source](https://github.com/rust-lang/flate2-rs/compare/1.0.24...1.0.25)

#### What's Changed

- Use SPDX license format and update links by
[@&#8203;atouchet](https://github.com/atouchet) in
[https://github.com/rust-lang/flate2-rs/pull/296](https://github.com/rust-lang/flate2-rs/pull/296)
- Bump miniz_oxide to 0.6 by
[@&#8203;paolobarbolini](https://github.com/paolobarbolini) in
[https://github.com/rust-lang/flate2-rs/pull/317](https://github.com/rust-lang/flate2-rs/pull/317)
- Prep release 1.0.25 by [@&#8203;thomcc](https://github.com/thomcc)
in
[https://github.com/rust-lang/flate2-rs/pull/327](https://github.com/rust-lang/flate2-rs/pull/327)

#### New Contributors

- [@&#8203;atouchet](https://github.com/atouchet) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/296](https://github.com/rust-lang/flate2-rs/pull/296)
- [@&#8203;paolobarbolini](https://github.com/paolobarbolini) made
their first contribution in
[https://github.com/rust-lang/flate2-rs/pull/317](https://github.com/rust-lang/flate2-rs/pull/317)
- [@&#8203;thomcc](https://github.com/thomcc) made their first
contribution in
[https://github.com/rust-lang/flate2-rs/pull/327](https://github.com/rust-lang/flate2-rs/pull/327)

**Full Changelog**:
rust-lang/flate2-rs@1.0.24...1.0.25

</details>

<details>
<summary>matklad/once_cell</summary>

###
[`v1.18.0`](https://github.com/matklad/once_cell/blob/HEAD/CHANGELOG.md#&#8203;1180)

[Compare
Source](https://github.com/matklad/once_cell/compare/v1.17.2...v1.18.0)

- `MSRV` is updated to 1.60.0 to take advantage of `dep:` syntax for
cargo features,
    removing "implementation details" from publicly visible surface.

</details>

<details>
<summary>rust-lang/regex</summary>

###
[`v1.8.4`](https://github.com/rust-lang/regex/blob/HEAD/CHANGELOG.md#&#8203;184-2023-06-05)

[Compare
Source](https://github.com/rust-lang/regex/compare/1.8.3...1.8.4)

\==================
This is a patch release that fixes a bug where `(?-u:\B)` was allowed in
Unicode regexes, despite the fact that the current matching engines can
report
match offsets between the code units of a single UTF-8 encoded
codepoint. That
in turn means that match offsets that split a codepoint could be
reported,
which in turn results in panicking when one uses them to slice a `&str`.

This bug occurred in the transition to `regex 1.8` because the
underlying
syntactical error that prevented this regex from compiling was
intentionally
removed. That's because `(?-u:\B)` will be permitted in Unicode regexes
in
`regex 1.9`, but the matching engines will guarantee to never report
match
offsets that split a codepoint. When the underlying syntactical error
was
removed, no code was added to ensure that `(?-u:\B)` didn't compile in
the
`regex 1.8` transition release. This release, `regex 1.8.4`, adds that
code
such that `Regex::new(r"(?-u:\B)")` returns to the `regex <1.8` behavior
of
not compiling. (A `bytes::Regex` can still of course compile it.)

Bug fixes:

- [BUG #&#8203;1006](https://github.com/rust-lang/regex/issues/1006):
Fix a bug where `(?-u:\B)` was allowed in Unicode regexes, and in turn
could
    lead to match offsets that split a codepoint in `&str`.

</details>

<details>
<summary>pyros2097/rust-embed</summary>

###
[`v6.7.0`](https://github.com/pyros2097/rust-embed/blob/HEAD/changelog.md#&#8203;670---2023-06-09)

- Update `syn` to v2.0
[#&#8203;211](https://github.com/pyrossh/rust-embed/issues/211)

</details>

<details>
<summary>serde-rs/serde</summary>

###
[`v1.0.164`](https://github.com/serde-rs/serde/releases/tag/v1.0.164)

[Compare
Source](https://github.com/serde-rs/serde/compare/v1.0.163...v1.0.164)

- Allowed enum variants to be individually marked as untagged
([#&#8203;2403](https://github.com/serde-rs/serde/issues/2403), thanks
[@&#8203;dewert99](https://github.com/dewert99))

</details>

<details>
<summary>Stebalien/tempfile</summary>

###
[`v3.6.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#&#8203;360)

[Compare
Source](https://github.com/Stebalien/tempfile/compare/v3.5.0...v3.6.0)

-   Update windows-sys to 0.48.
-   Update rustix min version to 0.37.11
- Forward some `NamedTempFile` and `SpooledTempFile` methods to the
underlying `File` object for
    better performance (especially vectorized writes, etc.).
-   Implement `AsFd` and `AsHandle`.
-   Misc documentation fixes and code cleanups.

</details>

<details>
<summary>Microsoft/TypeScript</summary>

###
[`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3):
TypeScript 5.1.3

[Compare
Source](https://github.com/Microsoft/TypeScript/compare/v5.0.4...v5.1.3)

For release notes, check out the [release
announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/).

For the complete list of fixed issues, check out the

- [fixed issues query for Typescript 5.1.0
(Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.1.1
(RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.1.3
(Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+).

Downloads are available on:

- [NuGet
package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

</details>

<details>
<summary>servo/rust-url</summary>

### [`v2.4.0`](https://github.com/servo/rust-url/releases/tag/v2.4.0)

[Compare
Source](https://github.com/servo/rust-url/compare/v2.3.1...v2.4.0)

#### Crate version bump

-   data-url to 0.3.0
-   percent-encoding to 2.3.0
-   form_urlencoded to 1.2.0
-   idna to 0.4.0
-   url to 2.4.0

#### What's Changed

- url: add the authority method by
[@&#8203;unleashed](https://github.com/unleashed) in
[https://github.com/servo/rust-url/pull/674](https://github.com/servo/rust-url/pull/674)
- Fix clippy warnings by [@&#8203;nickelc](https://github.com/nickelc)
in
[https://github.com/servo/rust-url/pull/810](https://github.com/servo/rust-url/pull/810)
- Replace unmaintained/outdated github actions by
[@&#8203;nickelc](https://github.com/nickelc) in
[https://github.com/servo/rust-url/pull/811](https://github.com/servo/rust-url/pull/811)
- Implement potentially strip spaces for opaque paths by
[@&#8203;CYBAI](https://github.com/CYBAI) in
[https://github.com/servo/rust-url/pull/813](https://github.com/servo/rust-url/pull/813)
- percent_encoding: faster percent_encode_byte by
[@&#8203;klensy](https://github.com/klensy) in
[https://github.com/servo/rust-url/pull/814](https://github.com/servo/rust-url/pull/814)
- Update urltestdata.json WPT test cases by
[@&#8203;valenting](https://github.com/valenting) in
[https://github.com/servo/rust-url/pull/819](https://github.com/servo/rust-url/pull/819)
- Fix anarchist URL where path starts with // by
[@&#8203;qsantos](https://github.com/qsantos) in
[https://github.com/servo/rust-url/pull/817](https://github.com/servo/rust-url/pull/817)
- Avoid string allocation to get length of port by
[@&#8203;qsantos](https://github.com/qsantos) in
[https://github.com/servo/rust-url/pull/823](https://github.com/servo/rust-url/pull/823)
- No colon when setting empty password by
[@&#8203;qsantos](https://github.com/qsantos) in
[https://github.com/servo/rust-url/pull/825](https://github.com/servo/rust-url/pull/825)
- Url is special by [@&#8203;qsantos](https://github.com/qsantos) in
[https://github.com/servo/rust-url/pull/826](https://github.com/servo/rust-url/pull/826)
- Update msrv to 1.56 to keep up with serde-derive by
[@&#8203;valenting](https://github.com/valenting) in
[https://github.com/servo/rust-url/pull/827](https://github.com/servo/rust-url/pull/827)
- `no_std` support for `form_urlencoded`, `data-url` and `idna` by
[@&#8203;madsmtm](https://github.com/madsmtm) in
[https://github.com/servo/rust-url/pull/722](https://github.com/servo/rust-url/pull/722)
- Compile with serde feature on Rust playground and docs.rs by
[@&#8203;dtolnay](https://github.com/dtolnay) in
[https://github.com/servo/rust-url/pull/832](https://github.com/servo/rust-url/pull/832)
- Fix issues with file drives by
[@&#8203;valenting](https://github.com/valenting) in
[https://github.com/servo/rust-url/pull/839](https://github.com/servo/rust-url/pull/839)
- Update url to 2.4.0 and release new version by
[@&#8203;valenting](https://github.com/valenting) in
[https://github.com/servo/rust-url/pull/840](https://github.com/servo/rust-url/pull/840)

#### New Contributors

- [@&#8203;nickelc](https://github.com/nickelc) made their first
contribution in
[https://github.com/servo/rust-url/pull/810](https://github.com/servo/rust-url/pull/810)
- [@&#8203;CYBAI](https://github.com/CYBAI) made their first
contribution in
[https://github.com/servo/rust-url/pull/813](https://github.com/servo/rust-url/pull/813)
- [@&#8203;klensy](https://github.com/klensy) made their first
contribution in
[https://github.com/servo/rust-url/pull/814](https://github.com/servo/rust-url/pull/814)
- [@&#8203;qsantos](https://github.com/qsantos) made their first
contribution in
[https://github.com/servo/rust-url/pull/817](https://github.com/servo/rust-url/pull/817)
- [@&#8203;madsmtm](https://github.com/madsmtm) made their first
contribution in
[https://github.com/servo/rust-url/pull/722](https://github.com/servo/rust-url/pull/722)
- [@&#8203;dtolnay](https://github.com/dtolnay) made their first
contribution in
[https://github.com/servo/rust-url/pull/832](https://github.com/servo/rust-url/pull/832)

**Full Changelog**:
servo/rust-url@v2.3.1...v2.4.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/apollographql/router).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2In0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: o0Ignition0o <jeremy.lempereur@gmail.com>
bors bot referenced this pull request in jaysonsantos/aur-pkgbuild-updater Aug 29, 2023
151: fix(deps): update rust crate camino to 1.1.6 r=renovate[bot] a=renovate[bot]

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [camino](https://github.com/camino-rs/camino) | dependencies | minor | `1.0.9` -> `1.1.6` |

---

### Release Notes

<details>
<summary>camino-rs/camino (camino)</summary>

### [`v1.1.6`](https://github.com/camino-rs/camino/blob/HEAD/CHANGELOG.md#116---2023-07-11)

[Compare Source](https://github.com/camino-rs/camino/compare/camino-1.1.4...camino-1.1.6)

##### Added

-   Implement `Deserialize` for `Box<Utf8Path>`.

### [`v1.1.4`](https://github.com/camino-rs/camino/blob/HEAD/CHANGELOG.md#114---2023-03-09)

[Compare Source](https://github.com/camino-rs/camino/compare/camino-1.1.3...camino-1.1.4)

##### Added

-   Implement `DerefMut` for `Utf8PathBuf` on Rust 1.68 and above.

### [`v1.1.3`](https://github.com/camino-rs/camino/blob/HEAD/CHANGELOG.md#113---2023-02-21)

[Compare Source](https://github.com/camino-rs/camino/compare/camino-1.1.2...camino-1.1.3)

##### Added

-   New method `Utf8DirEntry::into_path` to return an owned `Utf8PathBuf`.

### [`v1.1.2`](https://github.com/camino-rs/camino/blob/HEAD/CHANGELOG.md#112---2022-08-12)

[Compare Source](https://github.com/camino-rs/camino/compare/camino-1.1.1...camino-1.1.2)

##### Added

-   New convenience methods \[`FromPathBufError::into_io_error`] and
    \[`FromPathError::into_io_error`].

### [`v1.1.1`](https://github.com/camino-rs/camino/blob/HEAD/CHANGELOG.md#111---2022-08-12)

[Compare Source](https://github.com/camino-rs/camino/compare/camino-1.1.0...camino-1.1.1)

##### Fixed

-   Fixed a build regression on older nightlies in the 1.63 series
    ([#&#8203;22](https://github.com/camino-rs/camino/issues/22)).
-   Documentation fixes.

### [`v1.1.0`](https://github.com/camino-rs/camino/blob/HEAD/CHANGELOG.md#110---2022-08-11)

[Compare Source](https://github.com/camino-rs/camino/compare/camino-1.0.9...camino-1.1.0)

##### Added

-   New methods, mirroring those in recent versions of Rust:
    -   `Utf8Path::try_exists` checks whether a path exists. Note that while `std::path::Path` only provides this method for Rust 1.58 and above, `camino` backfills the method for all Rust versions it supports.
    -   `Utf8PathBuf::shrink_to` shrinks a `Utf8PathBuf` to a given size. This was added in, and is gated on, Rust 1.56+.
    -   `Utf8PathBuf::try_reserve` and `Utf8PathBuf::try_reserve_exact` implement fallible allocations. These were added in, and are gated on, Rust 1.63+.
-   A number of `#[must_use]` annotations to APIs, mirroring those added to `Path` and `PathBuf` in recent versions of Rust. The minor version bump is due to this change.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/jaysonsantos/aur-pkgbuild-updater).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->


153: fix(deps): update rust crate url to 2.4.1 r=renovate[bot] a=renovate[bot]

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [url](https://github.com/servo/rust-url) | dependencies | minor | `2.2.2` -> `2.4.1` |

---

### Release Notes

<details>
<summary>servo/rust-url (url)</summary>

### [`v2.4.1`](https://github.com/servo/rust-url/releases/tag/v2.4.1)

[Compare Source](https://github.com/servo/rust-url/compare/v2.4.0...v2.4.1)

#### What's Changed

-   Move debugger_visualizer tests to separate crate by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/853](https://github.com/servo/rust-url/pull/853)
-   Remove obsolete badge references by [`@&#8203;atouchet](https://github.com/atouchet)` in [https://github.com/servo/rust-url/pull/852](https://github.com/servo/rust-url/pull/852)
-   Fix trailing spaces in scheme / pathname / search setters by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/848](https://github.com/servo/rust-url/pull/848)
-   fix: implement std::error::Error for data-url by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/698](https://github.com/servo/rust-url/pull/698)
-   Enable the GitHub merge queue by [`@&#8203;mrobinson](https://github.com/mrobinson)` in [https://github.com/servo/rust-url/pull/851](https://github.com/servo/rust-url/pull/851)
-   Rewrite WPT runner by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/857](https://github.com/servo/rust-url/pull/857)
-   Implement std::error::Error for InvalidBase64 by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/856](https://github.com/servo/rust-url/pull/856)
-   Add `--generate-link-to-definition` option when building on docs.rs by [`@&#8203;GuillaumeGomez](https://github.com/GuillaumeGomez)` in [https://github.com/servo/rust-url/pull/858](https://github.com/servo/rust-url/pull/858)
-   Stabilize debugger_visualizer feature by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/855](https://github.com/servo/rust-url/pull/855)
-   Update WPT data and expectations by [`@&#8203;lucacasonato](https://github.com/lucacasonato)` in [https://github.com/servo/rust-url/pull/859](https://github.com/servo/rust-url/pull/859)
-   Fix no_std Support for idna by [`@&#8203;domenukk](https://github.com/domenukk)` in [https://github.com/servo/rust-url/pull/843](https://github.com/servo/rust-url/pull/843)
-   Fix panic in set_path for file URLs  by [`@&#8203;valenting](https://github.com/valenting)` in [https://github.com/servo/rust-url/pull/865](https://github.com/servo/rust-url/pull/865)

#### New Contributors

-   [`@&#8203;mrobinson](https://github.com/mrobinson)` made their first contribution in [https://github.com/servo/rust-url/pull/851](https://github.com/servo/rust-url/pull/851)
-   [`@&#8203;GuillaumeGomez](https://github.com/GuillaumeGomez)` made their first contribution in [https://github.com/servo/rust-url/pull/858](https://github.com/servo/rust-url/pull/858)
-   [`@&#8203;domenukk](https://github.com/domenukk)` made their first contribution in [https://github.com/servo/rust-url/pull/843](https://github.com/servo/rust-url/pull/843)

**Full Changelog**: servo/rust-url@v2.4.0...v2.4.1

### [`v2.4.0`](https://github.com/servo/rust-url/releases/tag/v2.4.0)

[Compare Source](https://github.com/servo/rust-url/compare/v2.3.1...v2.4.0)

#### Crate version bump

-   data-url to 0.3.0
-   percent-encoding to 2.3.0
-   form_urlencoded to 1.2.0
-   idna to 0.4.0
-   url to 2.4.0

#### What's Changed

-   url: add the authority method by [`@&#8203;unleashed](https://github.com/unleashed)` in [https://github.com/servo/rust-url/pull/674](https://github.com/servo/rust-url/pull/674)
-   Fix clippy warnings by [`@&#8203;nickelc](https://github.com/nickelc)` in [https://github.com/servo/rust-url/pull/810](https://github.com/servo/rust-url/pull/810)
-   Replace unmaintained/outdated github actions by [`@&#8203;nickelc](https://github.com/nickelc)` in [https://github.com/servo/rust-url/pull/811](https://github.com/servo/rust-url/pull/811)
-   Implement potentially strip spaces for opaque paths by [`@&#8203;CYBAI](https://github.com/CYBAI)` in [https://github.com/servo/rust-url/pull/813](https://github.com/servo/rust-url/pull/813)
-   percent_encoding: faster percent_encode_byte by [`@&#8203;klensy](https://github.com/klensy)` in [https://github.com/servo/rust-url/pull/814](https://github.com/servo/rust-url/pull/814)
-   Update urltestdata.json WPT test cases by [`@&#8203;valenting](https://github.com/valenting)` in [https://github.com/servo/rust-url/pull/819](https://github.com/servo/rust-url/pull/819)
-   Fix anarchist URL where path starts with // by [`@&#8203;qsantos](https://github.com/qsantos)` in [https://github.com/servo/rust-url/pull/817](https://github.com/servo/rust-url/pull/817)
-   Avoid string allocation to get length of port by [`@&#8203;qsantos](https://github.com/qsantos)` in [https://github.com/servo/rust-url/pull/823](https://github.com/servo/rust-url/pull/823)
-   No colon when setting empty password by [`@&#8203;qsantos](https://github.com/qsantos)` in [https://github.com/servo/rust-url/pull/825](https://github.com/servo/rust-url/pull/825)
-   Url is special by [`@&#8203;qsantos](https://github.com/qsantos)` in [https://github.com/servo/rust-url/pull/826](https://github.com/servo/rust-url/pull/826)
-   Update msrv to 1.56 to keep up with serde-derive by [`@&#8203;valenting](https://github.com/valenting)` in [https://github.com/servo/rust-url/pull/827](https://github.com/servo/rust-url/pull/827)
-   `no_std` support for `form_urlencoded`, `data-url` and `idna` by [`@&#8203;madsmtm](https://github.com/madsmtm)` in [https://github.com/servo/rust-url/pull/722](https://github.com/servo/rust-url/pull/722)
-   Compile with serde feature on Rust playground and docs.rs by [`@&#8203;dtolnay](https://github.com/dtolnay)` in [https://github.com/servo/rust-url/pull/832](https://github.com/servo/rust-url/pull/832)
-   Fix issues with file drives by [`@&#8203;valenting](https://github.com/valenting)` in [https://github.com/servo/rust-url/pull/839](https://github.com/servo/rust-url/pull/839)
-   Update url to 2.4.0 and release new version by [`@&#8203;valenting](https://github.com/valenting)` in [https://github.com/servo/rust-url/pull/840](https://github.com/servo/rust-url/pull/840)

#### New Contributors

-   [`@&#8203;nickelc](https://github.com/nickelc)` made their first contribution in [https://github.com/servo/rust-url/pull/810](https://github.com/servo/rust-url/pull/810)
-   [`@&#8203;CYBAI](https://github.com/CYBAI)` made their first contribution in [https://github.com/servo/rust-url/pull/813](https://github.com/servo/rust-url/pull/813)
-   [`@&#8203;klensy](https://github.com/klensy)` made their first contribution in [https://github.com/servo/rust-url/pull/814](https://github.com/servo/rust-url/pull/814)
-   [`@&#8203;qsantos](https://github.com/qsantos)` made their first contribution in [https://github.com/servo/rust-url/pull/817](https://github.com/servo/rust-url/pull/817)
-   [`@&#8203;madsmtm](https://github.com/madsmtm)` made their first contribution in [https://github.com/servo/rust-url/pull/722](https://github.com/servo/rust-url/pull/722)
-   [`@&#8203;dtolnay](https://github.com/dtolnay)` made their first contribution in [https://github.com/servo/rust-url/pull/832](https://github.com/servo/rust-url/pull/832)

**Full Changelog**: servo/rust-url@v2.3.1...v2.4.0

### [`v2.3.1`](https://github.com/servo/rust-url/compare/v2.3.0...v2.3.1)

[Compare Source](https://github.com/servo/rust-url/compare/v2.3.0...v2.3.1)

### [`v2.3.0`](https://github.com/servo/rust-url/compare/v2.2.2...v2.3.0)

[Compare Source](https://github.com/servo/rust-url/compare/v2.2.2...v2.3.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/jaysonsantos/aur-pkgbuild-updater).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->


Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants