This is a free and open-source software project and we love receiving pull-requests, bug reports, ideas, and feedback from everyone. The aim of this document is to help you get setup for participating in all areas of this project quickly—whether that's submitting code via a pull request, testing the latest iteration, reporting issues, writing documentation, etc.
Jam is a web UI for JoinMarket with focus on user-friendliness. The web UI's purpose is to be a rather lightweight front end for the JoinMarket API. To function, the web UI needs to connect to an instance of JoinMarket with the API service running.
You don't need to worry about that, though. To ease development and testing, we provide a Docker setup that runs JoinMarket and its API service in a regtest setup. It isn't needed to dig deeper into how it works to use it. However, if you want to find out more about it, see docker/regtest/readme.md.
Fork, then clone this repo:
git clone [email protected]:<your-username>/joinmarket-webui.git
Start the JoinMarket HTTP API service in regtest:
docker-compose --file docker/regtest/docker-compose.yml up
Initialize the regtest setup. This creates and funds a wallet funded
with password test
.
docker/regtest/init-setup.sh
Install dependencies:
npm install
Start the UI on port 3000:
npm start
Make your changes and be sure to manually test them before submitting them to us.
Once you're sure the changes work well, push to your fork and submit a pull request. We will try to at least comment on your pull request within a couple of days. We may suggest some changes, improvements, or alternatives.
Some things that will increase the chance that your pull request is accepted:
- Make sure the changes work well and cover edge cases.
- Make sure your code is formatted. This should happen automatically using a Git commit-hook. If not, see docs/DEVELOPING.md for more details.
- Write a meaningful pull request description message.
If your pull request is accepted, a maintainer will squash it into master. We follow the conventional commits convention when squashing pull requests to master. You can follow this convention for commits on your fork but this isn't a requirement for your pull request to be accepted.
Clone this repo:
git clone [email protected]:joinmarket-webui/joinmarket-webui.git
Checkout the version you want to test. If you want to test the cutting edge development version, simply skip this step and test directly on master.
git fetch --tags git checkout <version>
Start the JoinMarket HTTP API service in regtest:
docker-compose --file docker/regtest/docker-compose.yml up
Initialize the regtest setup. This creates and funds a wallet funded
with password test
.
docker/regtest/init-setup.sh
Install dependencies:
npm install
Start the UI on port 3000:
npm start
Enjoy the test drive!
Reporting an issue is as easy as opening one on GitHub. Be sure to provide a detailed description of what you think is wrong and add as much context as possible. If applicable, include step-by-step instruction on how to reproduce the issue. Before you submit an issue, please have a quick look at the currently open issues. You might find that another person has already reported the same thing.