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

chore: update MSRV #5650

Merged
merged 73 commits into from
Jan 8, 2025
Merged

chore: update MSRV #5650

merged 73 commits into from
Jan 8, 2025

Conversation

jxs
Copy link
Member

@jxs jxs commented Oct 25, 2024

No description provided.

Copy link
Member

@dariusc93 dariusc93 left a comment

Choose a reason for hiding this comment

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

I believe we would need to bump the minor version would we not? Besides that I do agree with the bump in msrv

@jxs
Copy link
Member Author

jxs commented Oct 25, 2024

I believe we would need to bump the minor version would we not? Besides that I do agree with the bump in msrv

right let's wait for the next major version release cycle before merging this, thanks Darius!

@dariusc93
Copy link
Member

Will mark this as a draft for now until the next window

@dariusc93 dariusc93 marked this pull request as draft October 25, 2024 19:17
Copy link
Contributor

@elenaf9 elenaf9 left a comment

Choose a reason for hiding this comment

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

Any objection for this? @jxs

Would love to be able to use expect, e.g. in #5242, but that requires v1.81.

Cargo.toml Outdated Show resolved Hide resolved
@elenaf9 elenaf9 marked this pull request as ready for review December 14, 2024 06:07
@jxs jxs added send-it and removed send-it labels Dec 16, 2024
Copy link
Contributor

mergify bot commented Dec 16, 2024

This pull request has been removed from the queue for the following reason: pull request dequeued.

Pull request #5650 has been dequeued. The pull request has been synchronized by a user.

You should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it.

If you want to requeue this pull request, you need to post a comment with the text: @mergifyio requeue

@jxs
Copy link
Member Author

jxs commented Dec 16, 2024

The thing with this PR is that I feel it's a breaking change. If someone is depending on libp2p 0.54.0 with say Rust version 0.75 then cargo will update it to 0.54.1 and it will stop compiling right?
With that in mind, does it make sense to release a new minor where the only change is that?

@elenaf9
Copy link
Contributor

elenaf9 commented Dec 17, 2024

The thing with this PR is that I feel it's a breaking change. If someone is depending on libp2p 0.54.0 with say Rust version 0.75 then cargo will update it to 0.54.1 and it will stop compiling right? With that in mind, does it make sense to release a new minor where the only change is that?

Hmm yeah good point. #4692 and #5266 both added a changelog entry for it, but bundled it in a existing minor release.

Copy link
Contributor

@elenaf9 elenaf9 left a comment

Choose a reason for hiding this comment

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

While reviewing #4692 and #5266 I noticed that they also changed the rust version in the Dockerfiles, so I think we need to do this here as well?

@dariusc93
Copy link
Member

The thing with this PR is that I feel it's a breaking change. If someone is depending on libp2p 0.54.0 with say Rust version 0.75 then cargo will update it to 0.54.1 and it will stop compiling right? With that in mind, does it make sense to release a new minor where the only change is that?

Correct. Generally, updating the msrv is a breaking change, which we would need to update the minor version of rust-libp2p if it's not done so already. And given that many protocols have a breaking change in it, it does feel appropriate for it to be 0.55.0.

@jxs
Copy link
Member Author

jxs commented Dec 18, 2024

glad we discuss this cause I was noticing yesterday, since we are updating libp2p-gossipsub to a new minor, libp2p consequentially also needs to be updated to a new minor right? If so everything's good and we can merge this, I'll add the CHANGELOG.md entry

kalabukdima and others added 8 commits January 6, 2025 11:41
…ibp2p#5642)

## Description

When trying to publish a message using gossipsub's `publish` method,
it should be possible to predict whether it will fit in the limit
defined by
the `max_transmit_size` config option.
If this limit applies to the final protobuf payload, it's not possible
to know
that in advance because the size of the added fields is not fixed.

This change makes the limit apply to the passed message size instead of
the final wire size.

## Notes & open questions

This is a minor version change because it changes the meaning of the
existing config option.
However, for the existing clients the limit will only become more
permissive, so it shouldn't break anything.

## Change checklist

<!-- Please add a Changelog entry in the appropriate crates and bump the
crate versions if needed. See
<https://github.com/libp2p/rust-libp2p/blob/master/docs/release.md#development-between-releases>-->

- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] A changelog entry has been made in the appropriate crates

---------

Co-authored-by: Darius Clark <[email protected]>
Co-authored-by: João Oliveira <[email protected]>
## Description

ref libp2p#4449 

Refactored distributed-key-value-store example to use `tokio` instead of
`async-std`

## Change checklist

<!-- Please add a Changelog entry in the appropriate crates and bump the
crate versions if needed. See
<https://github.com/libp2p/rust-libp2p/blob/master/docs/release.md#development-between-releases>-->

- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] A changelog entry has been made in the appropriate crates
## Description

ref libp2p#4449 

Refactored ping tests to use `tokio` instead of `async-std`.

## Change checklist

- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] A changelog entry has been made in the appropriate crates
## Description

Returns `Error::InvalidMultiaddr` when `parse_ws_dial_addr` is called
with `/dnsaddr`.

As per its specification, `/dnsaddr` domains are not meant to be
directly dialed, instead it should be appended with `_dnsaddr.` and used
for DNS lookups afterwards

Related: libp2p#5529
Fixes: libp2p#5601 

## Notes & open questions

* Is it okay to return an error, or should I perform a DNS lookup and
resolve that DNS afterwards if address has `/dnsaddr`?
* If so, how should I handle that case where DNS lookup returns multiple
multiaddrs?

## Change checklist

- [x] I have performed a self-review of my own code
- [ ] I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] A changelog entry has been made in the appropriate crates

---------

Co-authored-by: Darius Clark <[email protected]>
## Description

