Skip to content

Commit bc54777

Browse files
committed
Fix
1 parent 9feb1db commit bc54777

20 files changed

Lines changed: 182 additions & 68 deletions

‎CHANGELOG.md‎

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,26 @@ All notable changes to Cellucid will be documented here.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/),
66
and this project adheres to [Semantic Versioning](https://semver.org/).
77

8-
## [0.9.1]
8+
## [0.9.2]
99
<!-- CELLUCID_VERSION -->
1010

11+
Version 0.9.2 is a patch release on 0.9.1.
12+
13+
### Fixed
14+
15+
- A refused upload or event now reaches the client as the status the server sent.
16+
Every early refusal of a POST -- an expired or unknown session-bundle request, bad
17+
viewer credentials, a wrong `Content-Type`, an oversized body, an unknown path, a
18+
foreign `Host` -- was answered before the request body was read, and the socket
19+
was then closed with that body unread. A socket closed with unread input is reset
20+
rather than shut down, so a client still sending or not yet reading lost the
21+
response: Windows reported `WinError 10053`, macOS and Linux a reset or a broken
22+
pipe. The server now drains a refused request's declared body, within the
23+
largest accepted upload and for at most five seconds, before it closes. Both
24+
servers share one `do_POST` that does this.
25+
26+
## [0.9.1] - 2026-10-17
27+
1128
Version 0.9.1 is the PyPI submission release.
1229

1330
### Added
@@ -211,6 +228,7 @@ declared `0.0.9`. Release 0.9.1 restores one exact version across both systems.
211228
- Jupyter integration (`show()`, `show_anndata()`)
212229
- Export functionality for web deployment
213230

231+
[0.9.2]: https://github.com/theislab/cellucid-python/releases/tag/v0.9.2
214232
[0.9.1]: https://github.com/theislab/cellucid-python/releases/tag/v0.9.1
215233
[0.0.9]: https://github.com/theislab/cellucid-python/releases/tag/v0.9.0
216234
[0.0.1a0]: https://github.com/theislab/cellucid-python/releases/tag/v0.0.1a0

‎CITATION.cff‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cff-version: 1.2.0
22
message: "If you use this software, please cite it."
33
type: software
44
title: "cellucid (Python): Interactive Single-Cell Data Visualization"
5-
version: 0.9.1 # CELLUCID_VERSION
5+
version: 0.9.2 # CELLUCID_VERSION
66
authors:
77
- family-names: Inecik
88
given-names: Kemal

‎docs/conf.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
release = version = __version__
2424
except Exception:
25-
release = version = "0.9.1" # CELLUCID_VERSION
25+
release = version = "0.9.2" # CELLUCID_VERSION
2626

2727
# -- General configuration ---------------------------------------------------
2828
extensions = [

‎docs/user_guide/python_package/c_data_preparation_api/09_output_format_specification_exports_directory.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ It provides:
248248

249249
The reader validates this object against an exact key set, so a key that is not
250250
listed here makes the dataset fail to load. In this example
251-
`cellucid_data_version` is `0.9.1`. <!-- CELLUCID_VERSION -->
251+
`cellucid_data_version` is `0.9.2`. <!-- CELLUCID_VERSION -->
252252

253253
```json
254254
{
@@ -257,7 +257,7 @@ listed here makes the dataset fail to load. In this example
257257
"name": "PBMC demo",
258258
"description": "",
259259
"created_at": "2026-01-01T00:00:00Z",
260-
"cellucid_data_version": "0.9.1",
260+
"cellucid_data_version": "0.9.2",
261261
"stats": {
262262
"n_cells": 10000,
263263
"n_genes": 2000,

‎docs/user_guide/python_package/h_developer_docs/04_build_install_and_packaging.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Key sections:
1818

1919
- `[project]`
2020
- `name = "cellucid"`
21-
- `version = "0.9.1"` (beta) <!-- CELLUCID_VERSION -->
21+
- `version = "0.9.2"` (beta) <!-- CELLUCID_VERSION -->
2222
- runtime dependencies (`numpy`, `pandas`, `scipy`, `anndata`, `ipython`, `jupyter-server-proxy`)
2323
- `[project.optional-dependencies]`
2424
- `dev`: `pytest`, `ruff`, `mypy`, `pre-commit`

‎docs/user_guide/python_package/h_developer_docs/14_release_process.md‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ the release candidate is reviewed and publication is explicitly authorized.
66

77
## Versioning policy
88

9-
`cellucid` is currently in beta (`0.9.1`). <!-- CELLUCID_VERSION -->
9+
`cellucid` is currently in beta (`0.9.2`). <!-- CELLUCID_VERSION -->
1010

1111
- Package versions use three numeric components.
12-
- Git tags use the exact package version with a `v` prefix, such as `v0.9.1`. <!-- CELLUCID_VERSION -->
12+
- Git tags use the exact package version with a `v` prefix, such as `v0.9.2`. <!-- CELLUCID_VERSION -->
1313
- PyPI distributions, citation metadata, documentation, and the downstream
1414
recipe declare the same version.
1515
- The normalized source distribution has one reproducible byte stream, and its
@@ -73,13 +73,13 @@ Run the repository validator after all release metadata except the source
7373
digest is aligned:
7474

7575
```bash
76-
python scripts/validate_release.py --tag v0.9.1
76+
python scripts/validate_release.py --tag v0.9.2
7777
```
7878

7979
The command must finish with:
8080

8181
```text
82-
Cellucid Python release contract is valid for v0.9.1.
82+
Cellucid Python release contract is valid for v0.9.2.
8383
```
8484

8585
### 2. Run source and documentation gates
@@ -103,7 +103,7 @@ python -m pip install "build==1.5.0" "twine==6.2.0"
103103
SOURCE_DATE_EPOCH=315532800 python -m build
104104
python scripts/normalize_sdist.py dist
105105
python -c "import hashlib, pathlib; p=next(pathlib.Path('dist').glob('cellucid-*.tar.gz')); print(hashlib.sha256(p.read_bytes()).hexdigest())"
106-
python scripts/validate_release.py --tag v0.9.1 --sdist dist
106+
python scripts/validate_release.py --tag v0.9.2 --sdist dist
107107
python -m twine check --strict dist/*
108108
```
109109

@@ -128,7 +128,7 @@ For each artifact, verify:
128128

129129
```bash
130130
python -m pip check
131-
python -c "import cellucid; assert cellucid.__version__ == '0.9.1'"
131+
python -c "import cellucid; assert cellucid.__version__ == '0.9.2'"
132132
cellucid --version
133133
cellucid --help
134134
cellucid serve --help
@@ -151,13 +151,13 @@ Commit and push the reviewed source first. Wait for branch CI and docs checks to
151151
finish successfully. Then create and push the exact annotated tag:
152152

153153
```bash
154-
git tag -a v0.9.1 -m "Cellucid Python 0.9.1"
155-
git push origin v0.9.1
154+
git tag -a v0.9.2 -m "Cellucid Python 0.9.2"
155+
git push origin v0.9.2
156156
```
157157

158158
The `Publish to PyPI` workflow:
159159

160-
1. checks out complete Git history, validates `v0.9.1`, and requires the tagged <!-- CELLUCID_VERSION -->
160+
1. checks out complete Git history, validates `v0.9.2`, and requires the tagged <!-- CELLUCID_VERSION -->
161161
`GITHUB_SHA` to be an ancestor of the fetched `origin/main`;
162162
2. runs Ruff, mypy, the complete pytest suite, and a strict documentation build;
163163
3. builds one wheel and one source distribution;
@@ -178,9 +178,9 @@ After the workflow succeeds, create a clean environment and install from PyPI:
178178
python -m venv cellucid-release-check
179179
source cellucid-release-check/bin/activate
180180
python -m pip install --upgrade pip
181-
python -m pip install "cellucid==0.9.1"
181+
python -m pip install "cellucid==0.9.2"
182182
python -m pip check
183-
python -c "import cellucid; assert cellucid.__version__ == '0.9.1'"
183+
python -c "import cellucid; assert cellucid.__version__ == '0.9.2'"
184184
cellucid --version
185185
```
186186

‎docs/user_guide/python_package/index.md‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ This guide documents the **`cellucid` Python package**: how to prepare datasets,
44

55
If you’re looking for the end-user web UI docs (loading data, filtering, analysis, annotation), start with {doc}`../web_app/index`.
66

7-
:::{admonition} Active package version — 0.9.1
7+
:::{admonition} Active package version — 0.9.2
88
:class: note
9+
<!-- CELLUCID_VERSION -->
910

10-
Version **0.9.1** is the current Cellucid Python source and documentation
11-
version and the PyPI submission release. The
11+
Version **0.9.2** is the current Cellucid Python source and documentation <!-- CELLUCID_VERSION -->
12+
version and the current PyPI release. The
1213
[PyPI package page](https://pypi.org/project/cellucid/) is authoritative for
1314
registry availability. Check an installed environment with
1415
`python -c "import cellucid; print(cellucid.__version__)"`; the

‎docs/user_guide/python_package/installation.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
**Goal:** install `cellucid`, verify the CLI, and avoid the most common environment pitfalls
66

77
:::{note}
8-
**Active package version: 0.9.1.** Version 0.9.1 is the PyPI submission
8+
**Active package version: 0.9.2.** Version 0.9.2 is the current PyPI <!-- CELLUCID_VERSION -->
99
release. If the [PyPI package page](https://pypi.org/project/cellucid/) lists
10-
0.9.1, the normal install and pin commands below retrieve it. Until then, they <!-- CELLUCID_VERSION -->
10+
0.9.2, the normal install and pin commands below retrieve it. Until then, they <!-- CELLUCID_VERSION -->
1111
resolve only to versions available from PyPI; install the active source
1212
straight from the official GitHub repository (see **From the official source
13-
repository** below) when validating 0.9.1 before publication. <!-- CELLUCID_VERSION -->
13+
repository** below) when validating 0.9.2 before publication. <!-- CELLUCID_VERSION -->
1414
:::
1515

1616
## Requirements
@@ -120,7 +120,7 @@ pip install -U cellucid
120120
Pin a specific version (recommended for paper pipelines):
121121

122122
```bash
123-
pip install "cellucid==0.9.1" # CELLUCID_VERSION
123+
pip install "cellucid==0.9.2" # CELLUCID_VERSION
124124
```
125125

126126
### Core scientific runtime

‎docs/user_guide/r_package/index.md‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ If you want notebook embedding, servers, and programmatic control, see the {doc}
1010
For the web UI experience after export (loading, filtering, analysis, sessions, community annotation), see {doc}`../web_app/index`.
1111
```
1212

13-
:::{admonition} Active package version — 0.9.1
13+
:::{admonition} Active package version — 0.9.2
1414
:class: note
15+
<!-- CELLUCID_VERSION -->
1516

16-
Version **0.9.1** is the active Cellucid for R source and documentation
17+
Version **0.9.2** is the active Cellucid for R source and documentation
1718
version and the CRAN submission release. The
1819
[CRAN package index](https://cran.r-project.org/web/packages/available_packages_by_name.html)
1920
is authoritative for registry availability. Check an installed environment
@@ -41,7 +42,7 @@ matching CRAN and official-source installation paths.
4142
:link: installation
4243
:link-type: doc
4344

44-
Install version 0.9.1 from the source currently available to you, verify the <!-- CELLUCID_VERSION -->
45+
Install version 0.9.2 from the source currently available to you, verify the <!-- CELLUCID_VERSION -->
4546
loaded package, and diagnose dependency or environment problems.
4647
:::
4748

‎docs/user_guide/r_package/installation.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
**Audience:** everyone
44
**Time:** 5–15 minutes (depending on your setup)
5-
**Goal:** install Cellucid for R, verify version 0.9.1, and choose the correct <!-- CELLUCID_VERSION -->
5+
**Goal:** install Cellucid for R, verify version 0.9.2, and choose the correct <!-- CELLUCID_VERSION -->
66
source for current registry availability
77

88
:::{note}
9-
**Active package version: 0.9.1.** Version 0.9.1 is the CRAN submission
9+
**Active package version: 0.9.2.** Version 0.9.2 is the CRAN submission
1010
release. The
1111
[CRAN package index](https://cran.r-project.org/web/packages/available_packages_by_name.html)
1212
is authoritative for registry availability. Use the CRAN command below when
13-
the index lists `cellucid` 0.9.1; otherwise install the active source from the
13+
the index lists `cellucid` 0.9.2; otherwise install the active source from the
1414
official GitHub repository.
1515
:::
1616

@@ -29,16 +29,16 @@ Those packages are only needed if you want to follow the Seurat/SCE recipes in t
2929

3030
## Install Cellucid
3131

32-
### From CRAN when version 0.9.1 is listed
32+
### From CRAN when version 0.9.2 is listed
3333
<!-- CELLUCID_VERSION -->
3434

35-
When the CRAN package index lists `cellucid` 0.9.1, install it with: <!-- CELLUCID_VERSION -->
35+
When the CRAN package index lists `cellucid` 0.9.2, install it with: <!-- CELLUCID_VERSION -->
3636

3737
```r
3838
install.packages("cellucid")
3939
```
4040

41-
If the index does not list version 0.9.1 yet, use the official source <!-- CELLUCID_VERSION -->
41+
If the index does not list version 0.9.2 yet, use the official source <!-- CELLUCID_VERSION -->
4242
installation below.
4343

4444
### From the official source repository
@@ -70,7 +70,7 @@ packageVersion("cellucid")
7070

7171
You should see:
7272
- No error on `library(cellucid)`
73-
- Version `0.9.1` from `packageVersion` <!-- CELLUCID_VERSION -->
73+
- Version `0.9.2` from `packageVersion` <!-- CELLUCID_VERSION -->
7474

7575
## Optional dependencies (recommended)
7676

0 commit comments

Comments
 (0)