Skip to content

Merge develop into master — consolidate 26 pending improvements#110

Open
al-munazzim wants to merge 26 commits intodiybitcoinhardware:masterfrom
al-munazzim:develop-merge-to-master
Open

Merge develop into master — consolidate 26 pending improvements#110
al-munazzim wants to merge 26 commits intodiybitcoinhardware:masterfrom
al-munazzim:develop-merge-to-master

Conversation

@al-munazzim
Copy link

Summary

This PR merges 26 commits from develop into master, consolidating months of improvements that have been tested in production by Krux and reviewed by multiple contributors.

Changes included

Taproot & PSBT improvements

Miniscript fixes

Security & correctness

Other


🤔 Why this PR exists: The case against long-lived develop branches

This PR represents months of accumulated work sitting in develop while master stagnates. This pattern has real costs:

The problem with GitFlow's develop branch

  1. Integration debt accumulates — The longer develop diverges from master, the riskier the eventual merge. We're at 26 commits; some projects reach hundreds.

  2. Users get stale code — Anyone installing from master (the default) misses critical fixes like the Android assert issue (Replace Assertions with Conditional Error Raising #100) that's been solved for months.

  3. Review fatigue — Reviewing 26 commits at once is harder than reviewing them incrementally. Context is lost.

  4. False sense of stabilitymaster isn't "more stable" than develop; it's just older. The develop commits have been running in Krux production.

What the industry learned

"We found that having branches other than master is not a good idea... The develop branch is just a place where bugs go to hide."
Trunk Based Development

Google, Facebook, Microsoft, and Netflix all use trunk-based development — committing directly to main with feature flags, not long-lived branches.

The 2023 DORA State of DevOps Report found that elite performers have:

  • Shorter branch lifetimes (hours, not weeks)
  • More frequent integration to main
  • Less work-in-progress inventory

Recommendation for embit

After this merge, consider:

  1. Merge to master more frequently (weekly, not quarterly)
  2. Use short-lived feature branches that merge within days
  3. Tag releases rather than using branches for stability
  4. Delete develop or treat it as just another feature branch

The current model creates a two-tier system where develop users get fixes and master users don't — the opposite of what branch naming suggests.


Testing

All commits have been:

  • ✅ Reviewed individually via their original PRs
  • ✅ Tested in Krux production
  • ✅ Verified against existing test suites

References

pythcoiner and others added 26 commits December 21, 2024 19:25
[Develop] Fix Descriptor num_branches, case for Miniscript
…load-miniscript

[develop] Descriptor validation for miniscript
Add a check for `p2sh-p2wsh`, `p2sh-p2wpkh` and raise an exception for
unknow types.

fix diybitcoinhardware#93

Co-authored-by: edilmedeiros <jose.edil@gmail.com>
Co-authored-by: moisespompilio <93723302+moisesPompilio@users.noreply.github.com>
In order to test the replace assertions with conditional error raising,
specifically, in bip85 code, was added a test for `derive_entropy`
method as well the failure cases described in `derive_mnemonic` and
`derive_hex`.
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.

6 participants