# Hackage Upload

> Upload Haskell packages to Hackage. Use when the user asks to publish, release, or upload to Hackage.

- Skill: `majiayu000/hackage-upload` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/hackage-upload`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/hackage-upload/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/hackage-upload

---


# Hackage Upload

## Instructions

When the user asks to publish or upload to Hackage:

1. **Get the current version** from `claude.cabal`:
   ```bash
   grep "^version:" claude.cabal
   ```

2. **Create the source distribution**:
   ```bash
   cabal sdist
   ```

3. **Upload to Hackage** (replace X.Y.Z with actual version):
   ```bash
   cabal upload --publish dist-newstyle/sdist/claude-X.Y.Z.tar.gz
   ```

## Pre-release checklist

Before uploading, ensure:
- Version in `claude.cabal` has been bumped
- `CHANGELOG.md` has an entry for this version
- All tests pass (`cabal test`)
- Code compiles without warnings (`cabal build`)

## Notes

- The `--publish` flag publishes immediately. Without it, the package is uploaded as a candidate.
- You must have Hackage credentials configured (typically in `~/.cabal/config`).
- First-time uploads of a package require manual approval on Hackage.

