Repository navigation
What's Changed
Headlines
- Repository indexes — spk can now generate and read solver indexes for repositories, which speed up solves on large repos. Generate and update them with the new
spk repo indexcommand, and turn them on per repository in the config (use_index, off by default) or for a single command with--index-use config-file|disabled|enabled. Built up over the "Indexes" series by @dcookspi in #1336, #1337, #1338, #1339, #1340, #1344, #1354, #1355, #1363, #1364, #1368, #1374, with follow-ups in #1381, #1383, #1385, #1388, #1389, #1392, #1397, #1398, #1403 - Resolvo solver maturity — many correctness fixes bringing the resolvo solver in line with the step solver: prereleases (#1230), embedded packages in
spk build(#1247), options vs. var requirements (#1258), global vars in solutions (#1275), build-env option propagation (#1365), build-component constraints (#1369), solver options in solutions (#1399), and search space stats (#1267). By @jrray and @dcookspi - Repo walkers,
spk stats, andspk ls/spk duimprovements — a new repository walker underliesspk lsandspk du, and powers the newspk statscommand for summarizing versions and builds of a package by @dcookspi in #1225, #1226, #1228, #1229, #1236, #1240, #1387 - Required vars and var inheritance controls — required vars can be satisfied by command-line options (#1357, #1359), and downstream packages can opt out of a strongly-inherited var with
suppress(#1349) by @jrray - Documentation restructure of spkenv.dev by @rydrman in #1272, plus new pages on spfs startup files (#1269), required vars (#1311), and running spfs in containers (#1384)
Key Highlights
- Add
--wrap-origin <path>to spk and spfs commands to layer an extra repo in front of origin by @dcookspi in #1205 - spfs: opt-in direct mount syscalls for overlayfs (
[filesystem] use_mount_syscalls = true) by @davvid in #1181 - spfs: add
--from/--toforspfs pushandspfs pullby @jrray in #1351 - Add support for the
fallbackrepository scheme by @jrray in #1263 - Namespaced options are now also exposed as
$SPK_PKG_<pkg>_OPT_<opt>, a valid environment variable name; the old$SPK_OPT_<pkg>.<opt>form is still set for compatibility by @jrray in #1287 spk info -f/--formatworks inside an environment by @dcookspi in #1241- Tests can access their specs from a build spec by @dcookspi in #1286
- Standalone
v1/platformrecipes can be built directly withspk buildby @jrray in #1370 - Solver settings from the config file (e.g.
solver_to_run,solve_timeout) are now honored by commands likespk bake, with CLI > env > config > default precedence by @jrray in #1410 - Pin overlayfs
index/metacopymount options instead of inheriting kernel defaults, fixing "Stale file handle" remount failures on some kernels by @jrray in #1382
Upgrade Notes
- RPMs now require
kmod— spfs uses/sbin/modinfoto detect overlayfs features; without it, spfs falls back to conservative mount options and warns on every run. Container users should also bind-mount/lib/modulesread-only; see the new containers doc (#1384) - Repository indexes are off by default (
use_index = false) (#1383) - The unused
solver.use_indexesandsolver.indexesconfig keys were removed; existing config files that contain them still load (#1409) - Removed the
legacy-spk-version-tags(#1274) andmigration-to-components(#1343) cargo features - Builds now use Rust 1.93.0, pinned with
rust-toolchain.toml(#1245, #1250, #1322) - Library users: significant
spk-schemaAPI changes —spk-schema-identmerged intospk-schema-foundation(#1244),Specsplit intoRecipeSpec/PackageSpec(#1295),BuildSpecsplit intoBuildSpec/RecipeBuildSpec(#1298), andRequestsplit intoPinnableRequest/PinnedRequest(#1297)
Bug Fixes
- Fix
~1.2.3matching1.3.0-pre.1by @jrray in #1234 - Allow embedded packages' prerelease parents by @jrray in #1417
- Restore Ctrl+C interruption after solving by @jrray in #1414
- Fix step solver backtracking on request conflicts by @jrray in #1367
- Scope namespaced var requirements to their package by @jrray in #1361
- Fix build-component requirement handling for resolved and embedded packages by @jrray in #1373
- Embedded packages now pin build options; packages with unpinned var opts are fixed up on load by @jrray in #1302, #1301
- Fix solver building from a source package with recursive dependencies by @dcookspi in #1173
- Fix 'package not found' from
spk infoin build scripts by @jrray in #1394 - Fix intermittent IllegalGeneration error in
spk publishby @jrray in #1391 spfs pushdefaults to origin for the remote repo again by @dcookspi in #1260- Fix
spfs checkcrashing if an annotation blob is missing, and annotation blob syncing by @jrray and @dcookspi in #1264, #1265 - Better handling of missing payloads in spfs-fuse by @jrray in #1266
- Fix tag stream ordering when entries have different org values by @jrray in #1326
spk buildno longer fails when the disk usage calculation for completed builds errors by @dcookspi in #1280- Fix underflow in
spk dusize display by @dcookspi in #1256 - Rerun no longer modifies editability by @rydrman in #1243
- Built packages may contain a default build script; embedded stub build tags round-trip; recipes with embedded recipes with build ids can be read; vars with a missing/empty value are ignored on parse by @jrray in #1313, #1314, #1316, #1317, #1318
- Fix compile errors and warnings on Windows by @jrray in #1281
- Fix compiling with the
sentryfeature by @dcookspi in #1222
Other Changes
- Redirect_dir properties for overlayfs (#1238), fsync instead of explicit close (#1332), suppress fuser warnings (#1334), fuser 0.16 (#1261)
- spk-convert-pip aligned with SPI changes (#1168)
- CI: matrix builds for feature combinations (#1251), lint fixes for non-default features (#1252), unpinned cargo in the RPM dockerfile (#1353), coverage via grcov (#1259), Arch Linux → Windows cross-compilation (#1329),
#[spfstest]test macro (#1360) - Internal refactors: Digest Debug output (#1235), stray file cleanup (#1254), options/request cleanups (#1293, #1294, #1296, #1299, #1303, #1306, #1309), merge
spk-solve-validationintospk-solve(#1400), spk-workspace scope (#1396) - Docs: build instructions (#1210, #1213, #1209), alerts (#1270), build page notes (#1319), link fixes (#1285)
- Dependency updates: tracing-subscriber, bytes, tar, openssl, time, wheel (#1248, #1257, #1335, #1320, #1341, #1378, #1358, #1362, #1377, #1393, #1315)
- Test coverage and reliability (#1223, #1224, #1262, #1284, #1300, #1305, #1307, #1350, #1372, #1375, #1380)
Full Changelog: v0.44.0...v0.46.0