[bisq-network/bisq] Add Makefile for automating localnet setup (#3718)

Chris Beams notifications at github.com
Sat Nov 30 00:14:48 UTC 2019


Problem: contributors old and new must read and follow many manual steps
spread across three documents (docs/{build,dev-setup,dao-setup}.md) in
order to get up and running with a local regtest Bisq network deployment
suitable for isolated development and end-to-end testing. This process
is not only manual, but requires considerable trial and error for most
contributors, and can amount to hours of effort. Perhaps most
detrimental is that this friction makes it much less likely that we get
"all hands on deck" to cover test scenarios at release time. Getting up
and running with what this change refers to as a "localnet" should be
among the very first things a new contributor does. It should be fast
and easy, maximizing the contributor's ability to get productive right
away.

Solution: this commit introduces a simple and well-documented makefile
to the root of the source tree. It instructs the user to issue a series
of simple `make` commands, at the end of which they'll have a fully
functional localnet deployment.

Caveats:

 - No support for Windows unless the user is running Git Bash, Cygwin or
   similar. In any case, the makefile serves as clear documentation
   about what a Windows user would need to do manually, i.e. without the
   benefit of `make` automating it all.

 - The aforementioned setup documents should be updated to point to this
   makefile instead of explaining everything in prose. The dev-setup.md
   and dao-setup.md documents may actually be candidates for deletion if
   this new approach proves successful.

 - These changes do not include passing the new -peerbloomfilters=1
   option to bitcoin versions 0.19 and above. Those who have already
   upgraded should take care to add that option.

Notes:

 - The introduction of this makefile has no impact on Bisq's use of
   Gradle as a build system. Everything there is as it has been. This
   makefile is a completely optional convenience being added into the
   mix. It has the added benefit of being a "friendly face" to those not
   familiar with the Java / JVM ecosystem. Developers from many
   different backgrounds are familiar with make and makefiles, and they
   may find this one a pleasant and inviting surprise.

----

Special thanks to @bodymindarts for the inspiration to take this makefile-based approach. The [makefile in his bisq-workspace repo](https://github.com/bodymindarts/bisq-workspace/blob/master/Makefile) plus the pain I was experiencing trying to help out with v1.2.4 testing was what got this ball rolling.

For those interested in putting this to use in your current testing efforts, this PR is branched from the last common commit between the `master` and `release/v1.2.4` branches, so you can merge it into your own local `release/v1.2.4 branch` or just cherry-pick the single commit. Both should work cleanly.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/3718

-- Commit Summary --

  * Add Makefile for automating localnet setup

-- File Changes --

    M .gitignore (1)
    A Makefile (242)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3718.patch
https://github.com/bisq-network/bisq/pull/3718.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/3718
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20191129/41027d07/attachment-0001.html>


More information about the bisq-github mailing list