Skip to content

Commit 258a5da

Browse files
committed
chore: 📝 add changelog and release notes for v1.0.0
1 parent 02a61ed commit 258a5da

File tree

3 files changed

+436
-0
lines changed

3 files changed

+436
-0
lines changed

CHANGELOG.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.0] - 2025-10-06
9+
10+
### 🎉 Initial Release
11+
12+
First stable release of postgres-backup-s3 with Bun + TypeScript implementation.
13+
14+
### ✨ Features
15+
16+
- **Multiple Database Support** - Backup multiple databases in one container
17+
- Comma-separated: `POSTGRES_DATABASE="db1,db2,db3"`
18+
- Space-separated: `POSTGRES_DATABASE="db1 db2 db3"`
19+
- Automatic detection and sequential backup
20+
21+
- **Multi-Storage Support**
22+
- AWS S3 (standard)
23+
- Cloudflare R2 (native support with simplified config)
24+
- S3-Compatible services (Minio, DigitalOcean Spaces, Wasabi, etc.)
25+
26+
- **Flexible Scheduling**
27+
- Cron-based scheduling with full syntax support
28+
- One-time backups
29+
- Manual trigger support
30+
31+
- **Advanced Backup Options**
32+
- AES-256-CBC encryption
33+
- PostgreSQL custom format support
34+
- Parallel compression with pigz
35+
- Automatic cleanup of old backups
36+
- Parallel backup option for multiple databases
37+
38+
- **Easy Restore**
39+
- Simple docker compose run commands
40+
- Environment variable override support
41+
- Automatic encryption detection
42+
- Database drop/create options
43+
44+
### 🏗️ Technical
45+
46+
- **Runtime**: Bun + TypeScript
47+
- **Base Image**: Alpine Linux (416MB)
48+
- **PostgreSQL Client**: Version 17
49+
- **AWS CLI**: Version 2
50+
- **Docker**: Multi-platform support (amd64, arm64)
51+
52+
### 📦 Container
53+
54+
- **Image Size**: 416MB (Alpine-based)
55+
- **Compiled Binary**: Bun standalone executable
56+
- **Dependencies**: PostgreSQL client, AWS CLI, OpenSSL, pigz
57+
58+
### 📖 Documentation
59+
60+
- Comprehensive README with examples
61+
- Quick reference guide
62+
- Contributing guidelines
63+
- Docker Compose examples for all storage types
64+
- Manual backup trigger documentation
65+
66+
### 🔐 Security
67+
68+
- MIT License with proper attribution
69+
- No hardcoded credentials
70+
- Support for encrypted backups
71+
- Minimal Alpine base for reduced attack surface
72+
73+
---
74+
75+
## Future Releases
76+
77+
See [GitHub Issues](https://github.com/johnnybui/postgres-backup-s3/issues) for planned features and enhancements.
78+

RELEASE_GUIDE.md

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
# 🚀 Release Guide - Version 1.0.0
2+
3+
Step-by-step guide to release version 1.0.0 on GitHub.
4+
5+
## 📋 Pre-Release Checklist
6+
7+
- [x] All features tested and working
8+
- [x] Documentation complete and accurate
9+
- [x] Docker image builds successfully
10+
- [x] CHANGELOG.md created
11+
- [x] RELEASE_NOTES.md prepared
12+
- [x] package.json version is 1.0.0
13+
14+
## 🔧 Step 1: Commit New Files
15+
16+
```bash
17+
# Add changelog and release notes
18+
git add CHANGELOG.md RELEASE_NOTES.md
19+
20+
# Commit
21+
git commit -m "chore: 📝 add changelog and release notes for v1.0.0"
22+
23+
# Push to main
24+
git push origin main
25+
```
26+
27+
## 🏷️ Step 2: Create Git Tag
28+
29+
```bash
30+
# Create annotated tag
31+
git tag -a v1.0.0 -m "Release version 1.0.0
32+
33+
Initial stable release with:
34+
- Multiple database support
35+
- Cloudflare R2 native support
36+
- S3-compatible storage support
37+
- Comprehensive documentation
38+
"
39+
40+
# Verify tag
41+
git tag -l v1.0.0
42+
git show v1.0.0
43+
44+
# Push tag to GitHub
45+
git push origin v1.0.0
46+
```
47+
48+
## 🐳 Step 3: Build and Push Docker Image
49+
50+
### Option A: Manual Build and Push
51+
52+
```bash
53+
# Build for multiple platforms
54+
docker buildx create --use --name multiplatform
55+
docker buildx build --platform linux/amd64,linux/arm64 \
56+
-t ghcr.io/johnnybui/postgres-backup-s3:1.0.0 \
57+
-t ghcr.io/johnnybui/postgres-backup-s3:latest \
58+
--push .
59+
60+
# Verify images
61+
docker pull ghcr.io/johnnybui/postgres-backup-s3:1.0.0
62+
docker pull ghcr.io/johnnybui/postgres-backup-s3:latest
63+
```
64+
65+
### Option B: GitHub Actions (Automated)
66+
67+
GitHub Actions will automatically build and push when you push the tag:
68+
69+
1. Make sure `.github/workflows/docker-build.yml` is configured
70+
2. Push the tag (Step 2 above)
71+
3. Monitor the build at: https://github.com/johnnybui/postgres-backup-s3/actions
72+
73+
## 📦 Step 4: Create GitHub Release
74+
75+
### Via GitHub Web UI (Recommended)
76+
77+
1. Go to: https://github.com/johnnybui/postgres-backup-s3/releases
78+
79+
2. Click **"Draft a new release"**
80+
81+
3. Fill in the form:
82+
- **Choose a tag**: `v1.0.0`
83+
- **Release title**: `v1.0.0 - Initial Stable Release 🎉`
84+
- **Description**: Copy content from `RELEASE_NOTES.md`
85+
86+
4. **Attach files** (optional):
87+
- `docker-compose.example.yml`
88+
- `env.example`
89+
90+
5. Check **"Set as the latest release"**
91+
92+
6. Click **"Publish release"**
93+
94+
### Via GitHub CLI (Alternative)
95+
96+
```bash
97+
# Install GitHub CLI if needed
98+
# brew install gh
99+
100+
# Login
101+
gh auth login
102+
103+
# Create release from RELEASE_NOTES.md
104+
gh release create v1.0.0 \
105+
--title "v1.0.0 - Initial Stable Release 🎉" \
106+
--notes-file RELEASE_NOTES.md \
107+
docker-compose.example.yml \
108+
env.example
109+
110+
# Verify
111+
gh release view v1.0.0
112+
```
113+
114+
## 📢 Step 5: Announce Release
115+
116+
### Update README Badge (Optional)
117+
118+
Add release badge to README.md:
119+
120+
```markdown
121+
[![Release](https://img.shields.io/github/v/release/johnnybui/postgres-backup-s3)](https://github.com/johnnybui/postgres-backup-s3/releases)
122+
[![Docker Pulls](https://img.shields.io/docker/pulls/johnnybui/postgres-backup-s3)](https://hub.docker.com/r/johnnybui/postgres-backup-s3)
123+
```
124+
125+
### Docker Hub Description
126+
127+
Update Docker Hub repository description:
128+
1. Go to: https://hub.docker.com/r/johnnybui/postgres-backup-s3
129+
2. Click **"Description"** tab
130+
3. Copy relevant sections from README.md
131+
4. Save
132+
133+
### Social Media / Blog (Optional)
134+
135+
Share on:
136+
- Twitter/X
137+
- Dev.to
138+
- Reddit (r/docker, r/PostgreSQL)
139+
- Hacker News
140+
141+
## ✅ Step 6: Verify Release
142+
143+
```bash
144+
# 1. Check GitHub release page
145+
open https://github.com/johnnybui/postgres-backup-s3/releases/tag/v1.0.0
146+
147+
# 2. Pull and test Docker image
148+
docker pull ghcr.io/johnnybui/postgres-backup-s3:1.0.0
149+
docker run --rm ghcr.io/johnnybui/postgres-backup-s3:1.0.0 postgres-backup --help
150+
151+
# 3. Verify tags
152+
docker images | grep ghcr.io/johnnybui/postgres-backup-s3
153+
154+
# Expected output:
155+
# ghcr.io/johnnybui/postgres-backup-s3 1.0.0 <image-id> <time> 416MB
156+
# ghcr.io/johnnybui/postgres-backup-s3 latest <image-id> <time> 416MB
157+
```
158+
159+
## 🎯 Post-Release Tasks
160+
161+
- [ ] Monitor GitHub Issues for bug reports
162+
- [ ] Monitor Docker Hub pull statistics
163+
- [ ] Update project documentation if needed
164+
- [ ] Plan next release features
165+
- [ ] Thank contributors (if any)
166+
167+
## 📝 For Future Releases
168+
169+
### Version Numbering (Semantic Versioning)
170+
171+
- **Patch** (1.0.X): Bug fixes, minor changes
172+
- **Minor** (1.X.0): New features, backward compatible
173+
- **Major** (X.0.0): Breaking changes
174+
175+
### Release Process
176+
177+
1. Update `package.json` version
178+
2. Update `CHANGELOG.md`
179+
3. Create `RELEASE_NOTES.md` for this version
180+
4. Commit changes
181+
5. Create and push tag
182+
6. Build and push Docker images
183+
7. Create GitHub release
184+
8. Announce
185+
186+
## 🐛 Rollback (If Needed)
187+
188+
```bash
189+
# Delete tag locally
190+
git tag -d v1.0.0
191+
192+
# Delete tag on GitHub
193+
git push origin :refs/tags/v1.0.0
194+
195+
# Delete GitHub release (via web UI or CLI)
196+
gh release delete v1.0.0
197+
198+
# Delete Docker images
199+
docker rmi ghcr.io/johnnybui/postgres-backup-s3:1.0.0
200+
```
201+
202+
---
203+
204+
## 🎉 Ready to Release!
205+
206+
Follow the steps above to release version 1.0.0. Good luck! 🚀
207+

0 commit comments

Comments
 (0)