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

zfs-2.2.7 patchset #16720

Open
wants to merge 220 commits into
base: zfs-2.2-release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
56608da
Cleanup DB_DNODE() macros usage
amotin Jul 22, 2024
30ea442
zfs_log: add flex array fields to log record structs
robn Sep 27, 2024
3fb6647
META: set Linux minimum version to 4.18
robn Aug 2, 2024
d664128
Linux 6.11 compat: META
behlendorf Oct 1, 2024
8ca4319
ZTS: remove skips for zvol_misc tests
robn Jul 18, 2024
b0cfb48
zed: Add deadman-slot_off.sh zedlet
behlendorf May 29, 2024
55468cc
ZTS: small fix for SEEK_DATA/SEEK_HOLE tests (#16413)
mcmilk Aug 7, 2024
b4502ac
tests: user_property: Clarify comments
0mp May 31, 2024
00dd5ea
tests: user_property_001_pos: Remove unnecessary evals
0mp Jun 3, 2024
66bb2a8
Github workflow: fix typo in `zloop` artifact
ixhamza Aug 9, 2024
d6ec559
zts-report: don't crash on non-UTF-8 chars in the log (#16497)
robn Sep 10, 2024
e29e7a0
ZTS: fix zpool_status_008_pos test on qemu vm's
mcmilk Aug 6, 2024
36bac59
ZTS: increase timeout of mmap_sync_001_pos
mcmilk Sep 15, 2024
66db223
ZTS: Use QEMU for tests on Linux and FreeBSD
mcmilk Jun 17, 2024
1cbb695
ZTS: use openssl for md5digest and sha256digest
mcmilk Sep 19, 2024
53879c4
ZTS: Fix Test Summary page generation
mcmilk Sep 18, 2024
ca5652c
ZTS: Remove functional tests via matrix
mcmilk Sep 18, 2024
e2bded2
ZTS: Fix skipping over comment lines in zpool_create.shlib
usaleem-ix Sep 20, 2024
484f92b
ZTS: Fix Summary Page
mcmilk Sep 22, 2024
b69c7f3
ZTS: Retire "ci_reason" exceptions
behlendorf Sep 21, 2024
46b0d5c
ZTS: Retire "tmpfile_reason" exception
behlendorf Sep 21, 2024
ce3ad59
ZTS: Add additional exceptions
behlendorf Sep 21, 2024
af0a2be
ZTS: CodeQL Action v3 update
behlendorf Sep 24, 2024
1b27b76
ZTS: CI Documentation Updates
behlendorf Sep 24, 2024
040be25
CI: cancel workflows when PRs are updated (#16562)
behlendorf Sep 24, 2024
92c384c
CI: run only sanity check on limited OSes for nonbehavioral changes
Harry-Chen Sep 25, 2024
f407add
ZTS: Fix zpool_import_hostid_changed_cachefile_unclean_export
behlendorf Sep 26, 2024
ad73961
CI: Add logs to zloop workflow
behlendorf Sep 27, 2024
54244d2
ZTS: Update deadman_sync threshold
behlendorf Sep 27, 2024
a44a15d
ZTS: Fix zpool_import_hostid_changed_unclean_export
behlendorf Sep 28, 2024
e55e946
ZTS: Replace MD5 and SHA256 wit XXH128
mcmilk Sep 28, 2024
903db66
ZTS: Fix summary page creation
mcmilk Oct 3, 2024
f52b725
ZTS: Remove FreeBSD 13.4-STABLE
mcmilk Oct 6, 2024
8457bab
ZTS: Fix summary page creation again - second try
mcmilk Oct 6, 2024
09f7432
CI: Stick with ubuntu-22.04 for CodeQL analysis
behlendorf Oct 11, 2024
34537bd
ZTS: Optimize Kernel Same-page Merging (KSM)
mcmilk Oct 12, 2024
aa32ee6
ZTS: Make use of optimal CPU pinning
mcmilk Oct 12, 2024
51996dc
ZTS: Add additional exceptions
behlendorf Oct 21, 2024
bdd1f72
Fix dependency install on Debian 11 (#16683)
mcmilk Oct 24, 2024
f263314
ZTS: Add LUKS sanity test
tonyhutter Oct 25, 2024
bb946ff
ZTS: Add Fedora 41, remove Fedora 39
tonyhutter Nov 1, 2024
25ec9a9
zdb: fix BRT dump (#16335)
robn Jul 18, 2024
bc0d89b
Fix an uninitialized data access (#16511)
asomers Sep 10, 2024
c25d514
sa_impl: fix SA header bitfield docs
robn Sep 17, 2024
2dc8529
Fix handling of DNS names with '-' in them for sharenfs
rmacklem Sep 17, 2024
94a571b
Add compatibility file for GRUB versions up to v2.06
usaleem-ix Sep 20, 2024
5427853
Reduce and handle EAGAIN errors on AIO label reads
amotin Sep 21, 2024
0987892
Evicting too many bytes from MFU metadata
tkittich Sep 24, 2024
9616275
Add SIMD metadata in /proc on Linux
rincebrain Sep 20, 2024
948704c
Fix /proc/spl/kstat/simd on x86
rincebrain Sep 22, 2024
b9658f9
Add missing guard defines for simd_stat
w0xel Sep 24, 2024
21c40e6
FreeBSD: Sync taskq_cancel_id() returns with Linux
amotin Sep 24, 2024
48482bb
Properly release key in spa_keystore_dsl_key_hold_dd()
amotin Sep 25, 2024
2bd540d
man: update recordsize max size info
gmelikov Sep 29, 2024
4adc97a
lua: add flex array field to TString type
robn Sep 30, 2024
e8f4592
Avoid computing strlen() inside loops
rilysh Oct 2, 2024
acc8a31
ARC: Cache arc_c value during arc_evict()
amotin Oct 4, 2024
18e3556
Fix missing packaging files from release tarballs
usaleem-ix Oct 3, 2024
e630237
Disable parallel build for native-deb* targets
usaleem-ix Oct 3, 2024
d29f257
Update path for zed in zfs-zed.service for native debian packages
usaleem-ix Oct 4, 2024
f53f3c3
Fix generation of kernel uevents for snapshot rename on linux
JKDingwall Oct 6, 2024
18c8abc
Only serialize native-deb* targets
usaleem-ix Oct 8, 2024
a1ea40a
libzfs: use zfs_strerror() in place of strerror()
rkojedzinszky Jan 22, 2024
63fbbe8
Fallback to strerror() when strerror_l() isn't available
behlendorf Oct 12, 2024
308d04a
Fix inconsistent mount options for ZFS root
usaleem-ix Oct 17, 2024
b32b35c
zdb: show bp in uberblock dump
robn Oct 20, 2024
82ab837
Fix gcc unused value warning in FreeBSD simd.h
DimitryAndric Oct 29, 2024
73b3e8a
Fix gcc uninitialized warning in FreeBSD zio_crypt.c
DimitryAndric Oct 29, 2024
727506c
On the first vdev open ignore impossible ashift hints
amotin Oct 29, 2024
f237b8e
vdev_disk: try harder to ensure IO alignment rules
robn Oct 25, 2024
d83cd53
zdb: add extra -T flag to show histograms of BRT refcounts
robn Nov 1, 2024
d3887c4
Verify parent_dev before calling udev_device_get_sysattr_value
Uglymotha Nov 5, 2024
5dac614
contrib/bash_completion.d: squelch FreeBSD seq when first < last
derekschrock Jun 7, 2024
9a0ebe3
contrib: bash_completion.d: force zpool symlink recreation
robn Aug 8, 2024
4197af4
Updating bash completion build file
bwatkinson Aug 8, 2024
f4e66db
vdev_disk: move abd return and free off the interrupt handler
robn Oct 25, 2024
b2bef90
Linux 6.10 compat: Fix tracepoints definitions
snajpa Sep 17, 2024
deddfdd
config: remove checks with unused defines
robn Aug 3, 2024
05d6f62
Replace usage of schedule_timeout with schedule_timeout_interruptible…
Dan-Perry May 9, 2024
ca95fa3
Linux: Report reclaimable memory to kernel as such (#16385)
amotin Jul 30, 2024
e5e4957
Allow block cloning to be interrupted by a signal.
pjd May 25, 2024
a6198f3
Simplify issig().
pjd May 29, 2024
f6fce8e
Fix issig() to check signal_pending after dequeue SIGSTOP/SIGTSTP
jsai20 Aug 27, 2024
f3a9746
zvol_impl: document and tidy flags
robn Jul 18, 2024
cf80a80
zvol: ensure device minors are properly cleaned up
robn Jul 18, 2024
4f0a8eb
Use kmap_local_page instead of kmap_atomic (#16329)
calccrypto Jul 17, 2024
8a33624
config: remove HAVE_1ARG_BIO_END_IO_T
robn Aug 3, 2024
2c3e42b
config: remove HAVE_BIO_BVEC_ITER
robn Aug 3, 2024
5e42628
config: remove HAVE_CLEAR_INODE and HAVE_EVICT_INODE
robn Aug 3, 2024
80bd3e3
config: remove HAVE_DENTRY_D_U_ALIASES
robn Aug 3, 2024
a054829
config: remove HAVE_DIRTY_INODE_WITH_FLAGS
robn Aug 3, 2024
6e57494
config: remove HAVE_D_MAKE_ROOT
robn Aug 3, 2024
984a836
config: remove HAVE_D_PRUNE_ALIASES
robn Aug 3, 2024
bfc7e03
config: remove HAVE_ENCODE_FH_WITH_INODE
robn Aug 3, 2024
ccb59e3
config: remove HAVE_FALLOC_FL_ZERO_RANGE
robn Aug 3, 2024
3aa4629
config: remove HAVE_FILE_DENTRY
robn Aug 3, 2024
9283421
config: remove HAVE_FILE_INODE
robn Aug 3, 2024
b6223a5
config: remove HAVE_FSYNC_RANGE
robn Aug 3, 2024
3c370f0
config: remove HAVE_GENERIC_WRITE_CHECKS_KIOCB
robn Aug 3, 2024
22131b9
config: remove HAVE_INODE_SET_FLAGS
robn Aug 3, 2024
8bc4c13
config: remove HAVE_IO_SCHEDULE_TIMEOUT
robn Aug 3, 2024
e6b916d
config: remove HAVE_KERNEL_STRSCPY
robn Aug 3, 2024
e19f530
config: remove HAVE_KERNEL_TIMER_LIST_FLAGS
robn Aug 3, 2024
b2802da
config: remove HAVE_LINUX_BLK_CGROUP_HEADER
robn Aug 3, 2024
339b126
config: remove HAVE_PERCPU_COUNTER_INIT_WITH_GFP
robn Aug 3, 2024
937a011
config: remove HAVE___POSIX_ACL_CHMOD
robn Aug 3, 2024
88c358c
config: remove HAVE_POSIX_ACL_RELEASE and HAVE_POSIX_ACL_RELEASE_GPL_…
robn Aug 3, 2024
e954f08
config: remove HAVE_SET_ACL
robn Aug 3, 2024
02daa09
config: remove HAVE_SET_CACHED_ACL_USABLE
robn Aug 3, 2024
5f73630
config: remove HAVE_SPLIT_SHRINKER_CALLBACK and HAVE_SINGLE_SHRINKER_…
robn Aug 4, 2024
a184db8
config: remove HAVE_USER_NS_COMMON_INUM
robn Aug 4, 2024
a9a6d78
config: remove HAVE_VFS_RW_ITERATE
robn Aug 4, 2024
eb6e61b
config: remove SHRINK_CONTROL_HAS_NID
robn Aug 4, 2024
251c5fa
config: remove HAVE_3ARGS_BDI_SETUP_AND_REGISTER
robn Aug 4, 2024
f71866c
config: remove HAVE_3ARGS_VFS_GETATTR
robn Aug 4, 2024
81d780a
config: remove HAVE_D_REVALIDATE_NAMEIDATA
robn Aug 4, 2024
6d2553a
config: remove HAVE_FOLLOW_LINK_NAMEIDATA
robn Aug 4, 2024
ef2aed1
config: remove HAVE_LSEEK_EXECUTE
robn Aug 4, 2024
92eeeba
config: remove HAVE_PUT_LINK_NAMEIDATA
robn Aug 4, 2024
8ae3b6b
config: remove HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET
robn Aug 4, 2024
4af7a69
config: remove HAVE_WAIT_ON_BIT_ACTION
robn Aug 4, 2024
41bacb4
config: remove HAVE_XATTR_(GET|SET|LIST)_DENTRY
robn Aug 5, 2024
d29ed36
config: remove HAVE_NEW_SYNC_READ
robn Aug 5, 2024
49f449c
config: remove HAVE_VFS_FILE_OPERATIONS_EXTEND
robn Aug 5, 2024
f5a1abc
config: remove HAVE_RENAME2_OPERATIONS_WRAPPER
robn Aug 5, 2024
a0abd7c
config: remove HAVE_GET_LINK_COOKIE
robn Aug 5, 2024
91b48a4
config: remove HAVE_1ARG_SUBMIT_BIO
robn Aug 16, 2024
ea8a976
config: remove HAVE_BIO_BI_OPF
robn Aug 16, 2024
f32d5cf
config: remove HAVE_BLK_QUEUE_WRITE_CACHE/HAVE_BLK_QUEUE_FLUSH
robn Aug 16, 2024
7bdea98
config: remove HAVE_CPU_HOTPLUG
robn Aug 16, 2024
5d537c7
config: remove HAVE_CURRENT_TIME
robn Aug 16, 2024
c9c1262
config: remove HAVE_GROUP_INFO_GID
robn Aug 16, 2024
28f75ae
config: remove HAVE_IN_COMPAT_SYSCALL
robn Aug 16, 2024
9629606
config: remove HAVE_INODE_LOCK_SHARED
robn Aug 16, 2024
a404441
config: remove HAVE_KERNEL_GET_ACL_HANDLE_CACHE
robn Aug 16, 2024
903c3bb
config: remove HAVE_POSIX_ACL_VALID_WITH_NS
robn Aug 16, 2024
63ce63d
config: remove HAVE_(GET|PUT)_LINK_DELAYED
robn Aug 16, 2024
917ecc7
config: remove HAVE_REQ_OP_* and HAVE_REQ_*
robn Aug 16, 2024
0d53034
config: remove HAVE_SUPER_USER_NS
robn Aug 16, 2024
b5a2188
config: remove HAVE_VFS_COPY_FILE_RANGE
robn Aug 16, 2024
5a61529
config: remove HAVE_VFS_ITERATE/HAVE_VFS_ITERATE_SHARED
robn Aug 16, 2024
783fa01
config: remove HAVE_XATTR_HANDLER_NAME
robn Aug 16, 2024
a0f51c5
config: remove HAVE_XATTR_(GET|SET|LIST)_HANDLER
robn Aug 16, 2024
7ed1dd4
config: remove HAVE_XATTR_LIST_SIMPLE
robn Aug 16, 2024
5bffb7e
config: remove HAVE_XATTR_GET_DENTRY_INODE
robn Aug 16, 2024
31952dc
config: remove ZFS_GLOBAL_NODE_PAGE_STATE
robn Aug 16, 2024
0155b9d
config: remove HAVE_FILE_AIO_FSYNC
robn Aug 16, 2024
4a78c5e
config: remove HAVE_GENERIC_SETXATTR
robn Aug 16, 2024
fd1c7c7
config: remove HAVE_RENAME2
robn Aug 18, 2024
99ec919
config: remove HAVE_BLK_QUEUE_SECDISCARD
robn Aug 18, 2024
1b200c1
config: remove HAVE_[24]ARGS_VFS_GETATTR
robn Aug 24, 2024
32a62ac
config: remove HAVE_ACL_REFCOUNT
robn Aug 24, 2024
f648a85
config: remove HAVE_BIO_BI_STATUS and bio error compat
robn Aug 24, 2024
e7ab71a
config: remove HAVE_FILE_FADVISE
robn Aug 24, 2024
c787133
config: remove HAVE_FILEMAP_RANGE_HAS_PAGE
robn Aug 24, 2024
cba8ffc
config: remove HAVE_INODE_SET_IVERSION
robn Aug 24, 2024
e2a58fa
config: remove HAVE_INODE_TIMESPEC64_TIMES
robn Aug 24, 2024
2639abe
config: remove HAVE_KERNEL_(READ|WRITE)_PPOS
robn Aug 24, 2024
b333618
config: remove HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST
robn Aug 24, 2024
9bf3282
config: remove HAVE_KERNEL_TIMER_SETUP
robn Aug 24, 2024
0cbf4f7
config: remove HAVE_KMEM_CACHE_CREATE_USERCOPY
robn Aug 24, 2024
e2fcc6a
config: remove HAVE_KTIME_GET_COARSE_REAL_TS64
robn Aug 24, 2024
706fbd4
config: remove HAVE_KTIME_GET_RAW_TS64
robn Aug 24, 2024
335c00f
config: remove HAVE_KVMALLOC
robn Aug 24, 2024
f51bf38
config: remove HAVE_PERCPU_COUNTER_ADD_BATCH
robn Aug 24, 2024
5f486de
config: remove HAVE_SCHED_SIGNAL_HEADER
robn Aug 24, 2024
430cb85
config: remove HAVE_SET_SPECIAL_STATE
robn Aug 24, 2024
656b666
config: remove HAVE_SIGNAL_STOP
robn Aug 24, 2024
2326e2e
config: remove HAVE_SUPER_SETUP_BDI_NAME
robn Aug 24, 2024
e16c21d
config: remove HAVE_TMPFILE
robn Aug 24, 2024
517d491
config: remove HAVE_WAIT_QUEUE_*
robn Aug 24, 2024
e05f8c2
config: remove ZFS_GLOBAL_ZONE_PAGE_STATE
robn Aug 24, 2024
3c5a118
config: remove ZFS_GLOBAL_ZONE_PAGE_STATE and ZFS_ENUM_* generation
robn Aug 24, 2024
56a82c6
config: remove HAVE_BLK_QUEUE_FLAG_*
robn Aug 24, 2024
9601eee
config: remove HAVE_BLK_MQ
robn Aug 24, 2024
701c3c1
linux/zvol_os: convert END_IO macro to inline function
robn Aug 24, 2024
0da3b42
config: remove HAVE_GENERIC_READLINK
robn Aug 24, 2024
9076aec
config: remove HAVE_VFSMOUNT_IOPS_GETATTR
robn Aug 24, 2024
d300568
config: remove HAVE_GENERIC_IO_ACCT_3ARG
robn Aug 24, 2024
701dc17
config: rework ZFS_GENHD_FL_*
robn Aug 24, 2024
3abb84d
config: remove HAVE_BIO_SET_DEV
robn Aug 24, 2024
a759b1e
config: remove HAVE_HAS_CAPABILITY
robn Aug 25, 2024
2b905a8
config: remove HAVE_MODE_LOOKUP_BDEV
robn Aug 26, 2024
721530f
config: remove test for unused s_d_op
robn Aug 26, 2024
3894844
config: fix various bits of missing output
robn Aug 5, 2024
05aeaca
config: fix page_mapping test
robn Sep 16, 2024
022bf86
Increase L2ARC write rate and headroom
shodanshok Nov 9, 2023
2e646b5
Add SIMD metadata in /proc on Linux follow up
behlendorf Sep 20, 2024
f169449
zfs_file: rename zfs_file_fallocate to zfs_file_deallocate
robn Sep 1, 2024
94f84d2
linux/abd_os: remove kernel version check for compound page support
robn Sep 19, 2024
c1055d9
abd_os: split userspace and Linux kernel code
robn Dec 25, 2023
d845820
abd_os: break out platform-specific header parts
robn Apr 1, 2024
0dee309
value strings: pretty printers for flags and enums
robn Feb 29, 2024
c07f9a2
arc_os: split userspace and Linux kernel code
robn Aug 28, 2024
190c66a
vdev_label_os: copy Linux implementation for userspace
robn Aug 28, 2024
def1314
libzpool: don't include trace.c
robn Aug 28, 2024
845b7b7
zfs_racct: copy Linux implementation for userspace
robn Aug 28, 2024
3f9ee80
FreeBSD: remove support for FreeBSD < 13.0-RELEASE (#16372)
robn Aug 5, 2024
e580b54
zfs_znode: lift common code to a single shared file
robn Aug 28, 2024
63f70d3
zfs_dbgmsg_print: make FreeBSD and Linux consistent
robn May 10, 2024
16266b4
zdb/ztest: send dbgmsg output to stderr
robn May 10, 2024
4982943
zfs_debug: specific variant for userspace
robn Aug 28, 2024
dbeb509
[zfs-2.2.7] Add vdev_check_boot_reserve() to vdev.h
tonyhutter Nov 13, 2024
c31b18b
Linux 6.12: avoid kmem_cache_create redefinition
robn Sep 24, 2024
08192d1
Linux 6.12: support 3arg dequeue_signal() without task param
robn Sep 24, 2024
9978315
Linux 6.12: FMODE_UNSIGNED_OFFSET is now FOP_UNSIGNED_OFFSET
robn Sep 24, 2024
dbc70ec
Linux 6.12: f_version removed from struct file
robn Sep 24, 2024
01e06ed
Linux 6.12: PG_error flag was removed
robn Sep 24, 2024
9e7af55
Add custom debug printing for your asserts
rincebrain Apr 10, 2024
fc60e0c
freebsd: Use compiler.h from FreeBSD's base's linuxkpi
bsdimp Oct 16, 2024
1ba5b2e
freebsd: remove __FBSDID macro use
brooksdavis Nov 17, 2023
ba4e582
FreeBSD: Add const qualifier to members of struct opensolaris_utsname
gmshake May 30, 2024
84ad1d5
FreeBSD: restore zfs_znode_update_vfs()
robn Sep 21, 2024
384b53b
FreeBSD: Add missing memory reclamation accounting
amotin Aug 1, 2024
1f5e1b9
Pack dmu_buf_impl_t by 16 bytes
amotin Oct 25, 2024
1c7b70b
ZTS: Avoid embedded blocks in bclone/bclone_prop_sync
amotin Nov 12, 2024
2bba6e3
BRT: Don't call brt_pending_remove() on holes/embedded
amotin Nov 11, 2024
a6e1cd1
Linux 6.12 compat: META
behlendorf Nov 21, 2024
0f86fcc
Linux: Fix zfs_prune panics
snajpa Nov 21, 2024
b1f6139
Tag zfs-2.2.7
tonyhutter Nov 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 7 additions & 11 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,22 +145,18 @@ Once everything is in good shape and the details have been worked out you can re
Any required reviews can then be finalized and the pull request merged.

#### Tests and Benchmarks
* Every pull request will by tested by the buildbot on multiple platforms by running the [zfs-tests.sh and zloop.sh](
* Every pull request is tested using a GitHub Actions workflow on multiple platforms by running the [zfs-tests.sh and zloop.sh](
https://openzfs.github.io/openzfs-docs/Developer%20Resources/Building%20ZFS.html#running-zloop-sh-and-zfs-tests-sh) test suites.
`.github/workflows/scripts/generate-ci-type.py` is used to determine whether the pull request is nonbehavior, i.e., not introducing behavior changes of any code, configuration or tests. If so, the CI will run on fewer platforms and only essential sanity tests will run. You can always override this by adding `ZFS-CI-Type` line to your commit message:
* If your last commit (or `HEAD` in git terms) contains a line `ZFS-CI-Type: quick`, quick mode is forced regardless of what files are changed.
* Otherwise, if any commit in a PR contains a line `ZFS-CI-Type: full`, full mode is forced.
* To verify your changes conform to the [style guidelines](
https://github.com/openzfs/zfs/blob/master/.github/CONTRIBUTING.md#style-guides
), please run `make checkstyle` and resolve any warnings.
* Static code analysis of each pull request is performed by the buildbot; run `make lint` to check your changes.
* Test cases should be provided when appropriate.
This includes making sure new features have adequate code coverage.
* Code analysis is performed by [CodeQL](https://codeql.github.com/) for each pull request.
* Test cases should be provided when appropriate. This includes making sure new features have adequate code coverage.
* If your pull request improves performance, please include some benchmarks.
* The pull request must pass all required [ZFS
Buildbot](http://build.zfsonlinux.org/) builders before
being accepted. If you are experiencing intermittent TEST
builder failures, you may be experiencing a [test suite
issue](https://github.com/openzfs/zfs/issues?q=is%3Aissue+is%3Aopen+label%3A%22Type%3A+Test+Suite%22).
There are also various [buildbot options](https://openzfs.github.io/openzfs-docs/Developer%20Resources/Buildbot%20Options.html)
to control how changes are tested.
* The pull request must pass all CI checks before being accepted.

### Testing
All help is appreciated! If you're in a position to run the latest code
Expand Down
57 changes: 0 additions & 57 deletions .github/workflows/build-dependencies.txt

This file was deleted.

5 changes: 0 additions & 5 deletions .github/workflows/checkstyle-dependencies.txt

This file was deleted.

23 changes: 14 additions & 9 deletions .github/workflows/checkstyle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
push:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
checkstyle:
runs-on: ubuntu-22.04
Expand All @@ -13,15 +17,11 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install dependencies
run: |
# https://github.com/orgs/community/discussions/47863
sudo apt-mark hold grub-efi-amd64-signed
sudo apt-get update --fix-missing
sudo apt-get upgrade
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq
sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/checkstyle-dependencies.txt apt-get install -qq
sudo python3 -m pip install --quiet flake8
sudo apt-get clean

# for x in lxd core20 snapd; do sudo snap remove $x; done
sudo apt-get purge -y snapd google-chrome-stable firefox
ONLY_DEPS=1 .github/workflows/scripts/qemu-3-deps.sh ubuntu22
sudo apt-get install -y cppcheck devscripts mandoc pax-utils shellcheck
sudo python -m pipx install --quiet flake8
# confirm that the tools are installed
# the build system doesn't fail when they are not
checkbashisms --version
Expand All @@ -31,8 +31,13 @@ jobs:
shellcheck --version
- name: Prepare
run: |
sed -i '/DEBUG_CFLAGS="-Werror"/s/^/#/' config/zfs-build.m4
./autogen.sh
- name: Configure
run: |
./configure
- name: Make
run: |
make -j$(nproc) --no-print-directory --silent
- name: Checkstyle
run: |
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@ on:
push:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
permissions:
actions: read
contents: read
Expand All @@ -27,15 +31,15 @@ jobs:
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
config-file: .github/codeql-${{ matrix.language }}.yml
languages: ${{ matrix.language }}

- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
14 changes: 14 additions & 0 deletions .github/workflows/scripts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

Workflow for each operating system:
- install qemu on the github runner
- download current cloud image of operating system
- start and init that image via cloud-init
- install dependencies and poweroff system
- start system and build openzfs and then poweroff again
- clone build system and start 2 instances of it
- run functional testings and complete in around 3h
- when tests are done, do some logfile preparing
- show detailed results for each system
- in the end, generate the job summary

/TR 14.09.2024
107 changes: 107 additions & 0 deletions .github/workflows/scripts/generate-ci-type.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#!/usr/bin/env python3

"""
Determine the CI type based on the change list and commit message.

Prints "quick" if (explicity required by user):
- the *last* commit message contains 'ZFS-CI-Type: quick'
or if (heuristics):
- the files changed are not in the list of specified directories, and
- all commit messages do not contain 'ZFS-CI-Type: full'

Otherwise prints "full".
"""

import sys
import subprocess
import re

"""
Patterns of files that are not considered to trigger full CI.
Note: not using pathlib.Path.match() because it does not support '**'
"""
FULL_RUN_IGNORE_REGEX = list(map(re.compile, [
r'.*\.md',
r'.*\.gitignore'
]))

"""
Patterns of files that are considered to trigger full CI.
"""
FULL_RUN_REGEX = list(map(re.compile, [
r'cmd.*',
r'configs/.*',
r'META',
r'.*\.am',
r'.*\.m4',
r'autogen\.sh',
r'configure\.ac',
r'copy-builtin',
r'contrib',
r'etc',
r'include',
r'lib/.*',
r'module/.*',
r'scripts/.*',
r'tests/.*',
r'udev/.*'
]))

if __name__ == '__main__':

prog = sys.argv[0]

if len(sys.argv) != 3:
print(f'Usage: {prog} <head_ref> <base_ref>')
sys.exit(1)

head, base = sys.argv[1:3]

def output_type(type, reason):
print(f'{prog}: will run {type} CI: {reason}', file=sys.stderr)
print(type)
sys.exit(0)

# check last (HEAD) commit message
last_commit_message_raw = subprocess.run([
'git', 'show', '-s', '--format=%B', 'HEAD'
], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

for line in last_commit_message_raw.stdout.decode().splitlines():
if line.strip().lower() == 'zfs-ci-type: quick':
output_type('quick', f'explicitly requested by HEAD commit {head}')

# check all commit messages
all_commit_message_raw = subprocess.run([
'git', 'show', '-s',
'--format=ZFS-CI-Commit: %H%n%B', f'{head}...{base}'
], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
all_commit_message = all_commit_message_raw.stdout.decode().splitlines()

commit_ref = head
for line in all_commit_message:
if line.startswith('ZFS-CI-Commit:'):
commit_ref = line.lstrip('ZFS-CI-Commit:').rstrip()
if line.strip().lower() == 'zfs-ci-type: full':
output_type('full', f'explicitly requested by commit {commit_ref}')

# check changed files
changed_files_raw = subprocess.run([
'git', 'diff', '--name-only', head, base
], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
changed_files = changed_files_raw.stdout.decode().splitlines()

for f in changed_files:
for r in FULL_RUN_IGNORE_REGEX:
if r.match(f):
break
else:
for r in FULL_RUN_REGEX:
if r.match(f):
output_type(
'full',
f'changed file "{f}" matches pattern "{r.pattern}"'
)

# catch-all
output_type('quick', 'no changed file matches full CI patterns')
Loading
Loading