Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
4825e5f
Use trusted pointee types in lgamma shims
darkraider01 Oct 24, 2026
b2a1832
Use the checked pointer type for TCP FIONBIO
darkraider01 Oct 24, 2026
ac0cad3
use deref_pointer instead of deref_pointer_as in unix/foreign_items.rs
mehmettoplu-rs Oct 25, 2026
655b455
Update src/shims/unix/foreign_items.rs
mehmettoplu-rs Oct 25, 2026
8195e4f
use deref_pointer instead of deref_pointer_as in unix sync shims
programskillforverification Oct 24, 2026
f87f855
use deref_pointer instead of deref_pointer_as
programskillforverification Oct 25, 2026
d3a3a26
Merge pull request #5480 from programskillforverification/deref-point…
RalfJung Oct 25, 2026
bf5d406
Merge pull request #5481 from programskillforverification/deref-point…
RalfJung Oct 25, 2026
d8e5d00
retire the arm32 CI job
RalfJung Oct 25, 2026
ab82fcd
Merge pull request #5482 from mehmettoplu-rs/deref-pointer-unix-forei…
RalfJung Oct 25, 2026
8ae73fb
socket-tcp tests: give freebsd VM more time to yield
RalfJung Oct 25, 2026
d11f41f
use fixed-schedule and run-native in a few more tests
RalfJung Oct 25, 2026
fdf9ded
ensure that pthread_(mutex,cond)attr_t are initialized
RalfJung Oct 25, 2026
7cc5c73
freebsd seems to always wake up at least one thread
RalfJung Oct 25, 2026
d81e811
macos wait_on_address: remove OS_SYNC_WAIT_ON_ADDRESS_SHARED support
RalfJung Oct 25, 2026
e215be2
Merge pull request #5487 from RalfJung/test-schedules
RalfJung Oct 25, 2026
210ee03
reorganize the logic of which targets get how much test coverage
RalfJung Oct 25, 2026
21deb4f
Merge pull request #5488 from RalfJung/arm32-nomore
RalfJung Oct 25, 2026
599e4b1
use deref_pointer instead of deref_pointer_as
programskillforverification Oct 26, 2026
fd71a95
add back i686-pc-windows-msvc tests
RalfJung Oct 26, 2026
7fe0de8
test benchmarks on more targets
RalfJung Oct 26, 2026
35489bb
run float tests natively
RalfJung Oct 26, 2026
0443fdf
make mse benchmark work on big-endian
RalfJung Oct 26, 2026
5b347ae
float test can only work with enough f16/f128 support
RalfJung Oct 26, 2026
0aa8efa
Merge pull request #5490 from RalfJung/ci
RalfJung Oct 26, 2026
33ea505
Merge pull request #5483 from darkraider01/math
RalfJung Oct 26, 2026
bed2fac
Merge pull request #5484 from darkraider01/tcp
RalfJung Oct 26, 2026
892dbb1
Merge pull request #5491 from RalfJung/float-tests
RalfJung Oct 26, 2026
3828f39
Prepare for merging from rust-lang/rust
RalfJung Oct 26, 2026
4a52704
Merge ref 'aaf324d50a7d' from rust-lang/rust
RalfJung Oct 26, 2026
08cdf6b
Merge pull request #5495 from RalfJung/rustup
RalfJung Oct 26, 2026
f6025d8
float native testing: fix cfg
RalfJung Oct 26, 2026
5a5b55a
we do not actually need the ports mirrors currently
RalfJung Oct 26, 2026
5dfc6a6
Merge pull request #5498 from RalfJung/ports-mirrors
RalfJung Oct 26, 2026
4ce4bb9
linux-futex: add a bit more wait time slack
RalfJung Oct 26, 2026
de141e0
Merge pull request #5496 from RalfJung/float-native
RalfJung Oct 26, 2026
de4a9db
Add libc direct tests for pread64, pwrite64, lseek and lseek64
mehmettoplu-rs Oct 22, 2026
2c397b9
CI: move the solaris test
RalfJung Oct 27, 2026
0f5c8dd
Merge pull request #5469 from mehmettoplu-rs/test-offset-64
RalfJung Oct 27, 2026
49e14fd
Merge pull request #5502 from RalfJung/ci
RalfJung Oct 27, 2026
f225f6a
use errno_check and errno_result in random
josetorrs Oct 22, 2026
f4a6d1c
Merge pull request #5460 from josetorrs/use-errno-in-random
RalfJung Oct 27, 2026
b374b3b
use deref_pointer instead of deref_pointer_as
mehmettoplu-rs Oct 27, 2026
184c45a
return proper error on invalid FD numbers in dup
RalfJung Oct 27, 2026
cdf35cb
Merge pull request #5506 from RalfJung/fd-num-validity
RalfJung Oct 27, 2026
84b4c08
Merge pull request #5492 from programskillforverification/deref-point…
RalfJung Oct 27, 2026
af6f181
use deref_pointer instead of deref_pointer_as
programskillforverification Oct 28, 2026
4b8cd4a
revert dispatch semaphore changes
mehmettoplu-rs Oct 28, 2026
9b90971
Merge pull request #5505 from mehmettoplu-rs/deref-pointer-macos-sync
RalfJung Oct 28, 2026
234870b
Merge pull request #5508 from programskillforverification/deref-point…
RalfJung Oct 28, 2026
0956c58
Use trusted pointee types in virtual socket shims
darkraider01 Oct 28, 2026
8814698
Merge pull request #5510 from darkraider01/deref-pointer-virtual-socket
RalfJung Oct 28, 2026
df20c6f
adjust how we handle c-style arrays
RalfJung Oct 28, 2026
5aa759b
Merge pull request #5512 from RalfJung/c-arrays
RalfJung Oct 28, 2026
41dd3ec
Prepare for merging from rust-lang/rust
Oct 29, 2026
78e8fab
Merge ref '92ffebeceaa0' from rust-lang/rust
Oct 29, 2026
3304e1b
Merge pull request #5513 from rust-lang/rustup-2026-10-29
RalfJung Oct 29, 2026
0a2b28d
replace some this → ecx
RalfJung Oct 29, 2026
734bb76
Merge pull request #5514 from RalfJung/ecx
RalfJung Oct 29, 2026
64e0eb2
Use trusted pointee types in socket address shims
darkraider01 Oct 28, 2026
1fa4513
Remove deref_pointer_as helper
darkraider01 Oct 29, 2026
0cbd5f6
Merge pull request #5511 from darkraider01/deref-pointer-socket-address
RalfJung Oct 29, 2026
f441736
Add direct libc tests for mkdir and rmdir
eduardorittner Oct 22, 2026
e1cd26c
Prepare for merging from rust-lang/rust
Oct 30, 2026
6bb08c3
Merge ref '92b5b8c87c61' from rust-lang/rust
Oct 30, 2026
8817e5b
remove stabilized feature
RalfJung Oct 30, 2026
eca64fd
cargo update
RalfJung Oct 30, 2026
4a75e84
detect when 'exit' is called more than once
RalfJung Oct 30, 2026
81d71b4
Merge pull request #5519 from rust-lang/rustup-2026-10-30
RalfJung Oct 30, 2026
479acc7
Merge pull request #5521 from RalfJung/cargo-update
RalfJung Oct 30, 2026
00f3ea7
Add shared non-blocking socket tests, implement `ioctl` using `fcntl`
WhySoBad Oct 26, 2026
455b5db
Merge pull request #5468 from eduardorittner/test-dir-ops
RalfJung Oct 30, 2026
78bb6a8
Merge pull request #5497 from WhySoBad/udp-ioctl
RalfJung Oct 30, 2026
544faa8
return EINVAL to avoid ICE
programskillforverification Oct 30, 2026
ce01075
tweak test and add one for read as well
RalfJung Oct 31, 2026
8cb4e98
Merge pull request #5524 from programskillforverification/readv-write…
RalfJung Oct 31, 2026
7a1e8cf
add support for libc::pause
RalfJung Oct 31, 2026
48e8c79
Merge pull request #5525 from RalfJung/pause
RalfJung Oct 31, 2026
6ca69b5
ci: Pin `actions/checkout` to 6.1.0 hash
hashcatHitman Oct 30, 2026
3cc5569
ci: Pin `actions/cache` to 5.1.0 hash
hashcatHitman Oct 30, 2026
ac7f376
ci: Pin `actions/upload-artifact` to 7.0.2 hash
hashcatHitman Oct 30, 2026
163e212
ci: Pin `actions/download-artifact` to 8.0.2 hash
hashcatHitman Oct 30, 2026
3d9d957
ci: Pin `actions/create-github-app-token` to 3.3.0 hash
hashcatHitman Oct 30, 2026
3da6f2d
ci: Pin `vmactions/freebsd-vm` to 1.5.9 hash
hashcatHitman Oct 30, 2026
918f0a7
ci: Disable credential persistence
hashcatHitman Oct 30, 2026
92743af
ci: Use dedicated self-repository syntax
hashcatHitman Oct 30, 2026
b24e3d0
ci: Move permissions documentation
hashcatHitman Oct 30, 2026
6f19d79
ci: Expand `inputs.toolchain_flags` in `env`
hashcatHitman Oct 30, 2026
dcae5c9
ci: Expand `github.event_name` in `env`
hashcatHitman Oct 30, 2026
028b636
ci: Expand `matrix.gcc_cross` in `env`
hashcatHitman Oct 30, 2026
61ec13c
ci: Prefer shell expansion for `matrix.host_target`
hashcatHitman Oct 30, 2026
f60f05c
ci: Expand `matrix.multiarch` in `env`
hashcatHitman Oct 30, 2026
ebbe7e5
ci: Expand `toJson(needs)` in `env`
hashcatHitman Oct 30, 2026
38453bf
genmc: Fix GenMC API for RMWs
michaliskok Oct 31, 2026
e70f72d
genmc: Do not truncate integers returned by GenMC
Oct 28, 2026
fb60d17
Enable MacOS support for GenMC mode.
Patrick-6 Sep 5, 2025
9293708
ci: Restrict GitHub app token permissions
hashcatHitman Oct 31, 2026
6c35669
Merge pull request #5522 from hashcatHitman/zizmor
RalfJung Oct 31, 2026
9f41e8f
genmc: Update the documented compiler requirements
michaliskok Oct 31, 2026
39ee16a
genmc/build: Update GenMC to v0.20.0
michaliskok Oct 31, 2026
983461b
Merge pull request #5527 from michaliskok/genmc-rmw-and-macos-fixes
RalfJung Oct 31, 2026
f35c100
run a bunch more tests natively
RalfJung Oct 31, 2026
7a3797b
Merge pull request #5530 from RalfJung/native
RalfJung Oct 31, 2026
7f1a9e9
replace sync obj by more general meta obj mechanism
RalfJung Oct 31, 2026
09000be
make pthread_mutexattr, pthread_condattr also opaque meta objs
RalfJung Nov 1, 2026
69f9fe1
socket_address: ptr_to_mplace is more clear than .offset here
RalfJung Nov 1, 2026
80f45ee
Merge pull request #5531 from RalfJung/meta-obj
RalfJung Nov 1, 2026
b239c81
ci: Allow manual dispatch of `cron-rustc-pull`
hashcatHitman Nov 1, 2026
d1a39d4
ci: Configure `git` to use the app token in `cron-rustc-pull`
hashcatHitman Nov 1, 2026
fc9518d
Prepare for merging from rust-lang/rust
RalfJung Nov 1, 2026
2023805
Merge ref '349bba62f183' from rust-lang/rust
RalfJung Nov 1, 2026
4c06fe4
Merge pull request #5520 from RalfJung/exit-twice
RalfJung Nov 1, 2026
21af5c4
silence an incorrect clippy lint
RalfJung Nov 1, 2026
f941d77
update CONTRIBUTING guidance regarding force pushes
RalfJung Oct 31, 2026
6c1e1a2
Merge pull request #5539 from hashcatHitman/fix-rustc-pull
RalfJung Nov 1, 2026
e44dc45
fix time accounting in a futex test
RalfJung Nov 1, 2026
8cf4179
Merge pull request #5538 from RalfJung/rustup
RalfJung Nov 1, 2026
024eb50
Merge pull request #5528 from RalfJung/force-pushes
RalfJung Nov 2, 2026
815b602
fix permission bits reported by stat on non-Unix hosts
programskillforverification Nov 1, 2026
221d21e
expand more of the tests
RalfJung Nov 2, 2026
8eb247e
Merge pull request #5536 from programskillforverification/fix-windows…
RalfJung Nov 2, 2026
42a6ec6
add issue reference for why we have GVN disabled
RalfJung Nov 2, 2026
54f781d
Merge pull request #5542 from RalfJung/gvn-comment
RalfJung Nov 2, 2026
4650447
fix futex implementations skipping SC fence
RalfJung Nov 2, 2026
c40e039
shims/fs test: also call stream_position
RalfJung Nov 2, 2026
9087481
another case of wrong time accounting
RalfJung Nov 2, 2026
b83e84c
Merge pull request #5546 from RalfJung/test-stream-position
RalfJung Nov 2, 2026
a201f04
Merge pull request #5545 from RalfJung/futex-sc-fence
RalfJung Nov 2, 2026
740523c
update lockfile
RalfJung Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2562,7 +2562,6 @@ dependencies = [
"ipc-channel",
"libc",
"libffi",
"libffi-sys",
"libloading",
"measureme",
"mio",
Expand Down
88 changes: 52 additions & 36 deletions src/tools/miri/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
- 'master'
schedule:
- cron: '14 4 * * *' # At 4:14 UTC every day.
workflow_dispatch: {}

defaults:
run:
Expand All @@ -30,10 +31,6 @@ jobs:
gcc_cross: i686-linux-gnu
- host_target: aarch64-unknown-linux-gnu
os: ubuntu-24.04-arm
- host_target: armv7-unknown-linux-gnueabihf
os: ubuntu-24.04-arm
multiarch: armhf
gcc_cross: arm-linux-gnueabihf
# Ubuntu mirrors are not reliable enough for these architectures
# (see <https://bugs.launchpad.net/ubuntu/+bug/2130309>).
# - host_target: riscv64gc-unknown-linux-gnu
Expand Down Expand Up @@ -67,25 +64,29 @@ jobs:
run: |
set -x
lscpu
- uses: actions/checkout@v6
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- name: install multiarch
if: ${{ matrix.multiarch != '' }}
run: |
set -x
# armhf, s390x, ppc64el, riscv64 need Ubuntu Ports to be in the mirror list
sudo bash -c "echo 'https://ports.ubuntu.com/ priority:4' >> /etc/apt/apt-mirrors.txt"
# s390x, ppc64el, riscv64 need Ubuntu Ports to be in the mirror list
#sudo bash -c "echo 'https://ports.ubuntu.com/ priority:0' >> /etc/apt/apt-mirrors.txt"
# Add architecture
sudo dpkg --add-architecture ${{ matrix.multiarch }}
sudo dpkg --add-architecture ${MULTIARCH}
# Ubuntu Ports often has outdated mirrors so try a few times to get the apt repo
for TRY in $(seq 3); do
{ sudo apt update -o APT::Update::Error-Mode=any && break; } || sleep 60
done
# Install needed packages
sudo apt install $(echo "libatomic1: zlib1g-dev:" | sed 's/:/:${{ matrix.multiarch }}/g')
sudo apt install $(echo "libatomic1: zlib1g-dev:" | sed "s/:/:${MULTIARCH}/g")
env:
MULTIARCH: ${{ matrix.multiarch }}
- name: install qemu
if: ${{ matrix.qemu }}
run: sudo apt install qemu-user qemu-user-binfmt
- uses: ./.github/workflows/setup
- uses: $/.github/workflows/setup
with:
toolchain_flags: "--host ${{ matrix.host_target }}"

Expand All @@ -94,13 +95,15 @@ jobs:
- name: install gcc-cross
if: ${{ matrix.gcc_cross != '' }}
run: |
sudo apt install gcc-${{ matrix.gcc_cross }}
sudo apt install gcc-${GCC_CROSS}
echo "Setting environment variables:"
echo "CC_${{ matrix.host_target }}=${{ matrix.gcc_cross }}-gcc" | tee -a $GITHUB_ENV
TARGET_UPPERCASE=$(echo ${{ matrix.host_target }} | tr '[:lower:]-' '[:upper:]_')
echo "CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=${{ matrix.gcc_cross }}-gcc" | tee -a $GITHUB_ENV
echo "CARGO_HOST_${TARGET_UPPERCASE}_LINKER=${{ matrix.gcc_cross }}-gcc" | tee -a $GITHUB_ENV
echo "CC_${HOST_TARGET}=${GCC_CROSS}-gcc" | tee -a $GITHUB_ENV
TARGET_UPPERCASE=$(echo ${HOST_TARGET} | tr '[:lower:]-' '[:upper:]_')
echo "CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=${GCC_CROSS}-gcc" | tee -a $GITHUB_ENV
echo "CARGO_HOST_${TARGET_UPPERCASE}_LINKER=${GCC_CROSS}-gcc" | tee -a $GITHUB_ENV
echo "MIRI_TESTS_CROSS_COMPILED=1" | tee -a $GITHUB_ENV
env:
GCC_CROSS: ${{ matrix.gcc_cross }}

# The main test job! We don't run this in qemu as that is quite slow,
# so those targets only get the clippy check below.
Expand All @@ -119,8 +122,10 @@ jobs:
HOST_TARGET: x86_64-unknown-freebsd
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: vmactions/freebsd-vm@v1
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- uses: vmactions/freebsd-vm@c46abacb49f09938ca4e1702d15d836285d694cc # v1.5.9
with:
# Use FreeBSD 15.x
release: "15"
Expand All @@ -138,8 +143,10 @@ jobs:
name: style checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/workflows/setup
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- uses: $/.github/workflows/setup

- name: rustfmt
run: ./miri fmt --check
Expand All @@ -154,11 +161,13 @@ jobs:
name: bootstrap build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
# Deliberately skipping `./.github/workflows/setup` as we do our own setup
- name: Add cache for cargo
id: cache
uses: actions/cache@v5
uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: |
# Taken from <https://doc.rust-lang.org/nightly/cargo/guide/cargo-home.html#caching-the-cargo-home-in-ci>.
Expand Down Expand Up @@ -192,8 +201,10 @@ jobs:
name: priroda
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/workflows/setup
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- uses: $/.github/workflows/setup
- name: clippy Priroda
run: CARGO_EXTRA_FLAGS=--locked ./miri clippy --features priroda -- -D warnings
- name: test Priroda
Expand All @@ -203,8 +214,10 @@ jobs:
name: coverage report
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/workflows/setup
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- uses: $/.github/workflows/setup
- name: coverage
run: ./miri test --coverage

Expand All @@ -224,23 +237,21 @@ jobs:
- name: Conclusion
run: |
# Print the dependent jobs to see them in the CI log
jq -C <<< '${{ toJson(needs) }}'
jq -C <<< "${JSON_NEEDS}"
# Check if all jobs that we depend on (in the needs array) were successful.
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
jq --exit-status 'all(.result == "success")' <<< "${JSON_NEEDS}"
env:
JSON_NEEDS: ${{ toJson(needs) }}

cron-rustc-pull:
name: automatic pull from rustc
runs-on: ubuntu-latest
permissions:
# The cronjob needs to be able to push to the repo...
contents: write
# ... and create a PR.
pull-requests: write
if: ${{ github.event_name == 'schedule' }}
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 256 # get a bit more of the history
persist-credentials: false
- name: install josh-sync
run: cargo +stable install --locked --git https://github.com/rust-lang/josh-sync
- name: setup bot git name and email
Expand All @@ -252,9 +263,11 @@ jobs:
- name: Install rustup-toolchain-install-master
run: cargo install --locked -f rustup-toolchain-install-master
# Create a token for the next step so it can create a PR that actually runs CI.
- uses: actions/create-github-app-token@v3
- uses: actions/create-github-app-token@64ab729a6294000f5aa4a4bc0b73d1f32bc45510 # v3.3.0
id: app-token
with:
permission-contents: write # The cronjob needs to be able to push to the repo...
permission-pull-requests: write # ... and create a PR.
app-id: ${{ vars.APP_CLIENT_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: pull changes from rustc and create PR
Expand Down Expand Up @@ -284,6 +297,9 @@ jobs:
# Format changes
./miri toolchain
./miri fmt --check || (./miri fmt && git commit -am "fmt")

# Configure remote URL to use the GitHub App token
git config remote.origin.url "https://git:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"

# Create a PR
BRANCH="rustup-$(date -u +%Y-%m-%d)"
Expand All @@ -297,7 +313,7 @@ jobs:
name: cronjob failure notification
runs-on: ubuntu-latest
needs: [test, test-vm-freebsd, style, bootstrap, coverage, priroda]
if: ${{ github.event_name == 'schedule' && failure() }}
if: ${{ ( github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' ) && failure() }}
steps:
# Send a Zulip notification
- name: Install zulip-send
Expand Down
9 changes: 6 additions & 3 deletions src/tools/miri/.github/workflows/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ runs:
# over time).
- name: Add cache for cargo
id: cache
uses: actions/cache@v5
uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: |
# Taken from <https://doc.rust-lang.org/nightly/cargo/guide/cargo-home.html#caching-the-cargo-home-in-ci>.
Expand All @@ -43,12 +43,15 @@ runs:

- name: Install "master" toolchain
run: |
if [[ ${{ github.event_name }} == 'schedule' ]]; then
if [[ "${GH_EVENT_NAME}" == 'schedule' || "${GH_EVENT_NAME}" == "workflow_dispatch" ]]; then
echo "Building against latest rustc git version"
git ls-remote https://github.com/rust-lang/rust/ HEAD | cut -f 1 > rust-version
fi
./miri toolchain ${{ inputs.toolchain_flags }}
./miri toolchain ${INPUTS_TOOLCHAIN_FLAGS}
shell: bash
env:
INPUTS_TOOLCHAIN_FLAGS: ${{ inputs.toolchain_flags }}
GH_EVENT_NAME: ${{ github.event_name }}

- name: Show Rust version (miri toolchain)
run: |
Expand Down
8 changes: 5 additions & 3 deletions src/tools/miri/.github/workflows/sysroots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ jobs:
name: Build the sysroots
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
persist-credentials: false
- name: Build the sysroots
run: |
rustup toolchain install nightly
Expand All @@ -28,7 +30,7 @@ jobs:
- name: Upload build errors
# We don't want to skip this step on failure
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: failures
path: failures.tar.gz
Expand All @@ -41,7 +43,7 @@ jobs:
steps:
# Download our build error logs
- name: Download build errors
uses: actions/download-artifact@v8
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: failures
# Send a Zulip notification
Expand Down
20 changes: 7 additions & 13 deletions src/tools/miri/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,19 @@ for a list of Miri maintainers.

### PR review process

When you get a review, please take care of the requested changes in new commits. Do not amend
existing commits. Generally avoid force-pushing. The only time you should force push is when there
is a conflict with the master branch (in that case you should rebase across master, not merge), and
all the way at the end of the review process when the reviewer tells you that the PR is done and you
should squash the commits. (All this is to work around the fact that Github is quite bad at
dealing with force pushes and does not support `git range-diff`.)

The recommended way to squash commits is to use `./miri squash`, which will make everything into a
single commit. You will be asked for the commit message; please ensure it describes the entire PR.
You can also use `git rebase` manually if you need more control (e.g. if there should be more than
one commit at the end), but then please use `--keep-base` to ensure the PR remains based on the same
upstream commit.

Most PRs bounce back and forth between the reviewer and the author several times, so it is good to
keep track of who is expected to take the next step. We are using the `S-waiting-for-review` and
`S-waiting-for-author` labels for that. If a reviewer asked you to do some changes and you think
they are all taken care of, post a comment saying `@rustbot ready` to mark a PR as ready for the
next round of review.

When you are making significant changes to a PR, it is often easier to review them as a separate
commit, rather than as force-pushed changes to existing commits. Wait until the end of the review
process before squashing the git history. To squash everything into a single commit, you can use
`./miri squash`. You will be asked for the commit message; please ensure it describes the entire PR.
You can also use `git rebase` manually if you need more control (e.g. if there should be more than
one commit at the end).

### Larger-scale contributions

If you are thinking about making a larger-scale contribution -- in particular anything that needs
Expand Down
Loading
Loading