mirror of
https://github.com/delibae/claude-prism.git
synced 2026-08-28 05:14:59 +00:00
chore: remove covector, simplify release to manual tag-based flow
- Remove covector and .changes/ directory - Remove covector workflow, keep only build-desktop.yml - Replace custom changelog with GitHub auto-generated release notes - Move Homebrew cask management to delibae/homebrew-claude-prism tap repo - Remove in-repo homebrew/ directory - Bump version to 1.0.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0542bc1b53
commit
c8f7741d80
9 changed files with 25 additions and 299 deletions
|
|
@ -1,16 +0,0 @@
|
|||
# Changes
|
||||
|
||||
When a change requires a version bump, add a markdown file to this directory.
|
||||
|
||||
## File format
|
||||
|
||||
```md
|
||||
---
|
||||
"claude-prism-desktop": minor
|
||||
"@claude-prism/desktop": minor
|
||||
---
|
||||
|
||||
Brief description of the change (included in the changelog)
|
||||
```
|
||||
|
||||
Bump types: `major`, `minor`, `patch`
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"gitSiteUrl": "https://github.com/delibae/claude-prism",
|
||||
"changeTags": {
|
||||
"feat": "New Features",
|
||||
"fix": "Bug Fixes",
|
||||
"perf": "Performance",
|
||||
"refactor": "Refactoring",
|
||||
"chore": "Maintenance"
|
||||
},
|
||||
"pkgManagers": {
|
||||
"rust": {
|
||||
"version": true,
|
||||
"publish": true,
|
||||
"publishCommand": "echo 'skip rust publish'"
|
||||
},
|
||||
"javascript": {
|
||||
"version": true,
|
||||
"publish": true,
|
||||
"publishCommand": "echo 'skip js publish'"
|
||||
}
|
||||
},
|
||||
"packages": {
|
||||
"claude-prism-desktop": {
|
||||
"path": "./apps/desktop/src-tauri",
|
||||
"manager": "rust",
|
||||
"version": true
|
||||
},
|
||||
"@claude-prism/desktop": {
|
||||
"path": "./apps/desktop",
|
||||
"manager": "javascript",
|
||||
"version": true,
|
||||
"dependencies": ["claude-prism-desktop"],
|
||||
"postversion": "node -e \"const fs=require('fs');const p='src-tauri/tauri.conf.json';const c=JSON.parse(fs.readFileSync(p));const pkg=JSON.parse(fs.readFileSync('package.json'));c.version=pkg.version;fs.writeFileSync(p,JSON.stringify(c,null,2)+String.fromCharCode(10))\""
|
||||
},
|
||||
"@claude-prism/root": {
|
||||
"path": ".",
|
||||
"manager": "javascript",
|
||||
"version": true,
|
||||
"dependencies": ["@claude-prism/desktop"]
|
||||
}
|
||||
}
|
||||
}
|
||||
142
.github/workflows/build-desktop.yml
vendored
142
.github/workflows/build-desktop.yml
vendored
|
|
@ -179,7 +179,6 @@ jobs:
|
|||
args: --target ${{ matrix.target }} ${{ contains(matrix.label, 'macos') && steps.signing.outputs.available != 'true' && '--no-sign' || '' }} ${{ contains(matrix.label, 'macos') && steps.signing.outputs.available == 'true' && '--skip-stapling' || '' }}
|
||||
tagName: ${{ github.ref_name }}
|
||||
releaseName: "ClaudePrism ${{ github.ref_name }}"
|
||||
releaseBody: "Release is being built..."
|
||||
releaseDraft: false
|
||||
prerelease: false
|
||||
|
||||
|
|
@ -262,148 +261,47 @@ jobs:
|
|||
needs: build
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Generate changelog and update release
|
||||
- name: Update release notes with auto-generated changelog
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
TAG="${GITHUB_REF_NAME}"
|
||||
VERSION="${TAG#v}"
|
||||
PREV_TAG=$(git tag --sort=-v:refname | grep '^v' | sed -n '2p' || true)
|
||||
REPO="${{ github.repository }}"
|
||||
ICON_URL="https://raw.githubusercontent.com/${REPO}/main/apps/desktop/src-tauri/icons/icon.png"
|
||||
gh release edit "$GITHUB_REF_NAME" \
|
||||
--repo "${{ github.repository }}" \
|
||||
--generate-notes
|
||||
|
||||
# Build categorized changelog
|
||||
FEAT="" FIX="" CHORE="" OTHER=""
|
||||
if [ -n "$PREV_TAG" ]; then
|
||||
while IFS= read -r line; do
|
||||
msg="${line#- }"
|
||||
case "$msg" in
|
||||
feat:*|feat\(*) FEAT="${FEAT}\n- ${msg}" ;;
|
||||
fix:*|fix\(*) FIX="${FIX}\n- ${msg}" ;;
|
||||
chore:*|chore\(*|docs:*|docs\(*|ci:*|ci\(*|build:*|build\(*) CHORE="${CHORE}\n- ${msg}" ;;
|
||||
*) OTHER="${OTHER}\n- ${msg}" ;;
|
||||
esac
|
||||
done < <(git log --pretty=format:"- %s" "$PREV_TAG".."$TAG" --no-merges 2>/dev/null)
|
||||
COMPARE_URL="https://github.com/${REPO}/compare/${PREV_TAG}...${TAG}"
|
||||
fi
|
||||
|
||||
CHANGELOG=""
|
||||
if [ -n "$FEAT" ]; then
|
||||
CHANGELOG="${CHANGELOG}#### New Features\n${FEAT}\n\n"
|
||||
fi
|
||||
if [ -n "$FIX" ]; then
|
||||
CHANGELOG="${CHANGELOG}#### Bug Fixes\n${FIX}\n\n"
|
||||
fi
|
||||
if [ -n "$OTHER" ]; then
|
||||
CHANGELOG="${CHANGELOG}#### Other Changes\n${OTHER}\n\n"
|
||||
fi
|
||||
if [ -n "$CHORE" ]; then
|
||||
CHANGELOG="${CHANGELOG}<details>\n<summary>Maintenance</summary>\n\n${CHORE}\n</details>\n\n"
|
||||
fi
|
||||
|
||||
if [ -z "$CHANGELOG" ]; then
|
||||
CHANGELOG="- Initial release\n"
|
||||
fi
|
||||
|
||||
# Get contributors for this release
|
||||
CONTRIBUTORS=""
|
||||
if [ -n "$PREV_TAG" ]; then
|
||||
CONTRIBUTORS=$(git log --pretty=format:"%an" "$PREV_TAG".."$TAG" --no-merges | sort -u | while read -r name; do
|
||||
# Try to find GitHub username from commit
|
||||
email=$(git log --pretty=format:"%ae" --author="$name" -1 "$PREV_TAG".."$TAG")
|
||||
gh_user=$(echo "$email" | sed -n 's/.*+\(.*\)@users.noreply.github.com/\1/p')
|
||||
if [ -z "$gh_user" ]; then
|
||||
gh_user=$(gh api "search/users?q=${email}+in:email" --jq '.items[0].login' 2>/dev/null || true)
|
||||
fi
|
||||
if [ -n "$gh_user" ]; then
|
||||
echo "<a href=\"https://github.com/${gh_user}\"><img src=\"https://github.com/${gh_user}.png\" width=\"40\" height=\"40\" style=\"border-radius:50%\" alt=\"@${gh_user}\" /></a>"
|
||||
else
|
||||
echo "**${name}**"
|
||||
fi
|
||||
done | tr '\n' ' ')
|
||||
fi
|
||||
if [ -z "$CONTRIBUTORS" ]; then
|
||||
CONTRIBUTORS="<a href=\"https://github.com/${REPO}/graphs/contributors\">View all contributors</a>"
|
||||
fi
|
||||
|
||||
# Build release body
|
||||
cat > release-body.md << BODY_EOF
|
||||
<p align="center">
|
||||
<img src="${ICON_URL}" width="120" height="120" alt="ClaudePrism" />
|
||||
</p>
|
||||
|
||||
<h2 align="center">ClaudePrism ${TAG}</h2>
|
||||
|
||||
---
|
||||
|
||||
### What's Changed
|
||||
|
||||
$(echo -e "$CHANGELOG")
|
||||
|
||||
---
|
||||
|
||||
### Downloads
|
||||
|
||||
| Platform | Architecture | File | Install |
|
||||
|:--------:|:------------:|:----:|:--------|
|
||||
| **Windows** | x64 | \`.msi\` / \`.exe\` | Run the installer |
|
||||
| **macOS** | Apple Silicon | \`.dmg\` | Open \`.dmg\` → drag to Applications |
|
||||
| **macOS** | Any | **Homebrew** | \`brew install --cask claude-prism\` |
|
||||
| **Linux** | x64 | \`.AppImage\` | \`chmod +x\` and run |
|
||||
| **Linux** | x64 | \`.deb\` | \`sudo dpkg -i claude-prism_*.deb\` |
|
||||
|
||||
---
|
||||
|
||||
### Contributors
|
||||
|
||||
<p align="center">
|
||||
${CONTRIBUTORS}
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
$([ -n "$PREV_TAG" ] && echo "<a href=\"${COMPARE_URL}\">Full Changelog (${PREV_TAG}...${TAG})</a>" || echo "Initial Release")
|
||||
</p>
|
||||
BODY_EOF
|
||||
|
||||
gh release edit "$TAG" \
|
||||
--repo "${REPO}" \
|
||||
--notes-file release-body.md
|
||||
|
||||
- name: Update Homebrew Cask SHA256
|
||||
- name: Update Homebrew Cask
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
|
||||
run: |
|
||||
TAG="${GITHUB_REF_NAME}"
|
||||
VERSION="${TAG#v}"
|
||||
TAP_REPO="delibae/homebrew-claude-prism"
|
||||
CASK_PATH="Casks/claude-prism.rb"
|
||||
|
||||
# Download DMG files
|
||||
gh release download "$TAG" \
|
||||
--repo "${{ github.repository }}" \
|
||||
--pattern "*.dmg" \
|
||||
--dir /tmp/dmg
|
||||
|
||||
# Calculate SHA256
|
||||
SHA_ARM64=$(sha256sum /tmp/dmg/ClaudePrism_${VERSION}_aarch64.dmg | awk '{print $1}')
|
||||
|
||||
echo "ARM64 SHA256: $SHA_ARM64"
|
||||
|
||||
# Update Cask file
|
||||
CASK_FILE="homebrew/Casks/claude-prism.rb"
|
||||
sed -i "s/version \".*\"/version \"${VERSION}\"/" "$CASK_FILE"
|
||||
sed -i "s/sha256 \".*\"/sha256 \"${SHA_ARM64}\"/" "$CASK_FILE"
|
||||
# Fetch current cask file, update version and sha256, push back
|
||||
gh api "repos/${TAP_REPO}/contents/${CASK_PATH}" --jq '.content' | base64 -d > /tmp/cask.rb
|
||||
FILE_SHA=$(gh api "repos/${TAP_REPO}/contents/${CASK_PATH}" --jq '.sha')
|
||||
|
||||
# Commit and push
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git add "$CASK_FILE"
|
||||
git diff --cached --quiet && echo "No changes to commit" && exit 0
|
||||
git commit -m "chore: update Homebrew Cask to ${TAG}"
|
||||
git push origin HEAD:main
|
||||
sed -i "s/version \".*\"/version \"${VERSION}\"/" /tmp/cask.rb
|
||||
sed -i "s/sha256 \".*\"/sha256 \"${SHA_ARM64}\"/" /tmp/cask.rb
|
||||
|
||||
gh api -X PUT "repos/${TAP_REPO}/contents/${CASK_PATH}" \
|
||||
-f message="chore: update cask to v${VERSION}" \
|
||||
-f content="$(base64 -w0 /tmp/cask.rb)" \
|
||||
-f sha="$FILE_SHA"
|
||||
|
|
|
|||
|
|
@ -1,89 +0,0 @@
|
|||
name: Covector Version or Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
actions: write
|
||||
|
||||
jobs:
|
||||
version-or-publish:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Configure git
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Covector version or publish
|
||||
uses: jbolda/covector/packages/action@covector-v0
|
||||
id: covector
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
command: version-or-publish
|
||||
createRelease: true
|
||||
|
||||
- name: Create unified release tag and trigger build
|
||||
if: steps.covector.outputs.commandRan == 'publish'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Extract version from root package.json
|
||||
VERSION=$(node -p "require('./package.json').version")
|
||||
TAG="v${VERSION}"
|
||||
|
||||
# Create tag if it doesn't already exist
|
||||
if ! git rev-parse "$TAG" >/dev/null 2>&1; then
|
||||
echo "Creating unified tag: $TAG"
|
||||
git tag "$TAG"
|
||||
git push origin "$TAG"
|
||||
else
|
||||
echo "Tag $TAG already exists"
|
||||
fi
|
||||
|
||||
# Trigger build workflow (GITHUB_TOKEN pushes don't trigger other workflows)
|
||||
echo "Triggering Build Desktop workflow for $TAG"
|
||||
gh workflow run "Build Desktop" --ref "$TAG"
|
||||
|
||||
- name: Sync Cargo.lock
|
||||
if: steps.covector.outputs.commandRan == 'version'
|
||||
run: |
|
||||
cd apps/desktop/src-tauri
|
||||
cargo generate-lockfile
|
||||
|
||||
- name: Create version bump PR
|
||||
if: steps.covector.outputs.commandRan == 'version'
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
title: "chore: version bump"
|
||||
commit-message: "chore: version bump"
|
||||
labels: version
|
||||
branch: covector/version-bump
|
||||
body: |
|
||||
## Version Bump
|
||||
|
||||
This PR was auto-generated based on `.changes/` files.
|
||||
Merging will create a new version tag and trigger a release build.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@claude-prism/desktop",
|
||||
"version": "0.5.4",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "claude-prism-desktop"
|
||||
version = "0.5.4"
|
||||
version = "1.0.0"
|
||||
description = "AI-powered LaTeX writing workspace"
|
||||
edition = "2021"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"$schema": "https://raw.githubusercontent.com/nicegui-unofficial/nicegui-tauri-template/main/src-tauri/tauri.conf-v2-schema.json",
|
||||
"identifier": "com.claude-prism.desktop",
|
||||
"productName": "ClaudePrism",
|
||||
"version": "0.5.4",
|
||||
"version": "1.0.0",
|
||||
"build": {
|
||||
"beforeDevCommand": "pnpm dev",
|
||||
"beforeBuildCommand": "pnpm build",
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
cask "claude-prism" do
|
||||
version "0.5.0"
|
||||
|
||||
sha256 ""
|
||||
url "https://github.com/delibae/claude-prism/releases/download/v#{version}/ClaudePrism_#{version}_aarch64.dmg"
|
||||
|
||||
depends_on arch: :arm64
|
||||
|
||||
name "ClaudePrism"
|
||||
desc "Desktop app for Claude-powered academic research workflows"
|
||||
homepage "https://github.com/delibae/claude-prism"
|
||||
|
||||
depends_on macos: ">= :big_sur"
|
||||
|
||||
app "ClaudePrism.app"
|
||||
|
||||
zap trash: [
|
||||
"~/Library/Application Support/com.claude-prism.desktop",
|
||||
"~/Library/Caches/com.claude-prism.desktop",
|
||||
"~/Library/Preferences/com.claude-prism.desktop.plist",
|
||||
"~/Library/Saved Application State/com.claude-prism.desktop.savedState",
|
||||
]
|
||||
end
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "@claude-prism/root",
|
||||
"description": "Open-Source AI LaTeX writing workspace",
|
||||
"version": "0.5.4",
|
||||
"version": "1.0.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/delibae/claude-prism"
|
||||
|
|
@ -17,12 +17,10 @@
|
|||
"build:desktop": "pnpm --filter=@claude-prism/desktop tauri build",
|
||||
"lint": "pnpm exec biome check",
|
||||
"lint:fix": "pnpm exec biome check --fix",
|
||||
"version:check": "covector status",
|
||||
"version:bump": "covector version"
|
||||
"release": "echo 'To release: git tag v<version> && git push origin v<version>'"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.3.13",
|
||||
"covector": "^0.12",
|
||||
"turbo": "^2.7.6"
|
||||
},
|
||||
"packageManager": "pnpm@10.28.2",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue