Skip to content

Commit 321a792

Browse files
committed
Add release notes and version for 0.9.5
1 parent 1e95618 commit 321a792

File tree

9 files changed

+190
-10
lines changed

9 files changed

+190
-10
lines changed

docs/JOINMARKET-QT-GUIDE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
The GUI can be run directly from Python script by doing `./joinmarket-qt.sh` from within `scripts/`, or, if using Microsoft Windows, by running the executable file/binary (**[CLICK HERE](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases)** to download the latest release). If you followed normal installation procedure under Linux, desktop entry of JoinMarketQt should be added to the application menu of your desktop environment.
66

7-
**LATEST VERSION of JoinMarket-Qt is GUI version 26**. You can check the version via `About` in the menu.
7+
**LATEST VERSION of JoinMarket-Qt is GUI version 27**. You can check the version via `About` in the menu.
88

99
No other files / setup should be needed.
1010

+180
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
Joinmarket-clientserver 0.9.5:
2+
=================
3+
4+
<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.9.5>
5+
6+
Please report bugs using the issue tracker at github:
7+
8+
<https://github.com/joinmarket-org/joinmarket-clientserver/issues>
9+
10+
11+
Upgrading
12+
=========
13+
14+
To upgrade:
15+
16+
*Reminder: always back up and recreate your joinmarket.cfg file when doing the upgrade; this is to make sure you have the new default settings.*
17+
18+
(If you are upgrading from a version pre-0.7.0 please read the "Upgrading" section in [the 0.7.0 release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.7.0.md).)
19+
20+
(If you are upgrading from a version pre-0.9.0 please read the [release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.9.0.md) to find out how about [fidelity bonds](../fidelity-bonds.md) are relevant to your use-case).
21+
22+
First run the `install.sh` script as mentioned in the README. When prompted to overwrite the directory `jmvenv`, accept.
23+
24+
Note that `./install.sh -?` will show the options for installation.
25+
26+
Notable changes
27+
===============
28+
29+
### Support sending to taproot
30+
31+
This is mostly (though not 100%) a change to the backend bitcoin library python-bitcointx, which has been upgraded to [v1.1.3](https://github.com/Simplexum/python-bitcointx/releases/tag/python-bitcointx-v1.1.3) and in this version, includes the validation of bech32m as taproot addresses.
32+
(Note that the master branch of python-bitcointx now has full taproot support, i.e. constructing and spending taproot outputs, also; but we don't yet have a use case for that, anyway).
33+
Users can now send to taproot addresses via any of the user interfaces (CLI, Qt GUI, web UI).
34+
35+
* `b700f37` Add send-to-P2TR
36+
* `a467ec4` upgrade to python-bitcointx 1.1.3
37+
38+
### Extensive updates to the JSON RPC-API (jmwalletd.py); first fully working version
39+
40+
After a lot of testing and bugfixing, the following commits were added to patch up the JSON RPC-API feature that was added in [0.9.3](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.9.3). The new [webUI project](https://github.com/joinmarket-webui/joinmarket-webui) is using this and is now functional (alpha release coming shortly).
41+
42+
For those not familiar, the RPC API can be served by running the script `jmwalletd.py` and note that unlike other Joinmarket scripts, a wallet need not be specified, since it will allow the unlocking of any wallet (or creation of a new one) from a calling RPC client. See the [user docs](https://joinmarket-org.github.io/joinmarket-clientserver/JSON-RPC-API-using-jmwalletd.html) and [API docs](https://joinmarket-org.github.io/joinmarket-clientserver/api/) for details.
43+
44+
There are several commits, broken into two groups here:
45+
46+
#### New endpoints/functionality
47+
48+
* `29b459a` Add freeze method to RPC-API
49+
* `89896e0` Add yieldgen report endpoint to API
50+
* `6e07e4f` Add /taker/stop endpoint to RPC
51+
* `28fdaa1` Allow re-unlock of wallets via /unlock
52+
* `3939714` Add status, label and extradata to RPC display
53+
* `e598b35` Add RPC API endpoint for showseed
54+
55+
#### Fixes to bugs in logic, improvements
56+
57+
* `a0b7b38` Return TransactionFailed when insufficient funds
58+
* `30e96f8` Do not call stopService at exit in RPC daemon
59+
* `7b822a4` Do not update coinjoin state if maker cannot start
60+
* `d493343` Ensure coinjoin state is reset if wallet switches.
61+
* `4389338` Make unconf unspent display default in jmwalletd
62+
* `ed7b4e1` Fix bugs in unlock-lock logic
63+
* `beaa8b0` fixes to API and return format
64+
* `d4d3157` Unlock does not block waiting for sync
65+
* `bd33b6d` RPC maker/start returns 409 error if no coins
66+
* `e6ea9d0` Update HTTP status codes returned by RPC-API
67+
* `fe46b7e` Allow RPC coinjoin taker_finished to accept unconf
68+
* `66d7e46` Fix RPC timelockaddress call.
69+
70+
71+
### Changes to dependencies
72+
73+
Since the introduction of the use of python-bitcointx in 0.7.0, we have effectively been using two different bindings to `libsecp256k1`, i.e. there was still a dependency on coincurve even though we only used it for one or two minor things. This was obviously very suboptimal, and it has now been removed. We also remove a dependency on `libgmp` because `libsecp256k1` itself removed this dependency. Note that `68a426a` was effectively overriden by the taproot update in `a467ec4` but this has no functional effect.
74+
75+
* `537e317` Remove coincurve dependency, use python-bitcointx
76+
* `68a426a` Update secp256k1 to latest upstream version.
77+
* `5f942d5` remove all libgmp dependency references
78+
79+
* `c59dcd3` Remove libgmp-dev dependency
80+
81+
The QR code dependency is one of the more security sensitive ones, so the version was pinnned:
82+
83+
* `f054921` Pin python-qrcode to a specific version
84+
85+
### Installation script improvements
86+
87+
You can now pass a flag to the `install.sh` script which makes the installation suitable for deployment with Docker:
88+
89+
* `c28bfd5` Add support for `--docker-install` with an example Dockerfile and some docs on how to use it.
90+
91+
Also, to aid compilation on constrained devices:
92+
93+
* `c0d6610` Limit number of parallel builds to CPU core count
94+
95+
### Bugfix: Ensure displayed addresses are imported always in Qt
96+
97+
See #1147 and [this explanatory comment](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1147#issuecomment-1012268971) for extra detail. In an unusual, but by no means unthinkable circumstance - a user deposits to multiple addresses in the Qt app, new addresses were being generated and displayed without being imported, meaning if they were paid to in the same Qt run, a rescan would be needed afterwards to pick them up. This is fixed.
98+
99+
* `ac8b173` Ensure all displayed addresses are imported
100+
101+
### UI improvements
102+
103+
Improvement to the Qt app itself:
104+
105+
* `c706c6e` Improve the UX of open wallet dialog.
106+
* `f899daa` Do not auto generate the QT UI code in setup.py, + `9834d73` Fix linter error
107+
108+
All user interfaces can make use of this extra utxo information:
109+
110+
* `1cc677a` Add derivation path to output of wallet_showutxos
111+
112+
This change (see #1111) corrects the outdated 'used' field to 'status' (since it is multivalued):
113+
114+
* `d110101` Rename `WalletViewEntry.used` to `WalletViewEntry.status`
115+
116+
### Documentation
117+
118+
A big change is that we now have a github pages site with the Joinmarket user documentation in `/docs` mirrored, [here](https://joinmarket-org.github.io/joinmarket-clientserver/), including specifically for the RPC API, [here](https://joinmarket-org.github.io/joinmarket-clientserver/api/). This requires a default `index.md` in `/docs`:
119+
120+
* `bf6c064` Update index.md
121+
* `bd18048` add index.md for docs site contents
122+
* `fcd0d91` Add simple index file
123+
* `16cc17c` address linting complaints of openapi for RPC spec file
124+
* `1acadb7` Self-host redoc js
125+
* `44ae9f2` Set theme jekyll-theme-minimal
126+
* `91c2c48` API documentation via ReDoc
127+
128+
Corrections to units and notation in the config file:
129+
130+
* `1e95618` Improve examples
131+
132+
A clarification on the `rpc_` related settings in the Joinmarket config (this is the Bitcoin Core RPC, not the RPC for Joinmarket as above):
133+
134+
* `b953d7e` Document rpc_cookie_file and rpc_wallet_file in default config
135+
136+
### Minor changes
137+
138+
Minor feature improvements:
139+
140+
* `f5c7f33` Allow signmessage to work with any index
141+
* `c957c8c` Read only single line with `--wallet-password-stdin`
142+
143+
Minor bugfixes:
144+
145+
* `ca85ac6` Don't throw when disabled socks config missing
146+
* `cf37639` Make Qt shutdown gracefully on reactor stop.
147+
* `9ebd538` Removed Unicode dash.
148+
149+
We now only query scripts, not addresses from the RPC utxoset query; see #1124.
150+
151+
* `fb4644e` Allow utxo address validation with script
152+
153+
Fixing warnings related to custom change in a coinjoin (we warn differently if you also use a different script type):
154+
155+
* `c5456e4` Don't show nonwallet_custom_change_warning in Qt GUI for non-cj sends
156+
* `f741fdd` Use get_txtype() / get_outtype() for address type detection
157+
158+
Corrects error in placement of tumbler log files, if custom data directory:
159+
160+
* `a1bcac9` Fix tumble log dir after load_program_config
161+
162+
Credits
163+
=======
164+
165+
Thanks to everyone who directly contributed to this release -
166+
167+
- @abhishek0405
168+
- @dennisreimann
169+
- @manasgandy
170+
- @Silvenga
171+
- @wukong1971
172+
- @sangaman
173+
- @jameshilliard
174+
- @kristapsk
175+
- @AdamISZ
176+
- @theborakompanioni
177+
- @5F43CCDF
178+
- @dmp1ce
179+
180+
And thanks also to those who submitted bug reports, tested, reviewed and otherwise helped out.

jmbase/jmbase/support.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import urllib.parse as urlparse
1010

1111
# JoinMarket version
12-
JM_CORE_VERSION = '0.9.5dev'
12+
JM_CORE_VERSION = '0.9.5'
1313

1414
# global Joinmarket constants
1515
JM_WALLET_NAME_PREFIX = "joinmarket-wallet-"

jmbase/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
setup(name='joinmarketbase',
5-
version='0.9.5dev',
5+
version='0.9.5',
66
description='Joinmarket client library for Bitcoin coinjoins',
77
url='https://github.com/JoinMarket-Org/joinmarket-clientserver/tree/master/jmbase',
88
author='',

jmbitcoin/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
setup(name='joinmarketbitcoin',
5-
version='0.9.5dev',
5+
version='0.9.5',
66
description='Joinmarket client library for Bitcoin coinjoins',
77
url='https://github.com/JoinMarket-Org/joinmarket-clientserver/tree/master/jmbitcoin',
88
author='',

jmclient/setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33

44
setup(name='joinmarketclient',
5-
version='0.9.5dev',
5+
version='0.9.5',
66
description='Joinmarket client library for Bitcoin coinjoins',
77
url='https://github.com/JoinMarket-Org/joinmarket-clientserver/tree/master/jmclient',
88
author='',
99
author_email='',
1010
license='GPL',
1111
packages=['jmclient'],
12-
install_requires=['joinmarketbase==0.9.5dev', 'mnemonic', 'argon2_cffi',
12+
install_requires=['joinmarketbase==0.9.5', 'mnemonic', 'argon2_cffi',
1313
'bencoder.pyx>=2.0.0', 'pyaes', 'klein==20.6.0',
1414
'pyjwt==2.1.0', 'autobahn==20.12.3'],
1515
python_requires='>=3.6',

jmdaemon/setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33

44
setup(name='joinmarketdaemon',
5-
version='0.9.5dev',
5+
version='0.9.5',
66
description='Joinmarket client library for Bitcoin coinjoins',
77
url='https://github.com/JoinMarket-Org/joinmarket-clientserver/tree/master/jmdaemon',
88
author='',
99
author_email='',
1010
license='GPL',
1111
packages=['jmdaemon'],
12-
install_requires=['txtorcon', 'cryptography==3.3.2', 'pyopenssl', 'libnacl', 'joinmarketbase==0.9.5dev'],
12+
install_requires=['txtorcon', 'cryptography==3.3.2', 'pyopenssl', 'libnacl', 'joinmarketbase==0.9.5'],
1313
python_requires='>=3.6',
1414
zip_safe=False)

jmqtui/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from setuptools import setup
22

33
setup(name='joinmarketui',
4-
version='0.9.5dev',
4+
version='0.9.5',
55
description='Joinmarket client library for Bitcoin coinjoins',
66
url='https://github.com/JoinMarket-Org/joinmarket-clientserver/tree/master/jmqtui',
77
author='',

scripts/joinmarket-qt.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
donation_address_url = "https://bitcoinprivacy.me/joinmarket-donations"
5454

5555
#Version of this Qt script specifically
56-
JM_GUI_VERSION = '27dev'
56+
JM_GUI_VERSION = '27'
5757

5858
from jmbase import get_log, stop_reactor, set_custom_stop_reactor
5959
from jmbase.support import EXIT_FAILURE, utxo_to_utxostr,\

0 commit comments

Comments
 (0)