Skip to content

Release v0.3.0 — slim install, safe-RL Colab, GitHub Pages blog, and green CI#362

Merged
bardhh merged 2 commits into
mainfrom
release/v0.3.0
Jul 8, 2026
Merged

Release v0.3.0 — slim install, safe-RL Colab, GitHub Pages blog, and green CI#362
bardhh merged 2 commits into
mainfrom
release/v0.3.0

Conversation

@bardhh

@bardhh bardhh commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Merges the release/v0.3.0 branch into main. Two commits: the v0.3.0 release itself, plus a browser-QA pass on the landing page.

v0.3.0 — packaging & distribution

Slim core install. casadi / cvxopt / plotly / black moved from mandatory dependencies to extras (casadi, cvxopt, plotly, codegen), with all / solvers / vis umbrellas; dev pulls cbfkit[all]. import cbfkit now loads zero heavy deps, guarded by a new core-import CI job. Missing extras raise a friendly ImportError with install guidance, and run_black degrades gracefully when black is absent so codegen still works on a slim install.

Onboarding & hosting. VERSION bumped to 0.3.0 with enriched metadata (keywords, classifiers, URLs); README showcase image URLs absolutized so they render off-repo; a Gymnasium safe-RL Colab quickstart; README badges; and a GitHub Pages workflow to host the blog.

Green CI. Fixes pre-existing failures that had ruff red on main and were blocking all tests: unused locals removed, Time import restored in ros/_experiment.py (F821), and the Manim backends guarded so modules import without manim installed.

Verified on the release commit: 469 passed, ruff clean, python -m build + twine check pass.

Blog landing page — browser-QA pass

Verified in a real browser at 1440px and 390px:

  • Carousel prev/next fixed — a stale translateY(-50%) on .bc-btn:active moved the button out from under the pointer between mousedown and mouseup, so the click never fired (dots, with no transform, still worked). Scale-only :active now; buttons re-center on resize/image-load; script tag versioned so cached copies pick up the fix.
  • Dark-section contrast — stats, section labels, pipeline arrows, formulation equations, carousel bars/pills, pip install code, footer hovers, and the CTA "Read the Paper" button were slate-on-ink and effectively invisible; recolored to light graphite tones.
  • README-style Showcase gallery — new 16-tile section, each tile linking to its runnable example source on GitHub; replaces the four GIF slides that were buried in the benchmark carousel. Removed the "vs. other toolboxes" comparison slide and all decorative emoji icons.
  • Polish — dead particle-canvas JS and hero-gradient CSS removed, inline SVG favicon (fixes a console 404), prefers-reduced-motion support, equation block and formulation grid restyled.

Notes

  • Gallery GIF and source links point at main; those files already exist there, so they resolve once merged and Pages redeploys.
  • 17 files changed across both commits.

bardhh added 2 commits July 8, 2026 00:06
Package CBFKit for distribution and first-time users:
- Slim the core: move casadi/cvxopt/plotly/black from mandatory deps to extras
  (casadi, cvxopt, plotly, codegen); add all/solvers/vis umbrellas; dev pulls
  cbfkit[all]. `import cbfkit` now loads zero heavy deps, guarded by a new
  core-import CI job.
- Bump VERSION to 0.3.0; enrich metadata (keywords, classifiers, URLs);
  absolutize README showcase image URLs so they render off-repo.
- Add a Gymnasium safe-RL Colab quickstart (installs from GitHub).
- README badges; GitHub Pages workflow to host the blog.
- run_black degrades gracefully when black is absent so codegen works on a slim
  install; add a friendly ImportError for the CasADi controller path.

Fix pre-existing CI failures (ruff was red on main, blocking all tests):
- Remove unused locals (unicycle_sweep, monte_carlo_gpu, plot_mppi_ffmpeg).
- Import Time in ros/_experiment.py (F821 undefined name).
- Manim 2D backend raises NotImplementedError before requiring manim; guard the
  manim_3d_multi_robot import so the module loads without manim installed.

Verified: 469 passed, ruff clean, python -m build + twine check pass.
…howcase gallery

Browser-QA pass on the landing page (desktop 1440px + mobile 390px):

- Carousel prev/next never fired: .bc-btn:active carried a stale
  translateY(-50%) that moved the button out from under the pointer
  between mousedown and mouseup. Scale-only :active now; buttons also
  re-center on resize/image load and get type="button". Script tag is
  versioned (?v=2) so cached copies pick up the fix.
- Dark-section contrast: stat numbers, section labels, pipeline arrows,
  formulation equations, carousel bars/pills, pip-install code, and
  footer hovers used slate #3d4248 on #1a1a1a; recolored to light
  graphite tones. Secondary buttons on ink (CTA "Read the Paper") get
  light text/border.
- New Showcase section: README-style 16-tile gallery, each tile backed
  by its runnable example path and linked to the source on GitHub;
  lazy-loaded GIFs; nav link added. Replaces the four GIF slides that
  were buried in the benchmark carousel.
- Removed the "CBFKit vs. other toolboxes" comparison slide and all
  decorative emoji icons (architecture pipeline, MPPI cards, systems
  grid); tutorials use mono 01-06 labels instead.
- Equation block restyled as a flat-ink card with clause-level wrapping.
- Polish: dead particle-canvas JS and hero-gradient CSS removed, inline
  SVG favicon (fixes console 404), prefers-reduced-motion support,
  formulations grid balanced 2x2, gallery tiles locked to 4:3.
@bardhh bardhh merged commit 50c90d3 into main Jul 8, 2026
4 checks passed
@bardhh bardhh deleted the release/v0.3.0 branch July 8, 2026 04:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant