Set up docker for release + deploy, build front end during pypi#54
Merged
scottstanie merged 8 commits intoopera-adt:mainfrom May 1, 2026
Merged
Set up docker for release + deploy, build front end during pypi#54scottstanie merged 8 commits intoopera-adt:mainfrom
scottstanie merged 8 commits intoopera-adt:mainfrom
Conversation
cd.yml now runs `npm ci && npm run build` before `python -m build`, so the wheel always contains a freshly-built `src/bowser/dist/` bundle — the dist tree is therefore moved out of git and into .gitignore. Adds `[tool.setuptools.packages.find]` to constrain discovery to `bowser*`. Without this, setuptools auto-picks up the sibling React source directories under `src/` (`components/`, `hooks/`, `context/`) and ships `.tsx` files in published wheels. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New right-toolbar button cycles off → plain → zebra. Plain draws thin gray graticule lines with edge labels; zebra draws a solid white border with alternating black tick segments at each lat/lon crossing (QGIS map-composer style), useful for screenshot/academic exports. Implementation is a custom SVG overlay appended to the map container — no new npm dependency. Tick interval is auto-picked (1/2/5 × 10ⁿ degrees) targeting ~6 divisions per axis, with adaptive label precision. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Leaflet caches its container size and only redraws on its own resize events (window resize, etc.). CSS-driven layout shifts — sidebar collapse, time-series panel open — leave the map drawing for the old width: tiles stop short of the new right edge, and the graticule SVG (sized from map.getSize()) doesn't extend either. Add a ResizeObserver on the map container that calls map.invalidateSize() on any dimension change. One fix for both bugs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add `dockerize` job to ci.yml: builds on every push/PR (no push for PRs), tags `:<version>` always, `:develop` on main, `:latest` on `v*` tags. Uses Buildx + GHA cache so the pixi conda solve survives across runs. - Pass setuptools_scm version into the build via `--build-arg VERSION=` so the image reports the real version; image tag uses a sanitized form (Docker tags forbid `+`, but PEP 440 forbids `-`, so we keep both). - Add `.dockerignore` to keep build context lean (skips node_modules, .pixi, data/, screenshots, .git, etc). - Add OCI labels (title, description, source, licenses, ...) to Dockerfile. - Update deploy/README.md: pull-from-GHCR is now the primary path, and document the local-build prerequisites (frontend bundle, --platform linux/amd64 on Apple Silicon). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This removes the build/ folder from the repo and builds it as part of the PyPI release procedure.
Also adds the option for a grid/zebra frame