# Release Process

> Version bumping, release workflow, and PyPI publishing process for Visdom Use when this capability is needed.

- Skill: `tomevault-io/release-process` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/release-process`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/release-process/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/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`
   - Cypress 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`

---
> Source: [fossasia/visdom](https://github.com/fossasia/visdom) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-19 -->

