Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions .github/workflows/github-action-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ jobs:
with:
fetch-depth: 2
- run: scripts/diffcheck.sh
Scripted-Diff-Checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: scripts/commit-script-check.sh ${{ github.sha }}
Typo-Checks:
name: "Typo Checks"
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion bip-0003.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ address the evolving needs of the BIP process.

## Motivation

BIP 2 was written in 2016.
BIP 2 was written in 2017.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was gonna say, I’m pretty sure that it was 2016, but I see now that you are just testing the CI.

Sorry that I haven’t reviewed this yet.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! No worries, I'm not passing the commit range correctly yet, putting it back into draft.

This BIP revisits aspects of the BIP 2 process
that did not achieve broad adoption, reduces the judgment calls assigned to the BIP Editor role, delineates the
BIP types more clearly, and generalizes the BIP process to fit the community’s use of the repository.
Expand Down
57 changes: 57 additions & 0 deletions scripts/commit-script-check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/sh
# Copyright (c) 2009-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

# This simple script checks for commits beginning with: scripted-diff:
# If found, looks for a script between the lines -BEGIN VERIFY SCRIPT- and
# -END VERIFY SCRIPT-. If no ending is found, it reads until the end of the
# commit message.

# The resulting script should exactly transform the previous commit into the
# current one. Any remaining diff signals an error.

export LC_ALL=C
if test -z "$1"; then
echo "Usage: $0 <commit>..."
exit 1
fi

if ! sed --help 2>&1 | grep -q 'GNU'; then
echo "Error: the installed sed package is not compatible. Please make sure you have GNU sed installed in your system.";
exit 1;
fi

if ! grep --help 2>&1 | grep -q 'GNU'; then
echo "Error: the installed grep package is not compatible. Please make sure you have GNU grep installed in your system.";
exit 1;
fi

RET=0
PREV_BRANCH=$(git name-rev --name-only HEAD)
PREV_HEAD=$(git rev-parse HEAD)
for commit in $(git rev-list --reverse "$1"); do
if git rev-list -n 1 --pretty="%s" "$commit" | grep -q "^scripted-diff:"; then
git checkout --quiet "$commit"^ || exit
SCRIPT="$(git rev-list --format=%b -n1 "$commit" | sed '/^-BEGIN VERIFY SCRIPT-$/,/^-END VERIFY SCRIPT-$/{//!b};d')"
if test -z "$SCRIPT"; then
echo "Error: missing script for: $commit" >&2
echo "Failed" >&2
RET=1
else
echo "Running script for: $commit" >&2
echo "$SCRIPT" >&2
(eval "$SCRIPT")
git --no-pager diff --exit-code "$commit" && echo "OK" >&2 || (echo "Failed" >&2; false) || RET=1
fi
git reset --quiet --hard HEAD
else
if git rev-list "--format=%b" -n1 "$commit" | grep -q '^-\(BEGIN\|END\)[ a-zA-Z]*-$'; then
echo "Error: script block marker but no scripted-diff in title of commit $commit" >&2
echo "Failed" >&2
RET=1
fi
fi
done
git checkout --quiet "$PREV_BRANCH" 2>/dev/null || git checkout --quiet "$PREV_HEAD"
exit $RET