Skip to content

scx_rustland_core: move 'include' key from [lib] to [package]#3543

Open
ooonea wants to merge 1 commit into
sched-ext:mainfrom
ooonea:fix/rustland-core-include-placement
Open

scx_rustland_core: move 'include' key from [lib] to [package]#3543
ooonea wants to merge 1 commit into
sched-ext:mainfrom
ooonea:fix/rustland-core-include-placement

Conversation

@ooonea

@ooonea ooonea commented Apr 23, 2026

Copy link
Copy Markdown

Problem

The include manifest key in rust/scx_rustland_core/Cargo.toml is
placed under [lib], but per the Cargo manifest specification
it belongs to [package].

Cargo versions prior to 1.88 tolerated the misplacement with a warning:

warning: .../scx_rustland_core/Cargo.toml: unused manifest key: lib.include

Cargo >= 1.88 (available e.g. via Debian trixie-backports rustc 1.90,
Fedora 42+) upgrades this to a hard error when the workspace is parsed
in strict mode (cargo check without -p, or workspace-level commands):

error: key with no value, expected `=`
  --> rust/scx_rustland_core/Cargo.toml:21:24

cargo build -p <scheduler> still succeeds because it bypasses full
workspace manifest resolution, which is why the issue doesn't surface
in targeted scheduler builds but does break cargo check on the
full workspace.

Fix

Move the include = [...] array from the [lib] section to the
[package] section. Semantics unchanged; the key was being ignored
before and will now be honored correctly.

Testing

Verified on Debian 13 (trixie) with trixie-backports rustc 1.90.0:

  • cargo check -p scx_rustland_core: pass, no warnings
  • cargo check -p scx_lavd -p scx_flash -p scx_bpfland: pass
  • cargo build --release -p scx_lavd -p scx_flash -p scx_bpfland: pass

Schedulers load and run correctly.

@sirlucjan sirlucjan requested a review from arighi April 23, 2026 19:23

@sirlucjan sirlucjan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It works for me without that bug fix, but it displays a warning.

❯ cargo check --workspace
warning: /home/lucjan/Pobrane/scx/rust/scx_rustland_core/Cargo.toml: unused manifest key: lib.include
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling unicode-ident v1.0.24
   Compiling libc v0.2.184
   Compiling autocfg v1.5.0
   Compiling cfg-if v1.0.4
   Compiling bitflags v2.11.0
   Compiling serde_core v1.0.228
   Compiling cfg_aliases v0.2.1
   Compiling strsim v0.11.1
   Compiling anyhow v1.0.102
   Compiling shlex v1.3.0
   Compiling thiserror v2.0.18
   Compiling find-msvc-tools v0.1.9
   Compiling memchr v2.8.0
   Compiling zmij v1.0.21
   Compiling serde v1.0.228
   Compiling heck v0.5.0
   Compiling cc v1.2.59
   Compiling rustix v1.1.4
   Compiling linux-raw-sys v0.12.1
   Compiling serde_json v1.0.149
   Compiling nix v0.31.2
   Compiling once_cell v1.21.4
   Compiling pkg-config v0.3.32
   Compiling getrandom v0.4.2
   Compiling regex-syntax v0.8.10
   Compiling unicode-segmentation v1.12.0
   Compiling camino v1.2.2
   Compiling prettyplease v0.2.37
   Compiling log v0.4.29
   Compiling fastrand v2.4.1
   Compiling glob v0.3.3
   Compiling twox-hash v2.1.2
   Compiling aho-corasick v1.1.4
   Compiling ruzstd v0.8.2
   Compiling unicode-width v0.2.2
   Compiling either v1.15.0
   Compiling convert_case v0.11.0
   Compiling num-traits v0.2.19
   Compiling clang-sys v1.8.1
   Compiling bindgen v0.72.1
   Compiling syn v2.0.117
   Compiling same-file v1.0.6
   Compiling utf8parse v0.2.2
   Compiling itoa v1.0.18
   Compiling walkdir v2.5.0
   Compiling anstyle-parse v1.0.0
   Compiling tracing-core v0.1.36
   Compiling colorchoice v1.0.5
   Compiling is_terminal_polyfill v1.70.2
   Compiling anstyle-query v1.1.5
   Compiling anstyle v1.0.14
   Compiling clap_lex v1.1.0
   Compiling minimal-lexical v0.2.1
   Compiling lazy_static v1.5.0
   Compiling anstream v1.0.0
   Compiling iana-time-zone v0.1.65
   Compiling unicase v2.9.0
   Compiling tracing-log v0.2.0
   Compiling nom v7.1.3
   Compiling sharded-slab v0.1.7
   Compiling libloading v0.8.9
   Compiling thread_local v1.1.9
   Compiling nu-ansi-term v0.50.3
   Compiling smallvec v1.15.1
   Compiling vsprintf v2.0.0
   Compiling filetime v0.2.27
   Compiling pin-project-lite v0.2.17
   Compiling memmap2 v0.9.10
   Compiling chrono v0.4.44
   Compiling itertools v0.13.0
   Compiling rustc-hash v2.1.1
   Compiling version-compare v0.2.1
   Compiling regex-automata v0.4.14
   Compiling crossbeam-utils v0.8.21
   Compiling ident_case v1.0.1
   Compiling tempfile v3.27.0
   Compiling xattr v1.6.1
   Compiling terminal_size v0.4.4
   Compiling tar v0.4.44
   Compiling clap_builder v4.6.0
   Compiling semver v1.0.28
    Checking errno v0.3.14
   Compiling parking_lot_core v0.9.12
   Compiling libbpf-sys v1.7.0+v1.7.0
    Checking futures-core v0.3.32
   Compiling tracing-subscriber v0.3.23
    Checking scopeguard v1.2.0
    Checking signal-hook-registry v1.4.8
    Checking lock_api v0.4.14
   Compiling cexpr v0.6.0
   Compiling hashbrown v0.17.0
   Compiling fnv v1.0.7
    Checking parking_lot v0.12.5
   Compiling equivalent v1.0.2
   Compiling thiserror v1.0.69
   Compiling scx_cargo v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_cargo)
    Checking parking v2.2.1
    Checking concurrent-queue v2.5.0
   Compiling indexmap v2.14.0
    Checking futures-io v0.3.32
   Compiling winnow v0.7.15
    Checking num-integer v0.1.46
   Compiling toml_datetime v1.0.0+spec-1.1.0
    Checking static_assertions v1.1.0
    Checking slab v0.4.12
    Checking num-bigint v0.4.6
    Checking event-listener v5.4.1
    Checking crossbeam-channel v0.5.15
    Checking rand_core v0.10.0
    Checking event-listener-strategy v0.5.4
   Compiling libbpf-rs v0.26.2
    Checking num-iter v0.1.45
    Checking futures-lite v2.6.1
    Checking num-complex v0.4.6
   Compiling regex v1.12.3
    Checking num-rational v0.4.2
   Compiling time-core v0.1.8
   Compiling num-conv v0.2.0
    Checking powerfmt v0.2.0
    Checking num v0.4.3
    Checking crossbeam-epoch v0.9.18
   Compiling time-macros v0.2.27
    Checking deranged v0.5.8
   Compiling toml_parser v1.0.9+spec-1.1.0
   Compiling async-io v2.6.0
    Checking num_threads v0.1.7
    Checking crossbeam-deque v0.8.6
   Compiling darling_core v0.20.11
   Compiling toml_edit v0.25.4+spec-1.1.0
    Checking async-task v4.7.1
   Compiling serde_derive v1.0.228
   Compiling thiserror-impl v2.0.18
   Compiling clap_derive v4.6.0
   Compiling tracing-attributes v0.1.31
   Compiling sscanf_macro v0.5.0
   Compiling thiserror-impl v1.0.69
   Compiling enumflags2_derive v0.7.12
   Compiling endi v1.1.1
    Checking time v0.3.47
   Compiling proc-macro-crate v3.5.0
    Checking matchers v0.2.0
    Checking async-channel v2.5.0
    Checking polling v3.11.0
   Compiling tracing v0.1.44
   Compiling radium v0.7.0
    Checking hex v0.4.3
    Checking atomic-waker v1.1.2
    Checking piper v0.2.5
    Checking async-lock v3.4.2
    Checking crossbeam-queue v0.3.12
    Checking tap v1.0.1
   Compiling paste v1.0.15
    Checking async-signal v0.2.13
    Checking wyz v0.5.1
    Checking crossbeam v0.8.4
    Checking blocking v1.6.2
   Compiling sscanf v0.5.0
    Checking async-executor v1.14.0
   Compiling async-trait v0.1.89
   Compiling async-recursion v1.1.1
   Compiling serde_repr v0.1.20
   Compiling clap v4.6.0
    Checking nvml-wrapper-sys v0.9.0
    Checking async-broadcast v0.7.2
    Checking ordered-stream v0.2.0
    Checking async-process v2.5.0
    Checking uuid v1.22.0
    Checking funty v2.0.0
   Compiling rustversion v1.0.22
   Compiling crc32fast v1.5.0
    Checking termcolor v1.4.1
    Checking simd-adler32 v0.3.8
   Compiling darling_macro v0.20.11
    Checking adler2 v2.0.1
    Checking mio v1.1.1
   Compiling signal-hook v0.3.18
    Checking simplelog v0.12.2
   Compiling darling v0.20.11
    Checking miniz_oxide v0.8.9
   Compiling wrapcenum-derive v0.4.1
   Compiling version_check v0.9.5
    Checking stable_deref_trait v1.2.1
    Checking mio v0.8.11
    Checking ryu v1.0.23
   Compiling darling_core v0.21.3
   Compiling darling_core v0.23.0
   Compiling indoc v2.0.7
   Compiling seccomp-sys v0.1.3
    Checking itertools v0.14.0
    Checking ctrlc v3.5.2
    Checking foldhash v0.2.0
    Checking allocator-api2 v0.2.21
   Compiling zerocopy v0.8.42
    Checking flate2 v1.1.9
   Compiling getrandom v0.3.4
    Checking signal-hook-mio v0.2.5
   Compiling ahash v0.8.12
    Checking castaway v0.2.4
   Compiling slog v2.8.2
   Compiling strum_macros v0.27.2
    Checking nvml-wrapper v0.12.0
   Compiling enum-map-derive v0.17.0
    Checking num_cpus v1.17.0
   Compiling protobuf v3.7.2
    Checking hashbrown v0.16.1
   Compiling rustix v0.38.44
    Checking owning_ref v0.4.1
   Compiling memoffset v0.9.1
   Compiling linux-raw-sys v0.4.15
    Checking unicode-width v0.1.14
    Checking enum-map v2.7.3
   Compiling procfs v0.18.0
    Checking bitflags v1.3.2
   Compiling instability v0.3.12
    Checking xi-unicode v0.3.0
    Checking crossterm v0.25.0
    Checking cargo-platform v0.1.9
    Checking enumflags2 v0.7.12
    Checking zvariant_utils v3.3.0
    Checking cargo_metadata v0.19.2
    Checking bitvec v1.0.1
    Checking scx_stats v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_stats)
    Checking kasuari v0.4.12
   Compiling zvariant_derive v5.10.0
    Checking unicode-truncate v2.0.1
    Checking lru v0.16.3
    Checking erased-serde v0.3.31
    Checking compact_str v0.9.0
   Compiling protobuf-support v3.7.2
    Checking procfs-core v0.18.0
   Compiling clap_main v0.2.9
   Compiling tokio-macros v2.6.1
    Checking socket2 v0.6.3
   Compiling zvariant v5.10.0
   Compiling scx_stats_derive v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_stats/scx_stats_derive)
   Compiling libbpf-cargo v0.26.2
    Checking strum v0.27.2
    Checking is-terminal v0.4.17
    Checking ratatui-core v0.1.0
   Compiling convert_case v0.10.0
   Compiling nix v0.29.0
    Checking plain v0.2.3
   Compiling home v0.5.12
    Checking term v1.2.1
    Checking bytes v1.11.1
   Compiling derive_more-impl v2.1.1
   Compiling darling_macro v0.23.0
   Compiling darling_macro v0.21.3
   Compiling seccomp v0.1.2
    Checking slog-term v2.9.2
   Compiling darling v0.23.0
   Compiling darling v0.21.3
   Compiling enumset_derive v0.14.0
    Checking tokio v1.50.0
   Compiling which v4.4.2
    Checking ordered-float v5.1.0
    Checking humantime v2.3.0
    Checking futures-sink v0.3.32
   Compiling litrs v1.0.0
    Checking fallible-iterator v0.3.0
    Checking derive_more v2.1.1
    Checking line-clipping v0.3.5
    Checking openat v0.1.21
   Compiling object v0.37.3
   Compiling protoc-bin-vendored-win32 v3.2.0
   Compiling scx_rustland_core v2.4.11 (/home/lucjan/Pobrane/scx/rust/scx_rustland_core)
   Compiling protoc-bin-vendored-linux-s390_64 v3.2.0
   Compiling protoc-bin-vendored-macos-x86_64 v3.2.0
   Compiling protoc-bin-vendored-linux-x86_32 v3.2.0
    Checking gimli v0.32.3
   Compiling protoc-bin-vendored-macos-aarch_64 v3.2.0
   Compiling protoc-bin-vendored-linux-ppcle_64 v3.2.0
   Compiling protoc-bin-vendored-linux-aarch_64 v3.2.0
   Compiling protoc-bin-vendored-linux-x86_64 v3.2.0
    Checking ratatui-widgets v0.3.0
   Compiling protoc-bin-vendored v3.2.0
    Checking futures-channel v0.3.32
   Compiling document-features v0.2.12
    Checking zbus_names v4.3.1
   Compiling futures-macro v0.3.32
    Checking sysinfo v0.38.4
   Compiling object v0.38.1
    Checking enumset v1.1.10
   Compiling cpp_demangle v0.5.1
    Checking rustc-demangle v0.1.27
    Checking cursive_core v0.3.7
    Checking crossterm v0.29.0
   Compiling scx_utils v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_utils)
   Compiling scx_arena v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_arena/scx_arena)
   Compiling scx_p2dq v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_p2dq)
   Compiling rayon-core v1.13.0
    Checking futures-task v0.3.32
    Checking sorted-vec v0.8.10
   Compiling scx_bpf_compat v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_bpf_compat)
   Compiling scx_userspace_arena v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_userspace_arena)
    Checking futures-util v0.3.32
    Checking ratatui-macros v0.7.0
   Compiling zbus_macros v5.14.0
    Checking threadpool v1.8.1
   Compiling smartstring v1.0.1
    Checking fdeflate v0.3.7
    Checking csv-core v0.1.13
    Checking ratatui-crossterm v0.1.0
    Checking serde_spanned v1.0.4
    Checking inotify-sys v0.1.5
   Compiling include_dir_macros v0.7.4
   Compiling signal-hook v0.4.3
    Checking toml_writer v1.0.6+spec-1.1.0
   Compiling blazesym v0.2.3
    Checking pxfm v0.1.28
    Checking cpufeatures v0.3.0
    Checking toml v1.0.6+spec-1.1.0
    Checking chacha20 v0.10.0
    Checking include_dir v0.7.4
    Checking ratatui v0.30.0
    Checking csv v1.4.0
    Checking cursive v0.20.0
    Checking below-common v0.9.0
    Checking png v0.18.1
   Compiling protobuf-parse v3.7.2
    Checking addr2line v0.25.1
    Checking fb_procfs v0.9.0
    Checking inotify v0.11.1
    Checking futures-executor v0.3.32
   Compiling scx_layered v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_layered)
   Compiling scxtop v1.1.0 (/home/lucjan/Pobrane/scx/tools/scxtop)
   Compiling protobuf-codegen v3.7.2
    Checking moxcms v0.8.1
    Checking zbus v5.14.0
    Checking backtrace v0.3.76
   Compiling scx_chaos v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_chaos)
   Compiling scx_pandemonium v5.6.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_pandemonium)
   Compiling bon-macros v3.9.1
    Checking arrayvec v0.7.6
    Checking clap_complete v4.6.0
    Checking miniz_oxide v0.9.1
    Checking gethostname v1.1.0
    Checking anstyle-parse v0.2.7
    Checking encoding_rs v0.8.35
    Checking byteorder-lite v0.1.0
    Checking buddy_system_allocator v0.12.0
   Compiling rlimit v0.11.0
    Checking x11rb-protocol v0.13.2
    Checking bytemuck v1.25.0
    Checking anstream v0.6.21
    Checking log-panics v2.1.0
    Checking num-format v0.4.4
    Checking rayon v1.11.0
   Compiling perfetto_protos v0.51.1
    Checking futures v0.3.32
    Checking tokio-util v0.7.18
    Checking image v0.25.10
    Checking rand v0.10.0
   Compiling scx_bpf_unittests v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_bpf_unittests)
   Compiling scx_rlfifo v1.1.0 (/home/lucjan/Pobrane/scx/scheds/experimental/scx_rlfifo)
   Compiling scx_flash v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_flash)
   Compiling scx_cake v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_cake)
   Compiling scx_rustland v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_rustland)
   Compiling scx_cosmos v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_cosmos)
   Compiling scx_mitosis v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_mitosis)
   Compiling scx_lavd v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_lavd)
   Compiling scxcash v1.1.0 (/home/lucjan/Pobrane/scx/tools/scxcash)
   Compiling scx_tickless v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_tickless)
   Compiling scx_arena_selftests v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_arena/selftests)
   Compiling scx_flow v2.2.0 (/home/lucjan/Pobrane/scx/scheds/experimental/scx_flow)
    Checking x11rb v0.13.2
   Compiling scx_beerland v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_beerland)
   Compiling scx_rusty v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_rusty)
   Compiling scx_bpfland v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_bpfland)
    Checking env_filter v1.0.0
    Checking raw-cpuid v11.6.0
    Checking cargo-platform v0.3.2
    Checking anpa v0.10.0
    Checking percent-encoding v2.3.2
    Checking micromath v2.1.0
    Checking xdg v3.0.0
    Checking jiff v0.2.23
    Checking cargo_metadata v0.23.1
    Checking arboard v3.6.1
    Checking bon v3.9.1
    Checking tachyonfx v0.25.0
    Checking quanta v0.12.6
    Checking scx_raw_pmu v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_raw_pmu)
    Checking env_logger v0.11.9
    Checking cgroupfs v0.9.0
    Checking core_affinity v0.8.3
    Checking affinity v0.1.2
    Checking clap-num v1.2.0
    Checking gpoint v0.2.1
    Checking perf-event-open-sys v6.0.0
    Checking combinations v0.1.0
    Checking maplit v1.0.2
    Checking xtask v1.1.0 (/home/lucjan/Pobrane/scx/tools/xtask)
    Checking vmlinux_docify v1.1.0 (/home/lucjan/Pobrane/scx/tools/vmlinux_docify)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.29s
'cargo check --workspace' time: 41,352s, cpu: 1019%
lucjan at cachyos ~/Pobrane/scx 21:29:26 a08c9e27 main    
❯ rustc -vV    
rustc 1.95.0 (59807616e 2026-04-14)
binary: rustc
commit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860
commit-date: 2026-04-14
host: x86_64-unknown-linux-gnu
release: 1.95.0
LLVM version: 22.1.2

However, your commit removes that warning, which I think is a plus. If @arighi agrees, we can merge it.

lucjan at cachyos ~/Pobrane/scx 21:34:37 e8163213 main    
❯ cargo check --workspace                              
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling unicode-ident v1.0.24
   Compiling libc v0.2.184
   Compiling autocfg v1.5.0
   Compiling cfg-if v1.0.4
   Compiling bitflags v2.11.0
   Compiling serde_core v1.0.228
   Compiling cfg_aliases v0.2.1
   Compiling strsim v0.11.1
   Compiling shlex v1.3.0
   Compiling anyhow v1.0.102
   Compiling memchr v2.8.0
   Compiling find-msvc-tools v0.1.9
   Compiling thiserror v2.0.18
   Compiling zmij v1.0.21
   Compiling serde v1.0.228
   Compiling rustix v1.1.4
   Compiling cc v1.2.59
   Compiling heck v0.5.0
   Compiling serde_json v1.0.149
   Compiling linux-raw-sys v0.12.1
   Compiling nix v0.31.2
   Compiling once_cell v1.21.4
   Compiling pkg-config v0.3.32
   Compiling getrandom v0.4.2
   Compiling unicode-segmentation v1.12.0
   Compiling regex-syntax v0.8.10
   Compiling camino v1.2.2
   Compiling prettyplease v0.2.37
   Compiling log v0.4.29
   Compiling fastrand v2.4.1
   Compiling glob v0.3.3
   Compiling twox-hash v2.1.2
   Compiling aho-corasick v1.1.4
   Compiling ruzstd v0.8.2
   Compiling either v1.15.0
   Compiling unicode-width v0.2.2
   Compiling convert_case v0.11.0
   Compiling num-traits v0.2.19
   Compiling clang-sys v1.8.1
   Compiling utf8parse v0.2.2
   Compiling itoa v1.0.18
   Compiling bindgen v0.72.1
   Compiling same-file v1.0.6
   Compiling anstyle-parse v1.0.0
   Compiling syn v2.0.117
   Compiling walkdir v2.5.0
   Compiling tracing-core v0.1.36
   Compiling colorchoice v1.0.5
   Compiling anstyle-query v1.1.5
   Compiling anstyle v1.0.14
   Compiling is_terminal_polyfill v1.70.2
   Compiling clap_lex v1.1.0
   Compiling iana-time-zone v0.1.65
   Compiling lazy_static v1.5.0
   Compiling anstream v1.0.0
   Compiling minimal-lexical v0.2.1
   Compiling unicase v2.9.0
   Compiling sharded-slab v0.1.7
   Compiling tracing-log v0.2.0
   Compiling nom v7.1.3
   Compiling vsprintf v2.0.0
   Compiling thread_local v1.1.9
   Compiling libloading v0.8.9
   Compiling nu-ansi-term v0.50.3
   Compiling smallvec v1.15.1
   Compiling filetime v0.2.27
   Compiling chrono v0.4.44
   Compiling pin-project-lite v0.2.17
   Compiling memmap2 v0.9.10
   Compiling itertools v0.13.0
   Compiling rustc-hash v2.1.1
   Compiling version-compare v0.2.1
   Compiling regex-automata v0.4.14
   Compiling crossbeam-utils v0.8.21
   Compiling ident_case v1.0.1
   Compiling tempfile v3.27.0
   Compiling xattr v1.6.1
   Compiling terminal_size v0.4.4
   Compiling tar v0.4.44
   Compiling clap_builder v4.6.0
   Compiling semver v1.0.28
    Checking errno v0.3.14
   Compiling parking_lot_core v0.9.12
   Compiling tracing-subscriber v0.3.23
   Compiling libbpf-sys v1.7.0+v1.7.0
    Checking futures-core v0.3.32
    Checking scopeguard v1.2.0
    Checking signal-hook-registry v1.4.8
    Checking lock_api v0.4.14
   Compiling fnv v1.0.7
   Compiling cexpr v0.6.0
   Compiling hashbrown v0.17.0
   Compiling equivalent v1.0.2
    Checking parking_lot v0.12.5
   Compiling thiserror v1.0.69
   Compiling scx_cargo v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_cargo)
    Checking parking v2.2.1
   Compiling indexmap v2.14.0
    Checking concurrent-queue v2.5.0
   Compiling winnow v0.7.15
    Checking futures-io v0.3.32
    Checking num-integer v0.1.46
   Compiling toml_datetime v1.0.0+spec-1.1.0
    Checking static_assertions v1.1.0
    Checking slab v0.4.12
    Checking num-bigint v0.4.6
    Checking event-listener v5.4.1
    Checking crossbeam-channel v0.5.15
    Checking rand_core v0.10.0
   Compiling libbpf-rs v0.26.2
    Checking event-listener-strategy v0.5.4
    Checking num-iter v0.1.45
    Checking futures-lite v2.6.1
    Checking num-complex v0.4.6
   Compiling regex v1.12.3
    Checking num-rational v0.4.2
   Compiling toml_parser v1.0.9+spec-1.1.0
    Checking powerfmt v0.2.0
   Compiling time-core v0.1.8
   Compiling num-conv v0.2.0
    Checking num v0.4.3
    Checking deranged v0.5.8
    Checking crossbeam-epoch v0.9.18
   Compiling time-macros v0.2.27
   Compiling async-io v2.6.0
    Checking num_threads v0.1.7
    Checking crossbeam-deque v0.8.6
   Compiling toml_edit v0.25.4+spec-1.1.0
   Compiling darling_core v0.20.11
    Checking async-task v4.7.1
   Compiling serde_derive v1.0.228
   Compiling thiserror-impl v2.0.18
   Compiling clap_derive v4.6.0
   Compiling tracing-attributes v0.1.31
   Compiling sscanf_macro v0.5.0
   Compiling thiserror-impl v1.0.69
   Compiling enumflags2_derive v0.7.12
   Compiling proc-macro-crate v3.5.0
   Compiling endi v1.1.1
    Checking time v0.3.47
    Checking matchers v0.2.0
    Checking async-channel v2.5.0
   Compiling tracing v0.1.44
   Compiling radium v0.7.0
    Checking atomic-waker v1.1.2
    Checking polling v3.11.0
    Checking hex v0.4.3
    Checking piper v0.2.5
    Checking async-lock v3.4.2
    Checking crossbeam-queue v0.3.12
    Checking tap v1.0.1
   Compiling paste v1.0.15
    Checking wyz v0.5.1
    Checking crossbeam v0.8.4
    Checking blocking v1.6.2
   Compiling sscanf v0.5.0
   Compiling clap v4.6.0
    Checking async-executor v1.14.0
   Compiling serde_repr v0.1.20
    Checking async-signal v0.2.13
   Compiling async-recursion v1.1.1
   Compiling async-trait v0.1.89
    Checking nvml-wrapper-sys v0.9.0
    Checking async-broadcast v0.7.2
    Checking ordered-stream v0.2.0
    Checking uuid v1.22.0
    Checking async-process v2.5.0
    Checking funty v2.0.0
   Compiling rustversion v1.0.22
   Compiling crc32fast v1.5.0
    Checking simd-adler32 v0.3.8
    Checking termcolor v1.4.1
   Compiling darling_macro v0.20.11
    Checking adler2 v2.0.1
    Checking mio v1.1.1
    Checking simplelog v0.12.2
   Compiling signal-hook v0.3.18
   Compiling darling v0.20.11
   Compiling wrapcenum-derive v0.4.1
    Checking miniz_oxide v0.8.9
    Checking stable_deref_trait v1.2.1
   Compiling version_check v0.9.5
    Checking mio v0.8.11
    Checking ryu v1.0.23
    Checking ctrlc v3.5.2
   Compiling darling_core v0.21.3
   Compiling darling_core v0.23.0
   Compiling indoc v2.0.7
   Compiling seccomp-sys v0.1.3
    Checking itertools v0.14.0
    Checking allocator-api2 v0.2.21
    Checking foldhash v0.2.0
    Checking signal-hook-mio v0.2.5
   Compiling getrandom v0.3.4
   Compiling zerocopy v0.8.42
   Compiling ahash v0.8.12
   Compiling slog v2.8.2
    Checking castaway v0.2.4
    Checking flate2 v1.1.9
   Compiling strum_macros v0.27.2
    Checking nvml-wrapper v0.12.0
   Compiling enum-map-derive v0.17.0
    Checking num_cpus v1.17.0
   Compiling protobuf v3.7.2
    Checking hashbrown v0.16.1
   Compiling rustix v0.38.44
    Checking owning_ref v0.4.1
   Compiling memoffset v0.9.1
    Checking cargo-platform v0.1.9
    Checking enumflags2 v0.7.12
   Compiling zvariant_utils v3.3.0
    Checking cargo_metadata v0.19.2
    Checking bitvec v1.0.1
    Checking scx_stats v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_stats)
    Checking lru v0.16.3
    Checking kasuari v0.4.12
   Compiling zvariant_derive v5.10.0
    Checking enum-map v2.7.3
    Checking erased-serde v0.3.31
    Checking unicode-truncate v2.0.1
    Checking compact_str v0.9.0
    Checking xi-unicode v0.3.0
   Compiling procfs v0.18.0
    Checking bitflags v1.3.2
   Compiling linux-raw-sys v0.4.15
   Compiling instability v0.3.12
    Checking unicode-width v0.1.14
    Checking procfs-core v0.18.0
    Checking crossterm v0.25.0
   Compiling protobuf-support v3.7.2
   Compiling libbpf-cargo v0.26.2
   Compiling zvariant v5.10.0
   Compiling scx_stats_derive v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_stats/scx_stats_derive)
    Checking strum v0.27.2
    Checking ratatui-core v0.1.0
   Compiling tokio-macros v2.6.1
   Compiling clap_main v0.2.9
    Checking socket2 v0.6.3
    Checking is-terminal v0.4.17
   Compiling convert_case v0.10.0
   Compiling nix v0.29.0
   Compiling home v0.5.12
   Compiling darling_macro v0.23.0
    Checking bytes v1.11.1
   Compiling darling_macro v0.21.3
    Checking term v1.2.1
    Checking plain v0.2.3
   Compiling derive_more-impl v2.1.1
   Compiling seccomp v0.1.2
   Compiling darling v0.21.3
   Compiling darling v0.23.0
    Checking slog-term v2.9.2
   Compiling enumset_derive v0.14.0
    Checking tokio v1.50.0
    Checking ordered-float v5.1.0
   Compiling which v4.4.2
    Checking humantime v2.3.0
    Checking fallible-iterator v0.3.0
    Checking futures-sink v0.3.32
   Compiling litrs v1.0.0
    Checking derive_more v2.1.1
   Compiling scx_rustland_core v2.4.11 (/home/lucjan/Pobrane/scx/rust/scx_rustland_core)
    Checking line-clipping v0.3.5
    Checking openat v0.1.21
   Compiling protoc-bin-vendored-win32 v3.2.0
   Compiling protoc-bin-vendored-linux-x86_64 v3.2.0
   Compiling protoc-bin-vendored-linux-x86_32 v3.2.0
   Compiling protoc-bin-vendored-linux-aarch_64 v3.2.0
   Compiling object v0.37.3
   Compiling protoc-bin-vendored-linux-ppcle_64 v3.2.0
   Compiling protoc-bin-vendored-macos-aarch_64 v3.2.0
    Checking zbus_names v4.3.1
   Compiling protoc-bin-vendored-linux-s390_64 v3.2.0
   Compiling protoc-bin-vendored-macos-x86_64 v3.2.0
    Checking ratatui-widgets v0.3.0
   Compiling protoc-bin-vendored v3.2.0
    Checking gimli v0.32.3
    Checking futures-channel v0.3.32
   Compiling document-features v0.2.12
   Compiling futures-macro v0.3.32
    Checking sysinfo v0.38.4
    Checking sorted-vec v0.8.10
    Checking enumset v1.1.10
   Compiling object v0.38.1
   Compiling scx_utils v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_utils)
   Compiling scx_arena v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_arena/scx_arena)
   Compiling scx_p2dq v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_p2dq)
    Checking cursive_core v0.3.7
    Checking futures-task v0.3.32
    Checking crossterm v0.29.0
   Compiling rayon-core v1.13.0
    Checking rustc-demangle v0.1.27
   Compiling cpp_demangle v0.5.1
   Compiling scx_bpf_compat v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_bpf_compat)
    Checking futures-util v0.3.32
   Compiling scx_userspace_arena v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_userspace_arena)
   Compiling zbus_macros v5.14.0
    Checking ratatui-macros v0.7.0
    Checking threadpool v1.8.1
   Compiling smartstring v1.0.1
    Checking fdeflate v0.3.7
    Checking csv-core v0.1.13
    Checking ratatui-crossterm v0.1.0
    Checking serde_spanned v1.0.4
    Checking inotify-sys v0.1.5
   Compiling include_dir_macros v0.7.4
    Checking pxfm v0.1.28
    Checking toml_writer v1.0.6+spec-1.1.0
   Compiling signal-hook v0.4.3
    Checking cpufeatures v0.3.0
   Compiling blazesym v0.2.3
    Checking chacha20 v0.10.0
    Checking toml v1.0.6+spec-1.1.0
    Checking cursive v0.20.0
    Checking include_dir v0.7.4
    Checking ratatui v0.30.0
    Checking png v0.18.1
    Checking below-common v0.9.0
    Checking csv v1.4.0
   Compiling protobuf-parse v3.7.2
    Checking addr2line v0.25.1
    Checking fb_procfs v0.9.0
    Checking inotify v0.11.1
    Checking futures-executor v0.3.32
   Compiling scx_layered v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_layered)
   Compiling scxtop v1.1.0 (/home/lucjan/Pobrane/scx/tools/scxtop)
    Checking zbus v5.14.0
    Checking moxcms v0.8.1
   Compiling scx_pandemonium v5.6.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_pandemonium)
   Compiling protobuf-codegen v3.7.2
   Compiling scx_chaos v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_chaos)
    Checking backtrace v0.3.76
   Compiling bon-macros v3.9.1
    Checking arrayvec v0.7.6
    Checking clap_complete v4.6.0
    Checking miniz_oxide v0.9.1
    Checking gethostname v1.1.0
    Checking anstyle-parse v0.2.7
    Checking encoding_rs v0.8.35
   Compiling rlimit v0.11.0
    Checking buddy_system_allocator v0.12.0
    Checking byteorder-lite v0.1.0
    Checking bytemuck v1.25.0
    Checking x11rb-protocol v0.13.2
    Checking anstream v0.6.21
    Checking log-panics v2.1.0
    Checking num-format v0.4.4
    Checking rayon v1.11.0
   Compiling perfetto_protos v0.51.1
    Checking image v0.25.10
    Checking futures v0.3.32
    Checking tokio-util v0.7.18
    Checking rand v0.10.0
   Compiling scx_cake v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_cake)
   Compiling scx_bpf_unittests v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_bpf_unittests)
   Compiling scx_cosmos v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_cosmos)
   Compiling scx_flash v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_flash)
   Compiling scx_mitosis v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_mitosis)
   Compiling scx_rusty v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_rusty)
   Compiling scx_arena_selftests v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_arena/selftests)
   Compiling scx_bpfland v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_bpfland)
   Compiling scx_beerland v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_beerland)
   Compiling scx_rustland v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_rustland)
   Compiling scx_tickless v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_tickless)
   Compiling scx_flow v2.2.0 (/home/lucjan/Pobrane/scx/scheds/experimental/scx_flow)
   Compiling scx_rlfifo v1.1.0 (/home/lucjan/Pobrane/scx/scheds/experimental/scx_rlfifo)
    Checking x11rb v0.13.2
   Compiling scxcash v1.1.0 (/home/lucjan/Pobrane/scx/tools/scxcash)
   Compiling scx_lavd v1.1.0 (/home/lucjan/Pobrane/scx/scheds/rust/scx_lavd)
    Checking env_filter v1.0.0
    Checking raw-cpuid v11.6.0
    Checking cargo-platform v0.3.2
    Checking jiff v0.2.23
    Checking percent-encoding v2.3.2
    Checking micromath v2.1.0
    Checking xdg v3.0.0
    Checking anpa v0.10.0
    Checking cargo_metadata v0.23.1
    Checking arboard v3.6.1
    Checking bon v3.9.1
    Checking tachyonfx v0.25.0
    Checking quanta v0.12.6
    Checking scx_raw_pmu v1.1.0 (/home/lucjan/Pobrane/scx/rust/scx_raw_pmu)
    Checking env_logger v0.11.9
    Checking cgroupfs v0.9.0
    Checking core_affinity v0.8.3
    Checking affinity v0.1.2
    Checking clap-num v1.2.0
    Checking gpoint v0.2.1
    Checking perf-event-open-sys v6.0.0
    Checking combinations v0.1.0
    Checking maplit v1.0.2
    Checking xtask v1.1.0 (/home/lucjan/Pobrane/scx/tools/xtask)
    Checking vmlinux_docify v1.1.0 (/home/lucjan/Pobrane/scx/tools/vmlinux_docify)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.35s

@sirlucjan

Copy link
Copy Markdown
Collaborator
❯ cargo publish -p scx_rustland_core --dry-run
    Updating crates.io index
warning: crate scx_rustland_core@2.4.11 already exists on crates.io index
   Packaging scx_rustland_core v2.4.11 (/home/lucjan/Pobrane/a/scx/rust/scx_rustland_core)
warning: ignoring library `scx_rustland_core` as `src/lib.rs` is not included in the published package
error: failed to prepare local package for uploading

Caused by:
  no targets specified in the manifest
  either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present
lucjan at cachyos ~/Pobrane/a/scx 22:28:27 3ccbb929 main    

It follows, then, that the current provision is necessary after all. @arighi mentioned this to me once.

@ooonea ooonea force-pushed the fix/rustland-core-include-placement branch from 7432b25 to 8f19469 Compare April 24, 2026 12:09
@ooonea

ooonea commented Apr 24, 2026

Copy link
Copy Markdown
Author
Amended to add `src/**/*.rs` to the include array. Verification:

**Before amend** — sirlucjan's failure reproduced:

```
warning: ignoring library `scx_rustland_core` as `src/lib.rs` is not included in the published package
error: no targets specified in the manifest
```

**After amend** — that error is gone. `cargo package -p scx_rustland_core --list` now correctly includes the library sources:

```
src/alloc.rs
src/bpf_intf.rs
src/bpf_skel.rs
src/lib.rs
src/rustland_builder.rs
```

alongside the three pre-existing asset files. `cargo check --workspace` is clean, the `unused manifest key: lib.include` warning is gone.

`cargo publish -p scx_rustland_core --dry-run` still fails, but with an unrelated, pre-existing dependency conflict:

```
failed to select a version for `libbpf-rs`.
  ... required by package `scx_cargo v1.1.0`
  versions that meet the requirements `=0.26.1` are: 0.26.1
  previously selected package `libbpf-rs v0.26.2`
  ... which satisfies dependency `libbpf-rs = "=0.26.2"` ... of `scx_rustland_core`
```

`scx_cargo` pins `libbpf-rs = "=0.26.1"` while `scx_rustland_core` pins `=0.26.2` — these are resolvable in the local workspace via the lockfile, but `cargo publish` performs a fresh resolution against crates.io where the two `=` constraints conflict. Reproduces on `main` as well, so it's out of scope for this PR.

@ooonea ooonea force-pushed the fix/rustland-core-include-placement branch from 8f19469 to 35e5cd2 Compare May 10, 2026 13:28
@ooonea

ooonea commented May 10, 2026

Copy link
Copy Markdown
Author

