mirror of
https://github.com/roc-lang/roc.git
synced 2025-12-23 08:48:03 +00:00
misc improvements
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
This commit is contained in:
parent
331ff4c81f
commit
cbdedc8c1f
1 changed files with 18 additions and 15 deletions
33
.github/workflows/improve_panics.yml
vendored
33
.github/workflows/improve_panics.yml
vendored
|
|
@ -1,9 +1,9 @@
|
|||
on:
|
||||
pull_request:
|
||||
workflow_call:
|
||||
|
||||
# Check that the number of panicking function/macro calls has not increased
|
||||
# https://github.com/roc-lang/roc/issues/2046
|
||||
name: Improve panics
|
||||
name: Improve panics/unwrap/expect
|
||||
|
||||
# this cancels workflows currently in progress if you start a new one
|
||||
concurrency:
|
||||
|
|
@ -28,31 +28,34 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
with:
|
||||
clean: true
|
||||
path: source
|
||||
path: source_branch_dir
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- name: checkout target branch in separate directory
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
clean: false
|
||||
path: target
|
||||
path: target_branch_dir
|
||||
ref: ${{ github.base_ref }}
|
||||
|
||||
- name: compare violations
|
||||
- name: Compare panics, expects, and unwraps between source and target brach
|
||||
run: |
|
||||
for d in source target; do
|
||||
cd $d
|
||||
echo "Cleaning $d..."
|
||||
cargo clean
|
||||
echo "Calculating $d violations..."
|
||||
VIOLATIONS=$(nix develop -c cargo clippy --no-deps -- -W clippy::unwrap_used -W clippy::expect_used -W clippy::panic -W clippy::unreachable 2> >(grep -e "warning: \`panic\`" -e "warning: used" -e "warning: usage of" | wc -l ))
|
||||
for branch_dir in source_branch_dir target_branch_dir; do
|
||||
cd $branch_dir
|
||||
echo "Calculating violations in &branch_dir..."
|
||||
VIOLATIONS=$(nix develop -c cargo clippy --no-deps -- -W clippy::unwrap_used -W clippy::expect_used -W clippy::panic 2> >(grep -e "warning: \`panic\`" -e "warning: used" -e "warning: usage of" | wc -l ))
|
||||
echo $VIOLATIONS > violations
|
||||
cd ..
|
||||
done
|
||||
SOURCE_VIOLATIONS=$(cat source/violations)
|
||||
TARGET_VIOLATIONS=$(cat target/violations)
|
||||
|
||||
SOURCE_VIOLATIONS=$(cat source_branch_dir/violations)
|
||||
TARGET_VIOLATIONS=$(cat target_branch_dir/violations)
|
||||
if [ "$SOURCE_VIOLATIONS" -gt "$TARGET_VIOLATIONS" ]; then
|
||||
echo "panic/unwrap/expect/unreachable count increased from $TARGET_VIOLATIONS to $SOURCE_VIOLATIONS"
|
||||
echo "We want this to decrease, or at least stay the same"
|
||||
echo "You added panic/unwrap/expect, in this PR their count increased from $TARGET_VIOLATIONS to $SOURCE_VIOLATIONS."
|
||||
echo "These calls can kill the REPL, try alternative error handling."
|
||||
echo ""
|
||||
echo "TIP: Ask AI \"In rust, how can I rewrite code that contains panic or unwrap so it doesn't crash?\""
|
||||
echo ""
|
||||
echo "If you believe your panic/unwrap/expect is justified, ask Anton-4, rtfeldman or lukewilliamboswell to bypass this workflow failure."
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue