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

bump msrv and crate versions, remove std::error references #125

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

knickish
Copy link
Collaborator

@knickish knickish commented Dec 11, 2024

I think we have just about all the changes that are reasonable to wait for for v0.2. All the breaking changes are pretty small, and the majority of users will likely only need to adjust MSRV. This PR bumps the MSRV to 1.81, the crate versions to 0.2, and removes the import of std::error::error

Breaking changes:

  • All error and internal structs marked as non_exhaustive to improve forward compatibility
    • Breaks anyone who was destructuring the De{format}Err structs
    • Can be fixed by non-exhaustively destructuring or just accessing error fields directly
  • binary/json/ron/toml formats split into feature flags, with all enabled by default
    • Breaks anyone who was using default-features = false before, but we didn't have any features so should be rare
  • no_std feature removed, added std feature which gates the couple remaining items (mostly HashMap/HashSet)
    • Breaks anyone who used the old no_std feature
    • Can be fixed by removing the no_std feature, and switching to default-features = false
  • Bump MSRV to 1.81 (for core::error::Error)
    • Breaks anyone who is on a rust version <1.81
  • Hardcode the nanoserde crate name (with override)
    • Breaks anyone who renamed the nanoserde crate and used the derive macros
    • Can be fixed using default name or the new nserde(crate="renamed") attribute

Other changes since last non-beta release:

  • Support for comments in JSON
  • Support for nserde(default) on non-Option types and
  • Bug fixes to float serialization, proxy attrs, along with toml and explicitly numbered enum parsing
  • Removed no_std hashbrown dependency

@knickish knickish requested a review from not-fl3 December 11, 2024 16:24
@knickish
Copy link
Collaborator Author

Check for toolchain '1.80.1-x86_64-unknown-linux-gnu' failed with:
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ error: rustc 1.80.1 is not supported by the following packages:                                         │
│   [email protected] requires rustc 1.81.0                                                                 │
│   [email protected] requires rustc 1.81.0                                                          │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Check for toolchain '1.82.0-x86_64-unknown-linux-gnu' succeeded
Check for toolchain '1.81.0-x86_64-unknown-linux-gnu' succeeded
   Finished The MSRV is: 1.81.0

Confirmed to work with MSRV of 1.81

@knickish
Copy link
Collaborator Author

@not-fl3 Anything else you want done before v0.2?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant