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

Non-deterministic output #389

Open
dtolnay opened this issue Mar 12, 2024 · 4 comments
Open

Non-deterministic output #389

dtolnay opened this issue Mar 12, 2024 · 4 comments

Comments

@dtolnay
Copy link

dtolnay commented Mar 12, 2024

I was surprised to find that cargo outdated produces wildly different output each time I run it. I am unsure how to interpret what is going on here.

Repro:

$ cargo new repro
$ cd repro
$ cargo add image

Sometimes when I run cargo outdated, it shows this:

Name                             Project  Compat   Latest   Kind    Platform
----                             -------  ------   ------   ----    --------
libfuzzer-sys->arbitrary         1.3.2    0.4.7    0.4.7    Normal  ---
libfuzzer-sys->once_cell         1.19.0   Removed  Removed  Normal  ---
num-derive->syn                  2.0.52   1.0.109  1.0.109  Normal  ---
proc-macro2->unicode-ident       1.0.12   Removed  Removed  Normal  ---
profiling->profiling-procmacros  1.0.15   Removed  Removed  Normal  ---
profiling-procmacros->quote      1.0.35   Removed  Removed  Normal  ---
profiling-procmacros->syn        2.0.52   Removed  Removed  Normal  ---
quote->proc-macro2               1.0.79   Removed  Removed  Normal  ---
rav1e->arbitrary                 1.3.2    0.4.7    0.4.7    Normal  cfg(fuzzing)
rav1e->bitstream-io              2.2.0    1.10.0   1.10.0   Normal  ---
rav1e->built                     0.7.1    0.5.2    0.5.2    Build   ---
rav1e->itertools                 0.12.1   0.10.5   0.10.5   Normal  ---
rav1e->libfuzzer-sys             0.4.7    0.3.5    0.3.5    Normal  cfg(fuzzing)
rav1e->num-derive                0.4.2    0.3.3    0.3.3    Normal  ---
rav1e->profiling                 1.0.15   Removed  Removed  Normal  ---
ravif->rav1e                     0.7.1    0.6.6    0.6.6    Normal  ---
syn->proc-macro2                 1.0.79   Removed  Removed  Normal  ---
syn->quote                       1.0.35   Removed  Removed  Normal  ---
syn->unicode-ident               1.0.12   Removed  Removed  Normal  ---

Sometimes it shows this:

Name                                              Project  Compat   Latest   Kind    Platform
----                                              -------  ------   ------   ----    --------
built->cargo-lock                                 8.0.3    Removed  Removed  Normal  ---
cargo-lock->semver                                1.0.22   Removed  Removed  Normal  ---
cargo-lock->serde                                 1.0.197  Removed  Removed  Normal  ---
cargo-lock->toml                                  0.5.11   Removed  Removed  Normal  ---
cargo-lock->url                                   2.5.0    Removed  Removed  Normal  ---
form_urlencoded->percent-encoding                 2.3.1    Removed  Removed  Normal  ---
idna->unicode-bidi                                0.3.15   Removed  Removed  Normal  ---
idna->unicode-normalization                       0.1.23   Removed  Removed  Normal  ---
libfuzzer-sys->arbitrary                          0.4.7    1.3.2    1.3.2    Normal  ---
num-derive->syn                                   1.0.109  2.0.52   2.0.52   Normal  ---
proc-macro2->unicode-ident                        1.0.12   Removed  Removed  Normal  ---
quote->proc-macro2                                1.0.79   Removed  Removed  Normal  ---
rav1e->arbitrary                                  0.4.7    1.3.2    1.3.2    Normal  cfg(fuzzing)
rav1e->bitstream-io                               1.10.0   2.2.0    2.2.0    Normal  ---
rav1e->built                                      0.5.2    0.7.1    0.7.1    Build   ---
rav1e->itertools                                  0.10.5   0.12.1   0.12.1   Normal  ---
rav1e->libfuzzer-sys                              0.3.5    0.4.7    0.4.7    Normal  cfg(fuzzing)
rav1e->num-derive                                 0.3.3    0.4.2    0.4.2    Normal  ---
rav1e->rust_hawktracer                            0.7.0    Removed  Removed  Normal  ---
rav1e->rustc_version                              0.4.0    Removed  Removed  Build   ---
rav1e->wasm-bindgen                               0.2.92   Removed  Removed  Normal  ---
ravif->rav1e                                      0.6.6    0.7.1    0.7.1    Normal  cfg(target = "wasm32-unknown-unknown")
rust_hawktracer->rust_hawktracer_normal_macro     0.4.1    Removed  Removed  Normal  ---
rust_hawktracer->rust_hawktracer_proc_macro       0.4.1    Removed  Removed  Normal  ---
rustc_version->semver                             1.0.22   Removed  Removed  Normal  ---
semver->serde                                     1.0.197  Removed  Removed  Normal  ---
serde->serde_derive                               1.0.197  Removed  Removed  Normal  ---
serde_derive->proc-macro2                         1.0.79   Removed  Removed  Normal  ---
serde_derive->quote                               1.0.35   Removed  Removed  Normal  ---
serde_derive->syn                                 2.0.52   Removed  Removed  Normal  ---
syn->proc-macro2                                  1.0.79   Removed  Removed  Normal  ---
syn->quote                                        1.0.35   Removed  Removed  Normal  ---
syn->unicode-ident                                1.0.12   Removed  Removed  Normal  ---
tinyvec->tinyvec_macros                           0.1.1    Removed  Removed  Normal  ---
toml->serde                                       1.0.197  Removed  Removed  Normal  ---
unicode-normalization->tinyvec                    1.6.0    Removed  Removed  Normal  ---
url->form_urlencoded                              1.2.1    Removed  Removed  Normal  ---
url->idna                                         0.5.0    Removed  Removed  Normal  ---
url->percent-encoding                             2.3.1    Removed  Removed  Normal  ---
wasm-bindgen->cfg-if                              1.0.0    Removed  Removed  Normal  ---
wasm-bindgen->wasm-bindgen-macro                  0.2.92   Removed  Removed  Normal  ---
wasm-bindgen-backend->bumpalo                     3.15.4   Removed  Removed  Normal  ---
wasm-bindgen-backend->log                         0.4.21   Removed  Removed  Normal  ---
wasm-bindgen-backend->once_cell                   1.19.0   Removed  Removed  Normal  ---
wasm-bindgen-backend->proc-macro2                 1.0.79   Removed  Removed  Normal  ---
wasm-bindgen-backend->quote                       1.0.35   Removed  Removed  Normal  ---
wasm-bindgen-backend->syn                         2.0.52   Removed  Removed  Normal  ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.92   Removed  Removed  Normal  ---
wasm-bindgen-macro->quote                         1.0.35   Removed  Removed  Normal  ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.92   Removed  Removed  Normal  ---
wasm-bindgen-macro-support->proc-macro2           1.0.79   Removed  Removed  Normal  ---
wasm-bindgen-macro-support->quote                 1.0.35   Removed  Removed  Normal  ---
wasm-bindgen-macro-support->syn                   2.0.52   Removed  Removed  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.92   Removed  Removed  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.92   Removed  Removed  Normal  ---

Other times it shows this:

Name                                              Project  Compat   Latest   Kind    Platform
----                                              -------  ------   ------   ----    --------
built->cargo-lock                                 8.0.3    Removed  ---      Normal  ---
cargo-lock->semver                                1.0.22   Removed  ---      Normal  ---
cargo-lock->serde                                 1.0.197  Removed  ---      Normal  ---
cargo-lock->toml                                  0.5.11   Removed  ---      Normal  ---
cargo-lock->url                                   2.5.0    Removed  ---      Normal  ---
form_urlencoded->percent-encoding                 2.3.1    Removed  ---      Normal  ---
idna->unicode-bidi                                0.3.15   Removed  ---      Normal  ---
idna->unicode-normalization                       0.1.23   Removed  ---      Normal  ---
libfuzzer-sys->arbitrary                          0.4.7    1.3.2    ---      Normal  ---
libfuzzer-sys->arbitrary                          1.3.2    ---      0.4.7    Normal  ---
libfuzzer-sys->once_cell                          1.19.0   ---      Removed  Normal  ---
num-derive->syn                                   1.0.109  2.0.52   ---      Normal  ---
num-derive->syn                                   2.0.52   ---      1.0.109  Normal  ---
proc-macro2->unicode-ident                        1.0.12   ---      Removed  Normal  ---
proc-macro2->unicode-ident                        1.0.12   Removed  ---      Normal  ---
profiling->profiling-procmacros                   1.0.15   ---      Removed  Normal  ---
profiling-procmacros->quote                       1.0.35   ---      Removed  Normal  ---
profiling-procmacros->syn                         2.0.52   ---      Removed  Normal  ---
quote->proc-macro2                                1.0.79   ---      Removed  Normal  ---
quote->proc-macro2                                1.0.79   Removed  ---      Normal  ---
rav1e->arbitrary                                  0.4.7    1.3.2    ---      Normal  cfg(fuzzing)
rav1e->arbitrary                                  1.3.2    ---      0.4.7    Normal  cfg(fuzzing)
rav1e->bitstream-io                               1.10.0   2.2.0    ---      Normal  ---
rav1e->bitstream-io                               2.2.0    ---      1.10.0   Normal  ---
rav1e->built                                      0.5.2    0.7.1    ---      Build   ---
rav1e->built                                      0.7.1    ---      0.5.2    Build   ---
rav1e->itertools                                  0.10.5   0.12.1   ---      Normal  ---
rav1e->itertools                                  0.12.1   ---      0.10.5   Normal  ---
rav1e->libfuzzer-sys                              0.3.5    0.4.7    ---      Normal  cfg(fuzzing)
rav1e->libfuzzer-sys                              0.4.7    ---      0.3.5    Normal  cfg(fuzzing)
rav1e->num-derive                                 0.3.3    0.4.2    ---      Normal  ---
rav1e->num-derive                                 0.4.2    ---      0.3.3    Normal  ---
rav1e->profiling                                  1.0.15   ---      Removed  Normal  ---
rav1e->rust_hawktracer                            0.7.0    Removed  ---      Normal  ---
rav1e->rustc_version                              0.4.0    Removed  ---      Build   ---
rav1e->wasm-bindgen                               0.2.92   Removed  ---      Normal  ---
ravif->rav1e                                      0.6.6    0.7.1    ---      Normal  cfg(target = "wasm32-unknown-unknown")
ravif->rav1e                                      0.7.1    ---      0.6.6    Normal  ---
rust_hawktracer->rust_hawktracer_normal_macro     0.4.1    Removed  ---      Normal  ---
rust_hawktracer->rust_hawktracer_proc_macro       0.4.1    Removed  ---      Normal  ---
rustc_version->semver                             1.0.22   Removed  ---      Normal  ---
semver->serde                                     1.0.197  Removed  ---      Normal  ---
serde->serde_derive                               1.0.197  Removed  ---      Normal  ---
serde_derive->proc-macro2                         1.0.79   Removed  ---      Normal  ---
serde_derive->quote                               1.0.35   Removed  ---      Normal  ---
serde_derive->syn                                 2.0.52   Removed  ---      Normal  ---
syn->proc-macro2                                  1.0.79   ---      Removed  Normal  ---
syn->proc-macro2                                  1.0.79   Removed  ---      Normal  ---
syn->quote                                        1.0.35   ---      Removed  Normal  ---
syn->quote                                        1.0.35   Removed  ---      Normal  ---
syn->unicode-ident                                1.0.12   ---      Removed  Normal  ---
syn->unicode-ident                                1.0.12   Removed  ---      Normal  ---
tinyvec->tinyvec_macros                           0.1.1    Removed  ---      Normal  ---
toml->serde                                       1.0.197  Removed  ---      Normal  ---
unicode-normalization->tinyvec                    1.6.0    Removed  ---      Normal  ---
url->form_urlencoded                              1.2.1    Removed  ---      Normal  ---
url->idna                                         0.5.0    Removed  ---      Normal  ---
url->percent-encoding                             2.3.1    Removed  ---      Normal  ---
wasm-bindgen->cfg-if                              1.0.0    Removed  ---      Normal  ---
wasm-bindgen->wasm-bindgen-macro                  0.2.92   Removed  ---      Normal  ---
wasm-bindgen-backend->bumpalo                     3.15.4   Removed  ---      Normal  ---
wasm-bindgen-backend->log                         0.4.21   Removed  ---      Normal  ---
wasm-bindgen-backend->once_cell                   1.19.0   Removed  ---      Normal  ---
wasm-bindgen-backend->proc-macro2                 1.0.79   Removed  ---      Normal  ---
wasm-bindgen-backend->quote                       1.0.35   Removed  ---      Normal  ---
wasm-bindgen-backend->syn                         2.0.52   Removed  ---      Normal  ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.92   Removed  ---      Normal  ---
wasm-bindgen-macro->quote                         1.0.35   Removed  ---      Normal  ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.92   Removed  ---      Normal  ---
wasm-bindgen-macro-support->proc-macro2           1.0.79   Removed  ---      Normal  ---
wasm-bindgen-macro-support->quote                 1.0.35   Removed  ---      Normal  ---
wasm-bindgen-macro-support->syn                   2.0.52   Removed  ---      Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.92   Removed  ---      Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.92   Removed  ---      Normal  ---

Other times it shows this:

Name                                              Project  Compat   Latest   Kind    Platform
----                                              -------  ------   ------   ----    --------
built->cargo-lock                                 8.0.3    ---      Removed  Normal  ---
cargo-lock->semver                                1.0.22   ---      Removed  Normal  ---
cargo-lock->serde                                 1.0.197  ---      Removed  Normal  ---
cargo-lock->toml                                  0.5.11   ---      Removed  Normal  ---
cargo-lock->url                                   2.5.0    ---      Removed  Normal  ---
form_urlencoded->percent-encoding                 2.3.1    ---      Removed  Normal  ---
idna->unicode-bidi                                0.3.15   ---      Removed  Normal  ---
idna->unicode-normalization                       0.1.23   ---      Removed  Normal  ---
libfuzzer-sys->arbitrary                          0.4.7    ---      1.3.2    Normal  ---
libfuzzer-sys->arbitrary                          1.3.2    0.4.7    ---      Normal  ---
libfuzzer-sys->once_cell                          1.19.0   Removed  ---      Normal  ---
num-derive->syn                                   1.0.109  ---      2.0.52   Normal  ---
num-derive->syn                                   2.0.52   1.0.109  ---      Normal  ---
proc-macro2->unicode-ident                        1.0.12   ---      Removed  Normal  ---
proc-macro2->unicode-ident                        1.0.12   Removed  ---      Normal  ---
profiling->profiling-procmacros                   1.0.15   Removed  ---      Normal  ---
profiling-procmacros->quote                       1.0.35   Removed  ---      Normal  ---
profiling-procmacros->syn                         2.0.52   Removed  ---      Normal  ---
quote->proc-macro2                                1.0.79   ---      Removed  Normal  ---
quote->proc-macro2                                1.0.79   Removed  ---      Normal  ---
rav1e->arbitrary                                  0.4.7    ---      1.3.2    Normal  cfg(fuzzing)
rav1e->arbitrary                                  1.3.2    0.4.7    ---      Normal  cfg(fuzzing)
rav1e->bitstream-io                               1.10.0   ---      2.2.0    Normal  ---
rav1e->bitstream-io                               2.2.0    1.10.0   ---      Normal  ---
rav1e->built                                      0.5.2    ---      0.7.1    Build   ---
rav1e->built                                      0.7.1    0.5.2    ---      Build   ---
rav1e->itertools                                  0.10.5   ---      0.12.1   Normal  ---
rav1e->itertools                                  0.12.1   0.10.5   ---      Normal  ---
rav1e->libfuzzer-sys                              0.3.5    ---      0.4.7    Normal  cfg(fuzzing)
rav1e->libfuzzer-sys                              0.4.7    0.3.5    ---      Normal  cfg(fuzzing)
rav1e->num-derive                                 0.3.3    ---      0.4.2    Normal  ---
rav1e->num-derive                                 0.4.2    0.3.3    ---      Normal  ---
rav1e->profiling                                  1.0.15   Removed  ---      Normal  ---
rav1e->rust_hawktracer                            0.7.0    ---      Removed  Normal  ---
rav1e->rustc_version                              0.4.0    ---      Removed  Build   ---
rav1e->wasm-bindgen                               0.2.92   ---      Removed  Normal  ---
ravif->rav1e                                      0.6.6    ---      0.7.1    Normal  cfg(target = "wasm32-unknown-unknown")
ravif->rav1e                                      0.7.1    0.6.6    ---      Normal  ---
rust_hawktracer->rust_hawktracer_normal_macro     0.4.1    ---      Removed  Normal  ---
rust_hawktracer->rust_hawktracer_proc_macro       0.4.1    ---      Removed  Normal  ---
rustc_version->semver                             1.0.22   ---      Removed  Normal  ---
semver->serde                                     1.0.197  ---      Removed  Normal  ---
serde->serde_derive                               1.0.197  ---      Removed  Normal  ---
serde_derive->proc-macro2                         1.0.79   ---      Removed  Normal  ---
serde_derive->quote                               1.0.35   ---      Removed  Normal  ---
serde_derive->syn                                 2.0.52   ---      Removed  Normal  ---
syn->proc-macro2                                  1.0.79   ---      Removed  Normal  ---
syn->proc-macro2                                  1.0.79   Removed  ---      Normal  ---
syn->quote                                        1.0.35   ---      Removed  Normal  ---
syn->quote                                        1.0.35   Removed  ---      Normal  ---
syn->unicode-ident                                1.0.12   ---      Removed  Normal  ---
syn->unicode-ident                                1.0.12   Removed  ---      Normal  ---
tinyvec->tinyvec_macros                           0.1.1    ---      Removed  Normal  ---
toml->serde                                       1.0.197  ---      Removed  Normal  ---
unicode-normalization->tinyvec                    1.6.0    ---      Removed  Normal  ---
url->form_urlencoded                              1.2.1    ---      Removed  Normal  ---
url->idna                                         0.5.0    ---      Removed  Normal  ---
url->percent-encoding                             2.3.1    ---      Removed  Normal  ---
wasm-bindgen->cfg-if                              1.0.0    ---      Removed  Normal  ---
wasm-bindgen->wasm-bindgen-macro                  0.2.92   ---      Removed  Normal  ---
wasm-bindgen-backend->bumpalo                     3.15.4   ---      Removed  Normal  ---
wasm-bindgen-backend->log                         0.4.21   ---      Removed  Normal  ---
wasm-bindgen-backend->once_cell                   1.19.0   ---      Removed  Normal  ---
wasm-bindgen-backend->proc-macro2                 1.0.79   ---      Removed  Normal  ---
wasm-bindgen-backend->quote                       1.0.35   ---      Removed  Normal  ---
wasm-bindgen-backend->syn                         2.0.52   ---      Removed  Normal  ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.92   ---      Removed  Normal  ---
wasm-bindgen-macro->quote                         1.0.35   ---      Removed  Normal  ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.92   ---      Removed  Normal  ---
wasm-bindgen-macro-support->proc-macro2           1.0.79   ---      Removed  Normal  ---
wasm-bindgen-macro-support->quote                 1.0.35   ---      Removed  Normal  ---
wasm-bindgen-macro-support->syn                   2.0.52   ---      Removed  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.92   ---      Removed  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.92   ---      Removed  Normal  ---
@kbknapp
Copy link
Owner

kbknapp commented Mar 23, 2024

Is this part of a larger repo/workspace? I can't seem to reproduce either via just a single dep image or via a real world repository. I let a script run a hundred times and the output is always the same.

@dtolnay
Copy link
Author

dtolnay commented Mar 24, 2024

Somewhere in image's dependency graph, whatever was triggering this went away on March 14. I checked the GitHub Actions history of https://github.com/dtolnay/unicode-ident and I see this failure occur between March 10 (when image 0.25.0 was released and I updated to it in dtolnay/unicode-ident@05a0928) through March 13:

and then since March 14 (https://github.com/dtolnay/unicode-ident/actions/runs/8290204559/job/22687874893) it has been succeeding.

The unicode-ident repo does use a workspace, but the outputs I pasted when filing this issue on March 11 are not from unicode-ident. I got all of them using the minimal repro with just a single image = "0.25.0" dependency and no workspace, using the latest nightly at the time (nightly-2024-03-12).

I tried to reproduce again today using nightly-2024-03-12 and the issue does not reproduce, so this issue isn't something that got fixed in Cargo — it's just been masked by some package in image's dependency graph getting published or yanked around March 14.

The list of crate versions that got pulled into the March 13 builds can be reconstructed from the cargo clippy step in https://github.com/dtolnay/unicode-ident/actions/runs/8274314132/job/22639463871.

Updating crates.io index...

Downloading crates ...
Downloaded adler v1.0.2
Downloaded aho-corasick v1.1.2
Downloaded aligned-vec v0.5.0
Downloaded anes v0.1.6
Downloaded anstyle v1.0.6
Downloaded anyhow v1.0.81
Downloaded arg_enum_proc_macro v0.3.4
Downloaded arrayvec v0.7.4
Downloaded autocfg v1.1.0
Downloaded av1-grain v0.2.3
Downloaded bit_field v0.10.2
Downloaded bitflags v1.3.2
Downloaded bitstream-io v2.2.0
Downloaded cast v0.3.0
Downloaded cfg-if v1.0.0
Downloaded ciborium-io v0.2.2
Downloaded ciborium-ll v0.2.2
Downloaded ciborium v0.2.2
Downloaded clap_builder v4.5.2
Downloaded clap v4.5.2
Downloaded flume v0.11.0
Downloaded fst v0.4.7
Downloaded getrandom v0.2.12
Downloaded jpeg-decoder v0.3.1
Downloaded libc v0.2.153
Downloaded num-rational v0.4.1
Downloaded proc-macro2 v1.0.79
Downloaded qoi v0.4.1
Downloaded rand_chacha v0.3.1
Downloaded rand_core v0.6.4
Downloaded rand v0.8.5
Downloaded rav1e v0.7.1
Downloaded ravif v0.11.4
Downloaded rayon-core v1.12.1
Downloaded rayon v1.9.0
Downloaded regex-automata v0.4.6
Downloaded regex-syntax v0.8.2
Downloaded regex v1.10.3
Downloaded rgb v0.8.37
Downloaded roaring v0.10.3
Downloaded same-file v1.0.6
Downloaded scopeguard v1.2.0
Downloaded serde_derive v1.0.197
Downloaded serde_json v1.0.114
Downloaded serde v1.0.197
Downloaded simd-adler32 v0.3.7
Downloaded simd_helpers v0.1.0
Downloaded smallvec v1.13.1
Downloaded spin v0.9.8
Downloaded syn v2.0.52
Downloaded thiserror-impl v1.0.58
Downloaded thiserror v1.0.58
Downloaded tiff v0.9.1
Downloaded tinytemplate v1.2.1
Downloaded ucd-trie v0.1.6
Downloaded unicode-ident v1.0.12
Downloaded unicode-xid v0.2.4
Downloaded v_frame v0.3.8
Downloaded walkdir v2.5.0
Downloaded weezl v0.1.8
Downloaded zune-core v0.4.12
Downloaded zune-inflate v0.2.54
Downloaded zune-jpeg v0.4.11

and on March 14 from https://github.com/dtolnay/unicode-ident/actions/runs/8290204559/job/22687875159:

Updating crates.io index...

Downloading crates ...
Downloaded adler v1.0.2
Downloaded aho-corasick v1.1.2
Downloaded aligned-vec v0.5.0
Downloaded anes v0.1.6
Downloaded anstyle v1.0.6
Downloaded anyhow v1.0.81
Downloaded arg_enum_proc_macro v0.3.4
Downloaded arrayvec v0.7.4
Downloaded autocfg v1.1.0
Downloaded av1-grain v0.2.3
Downloaded avif-serialize v0.8.1
Downloaded bit_field v0.10.2
Downloaded bitflags v1.3.2
Downloaded bumpalo v3.15.4
Downloaded bytemuck v1.15.0
Downloaded byteorder v1.5.0
Downloaded cast v0.3.0
Downloaded cfg-if v1.0.0
Downloaded ciborium-io v0.2.2
Downloaded ciborium-ll v0.2.2
Downloaded ciborium v0.2.2
Downloaded clap_lex v0.7.0
Downloaded color_quant v1.1.0
Downloaded crc32fast v1.4.0
Downloaded criterion-plot v0.5.0
Downloaded criterion v0.5.1
Downloaded crossbeam-deque v0.8.5
Downloaded either v1.10.0
Downloaded fdeflate v0.3.4
Downloaded gif v0.13.1
Downloaded image v0.25.0
Downloaded is-terminal v0.4.12
Downloaded itoa v1.0.10
Downloaded lebe v0.5.2
Downloaded loop9 v0.1.5
Downloaded new_debug_unreachable v1.0.4
Downloaded paste v1.0.14
Downloaded ppv-lite86 v0.2.17
Downloaded profiling-procmacros v1.0.15
Downloaded profiling v1.0.15
Downloaded qoi v0.4.1
Downloaded quick-error v2.0.1
Downloaded quote v1.0.35
Downloaded rand_chacha v0.3.1
Downloaded rand_core v0.6.4
Downloaded rand v0.8.5
Downloaded ravif v0.11.5
Downloaded simd-adler32 v0.3.7
Downloaded simd_helpers v0.1.0
Downloaded smallvec v1.13.1
Downloaded syn v2.0.52
Downloaded thiserror-impl v1.0.58
Downloaded thiserror v1.0.58
Downloaded tiff v0.9.1
Downloaded tinytemplate v1.2.1
Downloaded ucd-trie v0.1.6
Downloaded unicode-ident v1.0.12
Downloaded unicode-xid v0.2.4
Downloaded v_frame v0.3.8
Downloaded walkdir v2.5.0
Downloaded wasm-bindgen-backend v0.2.92
Downloaded wasm-bindgen-macro-support v0.2.92
Downloaded wasm-bindgen-macro v0.2.92
Downloaded wasm-bindgen-shared v0.2.92
Downloaded wasm-bindgen v0.2.92
Downloaded weezl v0.1.8
Downloaded zune-core v0.4.12
Downloaded zune-inflate v0.2.54
Downloaded zune-jpeg v0.4.11

The difference is:

10a11
>   Downloaded avif-serialize v0.8.1
13c14,16
<   Downloaded bitstream-io v2.2.0
---
>   Downloaded bumpalo v3.15.4
>   Downloaded bytemuck v1.15.0
>   Downloaded byteorder v1.5.0
19,27c22,40
<   Downloaded clap_builder v4.5.2
<   Downloaded clap v4.5.2
<   Downloaded flume v0.11.0
<   Downloaded fst v0.4.7
<   Downloaded getrandom v0.2.12
<   Downloaded jpeg-decoder v0.3.1
<   Downloaded libc v0.2.153
<   Downloaded num-rational v0.4.1
<   Downloaded proc-macro2 v1.0.79
---
>   Downloaded clap_lex v0.7.0
>   Downloaded color_quant v1.1.0
>   Downloaded crc32fast v1.4.0
>   Downloaded criterion-plot v0.5.0
>   Downloaded criterion v0.5.1
>   Downloaded crossbeam-deque v0.8.5
>   Downloaded either v1.10.0
>   Downloaded fdeflate v0.3.4
>   Downloaded gif v0.13.1
>   Downloaded image v0.25.0
>   Downloaded is-terminal v0.4.12
>   Downloaded itoa v1.0.10
>   Downloaded lebe v0.5.2
>   Downloaded loop9 v0.1.5
>   Downloaded new_debug_unreachable v1.0.4
>   Downloaded paste v1.0.14
>   Downloaded ppv-lite86 v0.2.17
>   Downloaded profiling-procmacros v1.0.15
>   Downloaded profiling v1.0.15
28a42,43
>   Downloaded quick-error v2.0.1
>   Downloaded quote v1.0.35
32,45c47
<   Downloaded rav1e v0.7.1
<   Downloaded ravif v0.11.4
<   Downloaded rayon-core v1.12.1
<   Downloaded rayon v1.9.0
<   Downloaded regex-automata v0.4.6
<   Downloaded regex-syntax v0.8.2
<   Downloaded regex v1.10.3
<   Downloaded rgb v0.8.37
<   Downloaded roaring v0.10.3
<   Downloaded same-file v1.0.6
<   Downloaded scopeguard v1.2.0
<   Downloaded serde_derive v1.0.197
<   Downloaded serde_json v1.0.114
<   Downloaded serde v1.0.197
---
>   Downloaded ravif v0.11.5
49d50
<   Downloaded spin v0.9.8
59a61,65
>   Downloaded wasm-bindgen-backend v0.2.92
>   Downloaded wasm-bindgen-macro-support v0.2.92
>   Downloaded wasm-bindgen-macro v0.2.92
>   Downloaded wasm-bindgen-shared v0.2.92
>   Downloaded wasm-bindgen v0.2.92

@dtolnay
Copy link
Author

dtolnay commented Mar 24, 2024

Fortunately, this is easy to narrow down: Looks like ravif is the only package that appears in both March 13 and March 14 but with different versions: 0.11.4 to 0.11.5. Indeed 0.11.5 got published on March 14 and accounts for every single other dependency change. https://crates.io/crates/ravif/0.11.5

So here is a surefire repro as of today:

#!/bin/bash

mkdir repro
cd repro
cargo +stable init
cargo +stable add image
cargo +stable add ravif@=0.11.4
cargo +stable outdated > cargo-outdated-0.out

while true; do
    rm Cargo.lock
    cargo +stable outdated > cargo-outdated-1.out
    if ! diff -q cargo-outdated-0.out cargo-outdated-1.out &>/dev/null; then
        cat cargo-outdated-0.out cargo-outdated-1.out
        exit
    fi
    echo did not reproduce, trying again
done

@dtolnay
Copy link
Author

dtolnay commented Mar 24, 2024

I confirmed that the only difference between ravif 0.11.4 and ravif 0.11.5 is kornelski/cavif-rs@d157737.

This situation is probably your root cause:

[dependencies]
rav1e = { version = "0.7", default-features = false, features = ["threading"] }
#...

[target.'cfg(target = "wasm32-unknown-unknown")'.dependencies]
rav1e = { version = "0.6", default-features = false, features = ["wasm"] }

dtolnay added a commit to dtolnay/unicode-ident that referenced this issue Mar 24, 2024
dtolnay added a commit to dtolnay/colorous that referenced this issue Mar 24, 2024
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

2 participants