Force-pushed an amend that adds src/*.rs alongside the existing src/**/*.rs in the include array, as a belt-and-suspenders measure across cargo versions where ** may not match top-level files.

To be transparent: I could not actually reproduce the src/lib.rs is not included warning on my toolchain (cargo 1.94.1) — src/**/*.rs alone was sufficient there, both before and after the amend. The amend is purely defensive: matching src/*.rs explicitly costs nothing and removes any ambiguity. If you re-test on your end, src/lib.rs should now show up unconditionally.

Verification on the amended branch:

$ cargo package --list -p scx_rustland_core | grep '^src/'
src/alloc.rs
src/bpf_intf.rs
src/bpf_skel.rs
src/lib.rs
src/rustland_builder.rs

cargo publish -p scx_rustland_core --dry-run still fails, but with a different, pre-existing error — a libbpf-rs version conflict (scx_cargo requires =0.26.1, the lockfile pins =0.26.2). Reproduces on upstream/main without this PR applied, so it's out of scope.

@ooonea ooonea force-pushed the fix/rustland-core-include-placement branch from 35e5cd2 to 3d0ea9e Compare May 10, 2026 13:31
The 'include' manifest key belongs to the [package] section per the
Cargo manifest specification, not [lib]. Older Cargo versions tolerated
the misplacement with a warning; Cargo 1.88+ (Debian trixie-backports
rustc 1.90, Fedora 42+) emits a hard error when the workspace is parsed
in strict mode:

    error: key with no value, expected '='
      --> rust/scx_rustland_core/Cargo.toml:21:24

This breaks 'cargo check' workspace-wide. Note that 'cargo build -p
<scheduler>' still succeeds because it bypasses full workspace manifest
resolution.

Tested on Debian 13 (trixie) with trixie-backports rustc 1.90.0:
- cargo check -p scx_rustland_core: pass
- cargo check -p scx_lavd -p scx_flash -p scx_bpfland: pass
- cargo build --release -p scx_lavd -p scx_flash -p scx_bpfland: pass

Signed-off-by: ooonea <35407790+ooonea@users.noreply.github.com>
@ooonea ooonea force-pushed the fix/rustland-core-include-placement branch from 3d0ea9e to f24fbd8 Compare June 7, 2026 00:22
@ooonea

ooonea commented Jun 7, 2026

Copy link
Copy Markdown
Author

Rebased onto current main to clear the out-of-date (BEHIND) state. The change itself is unchanged — it just moves the include key from [lib] to [package] in scx_rustland_core/Cargo.toml. Should be approved + mergeable now; gentle ping to merge whenever convenient. Thanks!

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.

2 participants