libconsensus and bitcoin development process



Summary:

Bitcoin Core, the codebase that powers the Bitcoin network, is in need of extensive modularization to improve its structure. However, this requires proper planning and consideration for downstream projects relying on Core and other contributors to the code. Continual refactoring can cause pull requests to be stuck in "rebase hell" and stress contributors, as well as causing other pull requests to diverge and require rebasing. Refactoring should be merged quickly but only on a schedule so it doesn't cause major disruption to others. There are three kinds of refactoring: code moves, code style, and structural optimization and consolidation. Code moves and code style are easy to peer review and merge quickly. The third kind requires deeper analysis to ensure that while the code changed, the behavior did not. Refactoring should always be uncontroversial because essentially functionality is not changing. If functionality changes, the pull request should be rejected outright. With respect to code moves and code style, there should be a "refactoring fortnight" where the bulk of code move-only refactoring plus code style where necessary is done. To be clear, code move-only refactoring pull requests should only be refactoring only, with no net change to behavior. Same for code style changes. With regards to the third kind of refactoring, standards and goals need to be set to ensure consistency.Libconsensus, a project related to Bitcoin development, needs a plan for refactoring to avoid breaking downstream projects. A merge window approach fixes some of the issues with refactoring and introduces useful developer discipline into the development process. Jeff recommends a time-based burst of code movement changes. For example, just submit & merge code movement changes on the first week of every 2nd month. Under a more time-based approach, a better pull request process is suggested: only open pull requests if it's a bug fix or the merge window is open and the change is ready to be merged in the developer's opinion. Developers who participate in the bitcoin-dev mailing list are responsible for maintaining and improving the Bitcoin codebase. The list is an important forum for collaboration and decision-making within the Bitcoin developer community. The Linux Foundation offers a range of services to support open source software development, including hosting mailing lists like bitcoin-dev. Overall, the context provides a brief introduction to the bitcoin-dev mailing list and its role in supporting Bitcoin development. It also highlights the broader ecosystem of open source software development, of which the Linux Foundation is a key player.


Updated on: 2023-06-10T22:29:28.854723+00:00