v3.0-b.1
Pre-release
Pre-release
This is the first beta for the upcoming 3.0 release. It should be in fairly good shape, but after the massive refactoring and restructuring of the codebase, there are certainly bugs and regressions to be found. This release is for the brave.
What's Changed
- generate-accessors: annotation style + lifecycle generation by @martin-belanger in #3288
- fabrics: Made more includes conditional on fabrics support by @brgoing in #3292
- python, swig: fix bugs and restore Python ergonomics after libnvmf_context refactor by @martin-belanger in #3293
- fabrics: do not re-initialize nvmf_args by @igaw in #3297
- CI: fix podman device permissions by @MaisenbacherD in #3299
- swig: guard against silent attribute typos on SWIG objects by @martin-belanger in #3300
- libnvme: move fabrics-only helpers to util-fabrics.c by @martin-belanger in #3301
- libnvme: add check-public-headers test and fix missing prototypes by @martin-belanger in #3298
- nvme: apply user-specified timeout to all admin passthru commands by @darkfiberiru in #3302
- swig: replace hand-written accessor wrappers with auto-generated #defines by @martin-belanger in #3304
- nvme: initialize default timeout for format command by @igaw in #3307
- nvme-print: fix traddr transformation for ave discovery log by @igaw in #3264
- fabrics: sanitize traddr & trsvcid handling during connect-all by @martin-gpy in #3313
- swig, generator: unify accessor annotations and add custom-access groundwork by @martin-belanger in #3315
- json: Enables json printing and ocp plugin without fabrics by @brgoing in #3318
- tests: fix python TypeError errors by @ikegami-t in #3319
- nvme: handle get-feature output format in nvme-print layer by @ikegami-t in #3320
- nvme: Allow commit action = 0b011 (replace and activate immediate) by @NateThornton in #3325
- fixes and improvements for nvme_copy_test by @igaw in #3327
- tests: skip write-uncor test when not supported by @igaw in #3329
- libnvme, python: prep accessor generator for Python bindings redesign by @martin-belanger in #3324
- Back to arrays by @lgdacunh in #3328
- python bindings: redesign Phase 1 + Phase 2 by @martin-belanger in #3332
- ci: replace webispy/checkpatch-action with upstream checkpatch.pl by @martin-belanger in #3335
- python bindings: exception hierarchy + PUBLISHING.md by @martin-belanger in #3334
- python bindings: remove deprecated files by @martin-belanger in #3336
- Makefile: add checkpatch targets by @martin-belanger in #3337
- ci: extend check-accessors to cover all generated files by @martin-belanger in #3338
- CI: Add host_devices list to kubevirt-action by @MaisenbacherD in #3340
- python bindings: table-driven fabrics config dict parsing by @martin-belanger in #3342
- libnvme: internalize uring dispatch and fix NULL hdl dereference by @martin-belanger in #3343
- build: generate coverage report for nightly tests by @igaw in #3346
- build: switch to gcovr by @igaw in #3347
- libnvme: add _libnvme prefix to all compiler attributes by @martin-belanger in #3345
- doc: add error-log command description for fields and ordering by @ikegami-t in #3344
- Doc error log 2 by @ikegami-t in #3353
- Refactore memory API to make them portable by @igaw in #3354
- plugin: use snprintf for fixed-size formatting buffers by @orbisai0security in #3352
- Refactor/replace code for more portability (part 1) by @igaw in #3355
- Fixup build when no MI is enabled by @igaw in #3356
- ioctl: defer ioctl version probing until first use by @igaw in #3357
- nvme-models: suppress missing sysfs entry messages by @igaw in #3359
- mem-win: Remove unneeded includes and definitions. by @brgoing in #3360
- nvme: Use libnvme_free for all memory allocated with libnvme_alloc by @brgoing in #3361
- Minor OCP Fixes by @brgoing in #3362
- micron-nvme cleanup by @brgoing in #3364
- libnvme: extract fabrics-specific logic into tree-fabrics.c by @martin-belanger in #3365
- sigaction compatibility for windows by @brgoing in #3366
- common: Add compatibility wrappers for common functions. by @brgoing in #3367
- Split the nvme commands and types headers by @igaw in #3391
- build(deps): bump docker/setup-qemu-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #3392
- build(deps): bump github/codeql-action from 4.35.1 to 4.36.0 by @dependabot[bot] in #3393
- build(deps): bump docker/login-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #3394
- util: Move get_entity_name and get_entity_version into util-fabrics. by @brgoing in #3368
- util: Fix buffer overflow in process_field_size_default by @jimmunn in #3370
- mem-win: Disable Windows min/max macros in favor of project solutions by @brgoing in #3371
- Minor cleanup for Windows support by @brgoing in #3372
- tree: remove fabrics-only code from tree.c by @martin-belanger in #3369
- micron-nvme updates by @brgoing in #3375
- ocp: Fix ocp internal-log output-format handling by @brgoing in #3377
- ioctl: Add Windows ioctl support by @brgoing in #3380
- nvme-top: avoid NULL dereference on non-multipath host by @shroffni in #3381
- libnvme: fix memleak in libnvme_subsystem_set_ns_path by @shroffni in #3382
- Small changes for cross-platform compatibility by @brgoing in #3386
- ocp-nvme: Replace fstat checking of S_ISBLK with built-in check by @brgoing in #3387
- log: Add Windows compatibility for __libnvme_msg formatting by @brgoing in #3373
- util: Add compatibility for libnvme_random_uuid by @brgoing in #3389
- fdp: Remove unused linux/fs.h include by @brgoing in #3390
- nvme-top: preserve selected subsystem across topology refresh by @shroffni in #3384
- support fixed width table column by @shroffni in #3388
- CI: add no-fabrics build workflow with unit tests by @martin-belanger in #3374
- build, CI: add memory testing infrastructure (valgrind, ASan+UBSan) by @martin-belanger in #3383
- linux: Add no-linux.c with shims for methods implemented in linux.c by @brgoing in #3379
- nvme: do not report error when nvme_core module is not loaded by @Cav4ever in #2857
- libnvme: flat accessors for nested structs + grouped setters by @martin-belanger in #3395
- support global options arguments before command options by @igaw in #3398
- nvme types and commands header cleanup by @igaw in #3397
- sed: fixing SID and MSID reporting by @bbain in #3378
- build: remove default prefix option by @bcapener in #3399
- build: include more source files in windows build by @bcapener in #3401
- Solidigm Telemetry additional product and objects support by @lgdacunh in #3402
- nvme: check MUD support before firmware commit by @guzebing1612-dev in #3403
- nvme-types-base: rename nvme_cmd_get_log_telemetry_host_lsp by @ikegami-t in #3405
- nvme: use #pragma once to reduce header file #ifndef code by @ikegami-t in #3406
- fix: add buffer-length check in nvme-print.c by @orbisai0security in #3407
- completions: fix ocp plugin command list and description by @jimmunn in #3385
- Build nvme have by @ikegami-t in #3404
- nvme-print: fix LBA range type 0h as general purpose by @ikegami-t in #3408
- libnvme-mi: use callbacks for mi submit logging by @igaw in #3410
- plugins/solidigm: smart attribute C7 named dynamically, add desc for … by @SolidigmTools in #3411
- tests: harden JSON parsing by @igaw in #3414
- build: install libnvme as versioned libnvme3 artifacts by @igaw in #3417
- build: handle should_faild deprecation by @igaw in #3418
- nvme: call nvme_show_finish by closing transport handle by @ikegami-t in #3419
- sndk: Add support for new Sandisk devices by @jeff-lien-sndk in #3420
- nvme-print-json: split fabrics Address into fields by @igaw in #3413
- Enhance async submission API by @igaw in #3421
- nvme: ensure log_level is properly updated by @martin-gpy in #3423
- nvme-print: Fix nvme_bar_cap cps field alignment by @brgoing in #3428
- feat: sort feat commands list by FID ordering by @ikegami-t in #3431
- nvme: use DSM max ranges macro definition by @ikegami-t in #3432
- plugins/solidigm: BugFix dumping large telemetry logs. by @lgdacunh in #3435
- top: Make top a conditional feature and disable by default on Windows by @brgoing in #3439
- build(deps): bump codecov/codecov-action from 6.0.0 to 7.0.0 by @dependabot[bot] in #3441
- sed: clarifying SUM sed policy reporting by @bbain in #3412
- nvme: add support for sanitize wait option by @ikegami-t in #3438
- build: add Clang Static Analyzer support by @shroffni in #3445
- ScaleFlux Plugin Cleanup AER Values by @benreese0 in #3444
- fabrics: Fix next_line parser. by @Mr-Bossman in #3449
- Introduce Qualified Protection Information Format (QPIF) by @MaisenbacherD in #3446
- Allow config.json to act like discovery.conf by @Mr-Bossman in #3448
- libnvme: add CIU and CIRN to Identify Controller data structure by @MaisenbacherD in #3426
- File and output stream line ending compatibility changes by @brgoing in #3430
- logging: add data and metadata dump to show command by @ikegami-t in #3422
- build(deps): bump msys2/setup-msys2 from 2.31.0 to 2.32.0 by @dependabot[bot] in #3451
- ioctl-win: Update sanitize implementation to use new ioctl by @brgoing in #3452
- ioctl-win: Assert ctrl handle for Windows format nvm by @brgoing in #3453
- completions: add power-measurement-log command by @jimmunn in #3454
- Completions: remove -j and --json from top level sub-commands by @jimmunn in #3455
- nvme: delete deprecated human-readable option by @ikegami-t in #3429
- lib: add windows direct open transport handle support by @bcapener in #3456
- libnvmf: NVMe Controller Ownership Registry (V2) by @martin-belanger in #3425
- doc: remove human-readable option by @ikegami-t in #3461
- libnvme: move fabrics include list into its own file by @martin-belanger in #3462
- libnvme, python: pass global context to registry public APIs and fix python test issue by @martin-belanger in #3460
- Pel fix by @lgdacunh in #3436
- Simplify code flow in fabrics.c by @Mr-Bossman in #3447
- nvme: rework the registry command-line interface by @martin-belanger in #3465
- feat: change nvme print flags to verbose by @ikegami-t in #3463
- nvme: disconnect-all --transport short option + add --owner option by @martin-belanger in #3466
- libnvme: test that registry attribute values round-trip verbatim by @martin-belanger in #3468
- nbft: fix sizeof operand mismatch in pointer array allocations by @bellis-ibm in #3469
- Fix uninitialized variables by @fhassan-ibm in #3470
- libnvme: fix uninitialized argument in libnvme_get_lba_status_log() by @fhassan-ibm in #3471
- Fix two Command Specific Status Codes by @MaisenbacherD in #3473
- micron: Add Windows support to Micron plugin commands by @brgoing in #3475
- nvme: fix ignored interruption in format command by @g0l4 in #3476
- nvme top diag attributes by @shroffni in #3478
- build: add Clang analyzer workflow by @shroffni in #3464
- tree: minor refactor of subsystem init by @bcapener in #3480
- nvme-types-base: add padding to nvme_lm_nvme_controller_state_data union by @igaw in #3481
- libnvme: guard registry cleanup against instance reuse with uevent_seqnum by @martin-belanger in #3479
- doc: add libnvme registry overview (REGISTRY.md) by @martin-belanger in #3467
- build(deps): bump actions/checkout from 6.0.2 to 7.0.0 by @dependabot[bot] in #3485
- nvme: fix inverted null check in is_ns_mgmt_support() by @fhassan-ibm in #3487
- nvmf-autoconnect: tag connections with --owner=autoconnect by @martin-belanger in #3488
- CI tests: update registry CLI test for reworked nvme registry interface by @martin-belanger in #3491
- python-ci: run the unit tests a second time without valgrind by @martin-belanger in #3492
- build: use fedora container for analyzer workflow by @shroffni in #3493
- fabrics: fix inverted child controller check in _nvmf_discovery() by @sahmed-ibm in #3495
- nvme: fix potential use of uninitialized flags in passthru() by @fhassan-ibm in #3497
- libnvme/json: store the config as an object, not a bare top-level array by @martin-belanger in #3499
- More API cleanups by @igaw in #3486
- build: add coverity scan back by @igaw in #3505
- build: replace wget with curl by @igaw in #3506
- libnvme/test: fix exit-code capture in config-diff.sh by @martin-belanger in #3503
- libnvme/json: add registry owner to the json schema by @martin-belanger in #3504
New Contributors
- @darkfiberiru made their first contribution in #3302
- @orbisai0security made their first contribution in #3352
- @shroffni made their first contribution in #3381
- @Cav4ever made their first contribution in #2857
- @bbain made their first contribution in #3378
- @guzebing1612-dev made their first contribution in #3403
- @Mr-Bossman made their first contribution in #3449
- @bellis-ibm made their first contribution in #3469
- @fhassan-ibm made their first contribution in #3470
- @g0l4 made their first contribution in #3476
- @sahmed-ibm made their first contribution in #3495
Full Changelog: v3.0-a.5...v3.0-b.1