Skip to content

test: improve dev environment for integration tests#98

Open
qlrd wants to merge 4 commits intodiybitcoinhardware:masterfrom
qlrd:feat/improve-dev-environment
Open

test: improve dev environment for integration tests#98
qlrd wants to merge 4 commits intodiybitcoinhardware:masterfrom
qlrd:feat/improve-dev-environment

Conversation

@qlrd
Copy link
Copy Markdown
Contributor

@qlrd qlrd commented Jul 25, 2025

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).

@qlrd qlrd changed the title Feat/improve dev environment test: improve dev environment for integration tests Jul 25, 2025
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 9126e1f to 7dd292c Compare July 26, 2025 11:39
@qlrd qlrd marked this pull request as draft April 1, 2026 18:03
@qlrd
Copy link
Copy Markdown
Contributor Author

qlrd commented Apr 1, 2026

Re-working on this.

Making it draft for now so new updates will not bother anyone.

@qlrd qlrd force-pushed the feat/improve-dev-environment branch 8 times, most recently from d6b60a0 to e070a06 Compare April 14, 2026 00:41
@qlrd qlrd changed the base branch from develop to master April 14, 2026 00:43
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from e070a06 to a872e76 Compare April 14, 2026 00:51
Copilot AI review requested due to automatic review settings April 14, 2026 00:51
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.sh to 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 leafsleaves.
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.

