Skip to content

feat: add multi-platform release skeleton - #1758

Merged
SAKURA-CAT merged 2 commits into
feature/corefrom
feat/core/release-package
Aug 28, 2026
Merged

feat: add multi-platform release skeleton#1758
SAKURA-CAT merged 2 commits into
feature/corefrom
feat/core/release-package

Conversation

@Nexisato

@Nexisato Nexisato commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

概述

为 Go core 接入做准备,搭建多平台发包脚手架。仅搭建 skeleton,SDK 运行时暂不接入 Go core,待 core 开发完毕后再启用实际构建发布。

变更内容

  • core/cmd/swanlab-core/main.go:进程入口骨架——--version(构建期 ldflags 注入 version/commit)、unix:// / tcp:// 端点监听、父进程退出监控 + SIGINT/SIGTERM 优雅退出(防孤儿进程);gRPC 服务后续迭代接入
  • core/hatch.py:Go 编译封装,CGO_ENABLED=0 静态交叉编译,产物输出至 swanlab/bin/swanlab-core(.exe)
  • hatch_build.py:hatchling 构建钩子,由 SWANLAB_BUILD_PLATFORM 唯一驱动——未设置时零动作产出纯 any wheel;设置时交叉编译 Go core 并写入平台 tag + artifacts
  • scripts/build_release.sh:一键发布构建 + 校验(twine check、二进制架构/可执行位、manylinux 双 tag 展开、sdist 可重建性)
  • Makefile:新增 core-bin(本机联调)/ release-build / release-verify
  • pyproject.toml:注册构建钩子,限定 hatchling>=1.18;sdist 排除根目录 /core(锚定写法,避免误伤嵌套同名目录)

Release 产物形态

产物 tag 说明
sdist 不含 Go 源码,从 sdist 构建恒为纯 wheel(源码兜底)
兜底 wheel py3-none-any 纯 Python 运行时(core_python),any 平台可用
linux/amd64 py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64 内嵌 Go core
linux/arm64 py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64 内嵌 Go core
windows/amd64 py3-none-win_amd64 内嵌 Go core
windows/arm64 py3-none-win_arm64 内嵌 Go core
macos/x86_64 py3-none-macosx_12_0_x86_64 内嵌 Go core
macos/arm64 py3-none-macosx_12_0_arm64 内嵌 Go core

安装优先级:平台 wheel → any 兜底 wheel → sdist 源码构建。musllinux 以 alhpine, slim 基础镜像的 linux 发行版暂不做支持(静态 Go 二进制实际可运行,hook 解析层保留前缀兼容)。

验证

  • bash scripts/build_release.sh 全量构建:8 个产物齐全、版本一致,twine check 全 PASSED,19 项结构校验全 PASS(含可执行位、file 架构匹配、WHEEL 多行 Tag 展开、sdist 重建 wheel 与 checkout 直建 .py 清单一致)
  • any wheel 在本地存在 swanlab/bin/ 时无二进制泄漏
  • go vet / go test ./internal/pkg/process / ruff check 通过;CI 全绿(Python 3.9–3.14 × 三平台 + Go lint)

@Nexisato Nexisato self-assigned this Aug 26, 2026
Comment thread hatch_build.py
@SAKURA-CAT
SAKURA-CAT merged commit 2d33d99 into feature/core Aug 28, 2026
26 checks passed
@SAKURA-CAT
SAKURA-CAT deleted the feat/core/release-package branch August 28, 2026 07:00
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.

2 participants