Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
54 changes: 54 additions & 0 deletions .github/ISSUE_TEMPLATE/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: Release Request
about: Track a new release of the plugin
title: 'Release v[VERSION]'
labels: release
assignees: ''
---

## Release Information

**Version:** [e.g., 1.0.0, 1.0.0-beta.1]
**Type:** [stable/beta/hotfix]

## Release Checklist

### Pre-Release
- [ ] All features/fixes are merged
- [ ] Code review completed
- [ ] Build passes locally (`npm run build`)
- [ ] Plugin tested in Obsidian vault
- [ ] Version bumped (via workflow or `npm version`)
- [ ] Changelog/release notes prepared

### Release Process
- [ ] Version Bump workflow executed (if using workflows)
- [ ] Release workflow executed or tag pushed
- [ ] GitHub release created successfully
- [ ] All artifacts uploaded (main.js, manifest.json, styles.css, versions.json)
- [ ] Release notes added

### Post-Release
- [ ] Release tested by downloading from GitHub
- [ ] Plugin works in fresh Obsidian vault
- [ ] Announcement prepared (if needed)
- [ ] Community plugin listing updated (if applicable)

## Changes in This Release

### Features
-

### Bug Fixes
-

### Breaking Changes
-

## Testing Notes

<!-- Describe how this release was tested -->

## Additional Notes

<!-- Any additional information about this release -->
80 changes: 80 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
## Description

<!-- Provide a brief description of the changes in this PR -->

## Type of Change

<!-- Mark the relevant option with an 'x' -->

- [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
- [ ] ✨ New feature (non-breaking change that adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📝 Documentation update
- [ ] 🎨 Style/UI change
- [ ] ♻️ Code refactoring
- [ ] ⚡ Performance improvement
- [ ] ✅ Test addition or update
- [ ] 🔧 Configuration change

## Related Issues

<!-- Link any related issues here -->

Fixes #
Relates to #

## Changes Made

<!-- List the specific changes made in this PR -->

-
-
-

## Testing

<!-- Describe how you tested these changes -->

### Testing Checklist

- [ ] Built the plugin successfully (`npm run build`)
- [ ] Tested in Obsidian vault
- [ ] Verified no console errors
- [ ] Tested on desktop (if applicable)
- [ ] Tested on mobile (if applicable)
- [ ] Ran type checks (`npx tsc -noEmit`)
- [ ] Ran linter (`npx eslint src/`)

### Test Scenarios

<!-- Describe specific test scenarios you ran -->

1.
2.
3.

## Screenshots/Videos

<!-- If applicable, add screenshots or videos to demonstrate the changes -->

## Checklist

- [ ] My code follows the project's code style
- [ ] I have performed a self-review of my code
- [ ] I have commented my code where necessary
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings or errors
- [ ] I have updated the CHANGELOG.md (if applicable)
- [ ] I have checked my changes work on both desktop and mobile (if applicable)

## Additional Notes

<!-- Add any additional notes, context, or concerns here -->

## Breaking Changes

<!-- If this PR includes breaking changes, describe them here and provide migration instructions -->

## Deployment Notes

<!-- Any special considerations for deployment or release? -->
140 changes: 140 additions & 0 deletions .github/QUICK_REFERENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Quick Reference - Release Automation

Fast reference for common tasks with the automated release system.

## 🚀 Create a Release

### Option 1: GitHub Actions (Recommended)
1. Go to **Actions** → **Release Obsidian Plugin**
2. Click **Run workflow**
3. Enter version (e.g., `1.0.0`)
4. Done! ✅

### Option 2: Git Tags
```bash
npm version patch # Bump version
git push # Push changes
git push origin $(node -p "require('./package.json').version") # Push tag
```

## 📦 Version Bumping

### Using GitHub Actions
1. Go to **Actions** → **Version Bump**
2. Click **Run workflow**
3. Select bump type or enter custom version

### Using npm
```bash
npm version patch # 1.0.0 → 1.0.1
npm version minor # 1.0.0 → 1.1.0
npm version major # 1.0.0 → 2.0.0
git push
```

### Beta Versions
```bash
npm version 1.0.0-beta.1 --no-git-tag-version
git add package.json manifest.json versions.json
git commit -m "chore: bump to 1.0.0-beta.1"
git push
git tag 1.0.0-beta.1
git push origin 1.0.0-beta.1
```

## ✅ Pre-Release Checklist

```bash
npm run prepare-release # Runs all checks
```

Or manually:
- [ ] All changes committed
- [ ] `npm run build` succeeds
- [ ] `npx tsc -noEmit` passes
- [ ] `npx eslint src/` passes
- [ ] Tested in Obsidian
- [ ] CHANGELOG.md updated
- [ ] Version bumped

## 📋 Workflow Status

Check workflow runs: **Actions** tab → Select workflow

## 🐛 Common Issues

### Build fails
```bash
npm ci # Reinstall dependencies
npm run build # Test build locally
npx tsc -noEmit # Check for type errors
```

### Version mismatch
```bash
npm version <version> --no-git-tag-version
git add package.json manifest.json versions.json
git commit -m "chore: sync versions"
```

### Tag already exists
```bash
git tag -d 1.0.0 # Delete local tag
git push origin :refs/tags/1.0.0 # Delete remote tag
npm version <new-version> # Bump to new version
```

## 📁 Release Artifacts

Every release includes:
- `main.js` - Plugin code (required)
- `manifest.json` - Metadata (required)
- `styles.css` - Styles (optional)
- `versions.json` - Compatibility map
- `checksums.txt` - SHA256 checksums

## 🔗 Important Links

- **Workflows**: `.github/workflows/`
- **Full Guide**: `RELEASE.md`
- **Contributing**: `CONTRIBUTING.md`
- **Changelog**: `CHANGELOG.md`

## 📞 Getting Help

1. Check workflow logs in Actions tab
2. Review `.github/workflows/README.md`
3. See `RELEASE.md` for detailed steps
4. Open an issue if stuck

## ⚡ Emergency Release

Need to release quickly?

```bash
npm run prepare-release # Validate
npm version patch # Bump version
git push origin main # Push changes
git tag $(node -p "require('./package.json').version")
git push origin $(node -p "require('./package.json').version")
```

## 🎯 Version Rules

- **Stable**: `1.0.0`, `1.1.0`, `2.0.0`
- **Beta**: `1.0.0-beta.1`, `1.0.0-beta.2`
- **Alpha**: `1.0.0-alpha.1`
- **RC**: `1.0.0-rc.1`

Pre-releases are automatically marked on GitHub.

## 🔒 Obsidian Requirements

✅ No `v` prefix in tags (use `1.0.0`, not `v1.0.0`)
✅ Tag must match manifest.json version exactly
✅ All artifacts must be attached to release
✅ Plugin ID must never change after first release

---

**Keep this reference handy for quick access to release commands!**
Loading