@gw-tools/gw 0.29.0 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +65 -110
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -22,7 +22,7 @@ A command-line tool for managing git worktrees, built with Deno.
22
22
  - [Example Configuration](#example-configuration)
23
23
  - [Configuration Options](#configuration-options)
24
24
  - [Commands](#commands)
25
- - [checkout (add, co)](#checkout)
25
+ - [checkout](#checkout)
26
26
  - [Arguments](#arguments)
27
27
  - [Options](#options)
28
28
  - [Examples](#examples)
@@ -33,21 +33,22 @@ A command-line tool for managing git worktrees, built with Deno.
33
33
  - [Examples](#examples-1)
34
34
  - [How It Works](#how-it-works)
35
35
  - [pr](#pr)
36
- - [Arguments](#arguments-3)
36
+ - [Arguments](#arguments-2)
37
37
  - [Options](#options-1)
38
- - [Examples](#examples-3)
38
+ - [Examples](#examples-2)
39
39
  - [Requirements](#requirements)
40
- - [How It Works](#how-it-works-2)
40
+ - [How It Works](#how-it-works-1)
41
41
  - [update](#update)
42
42
  - [Options](#options-2)
43
- - [Examples](#examples-4)
44
- - [How It Works](#how-it-works-3)
43
+ - [Examples](#examples-3)
44
+ - [How It Works](#how-it-works-2)
45
45
  - [install-shell](#install-shell)
46
46
  - [Options](#options-3)
47
- - [Examples](#examples-5)
47
+ - [Examples](#examples-4)
48
+ - [Migrating from File-Based Integration](#migrating-from-file-based-integration)
48
49
  - [root](#root)
49
- - [Examples](#examples-6)
50
- - [How It Works](#how-it-works-4)
50
+ - [Examples](#examples-5)
51
+ - [How It Works](#how-it-works-3)
51
52
  - [init](#init)
52
53
  - [Options](#options-4)
53
54
  - [Clone Examples](#clone-examples)
@@ -57,17 +58,17 @@ A command-line tool for managing git worktrees, built with Deno.
57
58
  - [When to Use](#when-to-use)
58
59
  - [show-init](#show-init)
59
60
  - [Options](#options-5)
60
- - [Examples](#examples-7)
61
+ - [Examples](#examples-6)
61
62
  - [Output Example](#output-example)
62
63
  - [When to Use](#when-to-use-1)
63
64
  - [sync](#sync)
64
- - [Arguments](#arguments-4)
65
+ - [Arguments](#arguments-3)
65
66
  - [Options](#options-6)
66
- - [Examples](#examples-8)
67
+ - [Examples](#examples-7)
67
68
  - [clean](#clean)
68
69
  - [Options](#options-7)
69
- - [Examples](#examples-9)
70
- - [How It Works](#how-it-works-5)
70
+ - [Examples](#examples-8)
71
+ - [How It Works](#how-it-works-4)
71
72
  - [Git Worktree Proxy Commands](#git-worktree-proxy-commands)
72
73
  - [list (ls)](#list-ls)
73
74
  - [remove (rm)](#remove-rm)
@@ -83,13 +84,14 @@ A command-line tool for managing git worktrees, built with Deno.
83
84
  - [Shell Alias Method (Recommended)](#shell-alias-method-recommended)
84
85
  - [Available Scripts](#available-scripts)
85
86
  - [Publishing](#publishing)
86
- - [Automated Release (Recommended)](#automated-release-recommended)
87
- - [Manual Publishing](#manual-publishing)
87
+ - [How It Works](#how-it-works-5)
88
+ - [Conventional Commits](#conventional-commits)
89
+ - [Testing Releases](#testing-releases)
90
+ - [Manual Publishing (Fallback)](#manual-publishing-fallback)
88
91
  - [Publishing to JSR (Optional)](#publishing-to-jsr-optional)
89
- - [Version Management](#version-management)
90
92
  - [Project Structure](#project-structure)
91
93
  - [Adding New Commands](#adding-new-commands)
92
- - [Custom Commands (like `add`, `copy`)](#custom-commands-like-add-copy)
94
+ - [Custom Commands (like `checkout`, `sync`)](#custom-commands-like-checkout-sync)
93
95
  - [Git Proxy Commands (like `list`, `remove`)](#git-proxy-commands-like-list-remove)
94
96
  - [License](#license)
95
97
 
@@ -135,19 +137,14 @@ gw checkout main
135
137
  Enhance your AI agent with gw-tools knowledge using [skills.sh](https://skills.sh):
136
138
 
137
139
  ```bash
138
- npx skills add https://github.com/mthines/gw-tools --skill @gw-git-worktree-workflows @gw-config-management @gw-autonomous-workflow # installs all skills
140
+ npx skills add https://github.com/mthines/gw-tools --skill
139
141
  ```
140
142
 
141
- ```bash
142
- # Autonomous feature development workflow
143
- npx skills add https://github.com/mthines/gw-tools --skill @gw-autonomous-workflow
144
-
145
- # Master Git worktrees and gw workflows
146
- npx skills add https://github.com/mthines/gw-tools --skill @gw-git-worktree-workflows
143
+ Available skills:
147
144
 
148
- # Configure gw for your project type (Next.js, monorepos, etc.)
149
- npx skills add https://github.com/mthines/gw-tools --skill @gw-config-management
150
- ```
145
+ - **autonomous-workflow** - Autonomous feature development from requirements to PR
146
+ - **git-worktree-workflows** - Master Git worktrees and gw workflows
147
+ - **gw-config-management** - Configure gw for your project type (Next.js, monorepos, etc.)
151
148
 
152
149
  Once installed, your AI agent can:
153
150
 
@@ -1529,125 +1526,83 @@ nx run gw-tool:test
1529
1526
 
1530
1527
  ### Publishing
1531
1528
 
1532
- This tool uses **automated semantic versioning** based on conventional commits. The version is automatically determined from your commit messages.
1529
+ Releases are **fully automated** via CI. No manual release commands are needed.
1530
+
1531
+ #### How It Works
1532
+
1533
+ **Beta Releases (on Pull Requests):**
1533
1534
 
1534
- #### Automated Release (Recommended)
1535
+ When you open a non-draft PR with changes to `packages/gw-tool/src/`:
1535
1536
 
1536
- The simplest way to publish is using the automated release process:
1537
+ 1. CI runs tests
1538
+ 2. If tests pass, a beta version is automatically created (e.g., `0.29.0-beta.27.1`)
1539
+ 3. The beta is published to npm with the `beta` tag and Homebrew as `gw-beta`
1540
+ 4. A comment is added to the PR with installation instructions
1537
1541
 
1538
1542
  ```bash
1539
- # Make sure you're on main/master branch with all changes pushed
1540
- nx run gw-tool:release
1543
+ # Install beta version
1544
+ npm install @gw-tools/gw@beta
1545
+ brew install mthines/gw-tools/gw-beta
1541
1546
  ```
1542
1547
 
1543
- This single command will:
1548
+ **Stable Releases (on Merge to Main):**
1549
+
1550
+ When a PR is merged to `main` with changes to `packages/gw-tool/src/`:
1544
1551
 
1545
- 1. Analyze your commits since the last release
1546
- 2. Automatically determine version bump (major/minor/patch)
1547
- 3. Update npm/package.json with the new version
1548
- 4. Create a git commit and tag
1549
- 5. Push to GitHub
1550
- 6. Build binaries for all platforms
1551
- 7. Create a GitHub release with binaries attached
1552
- 8. Publish to npm
1552
+ 1. CI automatically determines the version bump from conventional commits
1553
+ 2. Updates `package.json`, creates a git tag, and pushes
1554
+ 3. Builds binaries for all platforms
1555
+ 4. Creates a GitHub release with binaries attached
1556
+ 5. Publishes to npm and updates Homebrew tap
1553
1557
 
1554
- **Conventional Commit Format:**
1558
+ #### Conventional Commits
1555
1559
 
1556
1560
  Use these commit prefixes to control versioning:
1557
1561
 
1558
- - `feat:` - New feature (bumps **MINOR** version: 1.0.0 → 1.1.0)
1559
- - `fix:` - Bug fix (bumps **PATCH** version: 1.0.0 → 1.0.1)
1560
- - `BREAKING CHANGE:` or `feat!:` or `fix!:` - Breaking change (bumps **MAJOR** version: 1.0.0 → 2.0.0)
1561
- - `chore:`, `docs:`, `style:`, `refactor:`, `test:` - No version bump
1562
+ | Prefix | Version Bump | Example |
1563
+ | ------------------------------ | --------------------- | ------------------------------ |
1564
+ | `feat:` | Minor (1.0.0 → 1.1.0) | `feat: add dry-run mode` |
1565
+ | `fix:` | Patch (1.0.0 1.0.1) | `fix: correct path resolution` |
1566
+ | `feat!:` or `BREAKING CHANGE:` | Major (1.0.0 → 2.0.0) | `feat!: redesign config` |
1567
+ | `chore:`, `docs:`, `refactor:` | No bump | `docs: update README` |
1562
1568
 
1563
- **Examples:**
1569
+ #### Testing Releases
1570
+
1571
+ To test the release workflow without publishing:
1564
1572
 
1565
1573
  ```bash
1566
- git commit -m "feat: add dry-run mode" # 1.0.0 1.1.0
1567
- git commit -m "fix: correct path resolution" # 1.0.0 → 1.0.1
1568
- git commit -m "feat!: redesign config structure" # 1.0.0 → 2.0.0
1569
- git commit -m "docs: update README" # no version bump
1574
+ # Trigger a dry-run release via GitHub Actions
1575
+ gh workflow run ci.yml -f test_release=true -f version=0.0.0-test
1570
1576
  ```
1571
1577
 
1572
- #### Manual Publishing
1578
+ #### Manual Publishing (Fallback)
1573
1579
 
1574
- If you prefer manual control or need to debug the release process:
1580
+ If CI fails or you need manual control:
1575
1581
 
1576
1582
  ```bash
1577
- # 1. Update version
1578
- cd packages/gw-tool/npm
1579
- npm version 1.0.0
1580
- cd ../../..
1581
-
1582
- # 2. Commit and push
1583
- git add packages/gw-tool/npm/package.json
1584
- git commit -m "chore: bump version to 1.0.0"
1585
- git push
1586
-
1587
- # 3. Build binaries
1583
+ # 1. Build binaries
1588
1584
  nx run gw-tool:compile-all
1589
1585
  nx run gw-tool:npm-pack
1590
1586
 
1591
- # 4. Create GitHub release
1587
+ # 2. Create GitHub release
1592
1588
  gh release create "v1.0.0" \
1593
1589
  --title "v1.0.0" \
1594
1590
  --notes "Release notes" \
1595
1591
  dist/packages/gw-tool/binaries/*
1596
1592
 
1597
- # 5. Publish to npm
1593
+ # 3. Publish to npm
1598
1594
  cd dist/packages/gw-tool/npm
1599
1595
  npm publish --access public
1600
1596
  ```
1601
1597
 
1602
1598
  #### Publishing to JSR (Optional)
1603
1599
 
1604
- For users who prefer Deno's native package manager.
1605
-
1606
- 1. **Add JSR configuration to `deno.json`:**
1607
-
1608
- ```json
1609
- {
1610
- "name": "@your-scope/gw",
1611
- "version": "1.0.0",
1612
- "exports": "./src/main.ts"
1613
- }
1614
- ```
1615
-
1616
- 2. **Publish:**
1617
- ```bash
1618
- nx run gw-tool:publish-jsr
1619
- ```
1620
-
1621
- #### Version Management
1622
-
1623
- **Automated Approach (Recommended):**
1624
-
1625
- Use conventional commits and let the system determine the version:
1600
+ For users who prefer Deno's native package manager:
1626
1601
 
1627
1602
  ```bash
1628
- # Make changes
1629
- git add .
1630
- git commit -m "feat: add new awesome feature"
1631
-
1632
- # When ready to release
1633
- nx run gw-tool:release
1603
+ nx run gw-tool:publish-jsr
1634
1604
  ```
1635
1605
 
1636
- The version is automatically determined from your commits:
1637
-
1638
- - `feat:` → minor version bump (1.0.0 → 1.1.0)
1639
- - `fix:` → patch version bump (1.0.0 → 1.0.1)
1640
- - `feat!:` or `BREAKING CHANGE:` → major version bump (1.0.0 → 2.0.0)
1641
-
1642
- **Manual Approach:**
1643
-
1644
- If you prefer manual control:
1645
-
1646
- 1. Update `packages/gw-tool/npm/package.json` version
1647
- 2. Update `packages/gw-tool/deno.json` version (if using JSR)
1648
- 3. Commit and push changes
1649
- 4. Build, create release, and publish manually
1650
-
1651
1606
  ### Project Structure
1652
1607
 
1653
1608
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gw-tools/gw",
3
- "version": "0.29.0",
3
+ "version": "0.29.1",
4
4
  "description": "A command-line tool for managing git worktrees - copy files between worktrees with ease",
5
5
  "keywords": [
6
6
  "git",