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

ZSTD_c_experimentalParam6 is missing in zstd-sys 2.0.10 #268

Open
wtdcode opened this issue Mar 27, 2024 · 6 comments
Open

ZSTD_c_experimentalParam6 is missing in zstd-sys 2.0.10 #268

wtdcode opened this issue Mar 27, 2024 · 6 comments

Comments

@wtdcode
Copy link

wtdcode commented Mar 27, 2024

error[E0432]: unresolved import `zstd_sys::ZSTD_cParameter::ZSTD_c_experimentalParam6`
   --> /home/mio/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zstd-safe-6.0.6/src/lib.rs:609:13
    |
609 |             ZSTD_c_experimentalParam6 as ZSTD_c_targetCBlockSize,
    |             -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |             |
    |             no `ZSTD_c_experimentalParam6` in `ZSTD_cParameter`
    |             help: a similar name exists in the module: `ZSTD_c_experimentalParam1`
@gyscos
Copy link
Owner

gyscos commented Mar 27, 2024

Hi! Yes, this experimental parameter was promoted to non-experimental in this release.
Experimental parameters are behind the "experimental" feature flag, and as the name suggest, may go through breaking changes in regular releases. Were you using this feature?

The easiest solution would be to update your version of zstd-safe.

@wtdcode
Copy link
Author

wtdcode commented Mar 27, 2024

Hi! Yes, this experimental parameter was promoted to non-experimental in this release. Experimental parameters are behind the "experimental" feature flag, and as the name suggest, may go through breaking changes in regular releases. Were you using this feature?

The easiest solution would be to update your version of zstd-safe.

I can't control this crate as it's a subdependency. My temporary workaround is using patch.crates-io

@gyscos
Copy link
Owner

gyscos commented Mar 27, 2024

You can also lock zstd-sys to 2.0.9, the last version with this experimental value.

Do you know which dependency is enabling this feature? It might be a good idea to have it pin the version of zstd-sys if it really needs these experimental parameters.

ralexstokes added a commit to ralexstokes/ethereum-consensus that referenced this issue Mar 27, 2024
@ralexstokes
Copy link

just to chime in, I had the exact same problem with some caveats below. found a fix here: https://github.com/ralexstokes/ethereum-consensus/pull/360/files#diff-0219ba3c813ee31a0ca2d8c440d9f100c5e53b68a57ec2f57f73e36032511d59R72 by just disabling the feature

  1. no Cargo.lock in this repo, as it is a library, but then CI would pull the latest zstd set of crates
  2. this dep was in this repo just for some non-important examples and so I could easily just disable the feature
  3. luckily the culprit was a direct dependency so I could just disable directly, and luckily the dependency crate had a feature flag for zstd functionality (both of these could not have been the case!)

@gyscos
Copy link
Owner

gyscos commented Mar 27, 2024

Note that you can always add zstd-sys as a dependency with a fixed version in Cargo.toml, no need for Cargo.lock.

@patowen
Copy link

patowen commented Mar 29, 2024

One such dependency that uses it is ztd-safe version 6.0.6 (from this repo) when the experimental feature flag is enabled.

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

No branches or pull requests

4 participants