Skip to content

Commit c7c4163

Browse files
committed
release v2.2
1 parent 9416388 commit c7c4163

6 files changed

Lines changed: 71 additions & 29 deletions

File tree

.readthedocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ python:
1313
- method: pip
1414
path: .
1515
extra_requirements:
16+
- docs
1617
- flask
17-
- requirements: docs/requirements.txt
1818

1919
sphinx:
2020
configuration: docs/conf.py

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,25 +146,26 @@ Here's how to package, test, and ship a new release.
146146
```
147147
1. Run the unit tests.
148148
```sh
149-
source local/bin/activate.csh
149+
source .venv/bin/activate.csh
150150
python -m unittest discover
151151
```
152152
1. Bump the version number in `pyproject.toml` and `docs/conf.py`. `git grep` the old version number to make sure it only appears in the changelog. Change the current changelog entry in `README.md` for this new version from _unreleased_ to the current date.
153153
1. Build the docs. If you added any new modules, add them to the appropriate file(s) in `docs/source/`. Then run `./docs/build.sh`. Check that the generated HTML looks fine by opening `docs/_build/html/index.html` and looking around.
154-
1. `git commit -am 'release vX.Y'`
154+
1. ```sh
155+
setenv ver X.Y
156+
git commit -am "release v$ver"
157+
```
155158
1. Upload to [test.pypi.org](https://test.pypi.org/) for testing.
156159
```sh
157160
uv build
158-
setenv ver X.Y
159-
twine upload -r pypitest dist/lexrpc-$ver*
161+
twine upload -r pypitest dist/lexrpc-$ver.tar.gz dist/lexrpc-$ver-py3-none-any.whl
160162
```
161163
1. Install from test.pypi.org.
162164
```sh
163165
cd /tmp
164-
python -m venv local
165-
source local/bin/activate.csh
166+
python -m venv .venv
167+
source .venv/bin/activate.csh
166168
pip uninstall lexrpc # make sure we force pip to use the uploaded version
167-
pip install --upgrade pip
168169
pip install -i https://test.pypi.org/simple --extra-index-url https://pypi.org/simple lexrpc==$ver
169170
```
170171
1. Smoke test that the code trivially loads and runs.
@@ -218,7 +219,7 @@ Here's how to package, test, and ship a new release.
218219
219220
## Changelog
220221
221-
### 2.2 - unreleased
222+
### 2.2 - 2026-06-29
222223
223224
* Schema validation:
224225
* Fix crash (`KeyError`) when validating a `blob` value inside an open union; now raises `ValidationError` for invalid blob refs.

docs/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,9 @@
9494
# built documents.
9595
#
9696
# The short X.Y version.
97-
version = '2.1'
97+
version = '2.2'
9898
# The full version, including alpha/beta/rc tags.
99-
release = '2.1'
99+
release = '2.2'
100100

101101
# The language for content autogenerated by Sphinx. Refer to documentation
102102
# for a list of supported languages.

docs/index.rst

Lines changed: 58 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ Here’s how to package, test, and ship a new release.
198198
``sh git checkout main git pull``
199199

200200
2. Run the unit tests.
201-
``sh source local/bin/activate.csh python -m unittest discover``
201+
``sh source .venv/bin/activate.csh python -m unittest discover``
202202

203203
3. Bump the version number in ``pyproject.toml`` and ``docs/conf.py``.
204204
``git grep`` the old version number to make sure it only appears in
@@ -210,13 +210,18 @@ Here’s how to package, test, and ship a new release.
210210
``./docs/build.sh``. Check that the generated HTML looks fine by
211211
opening ``docs/_build/html/index.html`` and looking around.
212212

213-
5. ``git commit -am 'release vX.Y'``
213+
5.
214+
215+
.. code:: sh
216+
217+
setenv ver X.Y
218+
git commit -am "release v$ver"
214219
215220
6. Upload to `test.pypi.org <https://test.pypi.org/>`__ for testing.
216-
``sh python -m build setenv ver X.Y twine upload -r pypitest dist/lexrpc-$ver*``
221+
``sh uv build twine upload -r pypitest dist/lexrpc-$ver.tar.gz dist/lexrpc-$ver-py3-none-any.whl``
217222

218223
7. Install from test.pypi.org.
219-
``sh cd /tmp python -m venv local source local/bin/activate.csh pip uninstall lexrpc # make sure we force pip to use the uploaded version pip install --upgrade pip pip install -i https://test.pypi.org/simple --extra-index-url https://pypi.org/simple lexrpc==$ver``
224+
``sh cd /tmp python -m venv .venv source .venv/bin/activate.csh pip uninstall lexrpc # make sure we force pip to use the uploaded version pip install -i https://test.pypi.org/simple --extra-index-url https://pypi.org/simple lexrpc==$ver``
220225

221226
8. Smoke test that the code trivially loads and runs.
222227
``sh python # run test code below`` Test code to paste into the
@@ -263,6 +268,45 @@ Here’s how to package, test, and ship a new release.
263268
Changelog
264269
---------
265270

271+
2.2 - 2026-06-29
272+
~~~~~~~~~~~~~~~~
273+
274+
- Schema validation:
275+
276+
- Fix crash (``KeyError``) when validating a ``blob`` value inside an
277+
open union; now raises ``ValidationError`` for invalid blob refs.
278+
279+
- ``client``:
280+
281+
- For websocket event streams, close the websocket connection when a
282+
non-``ConnectionClosed`` exception is raised.
283+
- Use the lexicon method’s ``input.encoding`` as the ``Content-Type``
284+
request header.
285+
- ``Client.__init__``: new ``requests_session`` kwarg, an optional
286+
:class:``requests.Session`` to use for HTTP requests.
287+
288+
- ``server``:
289+
290+
- ``Server.call``: unknown parameters not in the lexicon are now
291+
silently ignored instead of raising ``ValidationError``.
292+
`Background. <https://github.com/bluesky-social/atproto/discussions/5094>`__
293+
294+
- ``flask_server``:
295+
296+
- Close websocket connections with reason 1011 for unknown/not
297+
implemented endpoint NSIDs.
298+
299+
- Update bundled lexicons:
300+
301+
- Bluesky PBC’s (``app.bsky.*`` etc) at
302+
`cf4843c <https://github.com/bluesky-social/atproto/commit/cf4843c339396e98fc0191b5c7ccf8db2e48da5b>`__
303+
- `site.standard.* <https://standard.site/>`__ at
304+
`549453e <https://tangled.org/standard.site/lexicons/commit/549453e37a4e15e8318f5b7655b230d0925b9e02>`__
305+
- `lexicon.community.* <https://lexicon.community/>`__ at
306+
`91c50cb <https://github.com/lexicon-community/lexicon/commit/91c50cbd84a9da8014332a6e37812c276889c8ac>`__
307+
308+
.. _section-1:
309+
266310
2.1 - 2026-02-06
267311
~~~~~~~~~~~~~~~~
268312

@@ -287,7 +331,7 @@ Changelog
287331
- Ignore ``maxGraphemes`` on non-string fields.
288332
- Allow ``type: permission-set``.
289333

290-
.. _section-1:
334+
.. _section-2:
291335

292336
2.0 - 2025-09-13
293337
~~~~~~~~~~~~~~~~
@@ -316,7 +360,7 @@ Non-breaking changes:
316360
than one connection to event stream subscription methods per client
317361
IP.
318362

319-
.. _section-2:
363+
.. _section-3:
320364

321365
1.1 - 2025-03-13
322366
~~~~~~~~~~~~~~~~
@@ -352,7 +396,7 @@ Non-breaking changes:
352396
``ValidationError``, ie ``err.args[1]``, as a dict of additional
353397
HTTP headers to return with the HTTP 400 response.
354398

355-
.. _section-3:
399+
.. _section-4:
356400

357401
1.0 - 2024-10-14
358402
~~~~~~~~~~~~~~~~
@@ -376,7 +420,7 @@ Non-breaking changes:
376420

377421
- Add ``status`` param to ``Redirect``.
378422

379-
.. _section-4:
423+
.. _section-5:
380424

381425
0.7 - 2024-06-24
382426
~~~~~~~~~~~~~~~~
@@ -407,7 +451,7 @@ Non-breaking changes:
407451
- Update bundled ``app.bsky`` and ``com.atproto`` lexicons, as of
408452
`bluesky-social/atproto@15cc6ff37c326d5c186385037c4bfe8b60ea41b1 <https://github.com/bluesky-social/atproto/commit/15cc6ff37c326d5c186385037c4bfe8b60ea41b1>`__.
409453

410-
.. _section-5:
454+
.. _section-6:
411455

412456
0.6 - 2024-03-16
413457
~~~~~~~~~~~~~~~~
@@ -418,7 +462,7 @@ Non-breaking changes:
418462
- Update bundled ``app.bsky`` and ``com.atproto`` lexicons, as of
419463
`bluesky-social/atproto@f45eef3 <https://github.com/bluesky-social/atproto/commit/f45eef3414f8827ba3a6958a7040c7e38bfd6282>`__.
420464

421-
.. _section-6:
465+
.. _section-7:
422466

423467
0.5 - 2023-12-10
424468
~~~~~~~~~~~~~~~~
@@ -433,7 +477,7 @@ Non-breaking changes:
433477
- Bug fix: don’t infinite loop if ``refreshSession`` fails.
434478
- Other minor authentication bug fixes.
435479

436-
.. _section-7:
480+
.. _section-8:
437481

438482
0.4 - 2023-10-28
439483
~~~~~~~~~~~~~~~~
@@ -473,7 +517,7 @@ Non-breaking changes:
473517
- Add the ``error`` field to the JSON response bodies for most error
474518
responses.
475519

476-
.. _section-8:
520+
.. _section-9:
477521

478522
0.3 - 2023-08-29
479523
~~~~~~~~~~~~~~~~
@@ -485,7 +529,7 @@ Non-breaking changes:
485529
- Add new ``Server.register`` method for manually registering handlers.
486530
- Bug fix for server ``@method`` decorator.
487531

488-
.. _section-9:
532+
.. _section-10:
489533

490534
0.2 - 2023-03-13
491535
~~~~~~~~~~~~~~~~
@@ -502,7 +546,7 @@ put more effort into matching and fully implementing them. Stay tuned!
502546
format <https://github.com/snarfed/atproto/commit/63b9873bb1699b6bce54e7a8d3db2fcbd2cfc5ab>`__.
503547
Original format is no longer supported.
504548

505-
.. _section-10:
549+
.. _section-11:
506550

507551
0.1 - 2022-12-13
508552
~~~~~~~~~~~~~~~~

docs/requirements.txt

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

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ include = ['lexrpc*']
2020

2121
[project]
2222
name = 'lexrpc'
23-
version = '2.1'
23+
version = '2.2'
2424
authors = [
2525
{ name='Ryan Barrett', email='lexrpc@ryanb.org' },
2626
]
@@ -66,7 +66,6 @@ brevity = { editable = true, path = "../brevity" }
6666
flask-gae-static = { editable = true, path = "../flask-gae-static" }
6767
lexrpc = { editable = true, path = "../lexrpc" }
6868
mf2util = { editable = true, path = "../mf2util" }
69-
mox3 = { editable = true, path = "../mox3" }
7069
oauth-dropins = { editable = true, path = "../oauth-dropins" }
7170
pywebutil = { editable = true, path = "../webutil" }
7271
secp256k1 = { editable = true, path = "../secp256k1-py" }

0 commit comments

Comments
 (0)