Skip to content

Commit 7683524

Browse files
authored
Merge pull request tahoe-lafs#1415 from meejah/4096.release-1.20-round-three
4096: release 1.20.0
2 parents 42fdc4a + 6ba54b8 commit 7683524

31 files changed

+115
-142
lines changed

NEWS.rst

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,56 @@ User-Visible Changes in Tahoe-LAFS
55
==================================
66

77
.. towncrier start line
8-
Release 1.190 (2024-01-04)
9-
''''''''''''''''''''''''''
8+
9+
10+
Release 1.20.0 (2024-12-03)
11+
'''''''''''''''''''''''''''
12+
13+
Backwards Incompatible Changes
14+
------------------------------
15+
16+
- Properly interpret "tahoe create --storage-dir" as an option.
17+
18+
Versions 1.19.0 and older interpreted "--storage-dir" as a "flag" and thus wouldn't work properly. (`#4110 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4110>`_)
19+
20+
21+
Features
22+
--------
23+
24+
- Continued work to make Tahoe-LAFS take advantage of multiple CPUs. (`#4072 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4072>`_)
25+
- Mutable directories can now be created with a pre-determined "signature key" via the web API using the "private-key=..." parameter. The "private-key" value must be a DER-encoded 2048-bit RSA private key in urlsafe base64 encoding. (`#4094 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4094>`_)
26+
27+
28+
Bug Fixes
29+
---------
30+
31+
- Upgrade CBOR, fixing encoding on 65KiB++ strings (`#4087 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4087>`_)
32+
- Stop using the C version of the cbor2 decoder. (`#4088 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4088>`_)
33+
- Fix incompatibility with cryptography 43. (`#4100 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4100>`_)
34+
- Fix incompatibility with attrs 24.1. (`#4101 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4101>`_)
35+
36+
37+
Dependency/Installation Changes
38+
-------------------------------
39+
40+
- Now using the "hatch" build system, and pyproject.toml (exclusively) (`#4133 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4133>`_)
41+
42+
43+
Documentation Changes
44+
---------------------
45+
46+
- Tahoe-LAFS manual's table of contents page has been reorganized. (`#3636 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3636>`_)
47+
- Add a global Sphinx generated glossary. Link the static GBS glossary to the global glossary. (`#4116 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4116>`_)
48+
49+
50+
Misc/Other
51+
----------
52+
53+
- `#3636 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3636>`_, `#4076 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4076>`_, `#4082 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4082>`_, `#4085 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4085>`_, `#4090 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4090>`_, `#4091 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4091>`_, `#4092 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4092>`_, `#4093 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4093>`_, `#4114 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4114>`_, `#4115 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4115>`_, `#4126 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4126>`_, `#4130 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4130>`_, `#4132 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4132>`_, `#4134 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4134>`_, `#4141 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4141>`_
54+
55+
56+
Release 1.19.0 (2024-01-04)
57+
'''''''''''''''''''''''''''
1058

1159
Features
1260
--------

docs/release-checklist.rst

Lines changed: 48 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Release Checklist
44
=================
55

6-
This release checklist specifies a series of checks that anyone engaged in
6+
This release checklist specifies a series of checks that anyone engaged in
77
releasing a version of Tahoe should follow.
88

99
Any contributor can do the first part of the release preparation. Only
@@ -39,19 +39,19 @@ Tuesday if you want to get anything in").
3939
Get a clean checkout
4040
````````````````````
4141

42-
The release proccess involves compressing source files and putting them in formats
43-
suitable for distribution such as ``.tar.gz`` and ``zip``. That said, it's neccesary to
42+
The release proccess involves compressing source files and putting them in formats
43+
suitable for distribution such as ``.tar.gz`` and ``zip``. That said, it's neccesary to
4444
the release process begins with a clean checkout to avoid making a release with
4545
previously generated files.
4646

