Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
e4bf698
chore: remove obsolete VibeSync configuration files and update change…
2214962083 Jan 26, 2026
c6b4367
chore: update package references to @nicepkg/vsync and release versio…
2214962083 Jan 26, 2026
8e44c41
chore: release version 1.0.5 and update CHANGELOG with new changeset …
2214962083 Jan 26, 2026
70b0ef1
chore: update package.json with repository details, author informatio…
2214962083 Jan 26, 2026
c160cd4
chore: update package.json description to clarify functionality of th…
2214962083 Jan 26, 2026
733349a
chore: release version 1.0.6 and update CHANGELOG with new changeset …
2214962083 Jan 26, 2026
def9fa5
chore: release version 1.0.7 and update CHANGELOG with new changeset …
2214962083 Jan 26, 2026
aaa18d2
chore: remove obsolete changeset for version 10
2214962083 Jan 26, 2026
72de450
feat: add isMainModule function to determine if the current module is…
2214962083 Jan 26, 2026
aeff269
fix: resolve CLI functionality issue
2214962083 Jan 26, 2026
f126255
docs: add full documentation link to README files
2214962083 Jan 26, 2026
9b1c3ff
Merge remote-tracking branch 'origin/main' into dev
2214962083 Jan 26, 2026
b0e23bf
chore: add changeset for release v1.0.9 with patch for @nicepkg/vsync
2214962083 Jan 26, 2026
52550ac
Merge remote-tracking branch 'origin/main' into dev
2214962083 Jan 26, 2026
245879c
chore: update documentation links to absolute paths and remove obsole…
2214962083 Jan 27, 2026
2df48a8
build: migrate from changesets to semantic-release
2214962083 Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .changeset/README.md

This file was deleted.

13 changes: 0 additions & 13 deletions .changeset/config.json

This file was deleted.

18 changes: 13 additions & 5 deletions .claude/commands/commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ argument-hint: [optional message]
# Create Git Commit

Create a git commit following Angular/Conventional Commits format.
This repo uses semantic-release, so commit messages directly drive versioning.

## Context

Expand All @@ -27,10 +28,14 @@ type(scope): subject

**Rules:**

- Subject must be max 100 characters
- Use lowercase for type and scope
- Header must be <= 100 characters
- Type and scope must be lowercase
- Subject must be lowercase
- No period at the end of subject
- Use imperative mood: "add feature" not "added feature"
- Scope is optional, but if used must be one of: `website`, `docs`, `deps`
- Use `docs` for README/markdown only changes
- Use `website` for `website/` changes

### Commit Types

Expand All @@ -53,21 +58,24 @@ type(scope): subject
Common scopes in this project:

- `website` - website folder changes
- `docs` - documentation only changes
- `deps` - Dependencies
- `cli` - cli folder vsync package changes

### Examples

```
feat(website): add hotel card component
chore(deps): update React to v19
docs(docs): update README with new setup instructions
docs: update README with new setup instructions
style: format code with prettier
```

## Task

1. If $ARGUMENTS provided, use as commit message hint
2. Analyze the staged/unstaged changes
3. Stage relevant files with `git add`
2. Analyze staged/unstaged changes and choose a single coherent scope
3. Stage relevant files with `git add` (avoid unrelated files)
4. Create commit with appropriate type, scope (if applicable), and subject
5. Keep subject concise (max 100 chars), focus on "what" changed
5. Keep subject concise (<= 100 chars), focus on "what" changed
103 changes: 51 additions & 52 deletions .claude/commands/create-pr.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,22 @@ description: Create GitHub Pull Request following Angular commit convention
argument-hint: [optional description]
---

# Create Pull Request
# Create Pull Request (Semantic-release Friendly)

Create a GitHub Pull Request following the project's Angular commit convention.
Create a GitHub Pull Request that works with semantic-release.
This repo defaults to **Squash and merge**, so the **PR title becomes the release commit**.
Therefore the PR title MUST follow Conventional Commits _exactly_:

```
<type>(<scope>): <subject>
```

**Hard rules (must pass CI):**

- Subject must be lowercase
- Subject must NOT end with a period
- Header length must be <= 100 characters
- Scope is optional, but if used must be one of: `website`, `docs`, `deps`, `cli`

## Context

Expand All @@ -18,39 +31,41 @@ Create a GitHub Pull Request following the project's Angular commit convention.

## Prerequisites

1. Check if `gh` CLI is available and authenticated:
1. Ensure `gh` CLI is available and authenticated:

```bash
gh auth status
```

2. Ensure all changes are committed:
2. Ensure all changes are committed and branch is pushed:
```bash
git status
git push -u origin HEAD
```

## PR Title Format (Angular Convention)

**IMPORTANT**: PR titles MUST follow Angular commit convention. This is enforced by GitHub Action.
**IMPORTANT**: PR title MUST follow Angular/Conventional Commit format because squash uses it as the release commit.

```
<type>(<scope>): <subject>
```

### Types

| Type | Description |
|------|-------------|
| `feat` | A new feature |
| `fix` | A bug fix |
| `docs` | Documentation only changes |
| `style` | Changes that do not affect the meaning of the code |
| `refactor` | A code change that neither fixes a bug nor adds a feature |
| `perf` | A code change that improves performance |
| `test` | Adding missing tests or correcting existing tests |
| `build` | Changes that affect the build system or external dependencies |
| `ci` | Changes to CI configuration files and scripts |
| `chore` | Other changes that don't modify src or test files |
| `revert` | Reverts a previous commit |
| Type | Description |
| ---------- | ------------------------------------------------------------- |
| `feat` | A new feature |
| `fix` | A bug fix |
| `docs` | Documentation only changes |
| `style` | Changes that do not affect the meaning of the code |
| `refactor` | A code change that neither fixes a bug nor adds a feature |
| `perf` | A code change that improves performance |
| `test` | Adding missing tests or correcting existing tests |
| `build` | Changes that affect the build system or external dependencies |
| `ci` | Changes to CI configuration files and scripts |
| `chore` | Other changes that don't modify src or test files |
| `revert` | Reverts a previous commit |

### Scopes (optional)

Expand All @@ -77,66 +92,50 @@ refactor: simplify authentication logic

## Creating a Pull Request

### Basic Command

```bash
gh pr create \
--title "feat(website): your descriptive title" \
--body "## Description

Brief summary of changes.
### Fill the PR Template

Fixes #123

## Type of Change

- [x] New feature

## Checklist
Use `.github/PULL_REQUEST_TEMPLATE.md` as the base. Fill in the summary, fixes, and type.

- [x] Code follows style guidelines
- [x] Self-review completed
- [x] No new warnings" \
--base main
```

### Using HEREDOC for Complex Descriptions
### Recommended Command (template-based)

```bash
gh pr create --title "feat(website): add new feature" --body "$(cat <<'EOF'
gh pr create \
--title "feat(scope): short, lowercase summary" \
--body "$(cat <<'EOF'
## Description

Brief summary of the changes and the motivation behind them.
Brief summary of the change and why it matters.

Fixes #123

## Type of Change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update

## Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] Any dependent changes have been merged and published

## Screenshots (if applicable)

N/A
EOF
)" --base main
)" \
--base main
```

### Create as Draft

Add `--draft` flag for work in progress:
### Draft PR (WIP)

```bash
gh pr create --title "feat: wip feature" --body "..." --base main --draft
gh pr create --title "feat(scope): wip summary" --body "WIP" --base main --draft
```

## Useful Commands
Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/pr-title.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
# =============================================================================
# PR Title Validation
# =============================================================================
# Validates that PR titles follow Angular commit convention.
# This ensures consistent and meaningful PR titles for changelog generation.
# Validates PR titles using Conventional Commits (semantic-release friendly).
# This repo uses **Squash and merge**, so the PR title becomes the release commit.
# Keeping titles compliant ensures correct version bumps and clean changelogs.
#
# Title requirements:
# - Format: <type>(<scope>): <subject>
# - Subject: lowercase, no trailing period, <= 100 chars total header
# - Scope: optional; if present must be one of the allowed scopes below
#
# Format: <type>(<scope>): <subject>
# Example: feat(website): add dark mode toggle
Expand Down Expand Up @@ -50,6 +56,7 @@ jobs:
website
docs
deps
cli
# Ensure subject doesn't start with uppercase
subjectPattern: ^(?![A-Z]).+$
subjectPatternError: |
Expand Down
64 changes: 38 additions & 26 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,6 @@ name: Release
on:
push:
branches: [main]
paths:
- '.changeset/**'
- 'package.json'
- 'pnpm-lock.yaml'
# optional: include package manifests if you want release to run when versions are bumped
- 'cli/package.json'
workflow_dispatch:

concurrency:
Expand All @@ -23,6 +17,18 @@ permissions:
jobs:
release:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 1
matrix:
package:
- name: "@nicepkg/vsync"
dir: "cli"
copyReadme: "true"
# add new packages here
# - name: "@nicepkg/vsync-core"
# dir: "core"
# copyReadme: "false"
steps:
- uses: actions/checkout@v6
with:
Expand All @@ -31,27 +37,33 @@ jobs:
- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm

- name: Create Release PR or Publish
uses: changesets/action@v1
with:
# use git-cli so symlinks in the repo don't break GitHub API commits
commitMode: git-cli
setupGitUser: true
commit: "chore: version packages"
title: "chore: version packages"

# calculate version + generate changelog + update lockfile (very important)
version: pnpm version-packages

# build before publish (to avoid empty dist)
# then publish (you currently use pnpm publish -r)
# then tag (to allow action to push tags + create GitHub Releases)
publish: bash ./scripts/release-publish.sh

# explicitly enable GitHub Releases
createGithubReleases: true

- name: Check package exists
id: package-check
shell: bash
run: |
if [ -f "${{ matrix.package.dir }}/package.json" ]; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi

- name: Copy README files into package
if: steps.package-check.outputs.exists == 'true' && matrix.package.copyReadme == 'true'
shell: bash
run: |
cp README.md "${{ matrix.package.dir }}/README.md"
cp README_cn.md "${{ matrix.package.dir }}/README_cn.md"

- name: Build package
if: steps.package-check.outputs.exists == 'true'
run: pnpm --filter ${{ matrix.package.name }} build

- name: Run semantic-release
if: steps.package-check.outputs.exists == 'true'
run: pnpm run semantic-release
env:
SEMREL_PKG_ROOT: ${{ matrix.package.dir }}
SEMREL_PKG_NAME: ${{ matrix.package.name }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
"[mdx]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"cSpell.words": ["MCPO", "opencode", "vsync"],
"cSpell.words": ["MCPO", "nicepkg", "opencode", "SEMREL", "vsync"],

// i18n-ally Configuration for CLI workspace
"i18n-ally.localesPaths": ["cli/src/locales"],
Expand Down
Loading
Loading