Comment thread .github/workflows/tests.yml Outdated
Comment thread .pre-commit-config.yaml Outdated
Comment thread tests/integration/util/bitcoin.py
Comment thread tests/integration/util/liquid.py Outdated
Comment thread src/embit/descriptor/arguments.py
Comment thread tests/run.sh
Comment thread .github/workflows/tests.yml Outdated
Comment thread tests/integration/util/bitcoin.py Outdated
Comment thread tests/integration/util/rpc.py
@qlrd qlrd force-pushed the feat/improve-dev-environment branch 2 times, most recently from ca265f4 to e8bf3e2 Compare April 14, 2026 11:35
Copilot AI review requested due to automatic review settings April 14, 2026 12:15
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from a6dd2db to f9be9b3 Compare April 14, 2026 12:18
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.sh to 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.

Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread tests/integration/util/rpc.py Outdated
Comment thread tests/integration/util/rpc.py
Comment thread tests/integration/util/bitcoin.py
Comment thread tests/integration/util/liquid.py
Comment thread .pre-commit-config.yaml Outdated
Comment thread .github/workflows/tests.yml
Comment thread src/embit/psbtview.py Outdated
Comment thread src/embit/psbtview.py Outdated
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from f9be9b3 to acafd89 Compare April 14, 2026 12:24
Copilot AI review requested due to automatic review settings April 14, 2026 12:35
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from acafd89 to b2336f2 Compare April 14, 2026 12:35
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.sh orchestration script to build/cache bitcoind + elementsd and 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_hardendhas_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, but EMBIT_TEMP_DIR can be None. If it’s unset, os.path.join(None, ...) will raise a TypeError at import time, breaking integration tests in confusing ways. Prefer an explicit validation like if not EMBIT_TEMP_DIR: raise RuntimeError('EMBIT_TEMP_DIR must be set ...') (or fall back to the previous relative datadir/binary defaults) rather than sys.exit(1) during import.
    tests/integration/util/bitcoin.py:1
  • os.getenv() will not raise here, but EMBIT_TEMP_DIR can be None. If it’s unset, os.path.join(None, ...) will raise a TypeError at import time, breaking integration tests in confusing ways. Prefer an explicit validation like if not EMBIT_TEMP_DIR: raise RuntimeError('EMBIT_TEMP_DIR must be set ...') (or fall back to the previous relative datadir/binary defaults) rather than sys.exit(1) during import.
    tests/integration/util/bitcoin.py:1
  • os.getenv() will not raise here, but EMBIT_TEMP_DIR can be None. If it’s unset, os.path.join(None, ...) will raise a TypeError at import time, breaking integration tests in confusing ways. Prefer an explicit validation like if not EMBIT_TEMP_DIR: raise RuntimeError('EMBIT_TEMP_DIR must be set ...') (or fall back to the previous relative datadir/binary defaults) rather than sys.exit(1) during import.
    tests/integration/util/liquid.py:1
  • Same issue as in bitcoin.py: EMBIT_TEMP_DIR can be None and cause os.path.join to fail at import time. Add an explicit None/empty-string check and raise a descriptive exception (or restore a safe default), instead of wrapping getenv() in a try/except and calling sys.exit() on import.
    tests/integration/util/liquid.py:1
  • Same issue as in bitcoin.py: EMBIT_TEMP_DIR can be None and cause os.path.join to fail at import time. Add an explicit None/empty-string check and raise a descriptive exception (or restore a safe default), instead of wrapping getenv() in a try/except and calling sys.exit() on import.
    tests/integration/util/liquid.py:1
  • Same issue as in bitcoin.py: EMBIT_TEMP_DIR can be None and cause os.path.join to fail at import time. Add an explicit None/empty-string check and raise a descriptive exception (or restore a safe default), instead of wrapping getenv() in a try/except and calling sys.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 a list[str] from cmd directly, or use shlex.split(self.cmd) if cmd is 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 how self.url is constructed). Please switch to logger.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 how self.url is constructed). Please switch to logger.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 for bitcoin/elements today, but it’s brittle and will fail if $dir ever differs from the default clone directory name. Use git clone \"$url\" \"$dir\" (and consider handling the case where $dir already exists).
    src/embit/descriptor/arguments.py:1
  • This rename (has_hardendhas_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
  • line appears to represent a length (of the scriptPubKey) rather than a line. Renaming to something like script_len/length would better reflect its meaning and reduce confusion while maintaining readability.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .pre-commit-config.yaml Outdated
Comment thread README.md Outdated
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 5707a8e to d7b5780 Compare April 14, 2026 14:58
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

Comment thread .pre-commit-config.yaml
Comment thread src/embit/descriptor/arguments.py
Comment thread pyproject.toml
Comment thread pyproject.toml
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from d7b5780 to b67a78b Compare April 14, 2026 15:08
Copilot AI review requested due to automatic review settings April 14, 2026 15:16
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from b67a78b to 9f026fd Compare April 14, 2026 15:16
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 9f026fd to 7880659 Compare April 14, 2026 15:21
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 (leafsleaves).
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.

Comment thread tests/run.sh
Comment thread src/embit/descriptor/arguments.py
Comment thread src/embit/psbtview.py Outdated
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 7880659 to 0b5e7cd Compare April 14, 2026 15:24
Copilot AI review requested due to automatic review settings April 14, 2026 15:58
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 0b5e7cd to 238300f Compare April 14, 2026 15:58
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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_hardendhas_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.

Comment thread src/embit/descriptor/arguments.py
Comment thread tests/run.sh
Comment thread tests/run.sh
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 238300f to e43811c Compare April 14, 2026 17:25
Copilot AI review requested due to automatic review settings April 14, 2026 19:37
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from e43811c to 7b00868 Compare April 14, 2026 19:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.sh to build/restore bitcoind and elementsd, run integration tests, and manage temp dirs/caches.
  • Update integration test utilities to use EMBIT_TEMP_DIR binaries/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.

Comment thread tests/integration/util/bitcoin.py
Comment thread tests/integration/util/liquid.py
Comment thread src/embit/descriptor/arguments.py
Comment thread tests/run.sh
Comment thread tests/run.sh
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 7b00868 to 157d57e Compare April 14, 2026 19:48
qlrd added 4 commits April 14, 2026 17:00
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`.
Copilot AI review requested due to automatic review settings April 14, 2026 20:01
@qlrd qlrd force-pushed the feat/improve-dev-environment branch from 157d57e to 8d4f31c Compare April 14, 2026 20:01
@qlrd qlrd marked this pull request as ready for review April 14, 2026 20:03
@qlrd
Copy link
Copy Markdown
Contributor Author

qlrd commented Apr 14, 2026

@miketlk @jdlcdl ready for review

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.sh integration runner that builds/restores bitcoind/elementsd with 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.

Comment thread pyproject.toml
Comment thread .pre-commit-config.yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants