# wemusic-workspace **Repository Path**: wemusic/wemusic-workspace ## Basic Information - **Project Name**: wemusic-workspace - **Description**: WeMusic workspace for gitee. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-28 - **Last Updated**: 2026-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wemusic-workspace WeMusic 开发编排仓。本仓库**只含配置和工具脚本**,组件源码通过 worktree 检出到编排仓**外部**的同级目录。 ## 目录布局 ```text wemusic-dev/ # 本地工作根(非 git) ├── workspace/ # 本仓库 clone │ ├── config.yaml │ ├── local.yaml │ ├── wemusic.sh / wemusic.ps1 │ └── RELEASES.md ├── .store/ # bare 主仓(共享 objects) │ ├── wemusic.git/ │ └── specs.git/ ├── wemusic-main/ # main 环境 │ ├── wemusic/ │ └── specs/ └── wemusic-develop/ # develop 环境(日常开发) ├── wemusic/ └── specs/ ``` | 环境 | 组件分支 | 本地目录 | IDE 打开 | |------|---------|----------|----------| | main | `main` | `wemusic-main/` | `wemusic-dev/wemusic-main/` | | develop | `develop` | `wemusic-develop/` | `wemusic-dev/wemusic-develop/` | ## 快速开始 ```bash mkdir wemusic-dev && cd wemusic-dev git clone https://gitee.com/wemusic/wemusic-workspace.git workspace cd workspace cp local.yaml.example local.yaml ./wemusic.sh init develop ``` Windows: ```powershell mkdir wemusic-dev; cd wemusic-dev git clone https://gitee.com/wemusic/wemusic-workspace.git workspace cd workspace Copy-Item local.yaml.example local.yaml .\wemusic.ps1 init develop ``` 在 Cursor / VS Code 中**直接打开** `wemusic-dev/wemusic-develop/`(包含 `wemusic/` 和 `specs/` 的父目录)。 ## CLI ```bash ./wemusic.sh init develop # HTTPS(默认,或 local.yaml 中的 protocol) ./wemusic.sh init develop --ssh # 本次使用 SSH ./wemusic.sh update develop --ssh ``` Windows: ```powershell .\wemusic.ps1 init develop .\wemusic.ps1 init develop --ssh ``` 省略 `env` 时使用 `local.yaml` 的 `default_env`(默认 develop)。 ```bash ./wemusic.sh status [env] ./wemusic.sh remove [env] [--force] ./wemusic.sh build [env] [args...] ./wemusic.sh release [env] ``` ## 配置 ### `config.yaml`(进 git) 定义远程地址、组件列表、环境目录名和分支 ref。详见仓库内文件。 ### `local.yaml`(不进 git) ```yaml default_env: develop protocol: https # 或 ssh overrides: wemusic: url: https://gitee.com/your-fork/wemusic.git environments: feature-search: dir: wemusic-feature-search refs: wemusic: feature/search-optimization specs: feature/search-optimization ``` `overrides` 中的 `url` 会修改 `.store` 的 origin,**所有环境共享**同一 store。 ## 开发工作流 1. 日常在 `wemusic-develop/wemusic/` 和 `wemusic-develop/specs/` 中改代码。 2. 分别 commit、push、向上游仓库提 PR(目标分支 `develop`)。 3. 偶尔在 `workspace/` 中 `git pull` 获取配置更新,然后 `./wemusic.sh update develop`。 ### 跨仓库功能开发 在 `local.yaml` 的 `environments` 中添加 feature 环境,然后 `./wemusic.sh init feature-search`。feature 配置默认不上库。 ### Fork 贡献 在 `local.yaml` 的 `overrides` 中设置 fork URL,然后正常 init / 开发 / 提 PR。 ## worktree 约束 - 每个组件只有一个 bare store(`.store/`),所有环境共享 git objects。 - **同一分支不能同时在两个 worktree 检出**(例如不能建两个都用 `develop` 的环境)。 - 移除 worktree 请用 `./wemusic.sh remove`,不要直接 `rm -rf`。 ## 发布 ```bash ./wemusic.sh release 0.2.0 main git add RELEASES.md git commit -m "release: v0.2.0" git tag v0.2.0 ``` 实际 Release 产物、CI 和 Tag 以 `wemusic` 代码仓库为准。 ## 从旧版迁移 若本地仍是旧布局(`repos-*` 在 workspace 内、或 `scripts/` 目录): 1. 提交或 stash 组件仓库中的未提交改动。 2. 拉取本仓库最新代码。 3. 将 `.store/` 移到 `wemusic-dev/.store/`(与 `workspace/` 平级)。 4. 将 `repos-develop/` 重命名为 `wemusic-develop/`(`repos-main/` → `wemusic-main/`)。 5. 在 `workspace/` 中运行 `./wemusic.sh status develop` 验证。 若路径差异较大,也可删除旧目录后重新 `./wemusic.sh init develop`。 ## 许可证 MIT。各组件仓库的许可证请参见其自身的 LICENSE 文件。