<!--
Please write a summary of your changes and why you made them.
This section will appear as the commit message after merging.
Please craft it accordingly.
For a quick primer on good commit messages, check out this blog post:
https://cbea.ms/git-commit/

Please include any relevant issues in here, for example:

Related https://github.com/libp2p/rust-libp2p/issues/ABCD.
Fixes https://github.com/libp2p/rust-libp2p/issues/XYZ.
-->

## Notes & open questions

<!--
Any notes, remarks or open questions you have to make about the PR which
don't need to go into the final commit message.
-->

## Change checklist

<!-- Please add a Changelog entry in the appropriate crates and bump the
crate versions if needed. See
<https://github.com/libp2p/rust-libp2p/blob/master/docs/release.md#development-between-releases>-->

- [x] I have performed a self-review of my own code
- [ ] I have made corresponding changes to the documentation
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] A changelog entry has been made in the appropriate crates

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
## Description

Closes libp2p#5660 

## Change checklist

- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] A changelog entry has been made in the appropriate crates
## Description

<!--
Please write a summary of your changes and why you made them.
This section will appear as the commit message after merging.
Please craft it accordingly.
For a quick primer on good commit messages, check out this blog post:
https://cbea.ms/git-commit/

Please include any relevant issues in here, for example:

Related https://github.com/libp2p/rust-libp2p/issues/ABCD.
Fixes https://github.com/libp2p/rust-libp2p/issues/XYZ.
-->

fix some typos in comment



## Notes & open questions

<!--
Any notes, remarks or open questions you have to make about the PR which
don't need to go into the final commit message.
-->

## Change checklist

<!-- Please add a Changelog entry in the appropriate crates and bump the
crate versions if needed. See
<https://github.com/libp2p/rust-libp2p/blob/master/docs/release.md#development-between-releases>-->

- [ ] I have performed a self-review of my own code
- [ ] I have made corresponding changes to the documentation
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] A changelog entry has been made in the appropriate crates

Signed-off-by: wangjingcun <[email protected]>
hanabi1224 and others added 19 commits January 6, 2025 11:41
Remove unused dependencies

(Not sure how to bump `libp2p-identity` and `libp2p-swarm-derive` versions in a PR)

Pull-Request: libp2p#5747.
Revert version bump of libp2p#5753, because libp2p-mdns-0.46.1 isn't released yet.

Pull-Request: libp2p#5762.
Among other changes, it includes a fix for this issue which often reproduces with libp2p: quinn-rs/quinn#1889

Pull-Request: libp2p#5757.
Fixes libp2p#4992

Based on the conversation in libp2p#4992.

Pull-Request: libp2p#5725.
This PR implements gossipsub 1.2 beta bringing changes over from lighthouse
ref PR: sigp/lighthouse#5422

Please include any relevant issues in here, for example:
libp2p/specs#548

Pull-Request: libp2p#5697.
- run `cargo update`
- lock `webrtc-ice = "=0.10.0"` to not break webrtc smoke tests
- fix `cargo clippy` warnings
- update `deny.toml` accordingly

Pull-Request: libp2p#5755.
This PR adds configurable parameter that sets minimum message size for which `IDONTWANT` messages would be send. This is an optimisation trick, discussion regarding the same can be found [here](sigp/lighthouse#6437)

Pull-Request: libp2p#5770.
Revert version bump, because `libp2p-kad-0.47.0` isn't released yet.

Pull-Request: libp2p#5776.
Revert version bump, `libp2p-autonat-v0.13.1` isn't released yet.

Pull-Request: libp2p#5777.
Revert version bump, `libp2p-server-v0.12.6` isn't released yet.

Pull-Request: libp2p#5780.
Revert version bump, `libp2p-identify-v0.46.0` isn't released yet.

Pull-Request: libp2p#5778.
Similar to libp2p#5738,  [`foldhash`](https://crates.io/crates/foldhash) is the dependency that requires it. It was introduced by `hashbrown` which is dependency of a lot of crates [here](rust-lang/hashbrown#563).
`hashbrown` is MIT, and Zlib is also an Open Source Initiative [approved license](https://opensource.org/license/zlib).

If you prefer we can also do as the upstream `cargo-deny` do and just add `foldhash` [to the exceptions](https://github.com/EmbarkStudios/cargo-deny/pull/618/files#diff-1040309c64844eb1b6b63d8fd67938adbf9461f1b3c61f12cf738f064a02d3deR56) but I can't see any advantage to it.
Cc @hanabi1224

Pull-Request: libp2p#5769.
Revert version bump, `libp2p-allow-block-list-v0.4.1` isn't released yet.

Pull-Request: libp2p#5779.
Remove items that were deprecated in libp2p#5122.

Pull-Request: libp2p#5774.
This PR introduces an optimisation to preemptively broadcast `IDONTWANT` for published messages, preventing redundant downloads of the same message received over gossip. This feature is opt-in and respects the existing `idontwant_message_size_threshold`. By default, `IDONTWANT` messages will only be sent for published messages larger than 1000 bytes.

reference PRs:
[spec](libp2p/specs#642)

Pull-Request: libp2p#5773.
Co-authored-by: Elena Frank <[email protected]>
Copy link
Contributor

mergify bot commented Jan 6, 2025

This pull request has merge conflicts. Could you please resolve them @jxs? 🙏

@jxs jxs requested a review from elenaf9 January 6, 2025 12:14
Copy link
Contributor

@elenaf9 elenaf9 left a comment

Choose a reason for hiding this comment

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

I think something went wrong in the rebase? PR suddenly has 71 commits.

But rest LGTM!

@jxs jxs added the send-it label Jan 8, 2025
@mergify mergify bot merged commit 4a1122e into libp2p:master Jan 8, 2025
70 of 71 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.