test: improve dev environment for integration tests#98
test: improve dev environment for integration tests#98qlrd wants to merge 4 commits intodiybitcoinhardware:masterfrom
Conversation
9126e1f to
7dd292c
Compare
|
Re-working on this. Making it draft for now so new updates will not bother anyone. |
d6b60a0 to
e070a06
Compare
e070a06 to
a872e76
Compare
There was a problem hiding this comment.
Pull request overview
Adds a reproducible integration-test environment by building/caching bitcoind and elementsd, while also updating repo-wide formatting/linting and documentation cleanup.
Changes:
- Add
tests/run.shto build/cache Bitcoin Core + Elements and run integration tests using an isolated temp directory. - Update CI workflows and pre-commit tooling for formatting/linting/spellcheck and test execution.
- Apply formatting/import-order cleanups and fix various documentation typos/paths (recipes).
Reviewed changes
Copilot reviewed 65 out of 68 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Formatting-only change for readability. |
| tests/tests/test_bip32.py | Formatting-only changes in vectors and indentation. |
| tests/tests/test_bech32.py | Normalize hex escape casing in test vector. |
| tests/run.sh | New script to build/cache daemons and run integration tests. |
| tests/integration/util/rpc.py | Import cleanup; adds request/response prints; minor typo fix. |
| tests/integration/util/liquid.py | Route Elements datadir/binary via EMBIT_TEMP_DIR. |
| tests/integration/util/bitcoin.py | Route Core datadir/binary via EMBIT_TEMP_DIR; change process lifecycle handling. |
| tests/integration/tests/test_pset.py | Import cleanup. |
| tests/integration/tests/test_psbt.py | Import cleanup. |
| tests/integration/run_tests.py | Adjust daemon shutdown order. |
| tests/integration/daemon-versions.env | New env file to pin daemon versions for caching. |
| tests/integration/init.py | Package marker for integration tests. |
| tests/init.py | Package marker for tests. |
| src/embit/wordlists/uslip39.py | Import order/spacing cleanup. |
| src/embit/wordlists/ubip39.py | Import order/spacing cleanup. |
| src/embit/util/key.py | Import order/spacing cleanup. |
| src/embit/util/ctypes_secp256k1.py | Import order cleanup for style tools. |
| src/embit/transaction.py | Import grouping cleanup. |
| src/embit/slip39.py | Import order/spacing cleanup. |
| src/embit/script.py | Import grouping cleanup. |
| src/embit/psbt.py | Import grouping cleanup; minor comment typo fix. |
| src/embit/networks.py | Normalize hex literal casing in constants. |
| src/embit/misc.py | Import order tweak in micropython branch. |
| src/embit/liquid/transaction.py | Import order/grouping cleanup. |
| src/embit/liquid/slip77.py | Blank line formatting. |
| src/embit/liquid/psetview.py | Import order/grouping cleanup. |
| src/embit/liquid/pset.py | Import order/grouping cleanup; small formatting change in blinded_vout. |
| src/embit/liquid/networks.py | Normalize hex literal casing in constants. |
| src/embit/liquid/finalizer.py | Import grouping cleanup. |
| src/embit/liquid/descriptor.py | Import grouping cleanup. |
| src/embit/liquid/blip32.py | Import order/spacing cleanup. |
| src/embit/liquid/addresses.py | Import order cleanup. |
| src/embit/finalizer.py | Import order cleanup. |
| src/embit/ec.py | Import order/grouping cleanup. |
| src/embit/descriptor/taptree.py | Import order/grouping cleanup. |
| src/embit/descriptor/descriptor.py | Import order cleanup; rename local tuple element leafs→leaves. |
| src/embit/descriptor/checksum.py | Fix docstring typo (“desciptor” → “descriptor”). |
| src/embit/descriptor/base.py | Spacing/import formatting. |
| src/embit/descriptor/arguments.py | Import order cleanup; fix typo in property name (has_hardened). |
| src/embit/descriptor/init.py | Import order cleanup. |
| src/embit/compact.py | Docstring formatting. |
| src/embit/bip85.py | Import order/spacing cleanup. |
| src/embit/bip39.py | Fix comment typo (“conversion”). |
| src/embit/bip32.py | Import grouping cleanup. |
| src/embit/base58.py | Spacing/import formatting. |
| src/embit/base.py | Import order/spacing cleanup. |
| pyproject.toml | Add black/isort/pylint configs; adjust dev deps (drop mypy, add isort/pylint). |
| examples/explorer.py | Formatting-only changes. |
| examples/change.py | Formatting-only changes. |
| docs/recipes/README.md | Add correctly named Recipes section. |
| docs/recepies/README.md | Remove misspelled Recipes section file. |
| docs/api/hashes.md | Fix spelling/typos (“Internally”, “Returns”). |
| docs/api/ec/signature.md | Fix spelling (“instantiate”). |
| docs/api/ec/schnorr_sig.md | Fix spelling (“instantiate”). |
| docs/api/ec/public_key.md | Fix spelling (“instantiate”). |
| docs/api/ec/_sidebar.md | Update sidebar link to /recipes. |
| docs/api/ec/README.md | Fix typo (“signature”). |
| docs/api/bip32.md | Fix typos (“NETWORKS”, “fingerprint”). |
| docs/api/_sidebar.md | Update sidebar link to /recipes. |
| docs/api/README.md | Fix grammar (“split”). |
| docs/_sidebar.md | Update sidebar link to /recipes. |
| _typos.toml | Add typos configuration and exclusions. |
| README.md | Expand dev setup docs and pre-commit/test instructions. |
| .pre-commit-config.yaml | Add isort/pylint/shellcheck/typos hooks; add local pytest hook. |
| .gitignore | Remove mypy cache ignores. |
| .github/workflows/tests.yml | New unit + integration workflow (build/cached daemons). |
| .github/workflows/conventional-commits.yml | New workflow to enforce conventional commits. |
| .github/workflows/code-quality.yml | New workflow for isort/black/pylint/shellcheck/typos. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ca265f4 to
e8bf3e2
Compare
a6dd2db to
f9be9b3
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the local developer workflow to better mirror CI by introducing pre-commit hooks, Poetry-based tooling configuration, and a new test runner that can build/cache bitcoind + elementsd for integration tests, alongside broad formatting/typo cleanups across the repo.
Changes:
- Add
tests/run.shto build/restore daemon binaries and run unit + integration tests locally (with caching). - Introduce pre-commit + CI workflows for formatting/linting/spellcheck/testing alignment.
- Apply repo-wide hygiene changes (import sorting, formatting, typo fixes, docs path rename).
Reviewed changes
Copilot reviewed 69 out of 73 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Formatting-only change. |
| tests/tests/test_descriptor.py | Formatting-only change. |
| tests/tests/test_bip85.py | Formatting-only change. |
| tests/tests/test_bip32.py | Formatting-only change. |
| tests/tests/test_bech32.py | Normalize hex escape casing. |
| tests/run.sh | New local runner to build/cache daemons and run tests. |
| tests/integration/util/rpc.py | Refactor imports; add RPC debug prints (needs adjustment). |
| tests/integration/util/liquid.py | Point Elements integration paths at $EMBIT_TEMP_DIR. |
| tests/integration/util/bitcoin.py | Point Bitcoin integration paths at $EMBIT_TEMP_DIR; adjust process handling. |
| tests/integration/tests/test_pset.py | Cleanup imports. |
| tests/integration/tests/test_psbt.py | Cleanup imports. |
| tests/integration/run_tests.py | Adjust daemon shutdown ordering. |
| tests/integration/daemon-versions.env | New: daemon versions file for caching keys. |
| tests/integration/init.py | Package marker for integration tests. |
| tests/init.py | Package marker for tests. |
| src/embit/wordlists/uslip39.py | Import ordering hygiene. |
| src/embit/wordlists/ubip39.py | Import ordering hygiene. |
| src/embit/util/key.py | Import ordering hygiene. |
| src/embit/util/ctypes_secp256k1.py | Import ordering hygiene. |
| src/embit/transaction.py | Import consolidation. |
| src/embit/slip39.py | Import ordering hygiene. |
| src/embit/script.py | Import consolidation. |
| src/embit/psbtview.py | Import refactor + minor spelling changes (needs small cleanup). |
| src/embit/psbt.py | Import refactor + minor spelling changes. |
| src/embit/networks.py | Normalize byte literal casing. |
| src/embit/misc.py | Import ordering within micropython branch. |
| src/embit/liquid/transaction.py | Import ordering hygiene. |
| src/embit/liquid/slip77.py | Spacing/formatting. |
| src/embit/liquid/psetview.py | Import ordering hygiene. |
| src/embit/liquid/pset.py | Import ordering + formatting. |
| src/embit/liquid/networks.py | Normalize byte literal casing. |
| src/embit/liquid/finalizer.py | Import ordering hygiene. |
| src/embit/liquid/descriptor.py | Import ordering hygiene. |
| src/embit/liquid/blip32.py | Import ordering hygiene. |
| src/embit/liquid/addresses.py | Import ordering hygiene. |
| src/embit/finalizer.py | Import ordering hygiene. |
| src/embit/ec.py | Import ordering hygiene. |
| src/embit/descriptor/taptree.py | Import ordering hygiene. |
| src/embit/descriptor/miniscript.py | Import ordering hygiene. |
| src/embit/descriptor/descriptor.py | Import ordering hygiene + variable rename. |
| src/embit/descriptor/checksum.py | Fix docstring typo. |
| src/embit/descriptor/base.py | Spacing/formatting. |
| src/embit/descriptor/arguments.py | Import ordering + typo fix in property name. |
| src/embit/descriptor/init.py | Import ordering hygiene. |
| src/embit/compact.py | Docstring formatting. |
| src/embit/bip85.py | Import ordering hygiene. |
| src/embit/bip39.py | Fix comment typo + import ordering. |
| src/embit/bip32.py | Import ordering hygiene. |
| src/embit/base58.py | Spacing/formatting. |
| src/embit/base.py | Import ordering hygiene. |
| pyproject.toml | Switch to Poetry core build backend; add black/isort/pylint config. |
| examples/explorer.py | Formatting-only change. |
| examples/change.py | Formatting-only change. |
| docs/recipes/README.md | Add correctly spelled Recipes section. |
| docs/recepies/README.md | Remove misspelled Recepies section. |
| docs/api/hashes.md | Spelling fixes. |
| docs/api/ec/signature.md | Spelling fixes. |
| docs/api/ec/schnorr_sig.md | Spelling fixes. |
| docs/api/ec/public_key.md | Spelling fixes. |
| docs/api/ec/_sidebar.md | Update sidebar link to Recipes. |
| docs/api/ec/README.md | Spelling fixes. |
| docs/api/bip32.md | Spelling fixes. |
| docs/api/_sidebar.md | Update sidebar link to Recipes. |
| docs/api/README.md | Grammar fix. |
| docs/_sidebar.md | Update sidebar link to Recipes. |
| _typos.toml | Add typos configuration and excludes. |
| README.md | Update dev/pre-commit instructions (contains a couple typos). |
| .pre-commit-config.yaml | Add hooks for isort/black/pylint/shellcheck/typos + local pytest hook (needs fix). |
| .gitignore | Remove mypy cache ignore entries. |
| .github/workflows/tests.yml | Add tests workflow (unit job currently doesn’t run unit tests). |
| .github/workflows/conventional-commits.yml | Add conventional commits workflow. |
| .github/workflows/code-quality.yml | Add formatting/lint/spellcheck workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
f9be9b3 to
acafd89
Compare
acafd89 to
b2336f2
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR improves the local developer workflow to better mirror CI for unit + integration tests, adds CI workflows for code-quality and tests, and applies formatting/lint hygiene across the repo.
Changes:
- Added a
tests/run.shorchestration script to build/cachebitcoind+elementsdand run unit/integration tests locally and in CI. - Introduced GitHub Actions workflows for code-quality checks, unit tests, integration tests, and conventional-commit enforcement.
- Applied broad formatting/linting fixes (imports, whitespace, minor typos) and updated docs/sidebars (e.g., “Recipes”).
Reviewed changes
Copilot reviewed 71 out of 75 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Formatting-only change to keep tests black-compliant. |
| tests/tests/test_descriptor.py | Formatting-only refactors in test vectors and lists. |
| tests/tests/test_bip85.py | Formatting-only change for test vector readability. |
| tests/tests/test_bip32.py | Formatting-only cleanup (comments/indentation). |
| tests/tests/test_bech32.py | Normalizes hex escape casing in a fixture string. |
| tests/run.sh | New script to build/restore daemon binaries and run unit/integration tests. |
| tests/integration/util/rpc.py | Refactors imports and adds extra debugging output to RPC calls. |
| tests/integration/util/liquid.py | Switches Elements datadir/binary to use EMBIT_TEMP_DIR. |
| tests/integration/util/bitcoin.py | Switches Bitcoin datadir/binary to use EMBIT_TEMP_DIR and improves stop logic. |
| tests/integration/tests/test_pset.py | Removes unused imports and tidies integration test imports. |
| tests/integration/tests/test_psbt.py | Removes unused imports and tidies integration test imports. |
| tests/integration/run_tests.py | Adjusts daemon shutdown ordering and removes a sleep. |
| tests/integration/daemon-versions.env | New env file to pin daemon versions for cache keys. |
| src/embit/wordlists/uslip39.py | Import ordering/formatting cleanup. |
| src/embit/wordlists/ubip39.py | Import ordering/formatting cleanup. |
| src/embit/wordlists/base.py | Minor tuple-unpacking formatting tweak. |
| src/embit/util/key.py | Import reordering/spacing cleanup. |
| src/embit/util/ctypes_secp256k1.py | Import splitting/reordering for style compliance. |
| src/embit/transaction.py | Import consolidation and ordering cleanup. |
| src/embit/slip39.py | Import ordering/spacing cleanup. |
| src/embit/script.py | Consolidates imports and reorders for style. |
| src/embit/psbtview.py | Import cleanup + minor refactors + typo fixes in comments/docstring. |
| src/embit/psbt.py | Import cleanup and minor variable rename for clarity. |
| src/embit/networks.py | Normalizes hex literal casing in network constants. |
| src/embit/misc.py | Import ordering in micropython branch. |
| src/embit/liquid/transaction.py | Import ordering/structure cleanup. |
| src/embit/liquid/slip77.py | Spacing cleanup. |
| src/embit/liquid/psetview.py | Import ordering/spacing cleanup. |
| src/embit/liquid/pset.py | Import ordering + formatting of conditional witness creation. |
| src/embit/liquid/networks.py | Normalizes hex literal casing in network constants. |
| src/embit/liquid/finalizer.py | Import reordering for style. |
| src/embit/liquid/descriptor.py | Import ordering + grouping cleanup. |
| src/embit/liquid/blip32.py | Import ordering/spacing cleanup. |
| src/embit/liquid/addresses.py | Import ordering cleanup. |
| src/embit/finalizer.py | Import ordering cleanup. |
| src/embit/ec.py | Import ordering cleanup. |
| src/embit/descriptor/taptree.py | Import ordering and tuple-unpacking formatting. |
| src/embit/descriptor/miniscript.py | Import ordering and whitespace cleanup. |
| src/embit/descriptor/descriptor.py | Import ordering and minor variable rename. |
| src/embit/descriptor/checksum.py | Fixes a docstring typo. |
| src/embit/descriptor/base.py | Spacing/import grouping cleanup. |
| src/embit/descriptor/arguments.py | Import ordering + renames a public property (has_hardend → has_hardened). |
| src/embit/descriptor/init.py | Reorders exports. |
| src/embit/compact.py | Docstring spacing normalization. |
| src/embit/bip85.py | Import ordering cleanup. |
| src/embit/bip39.py | Comment typo fix + import ordering. |
| src/embit/bip32.py | Import ordering cleanup. |
| src/embit/bech32.py | Adds spacing after module docstring. |
| src/embit/base58.py | Spacing cleanup. |
| src/embit/base.py | Import ordering/spacing cleanup. |
| pyproject.toml | Moves fully to Poetry config, adds dev tool configs (black/isort/pylint), sets Python >=3.9. |
| examples/explorer.py | Formatting-only change to satisfy black. |
| examples/change.py | Adds spacing after module docstring. |
| docs/recipes/README.md | Adds new “Recipes” section. |
| docs/recepies/README.md | Removes misspelled “Recepies” doc. |
| docs/api/hashes.md | Fixes spelling in documentation. |
| docs/api/ec/signature.md | Fixes spelling (“instatiate” → “instantiate”). |
| docs/api/ec/schnorr_sig.md | Fixes spelling (“instatiate” → “instantiate”). |
| docs/api/ec/public_key.md | Fixes spelling (“instatiate” → “instantiate”). |
| docs/api/ec/_sidebar.md | Updates sidebar link from “Recepies” to “Recipes”. |
| docs/api/ec/README.md | Fixes spelling (“siganture” → “signature”). |
| docs/api/bip32.md | Fixes typos (“NETOWRKS”, “fingeprint”). |
| docs/api/_sidebar.md | Updates sidebar link from “Recepies” to “Recipes”. |
| docs/api/README.md | Fixes grammar (“split” vs “splitted”). |
| docs/_sidebar.md | Updates global sidebar link to “Recipes”. |
| _typos.toml | Adds typos tool config and excludes for fixtures/wordlists. |
| README.md | Updates dev + pre-commit instructions and improves spacing. |
| .pre-commit-config.yaml | Adds isort/pylint/shellcheck/typos hooks and local test hooks. |
| .gitignore | Removes mypy cache ignores. |
| .github/workflows/tests.yml | Adds unit + integration test workflows (with daemon caching). |
| .github/workflows/conventional-commits.yml | Adds conventional-commit enforcement workflow. |
| .github/workflows/code-quality.yml | Adds isort/black/pylint/shellcheck/typos workflow. |
Comments suppressed due to low confidence (13)
tests/integration/util/bitcoin.py:1
os.getenv()will not raise here, butEMBIT_TEMP_DIRcan beNone. If it’s unset,os.path.join(None, ...)will raise aTypeErrorat import time, breaking integration tests in confusing ways. Prefer an explicit validation likeif not EMBIT_TEMP_DIR: raise RuntimeError('EMBIT_TEMP_DIR must be set ...')(or fall back to the previous relative datadir/binary defaults) rather thansys.exit(1)during import.
tests/integration/util/bitcoin.py:1os.getenv()will not raise here, butEMBIT_TEMP_DIRcan beNone. If it’s unset,os.path.join(None, ...)will raise aTypeErrorat import time, breaking integration tests in confusing ways. Prefer an explicit validation likeif not EMBIT_TEMP_DIR: raise RuntimeError('EMBIT_TEMP_DIR must be set ...')(or fall back to the previous relative datadir/binary defaults) rather thansys.exit(1)during import.
tests/integration/util/bitcoin.py:1os.getenv()will not raise here, butEMBIT_TEMP_DIRcan beNone. If it’s unset,os.path.join(None, ...)will raise aTypeErrorat import time, breaking integration tests in confusing ways. Prefer an explicit validation likeif not EMBIT_TEMP_DIR: raise RuntimeError('EMBIT_TEMP_DIR must be set ...')(or fall back to the previous relative datadir/binary defaults) rather thansys.exit(1)during import.
tests/integration/util/liquid.py:1- Same issue as in
bitcoin.py:EMBIT_TEMP_DIRcan beNoneand causeos.path.jointo fail at import time. Add an explicitNone/empty-string check and raise a descriptive exception (or restore a safe default), instead of wrappinggetenv()in a try/except and callingsys.exit()on import.
tests/integration/util/liquid.py:1 - Same issue as in
bitcoin.py:EMBIT_TEMP_DIRcan beNoneand causeos.path.jointo fail at import time. Add an explicitNone/empty-string check and raise a descriptive exception (or restore a safe default), instead of wrappinggetenv()in a try/except and callingsys.exit()on import.
tests/integration/util/liquid.py:1 - Same issue as in
bitcoin.py:EMBIT_TEMP_DIRcan beNoneand causeos.path.jointo fail at import time. Add an explicitNone/empty-string check and raise a descriptive exception (or restore a safe default), instead of wrappinggetenv()in a try/except and callingsys.exit()on import.
tests/integration/util/bitcoin.py:1 - Splitting with
str.split(' ')is not shell-safe and will break if any argument contains spaces or quoting (it also collapses repeated whitespace). Prefer returning alist[str]fromcmddirectly, or useshlex.split(self.cmd)ifcmdis intentionally maintained as a shell-like string.
tests/integration/util/rpc.py:1 - These unconditional
print()calls can make CI logs very noisy and may leak sensitive information (e.g., wallet names, request bodies, possibly credentials depending on howself.urlis constructed). Please switch tologger.debug(...)and gate it behind an env flag (or the logging level), and avoid printing full payloads by default.
tests/integration/util/rpc.py:1 - These unconditional
print()calls can make CI logs very noisy and may leak sensitive information (e.g., wallet names, request bodies, possibly credentials depending on howself.urlis constructed). Please switch tologger.debug(...)and gate it behind an env flag (or the logging level), and avoid printing full payloads by default.
tests/run.sh:1 git clone \"$url\"relies on the repo name matching$dir. This happens to work forbitcoin/elementstoday, but it’s brittle and will fail if$direver differs from the default clone directory name. Usegit clone \"$url\" \"$dir\"(and consider handling the case where$diralready exists).
src/embit/descriptor/arguments.py:1- This rename (
has_hardend→has_hardened) is a breaking public API change if any external code (or internal call sites not shown here) uses the old attribute name. Consider keeping a backward-compatible alias (e.g., a@property def has_hardend(self): return self.has_hardened) and optionally deprecating it to avoid unexpected runtime failures.
src/embit/psbtview.py:1 - The same TODO is now duplicated three times (two duplicates were added). This adds noise without extra information—please keep a single TODO line (or replace with a more specific issue reference if available).
src/embit/psbtview.py:1 lineappears to represent a length (of the scriptPubKey) rather than a line. Renaming to something likescript_len/lengthwould better reflect its meaning and reduce confusion while maintaining readability.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
5707a8e to
d7b5780
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the developer workflow to more closely mirror CI by adding pre-commit automation and a new integration-test runner that builds/restores Bitcoin Core + Elements daemons, alongside broad formatting/lint/typo cleanups across tests, docs, and library modules.
Changes:
- Add
tests/run.sh+ integration-test plumbing with daemon build/cache and deterministic temp/data directories. - Introduce/expand pre-commit + CI workflows for formatting/linting/spellcheck and running unit/integration tests.
- Apply repo-wide hygiene changes (import ordering/formatting, typo/doc fixes, minor test updates).
Reviewed changes
Copilot reviewed 71 out of 75 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Minor formatting change in taproot test vector setup. |
| tests/tests/test_descriptor.py | Formatting normalization for descriptor tests and error-case list. |
| tests/tests/test_bip85.py | Formatting of long expected entropy vectors. |
| tests/tests/test_bip32.py | Formatting cleanup of test vectors and indentation fix. |
| tests/tests/test_bech32.py | Normalize hex escape casing in checksum test vectors. |
| tests/run.sh | New integration test runner that builds/restores bitcoind/elementsd with caching and cleans data dirs. |
| tests/integration/util/rpc.py | Import cleanup, typo fix, and add debug logging + safer error handling in RPC wrapper. |
| tests/integration/util/liquid.py | Switch Elements datadir/binary to $EMBIT_TEMP_DIR layout and update coin funding flow. |
| tests/integration/util/bitcoin.py | Switch Bitcoin datadir/binary to $EMBIT_TEMP_DIR, improve process spawning and shutdown logic. |
| tests/integration/tests/test_pset.py | Import cleanup aligned with updated integration harness. |
| tests/integration/tests/test_psbt.py | Update wallet creation/import flow to descriptor wallets (importdescriptors). |
| tests/integration/run_tests.py | Make integration runner return proper exit codes based on unittest success. |
| tests/integration/daemon-versions.env | New env file to pin daemon versions for cache keys and CI consistency. |
| tests/integration/init.py | Package marker for integration tests. |
| tests/init.py | Package marker for tests. |
| src/embit/wordlists/uslip39.py | Import ordering cleanup. |
| src/embit/wordlists/ubip39.py | Import ordering cleanup. |
| src/embit/wordlists/base.py | Minor tuple-unpacking style change. |
| src/embit/util/key.py | Import ordering cleanup. |
| src/embit/util/ctypes_secp256k1.py | Import ordering cleanup within ctypes imports. |
| src/embit/transaction.py | Import grouping cleanup. |
| src/embit/slip39.py | Import ordering cleanup. |
| src/embit/script.py | Consolidate imports into grouped form. |
| src/embit/psbtview.py | Import cleanup + minor naming/spelling fixes; use hashlib.sha256 via direct import. |
| src/embit/psbt.py | Import grouping cleanup + minor naming/spelling fixes. |
| src/embit/networks.py | Normalize hex literal casing in network constants. |
| src/embit/misc.py | Minor import ordering in MicroPython branch. |
| src/embit/liquid/transaction.py | Import ordering cleanup. |
| src/embit/liquid/slip77.py | Add blank line for style consistency. |
| src/embit/liquid/psetview.py | Import ordering cleanup. |
| src/embit/liquid/pset.py | Import ordering cleanup and formatting of a conditional expression. |
| src/embit/liquid/networks.py | Normalize hex literal casing. |
| src/embit/liquid/finalizer.py | Import ordering cleanup. |
| src/embit/liquid/descriptor.py | Import ordering cleanup. |
| src/embit/liquid/blip32.py | Import ordering cleanup. |
| src/embit/liquid/addresses.py | Import ordering cleanup. |
| src/embit/finalizer.py | Import ordering cleanup. |
| src/embit/ec.py | Import ordering cleanup. |
| src/embit/descriptor/taptree.py | Import ordering cleanup + tuple-unpacking style change. |
| src/embit/descriptor/miniscript.py | Import ordering cleanup + trailing whitespace fix. |
| src/embit/descriptor/descriptor.py | Import ordering cleanup + rename local var for clarity. |
| src/embit/descriptor/checksum.py | Fix docstring spelling (“descriptor”). |
| src/embit/descriptor/base.py | Add spacing for style consistency. |
| src/embit/descriptor/arguments.py | Import ordering cleanup + typo fix in property name (has_hardened). |
| src/embit/descriptor/init.py | Import ordering cleanup. |
| src/embit/compact.py | Docstring formatting cleanup. |
| src/embit/bip85.py | Import ordering cleanup. |
| src/embit/bip39.py | Comment spelling fix and import ordering cleanup. |
| src/embit/bip32.py | Import grouping cleanup. |
| src/embit/bech32.py | Add spacing for style consistency. |
| src/embit/base58.py | Add spacing for style consistency. |
| src/embit/base.py | Import ordering cleanup. |
| pyproject.toml | Move dev tooling config into Poetry groups; add black/isort/pylint configs; change build backend and Python requirement. |
| examples/explorer.py | Minor formatting change for ternary expression layout. |
| examples/change.py | Add spacing for style consistency. |
| docs/recipes/README.md | New “Recipes” docs folder. |
| docs/recepies/README.md | Remove misspelled “Recepies” docs folder entry. |
| docs/api/hashes.md | Spelling fixes (“Internally”, “Returns”). |
| docs/api/ec/signature.md | Spelling fix (“instantiate”). |
| docs/api/ec/schnorr_sig.md | Spelling fix (“instantiate”). |
| docs/api/ec/public_key.md | Spelling fix (“instantiate”). |
| docs/api/ec/_sidebar.md | Update sidebar link to “Recipes”. |
| docs/api/ec/README.md | Spelling fix (“signature”). |
| docs/api/bip32.md | Spelling fixes (“NETWORKS”, “fingerprint”). |
| docs/api/_sidebar.md | Update sidebar link to “Recipes”. |
| docs/api/README.md | Spelling fix (“split”). |
| docs/_sidebar.md | Update sidebar link to “Recipes”. |
| _typos.toml | Add typos config with excludes/allowlist tuned for this repo. |
| README.md | Update dev workflow instructions for Poetry + pre-commit and integration tests. |
| .pre-commit-config.yaml | Add/expand hooks for isort/black/pylint/shellcheck/typos + unit/integration tests and conventional commit checks. |
| .gitignore | Remove mypy cache ignores. |
| .github/workflows/tests.yml | Add CI for unit + integration tests with daemon caching and toolchain installs. |
| .github/workflows/conventional-commits.yml | Add CI to enforce conventional commit messages. |
| .github/workflows/code-quality.yml | Add CI jobs for isort/black/pylint/shellcheck/typos. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
d7b5780 to
b67a78b
Compare
b67a78b to
9f026fd
Compare
9f026fd to
7880659
Compare
There was a problem hiding this comment.
Pull request overview
This PR upgrades the developer workflow around integration testing by adding a local runner that builds/caches bitcoind + elementsd, and by aligning pre-commit checks with CI (format/lint/spellcheck + unit/integration tests). It also applies repo-wide formatting, import hygiene, and documentation typo fixes to keep the codebase consistent with the new tooling.
Changes:
- Add
tests/run.sh+ integration daemon version pinning/caching to make integration tests reproducible locally and in CI. - Introduce/expand automated quality gates via pre-commit and GitHub Actions workflows (code quality, tests, conventional commits).
- Apply formatting/import cleanup and various small spelling/typo corrections across tests, docs, and library code.
Reviewed changes
Copilot reviewed 71 out of 75 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Formatting-only change to keep test code black-compliant. |
| tests/tests/test_descriptor.py | Formatting-only change for descriptor test vectors and lists. |
| tests/tests/test_bip85.py | Formatting-only change for long test vectors. |
| tests/tests/test_bip32.py | Formatting-only change (spacing/indent fixes in vectors/tests). |
| tests/tests/test_bech32.py | Normalize hex escape casing in invalid checksum vectors. |
| tests/run.sh | New integration test runner that builds/restores cached daemons and runs the integration suite. |
| tests/integration/util/rpc.py | Import hygiene, typo fix, and improved debug logging + RPC error handling. |
| tests/integration/util/liquid.py | Switch Elements datadir/binary to $EMBIT_TEMP_DIR layout and update mining/funding flow. |
| tests/integration/util/bitcoin.py | Switch Bitcoin datadir/binary to $EMBIT_TEMP_DIR layout; improve process start/stop and wait-for-RPC. |
| tests/integration/tests/test_pset.py | Cleanup imports and align integration test wallet setup with descriptor wallets. |
| tests/integration/tests/test_psbt.py | Update integration test wallet setup to importdescriptors and descriptor wallets. |
| tests/integration/run_tests.py | Make integration runner return proper exit code and ensure orderly daemon shutdown. |
| tests/integration/daemon-versions.env | Pin daemon versions for cache keys independent of script changes. |
| tests/integration/init.py | Package marker for integration tests. |
| tests/init.py | Package marker to support test discovery/imports. |
| src/embit/wordlists/uslip39.py | Import ordering hygiene. |
| src/embit/wordlists/ubip39.py | Import ordering hygiene. |
| src/embit/wordlists/base.py | Minor tuple-unpacking style cleanup. |
| src/embit/util/key.py | Import ordering hygiene. |
| src/embit/util/ctypes_secp256k1.py | Import ordering hygiene and clearer ctypes import block. |
| src/embit/transaction.py | Import grouping cleanup. |
| src/embit/slip39.py | Import ordering hygiene. |
| src/embit/script.py | Import grouping cleanup. |
| src/embit/psbtview.py | Import cleanup + sha256 refactor + minor wording/spelling fixes. |
| src/embit/psbt.py | Import grouping cleanup + minor whitespace/comment fixes. |
| src/embit/networks.py | Normalize byte-literal hex casing in network constants. |
| src/embit/misc.py | Import order tweak for micropython branch. |
| src/embit/liquid/transaction.py | Import grouping cleanup. |
| src/embit/liquid/slip77.py | Whitespace/import formatting. |
| src/embit/liquid/psetview.py | Import order cleanup. |
| src/embit/liquid/pset.py | Import grouping cleanup and formatting in conditional expression. |
| src/embit/liquid/networks.py | Normalize byte-literal hex casing. |
| src/embit/liquid/finalizer.py | Import order cleanup. |
| src/embit/liquid/descriptor.py | Import grouping cleanup. |
| src/embit/liquid/blip32.py | Import order cleanup. |
| src/embit/liquid/addresses.py | Import order cleanup. |
| src/embit/finalizer.py | Import order cleanup. |
| src/embit/ec.py | Import order cleanup. |
| src/embit/descriptor/taptree.py | Import order cleanup and tuple-unpacking style tweak. |
| src/embit/descriptor/miniscript.py | Import order cleanup and whitespace fix. |
| src/embit/descriptor/descriptor.py | Import order cleanup and variable naming tweak (leafs→leaves). |
| src/embit/descriptor/checksum.py | Docstring spelling fix. |
| src/embit/descriptor/base.py | Whitespace/import formatting. |
| src/embit/descriptor/arguments.py | Import order cleanup and typo fix in property name. |
| src/embit/descriptor/init.py | Import order tweak for public exports. |
| src/embit/compact.py | Docstring formatting normalization. |
| src/embit/bip85.py | Import order cleanup. |
| src/embit/bip39.py | Comment spelling fix + import ordering. |
| src/embit/bip32.py | Import grouping cleanup. |
| src/embit/bech32.py | Whitespace formatting. |
| src/embit/base58.py | Whitespace formatting. |
| src/embit/base.py | Import order tweak. |
| pyproject.toml | Move fully to Poetry build backend, add black/isort/pylint config, define dev dependency group. |
| examples/explorer.py | Formatting-only change for readability/black compliance. |
| examples/change.py | Whitespace formatting. |
| docs/recipes/README.md | Add correctly spelled “Recipes” docs section. |
| docs/recepies/README.md | Remove misspelled “Recepies” docs section. |
| docs/api/hashes.md | Spelling fixes. |
| docs/api/ec/signature.md | Spelling fix (“instantiate”). |
| docs/api/ec/schnorr_sig.md | Spelling fix (“instantiate”). |
| docs/api/ec/public_key.md | Spelling fix (“instantiate”). |
| docs/api/ec/_sidebar.md | Update sidebar link to “Recipes”. |
| docs/api/ec/README.md | Spelling fix (“signature”). |
| docs/api/bip32.md | Spelling fixes (“NETWORKS”, “fingerprint”). |
| docs/api/_sidebar.md | Update sidebar link to “Recipes”. |
| docs/api/README.md | Spelling fix (“split”). |
| docs/_sidebar.md | Update sidebar link to “Recipes”. |
| _typos.toml | Add typos configuration and exclusions aligned with repo content. |
| README.md | Update dev workflow documentation (Poetry + pre-commit + unit/integration commands). |
| .pre-commit-config.yaml | Add isort/pylint/shellcheck/typos + unit/integration hooks and conventional commit check. |
| .gitignore | Remove mypy cache ignores (since mypy is no longer configured here). |
| .github/workflows/tests.yml | Add unit + integration CI (with daemon cache + toolchain conditional installs). |
| .github/workflows/conventional-commits.yml | Add CI workflow enforcing conventional commit messages. |
| .github/workflows/code-quality.yml | Add CI workflows for isort/black/pylint/shellcheck/typos. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7880659 to
0b5e7cd
Compare
0b5e7cd to
238300f
Compare
There was a problem hiding this comment.
Pull request overview
This PR improves the local developer workflow to better mirror CI by adding a dedicated integration-test runner (building/restoring bitcoind + elementsd), introducing/aligning pre-commit + CI quality checks, and applying broad formatting + typo fixes across tests, docs, and library code.
Changes:
- Add
tests/run.sh+ CI workflow to build/cache Bitcoin Core + Elements daemons and run integration tests deterministically. - Introduce/enforce code-quality tooling via Poetry + pre-commit (isort/black/pylint/shellcheck/typos) and add conventional-commit checking.
- Apply repository-wide hygiene changes (formatting/import ordering, minor doc/test updates, spelling fixes).
Reviewed changes
Copilot reviewed 71 out of 75 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Formatting-only change in a taproot signing test. |
| tests/tests/test_descriptor.py | Test formatting tweaks and minor list formatting normalization. |
| tests/tests/test_bip85.py | Test vector formatting for readability. |
| tests/tests/test_bip32.py | Test vector formatting / indentation cleanup. |
| tests/tests/test_bech32.py | Normalize hex escape casing in test vector. |
| tests/run.sh | New integration-test runner that builds/restores cached daemons and runs integration suite. |
| tests/integration/util/rpc.py | Import cleanup, spelling fix, and additional RPC debug logging. |
| tests/integration/util/liquid.py | Make Elements integration harness use $EMBIT_TEMP_DIR for datadir/binary and update funding logic. |
| tests/integration/util/bitcoin.py | Make Bitcoin integration harness use $EMBIT_TEMP_DIR, safer process spawning, and RPC readiness polling. |
| tests/integration/tests/test_pset.py | Import cleanup and switch to descriptor-based wallet import path. |
| tests/integration/tests/test_psbt.py | Switch from importmulti to importdescriptors and adjust wallet creation args. |
| tests/integration/run_tests.py | Make integration runner exit non-zero on test failure and adjust daemon shutdown ordering. |
| tests/integration/daemon-versions.env | New file to pin daemon versions for cache keys. |
| tests/integration/init.py | Package marker for integration tests. |
| tests/init.py | Package marker for tests. |
| src/embit/wordlists/uslip39.py | Import ordering / formatting. |
| src/embit/wordlists/ubip39.py | Import ordering / formatting. |
| src/embit/wordlists/base.py | Minor tuple unpacking style cleanup. |
| src/embit/util/key.py | Import ordering / formatting. |
| src/embit/util/ctypes_secp256k1.py | Import normalization for lint/formatting. |
| src/embit/transaction.py | Import grouping/formatting. |
| src/embit/slip39.py | Import ordering / formatting. |
| src/embit/script.py | Import consolidation and ordering. |
| src/embit/psbtview.py | Import cleanup + small variable/typo fixes and sha256 import refactor. |
| src/embit/psbt.py | Import cleanup and minor formatting/typo fixes. |
| src/embit/networks.py | Normalize hex literal casing. |
| src/embit/misc.py | Import order adjustments for formatting. |
| src/embit/liquid/transaction.py | Import ordering / formatting. |
| src/embit/liquid/slip77.py | Formatting-only change. |
| src/embit/liquid/psetview.py | Import ordering / formatting. |
| src/embit/liquid/pset.py | Import ordering and formatting-only change in witness construction. |
| src/embit/liquid/networks.py | Normalize hex literal casing. |
| src/embit/liquid/finalizer.py | Import ordering / formatting. |
| src/embit/liquid/descriptor.py | Import ordering / formatting. |
| src/embit/liquid/blip32.py | Import ordering / formatting. |
| src/embit/liquid/addresses.py | Import ordering / formatting. |
| src/embit/finalizer.py | Import ordering / formatting. |
| src/embit/ec.py | Import ordering / formatting. |
| src/embit/descriptor/taptree.py | Import ordering and tuple unpacking style cleanup. |
| src/embit/descriptor/miniscript.py | Import ordering and whitespace cleanup. |
| src/embit/descriptor/descriptor.py | Import ordering and variable rename for consistency. |
| src/embit/descriptor/checksum.py | Docstring typo fix. |
| src/embit/descriptor/base.py | Formatting-only change. |
| src/embit/descriptor/arguments.py | Rename has_hardend → has_hardened (API surface change). |
| src/embit/descriptor/init.py | Import ordering / formatting. |
| src/embit/compact.py | Docstring formatting tweak. |
| src/embit/bip85.py | Import ordering / formatting. |
| src/embit/bip39.py | Comment spelling fix and import ordering. |
| src/embit/bip32.py | Import grouping/formatting. |
| src/embit/bech32.py | Formatting-only change. |
| src/embit/base58.py | Formatting-only change. |
| src/embit/base.py | Import ordering / formatting. |
| pyproject.toml | Switch to Poetry-core build, add dev tool config (black/isort/pylint), and update dependency grouping. |
| examples/explorer.py | Formatting-only change. |
| examples/change.py | Formatting-only change. |
| docs/recipes/README.md | New “Recipes” docs section. |
| docs/recepies/README.md | Remove misspelled “Recepies” docs section. |
| docs/api/hashes.md | Documentation spelling fixes. |
| docs/api/ec/signature.md | Documentation spelling fix. |
| docs/api/ec/schnorr_sig.md | Documentation spelling fix. |
| docs/api/ec/public_key.md | Documentation spelling fix. |
| docs/api/ec/_sidebar.md | Update sidebar link to “Recipes”. |
| docs/api/ec/README.md | Documentation spelling fix. |
| docs/api/bip32.md | Documentation spelling fixes. |
| docs/api/_sidebar.md | Update sidebar link to “Recipes”. |
| docs/api/README.md | Documentation grammar fix. |
| docs/_sidebar.md | Update sidebar link to “Recipes”. |
| _typos.toml | Add typos config and exclusions for fixtures/wordlists. |
| README.md | Update dev setup instructions for Poetry + pre-commit + integration tests. |
| .pre-commit-config.yaml | Add isort/black/pylint/shellcheck/typos + unit/integration hooks and conventional commit-msg hook. |
| .gitignore | Remove mypy-cache ignores (mypy config removed from pyproject). |
| .github/workflows/tests.yml | New CI workflow for unit + integration tests with daemon caching. |
| .github/workflows/conventional-commits.yml | New CI workflow to enforce conventional commit messages. |
| .github/workflows/code-quality.yml | New CI workflow for isort/black/pylint/shellcheck/typos. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
238300f to
e43811c
Compare
e43811c to
7b00868
Compare
There was a problem hiding this comment.
Pull request overview
This PR improves the developer experience for running unit + integration tests locally by aligning pre-commit and CI steps, and by introducing a local integration-test runner that builds/caches Bitcoin Core + Elements binaries.
Changes:
- Add
tests/run.shto build/restorebitcoindandelementsd, run integration tests, and manage temp dirs/caches. - Update integration test utilities to use
EMBIT_TEMP_DIRbinaries/data paths and modern wallet/descriptor RPC flows. - Add/adjust CI workflows and pre-commit configuration to mirror CI checks (format/lint/typos/tests).
Reviewed changes
Copilot reviewed 71 out of 75 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
tests/run.sh |
New integration test runner that builds/restores daemon binaries and runs integration tests. |
tests/integration/util/bitcoin.py |
Run bitcoind from EMBIT_TEMP_DIR, safer process handling, wallet creation updates. |
tests/integration/util/liquid.py |
Run elementsd from EMBIT_TEMP_DIR, updated chain params and wallet creation. |
src/embit/descriptor/arguments.py |
Renames a derivation helper property and refactors imports. |
.pre-commit-config.yaml / workflows |
Add CI-like quality gates and test workflows. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7b00868 to
157d57e
Compare
This commit introduces a structure for pre-commits that try to mirrors the CI job steps, with black formatting, isort, pylint, typos, unit-tests and integration tests with bitcoin-core.
This commit introduces a CI structure for format,
lint, unit-test, integration tests -- in both
`{linux,macoswindows}-latest` machines -- typos and
conventional commits.
This commit introduces a big set of small changes
(mostly lint ones) on `{examples,src,tests}/**/*.py`.
157d57e to
8d4f31c
Compare
There was a problem hiding this comment.
Pull request overview
Improves the local developer workflow to mirror CI by adding pre-commit hooks, CI workflows, and a reproducible integration-test runner that builds/caches Bitcoin Core + Elements daemons.
Changes:
- Add
tests/run.shintegration runner that builds/restoresbitcoind/elementsdwith caching and runs integration tests. - Introduce/align pre-commit hooks and GitHub Actions workflows for formatting, linting, spellcheck, unit tests, and integration tests.
- Apply formatting/typo fixes and small integration-test harness updates (RPC logging, daemon startup/shutdown, descriptor imports).
Reviewed changes
Copilot reviewed 71 out of 75 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/tests/test_taproot.py | Formatting-only change. |
| tests/tests/test_descriptor.py | Formatting-only changes to test vectors and lists. |
| tests/tests/test_bip85.py | Formatting-only change to test vectors. |
| tests/tests/test_bip32.py | Formatting/whitespace fixes in test vectors. |
| tests/tests/test_bech32.py | Normalizes hex escape casing in invalid checksum vector. |
| tests/run.sh | New integration test runner that builds/restores daemons and runs tests. |
| tests/integration/util/rpc.py | Import cleanup, typo fix, extra debug logging, safer error handling. |
| tests/integration/util/liquid.py | Require EMBIT_TEMP_DIR, update datadir/binary paths and Elements args. |
| tests/integration/util/bitcoin.py | Require EMBIT_TEMP_DIR, safer process handling and RPC readiness wait. |
| tests/integration/tests/test_pset.py | Import cleanup and descriptor-wallet usage updates. |
| tests/integration/tests/test_psbt.py | Move to descriptor wallets (importdescriptors) and update createwallet args. |
| tests/integration/run_tests.py | Ensure failing integration tests exit non-zero; adjust shutdown ordering. |
| tests/integration/daemon-versions.env | New file to pin daemon versions for CI cache keying. |
| tests/integration/init.py | Package marker. |
| tests/init.py | Package marker. |
| src/embit/wordlists/uslip39.py | Import ordering/formatting. |
| src/embit/wordlists/ubip39.py | Import ordering/formatting. |
| src/embit/wordlists/base.py | Minor tuple unpacking style change. |
| src/embit/util/key.py | Import ordering/formatting. |
| src/embit/util/ctypes_secp256k1.py | Import ordering/formatting. |
| src/embit/transaction.py | Import consolidation/ordering. |
| src/embit/slip39.py | Import ordering/formatting. |
| src/embit/script.py | Import consolidation/ordering. |
| src/embit/psbtview.py | Import refactor; minor naming/spelling fixes; sha256 usage simplification. |
| src/embit/psbt.py | Import refactor; minor naming/spelling fixes. |
| src/embit/networks.py | Normalize hex escape casing in constants. |
| src/embit/misc.py | Import ordering/formatting. |
| src/embit/liquid/transaction.py | Import ordering/formatting. |
| src/embit/liquid/slip77.py | Formatting-only change. |
| src/embit/liquid/psetview.py | Import ordering/formatting. |
| src/embit/liquid/pset.py | Import ordering/formatting; small formatting refactor. |
| src/embit/liquid/networks.py | Normalize hex escape casing in constants. |
| src/embit/liquid/finalizer.py | Import ordering/formatting. |
| src/embit/liquid/descriptor.py | Import ordering/formatting. |
| src/embit/liquid/blip32.py | Import ordering/formatting. |
| src/embit/liquid/addresses.py | Import ordering/formatting. |
| src/embit/finalizer.py | Import ordering/formatting. |
| src/embit/ec.py | Import ordering/formatting. |
| src/embit/descriptor/taptree.py | Import ordering and tuple unpacking style. |
| src/embit/descriptor/miniscript.py | Import ordering and whitespace cleanup. |
| src/embit/descriptor/descriptor.py | Import ordering; minor variable rename. |
| src/embit/descriptor/checksum.py | Docstring typo fix. |
| src/embit/descriptor/base.py | Formatting-only change. |
| src/embit/descriptor/arguments.py | Add has_hardened property and keep deprecated has_hardend. |
| src/embit/descriptor/init.py | Import ordering. |
| src/embit/compact.py | Docstring formatting. |
| src/embit/bip85.py | Import ordering. |
| src/embit/bip39.py | Comment typo fix and import ordering. |
| src/embit/bip32.py | Import refactor/ordering. |
| src/embit/bech32.py | Formatting-only change. |
| src/embit/base58.py | Formatting-only change. |
| src/embit/base.py | Import ordering. |
| pyproject.toml | Switch to Poetry build backend and add tool configs + dev deps. |
| examples/explorer.py | Formatting-only change. |
| examples/change.py | Formatting-only change. |
| docs/recipes/README.md | New corrected “Recipes” section. |
| docs/recepies/README.md | Remove misspelled “Recepies” page. |
| docs/api/hashes.md | Spelling fixes. |
| docs/api/ec/signature.md | Spelling fix. |
| docs/api/ec/schnorr_sig.md | Spelling fix. |
| docs/api/ec/public_key.md | Spelling fix. |
| docs/api/ec/_sidebar.md | Update sidebar link to Recipes. |
| docs/api/ec/README.md | Spelling fix. |
| docs/api/bip32.md | Spelling fixes. |
| docs/api/_sidebar.md | Update sidebar link to Recipes. |
| docs/api/README.md | Spelling fix. |
| docs/_sidebar.md | Update sidebar link to Recipes. |
| _typos.toml | Add typos configuration and exclusions. |
| README.md | Update dev setup/test instructions for Poetry + pre-commit + integration runner. |
| .pre-commit-config.yaml | Add isort/black/pylint/shellcheck/typos + unit/integration hooks + conventional commits hook. |
| .gitignore | Remove mypy cache ignores. |
| .github/workflows/tests.yml | Add unit + integration CI workflows, including daemon caching. |
| .github/workflows/conventional-commits.yml | Add conventional commit enforcement workflow. |
| .github/workflows/code-quality.yml | Add isort/black/pylint/shellcheck/typos workflows. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Introduces a structure for pre-commits that try to mirrors the CI job steps, with black
formatting, isort, pylint, typos, unit-tests and integration tests with bitcoin-core, as well some hygiene applied to triggered files (black, isort, pylint).