Skip to content

Commit bae8035

Browse files
authored
chore: Add additional dev docs for building docs and running notebooks (#172)
1 parent 035aecf commit bae8035

File tree

1 file changed

+45
-23
lines changed

1 file changed

+45
-23
lines changed

README.md

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,23 @@
77
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/gosling-lang/gos/main?filepath=notebooks%2Fmultiple-coordinated-views.ipynb)
88
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/gosling-lang/gos/blob/main/notebooks/multiple-coordinated-views.ipynb)
99

10-
**gos** is a declarative genomics visualization library for Python.
11-
It is built on top of the [Gosling] JSON specification, providing a
12-
simplified interface for authoring interactive genomic visualizations.
13-
10+
**gos** is a declarative genomics visualization library for Python. It is built
11+
on top of the [Gosling] JSON specification, providing a simplified interface for
12+
authoring interactive genomic visualizations.
1413

1514
## Installation
1615

17-
> The **gos** API is under active development. Feedback is appreciated and welcomed.
16+
> The **gos** API is under active development. Feedback is appreciated and
17+
> welcomed.
1818
1919
```bash
2020
pip install gosling[all]
2121
```
2222

2323
## Documentation
2424

25-
See the [Documentation Site](https://gosling-lang.github.io/gos) for more information.
25+
See the [Documentation Site](https://gosling-lang.github.io/gos) for more
26+
information.
2627

2728
## Example
2829

@@ -74,15 +75,17 @@ gos.vertical(heatmap, bars, lines).properties(
7475

7576
## Example Gallery
7677

77-
We have started a [gallery](https://gosling-lang.github.io/gos/gallery/index.html) of
78-
community examples in `gosling/examples/`. If you are interested in contributing, please
79-
feel free to submit a PR! Checkout the [existing JSON examples](http://gosling-lang.org/examples/)
80-
if you are looking for inspiration.
78+
We have started a
79+
[gallery](https://gosling-lang.github.io/gos/gallery/index.html) of community
80+
examples in `gosling/examples/`. If you are interested in contributing, please
81+
feel free to submit a PR! Checkout the
82+
[existing JSON examples](http://gosling-lang.org/examples/) if you are looking
83+
for inspiration.
8184

8285
## Changelog
8386

84-
Check the [GitHub Releases](https://github.com/gosling-lang/gos/releases)
85-
for a detailed changelog.
87+
Check the [GitHub Releases](https://github.com/gosling-lang/gos/releases) for a
88+
detailed changelog.
8689

8790
## **Development**
8891

@@ -102,10 +105,18 @@ Run the test suite with:
102105
uv run pytest
103106
```
104107

108+
**Notebooks**
109+
110+
To try out the library in the example `notebooks/`, launch Jupyter Lab with:
111+
112+
```sh
113+
uv run jupyter lab
114+
```
115+
105116
**Widget**
106117

107118
The widgets implementation is split between `./gosling/_widget.py` (the Python
108-
component) and `./frontend/widget.ts` (the TypeScript component).
119+
component) and `./frontend/widget.ts` (the TypeScript component).
109120

110121
To modify the widget's behavior in the front end, edit `./frontend/widget.ts`
111122
and compile with:
@@ -116,6 +127,17 @@ deno task build
116127

117128
Use `deno task dev` to watch for changes and recompile automatically.
118129

130+
**Docs**
131+
132+
To build and preview the documentation locally:
133+
134+
```sh
135+
uv run docs/build.py
136+
uv run python -m http.server -d docs/dist
137+
```
138+
139+
Open your browser to http://localhost:8000 to view the generated docs.
140+
119141
**Auto-generate Schema Bindings**
120142

121143
Much of the Python code in this repository is automatically generated from the
@@ -132,8 +154,8 @@ uv run tools/generate_schema_wrapper.py <tag_name>
132154
uv run tools/generate_api_docs.py
133155
```
134156

135-
Use a `tag_name` that corresponds to a valid [Gosling.js
136-
Release](https://github.com/gosling-lang/gosling.js/releases) (e.g.,
157+
Use a `tag_name` that corresponds to a valid
158+
[Gosling.js Release](https://github.com/gosling-lang/gosling.js/releases) (e.g.,
137159
`v0.12.3`).
138160

139161
You must commit the changes and create a new release. Schema updates usually
@@ -142,8 +164,8 @@ maintainer.
142164

143165
## Release
144166

145-
Releases are managed via the GitHub UI. The release **tag determines the
146-
package version** published to PyPI.
167+
Releases are managed via the GitHub UI. The release **tag determines the package
168+
version** published to PyPI.
147169

148170
[Draft a new release](https://github.com/gosling-lang/gos/releases/new):
149171

@@ -168,16 +190,16 @@ package version** published to PyPI.
168190

169191
- Click _Publish release_ to make it public.
170192
- This triggers a [workflow](.github/workflows/release.yml) that builds the
171-
package and publishes it to PyPI using the new tag.
193+
package and publishes it to PyPI using the new tag.
172194

173195
## Design & Implementation
174196

175197
gos is inspired by and borrows heavily from [Altair] both in project philosophy
176-
and implementation. The internal Python API is auto-generated from the
177-
[Gosling] specification using code adapted directly from Altair to generate
178-
[Vega-Lite] bindings. This design choice guarantees that visualizations are
179-
type-checked in complete concordance with the [Gosling] specification, and that
180-
the Python API remains consistent with the evolving schema over time. Special thanks to
198+
and implementation. The internal Python API is auto-generated from the [Gosling]
199+
specification using code adapted directly from Altair to generate [Vega-Lite]
200+
bindings. This design choice guarantees that visualizations are type-checked in
201+
complete concordance with the [Gosling] specification, and that the Python API
202+
remains consistent with the evolving schema over time. Special thanks to
181203
[Jake Vanderplas](https://github.com/jakevdp) and others on
182204
[`schemapi`](https://github.com/altair-viz/altair/tree/master/tools/schemapi).
183205

0 commit comments

Comments
 (0)