# Release Process

> Version bumping, release workflow, and PyPI publishing process for Visdom

- Skill: `fossasia/release-process` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fossasia/release-process`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fossasia/release-process/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: fossasia (https://skillmd.com/u/fossasia)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fossasia/release-process

---


# Skill: Release Process

## When to Use

Use this skill when preparing a new release or updating the version.

## Core Workflow

1. Update version in `py/visdom/VERSION` following [Semantic Versioning](https://semver.org/).

2. Ensure all CI checks pass:
   - `npm run lint` (JavaScript)
   - `black py` (Python)
   - `pre-commit run --all-files`
   - Playwright WebSocket and polling tests pass

3. Submit PR to `master` with version change.

4. On merge to `master`, automated workflows handle:
   - **`update-js-build-files.yml`**: Compiles `main.js` if `js/**` changed
   - **`pypi.yml`**: Creates GitHub release (`v<VERSION>`) and publishes to PyPI

## Version Details

- Version stored as single-line plaintext in `py/visdom/VERSION`
- `setup.py` reads this file at build time
- `build.py` uses version to track CDN dependency freshness
- PyPI build uses `python setup.py sdist`

## Guardrails

- Follow Semantic Versioning strictly
- Never manually commit compiled JS files — let the CI workflow handle it
- Ensure `demo.py` runs cleanly before releasing
- Do not push directly to `master`

## Documentation

- [Skill reference](references/REFERENCE.md)
- `py/visdom/VERSION`
- `setup.py`
- `.github/workflows/pypi.yml`
- `.github/workflows/update-js-build-files.yml`
- `AGENTS.md`
- `CONTRIBUTING.md`

## Assets

- See `assets/README.md` and store templates/resources in `assets/`.

## Tests

- Follow the default flow in `references/TESTS.md`.