47-
- Inside the tahoe root dir run ``git clone . ../tahoe-release-x.x.x`` where (x.x.x is the release number such as 1.16.0).
47+
- Inside the tahoe root dir run ``git clone . ../tahoe-release-x.x.x`` where (x.x.x is the release number such as 1.16.0).
4848

49-
.. note::
50-
The above command would create a new directory at the same level as your original clone named ``tahoe-release-x.x.x``. You can name this folder however you want but it would be a good
49+
.. note::
50+
The above command would create a new directory at the same level as your original clone named ``tahoe-release-x.x.x``. You can name this folder however you want but it would be a good
5151
practice to give it the release name. You MAY also discard this directory once the release
5252
process is complete.
5353

54-
Get into the release directory and install dependencies by running
54+
Get into the release directory and install dependencies by running:
5555

5656
- cd ../tahoe-release-x.x.x (assuming you are still in your original clone)
5757
- python -m venv venv
@@ -61,94 +61,68 @@ Get into the release directory and install dependencies by running
6161
Create Branch and Apply Updates
6262
```````````````````````````````
6363

64-
- Create a branch for the release/candidate (e.g. ``XXXX.release-1.16.0``)
65-
- run tox -e news to produce a new NEWS.txt file (this does a commit)
66-
- create the news for the release
67-
68-
- newsfragments/<ticket number>.minor
69-
- commit it
70-
71-
- manually fix NEWS.txt
64+
- Create a branch for the release/candidate: git checkout -b XXXX.release-1.16.0
65+
- produce a new NEWS.txt file (this does a commit): tox -e news
66+
- create the news for the release:
67+
- touch newsfragments/<ticket number>.minor
68+
- git add newsfragments/<ticket number>.minor
69+
- git commit -m news
7270

71+
- manually fix ``NEWS.txt``:
7372
- proper title for latest release ("Release 1.16.0" instead of "Release ...post1432")
7473
- double-check date (maybe release will be in the future)
75-
- spot-check the release notes (these come from the newsfragments
76-
files though so don't do heavy editing)
74+
- spot-check the release notes (these come from the newsfragments files though so don't do heavy editing)
7775
- commit these changes
7876

79-
- update "relnotes.txt"
80-
77+
- update ``relnotes.txt``:
8178
- update all mentions of ``1.16.0`` to new and higher release version for example ``1.16.1``
8279
- update "previous release" statement and date
8380
- summarize major changes
8481
- commit it
8582

86-
- update "nix/tahoe-lafs.nix"
87-
83+
- update ``nix/tahoe-lafs.nix``:
8884
- change the value given for `version` from `OLD.post1` to `NEW.post1`
8985

90-
- update "docs/known_issues.rst" if appropriate
86+
- update ``docs/known_issues.rst`` if appropriate
9187
- Push the branch to github
88+
9289
- Create a (draft) PR; this should trigger CI (note that github
9390
doesn't let you create a PR without some changes on the branch so
9491
running + committing the NEWS.txt file achieves that without changing
9592
any code)
9693
- Confirm CI runs successfully on all platforms
9794

9895

99-
Create Release Candidate
100-
````````````````````````
101-
102-
Before "officially" tagging any release, we will make a
103-
release-candidate available. So there will be at least 1.15.0rc0 (for
104-
example). If there are any problems, an rc1 or rc2 etc may also be
105-
released. Anyone can sign these releases (ideally they'd be signed
106-
"officially" as well, but it's better to get them out than to wait for
107-
that).
108-
109-
Typically expert users will be the ones testing release candidates and
110-
they will need to evaluate which contributors' signatures they trust.
111-
112-
- (all steps above are completed)
113-
- sign the release
114-
115-
- git tag -s -u 0xE34E62D06D0E69CFCA4179FFBDE0D31D68666A7A -m "release Tahoe-LAFS-1.16.0rc0" tahoe-lafs-1.16.0rc0
116-
117-
.. note::
118-
- Replace the key-id above with your own, which can simply be your email if it's attached to your fingerprint.
119-
- Don't forget to put the correct tag message and name. In this example, the tag message is "release Tahoe-LAFS-1.16.0rc0" and the tag name is ``tahoe-lafs-1.16.0rc0``
96+
Create The Release
97+
``````````````````
12098

12199
- build all code locally
122100

123101
- these should all pass:
124102

125-
- tox -e py37,codechecks,docs,integration
103+
- tox -e py311,codechecks,docs,integration
126104

127105
- these can fail (ideally they should not of course):
128106

129107
- tox -e deprecations,upcoming-deprecations
130108

131-
- clone to a clean, local checkout (to avoid extra files being included in the release)
132-
133-
- cd /tmp
134-
- git clone /home/meejah/src/tahoe-lafs
109+
- install build dependencies
135110

136-
- build tarballs
111+
- pip install -e .[build]
137112

138-
- tox -e tarballs
139-
- Confirm that release tarballs exist by runnig:
113+
- build tarball + wheel (should be built into dist/)
140114

141-
- ls dist/ | grep 1.16.0rc0
115+
- hatchling build
142116

143117
- inspect and test the tarballs
144118

145-
- install each in a fresh virtualenv
146-
- run `tahoe` command
119+
- install each in a fresh virtualenv
120+
- run `tahoe` command
147121

148122
- when satisfied, sign the tarballs:
149123

150-
- gpg --pinentry=loopback --armor -u 0xE34E62D06D0E69CFCA4179FFBDE0D31D68666A7A --detach-sign dist/tahoe_lafs-1.16.0rc0-py2.py3-none-any.whl
151-
- gpg --pinentry=loopback --armor --detach-sign dist/tahoe_lafs-1.16.0rc0.tar.gz
124+
- gpg --pinentry=loopback --armor -u 0xE34E62D06D0E69CFCA4179FFBDE0D31D68666A7A --detach-sign dist/tahoe_lafs-1.20.0rc0-py2.py3-none-any.whl
125+
- gpg --pinentry=loopback --armor --detach-sign dist/tahoe_lafs-1.20.0rc0.tar.gz
152126

153127

154128
Privileged Contributor
@@ -175,14 +149,14 @@ Sign Git Tag
175149
Upload Artifacts
176150
````````````````
177151

178-
Any release-candidate or actual release plus signature (.asc file)
179-
need to be uploaded to https://tahoe-lafs.org in `~source/downloads`
152+
Any release plus signature (.asc file) need to be uploaded to
153+
https://tahoe-lafs.org in `~source/downloads`
180154

181155
- secure-copy all release artifacts to the download area on the
182156
tahoe-lafs.org host machine. `~source/downloads` on there maps to
183157
https://tahoe-lafs.org/downloads/ on the Web:
184158

185-
- scp dist/*1.15.0* username@tahoe-lafs.org:/home/source/downloads
159+
- scp dist/*1.20.0* username@tahoe-lafs.org:/home/source/downloads
186160

187161
- the following developers have access to do this:
188162

@@ -192,13 +166,13 @@ need to be uploaded to https://tahoe-lafs.org in `~source/downloads`
192166

193167
Push the signed tag to the main repository:
194168

195-
- git push origin tahoe-lafs-1.17.1
169+
- git push origin tahoe-lafs-1.20.0
196170

197171
For the actual release, the tarball and signature files need to be
198172
uploaded to PyPI as well.
199173

200-
- ls dist/*1.19.0*
201-
- twine upload --username __token__ --password `cat SECRET-pypi-tahoe-publish-token` dist/*1.19.0*
174+
- ls dist/*1.20.0*
175+
- twine upload --username __token__ --password `cat SECRET-pypi-tahoe-publish-token` dist/*1.20.0*
202176

203177
The following developers have access to do this:
204178

@@ -207,47 +181,29 @@ The following developers have access to do this:
207181
- exarkun (partial?)
208182

209183

210-
Announcing the Release Candidate
211-
````````````````````````````````
212-
213-
The release-candidate should be announced by posting to the
214-
mailing-list (tahoe-dev@lists.tahoe-lafs.org). For example:
215-
https://lists.tahoe-lafs.org/pipermail/tahoe-dev/2020-October/009978.html
216-
217-
218-
Is The Release Done Yet?
184+
Merge the Release Branch
219185
````````````````````````
220186

221-
If anyone reports a problem with a release-candidate then a new
222-
release-candidate should be made once a fix has been merged to
223-
master. Repeat the above instructions with `rc1` or `rc2` or whatever
224-
is appropriate.
225-
226-
Once a release-candidate has marinated for some time then it can be
227-
made into a the actual release.
228-
229-
The actual release follows the same steps as above, with some differences:
230-
231-
- there is no "-rcX" on the end of release names
232-
- the release is uploaded to PyPI (using Twine)
233-
- the version is tagged in Git (ideally using "the tahoe release key"
234-
but can be done with any of the authorized core developers' personal
235-
key)
236-
- the release-candidate branches must be merged back to master after
237-
the release is official (e.g. causing newsfragments to be deleted on
238-
master, etc)
187+
Once the release has been signed and uploaded the release branch
188+
should be merged to master (thus deleting newsfragments, etc).
239189

240190

241191
Announcing the Release
242-
----------------------
192+
``````````````````````
193+
194+
The release-candidate should be announced by posting to the
195+
mailing-list (tahoe-dev@lists.tahoe-lafs.org).
243196

244197

245198
mailing-lists
246199
`````````````
247200

248201
A new Tahoe release is traditionally announced on our mailing-list
249-
(tahoe-dev@tahoe-lafs.org). The former version of these instructions
250-
also announced the release on the following other lists:
202+
(tahoe-dev@lists.tahoe-lafs.org). For example:
203+
https://lists.tahoe-lafs.org/pipermail/tahoe-dev/2020-October/009978.html
204+
205+
The former version of these instructions also announced the release on
206+
the following other lists:
251207

252208
- tahoe-announce@tahoe-lafs.org
253209
- twisted-python@twistedmatrix.com

newsfragments/3636.documentation

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4072.feature

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4076.minor

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4082.minor

Whitespace-only changes.

newsfragments/4085.minor

Whitespace-only changes.

newsfragments/4087.bugfix

Whitespace-only changes.

newsfragments/4088.bugfix

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4090.minor

Whitespace-only changes.

newsfragments/4091.minor

Whitespace-only changes.

newsfragments/4092.minor

Whitespace-only changes.

newsfragments/4093.minor

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4094.feature

Lines changed: 0 additions & 1 deletion
This file was deleted.
File renamed without changes.

newsfragments/4100.bugfix

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4101.bugfix

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4110.incompat

Lines changed: 0 additions & 3 deletions
This file was deleted.

newsfragments/4114.minor

Whitespace-only changes.

newsfragments/4115.minor

Whitespace-only changes.

newsfragments/4116.documentation

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4126.minor

Whitespace-only changes.

newsfragments/4130.minor

Whitespace-only changes.

newsfragments/4132.minor

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4133.installation

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4134.minor

Lines changed: 0 additions & 4 deletions
This file was deleted.

newsfragments/4141.minor

Lines changed: 0 additions & 1 deletion
This file was deleted.

nix/tahoe-lafs.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
let
22
pname = "tahoe-lafs";
3-
version = "1.19.0.post1";
3+
version = "1.20.0.post1";
44
in
55
{ lib
66
, pythonPackages

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ testenv = [
226226
# Here are the library dependencies of the test suite.
227227
test = [
228228
"mock",
229+
"tox",
229230
"pytest",
230231
"pytest-twisted",
231232
"tox >= 4.0.0",

0 commit comments

Comments
 (0)