releasing

GitHub

描述 lightnovel-crawler 项目的发布流程,包括本地版本升级、Git 标签触发 CI/CD 流水线、多平台构建及 PyPI/Docker 发布。适用于执行发布操作或调试 CI 工作流。

.claude/skills/releasing/SKILL.md lncrawl/lightnovel-crawler

Trigger Scenarios

执行项目版本发布 编辑或调试 GitHub Actions 工作流 排查 CI/CD 流水线失败问题

Install

npx skills add lncrawl/lightnovel-crawler --skill releasing -g -y
More Options

Non-standard path

npx skills add https://github.com/lncrawl/lightnovel-crawler/tree/dev/.claude/skills/releasing -g -y

Use without installing

npx skills use lncrawl/lightnovel-crawler@releasing

指定 Agent (Claude Code)

npx skills add lncrawl/lightnovel-crawler --skill releasing -a claude-code -g -y

安装 repo 全部 skill

npx skills add lncrawl/lightnovel-crawler --all -g -y

预览 repo 内 skill

npx skills add lncrawl/lightnovel-crawler --list

SKILL.md

Frontmatter
{
    "name": "releasing",
    "description": "How lncrawl (lightnovel-crawler) releases work — version bump, tag-triggered release pipeline, changelog, per-OS builds, PyPI, Docker, web sync. Use when cutting a release, editing workflows, or debugging CI."
}

Releasing lightnovel-crawler

There is no version-bump GitHub workflow — bumping is local and the release is triggered by pushing a v* tag.

The chain

make major|minor|patch        # scripts/bump.py edits lncrawl/VERSION only
<fill in CHANGELOG.md>        # add a "## [x.y.z]" section matching lncrawl/VERSION
make push-tag                 # tags v$(VERSION) and pushes → fires release.yml

release.yml (on tag v*) then runs, in dependency order:

  1. validate — reuses lint.yml with the live crawl test enabled.
  2. sync-web — reuses web.yml to pull the latest web build.
  3. build-docker — reuses build-docker.yml (multi-arch → ghcr.io, tagged latest, the SHA, and the VERSION).
  4. create-release — slices the matching version section out of CHANGELOG.md and creates a draft GitHub release.
  5. build-windows / build-mac / build-linux — wheel + PyInstaller exe per OS (Windows also runs Inno Setup for the installer; Linux also uploads the wheel); artifacts attach to the draft release.
  6. publish-package — publishes the wheel to PyPI, updates short links, and flips the release from draft to published.

Supporting workflows

  • lint.yml — CI on push/PR touching lncrawl/**, sources/**, or dependency files: lint (pyright + ruff), wheel build + install smoke test, sources list, and dev migrate verify (schema-drift gate). A live crawl test is opt-in via input/dispatch.
  • web.yml ("Sync Web") — on repository_dispatch: web-build-updated from the lncrawl-web repo (or manual/workflow_call): checks out lncrawl-web's artifacts branch into lncrawl/server/web/ and auto-commits to dev. That directory is committed build output — never hand-edit it.
  • index-gen.yml — on dev pushes touching sources/** or the index scripts: runs scripts/index_gen.py and auto-commits the regenerated sources/_index.json/.zip and README source tables.

Changelog & README

  • CHANGELOG.md sections are curated by hand; the release step extracts the section whose heading matches lncrawl/VERSION for the release notes. scripts/changelog_gen.py is a manual maintainer tool that back-fills missing sections from GitHub Releases.
  • README.md regions between <!-- auto generated ... --> markers (source tables, CLI help) are rewritten by scripts/index_gen.py — never hand-edit them.

Packaging notes

  • PyInstaller via setup_pyi.py: --onedir on Windows, --onefile elsewhere. It bundles the whole sources/ tree as data and force-imports every source module so dynamically loaded crawlers survive freezing — a new top-level data dependency may need adding there.
  • Inno Setup (installer/installer.iss): the AppId GUID must never change — it identifies the app for upgrades/uninstalls. Install is per-user (PrivilegesRequired=lowest). The doubled {{ in the AppId is Inno's escape for a literal brace — don't "fix" it.

Version History

  • b76d44a Current 2026-07-25 09:00

Same Skill Collection

.claude/skills/add-api-endpoint/SKILL.md
.claude/skills/add-job-type/SKILL.md
.claude/skills/add-source/SKILL.md
.claude/skills/db-migration/SKILL.md
.claude/skills/output-and-translation/SKILL.md
.claude/skills/triage-source-issues/SKILL.md

Metadata

Files
0
Version
59b0382
Hash
0fedd755
Indexed
2026-07-25 09:00

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-28 20:15
浙ICP备14020137号-1 $Carte des visiteurs$