Skip to content

Commit b0543e5

Browse files
committed
chore(release): Reorganize release files into dedicated release directory
- Move VERSION file to release/ directory for centralized management - Move RELEASE_NOTES_v1.0.0.md to release/ directory - Move GITHUB_RELEASE_TEMPLATE.md to release/ directory - Move prepare-release.sh to release/ directory - Add FOLDER_STRUCTURE.md documenting release directory organization - Add README.md with release management documentation and usage instructions - Update prepare-release.sh to handle new directory structure and paths - Update GITHUB_RELEASE_TEMPLATE.md with corrected file paths - Keep project root clean by consolidating all release-related files in one location - Improves project organization and makes release management more maintainable
1 parent 7c21a2b commit b0543e5

File tree

6 files changed

+173
-7
lines changed

6 files changed

+173
-7
lines changed

release/FOLDER_STRUCTURE.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Release Folder Structure
2+
3+
## Overview
4+
The `release/` folder contains all GitHub release management files, keeping the project root clean and organized.
5+
6+
## Folder Contents
7+
8+
```
9+
release/
10+
├── README.md # Release management documentation
11+
├── VERSION # Current version (1.0.0)
12+
├── RELEASE_NOTES_v1.0.0.md # Comprehensive v1.0.0 release notes
13+
├── GITHUB_RELEASE_TEMPLATE.md # Step-by-step GitHub release instructions
14+
├── prepare-release.sh # Automated release preparation script
15+
└── FOLDER_STRUCTURE.md # This file
16+
```
17+
18+
## Benefits of This Organization
19+
20+
### Clean Project Root
21+
- Keeps release-specific files separate from core project files
22+
- Maintains focus on essential project files (README, scripts, configs)
23+
- Reduces clutter in the main directory
24+
25+
### Organized Release Management
26+
- All release-related files in one location
27+
- Easy to find and maintain release documentation
28+
- Clear separation between development and release processes
29+
30+
### Scalable Structure
31+
- Easy to add future release versions
32+
- Can accommodate multiple release formats
33+
- Supports automated release workflows
34+
35+
## Usage
36+
37+
### From Release Directory
38+
```bash
39+
cd release
40+
./prepare-release.sh
41+
```
42+
43+
### From Project Root
44+
```bash
45+
release/prepare-release.sh
46+
```
47+
48+
## File Purposes
49+
50+
### `README.md`
51+
- Documents the release process
52+
- Explains how to use the release scripts
53+
- Provides version history
54+
55+
### `VERSION`
56+
- Contains current version number (1.0.0)
57+
- Used by scripts for version consistency
58+
- Single source of truth for version
59+
60+
### `RELEASE_NOTES_v1.0.0.md`
61+
- Comprehensive release notes for v1.0.0
62+
- Used as GitHub release description
63+
- Documents features, fixes, and changes
64+
65+
### `GITHUB_RELEASE_TEMPLATE.md`
66+
- Step-by-step GitHub release instructions
67+
- Complete process documentation
68+
- Social media and announcement templates
69+
70+
### `prepare-release.sh`
71+
- Automated release preparation
72+
- Validates project state
73+
- Creates release archives and checksums
74+
- Provides GitHub release instructions
75+
76+
### `FOLDER_STRUCTURE.md`
77+
- Documents this folder organization
78+
- Explains benefits and usage
79+
- Maintains documentation consistency
80+
81+
## Future Releases
82+
83+
For future releases:
84+
1. Update `VERSION` file
85+
2. Create new `RELEASE_NOTES_vX.X.X.md`
86+
3. Update `prepare-release.sh` if needed
87+
4. Run preparation script
88+
5. Follow GitHub release template
89+
90+
This structure supports the project's growth while maintaining organization and clarity.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- **Target Branch**: `main`
88

99
## Release Description
10-
Copy the entire content from `RELEASE_NOTES_v1.0.0.md` into the GitHub release description.
10+
Copy the entire content from `release/RELEASE_NOTES_v1.0.0.md` into the GitHub release description.
1111

1212
## Release Assets
1313
Upload these 4 files from `/tmp/`:
@@ -36,7 +36,7 @@ Upload these 4 files from `/tmp/`:
3636
- **Target**: `main` branch
3737

3838
### 3. Add Release Description
39-
Copy and paste the entire content from `RELEASE_NOTES_v1.0.0.md`
39+
Copy and paste the entire content from `release/RELEASE_NOTES_v1.0.0.md`
4040

4141
### 4. Upload Release Assets
4242
Drag and drop or select these files from `/tmp/`:

release/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Release Management
2+
3+
This directory contains all files related to GitHub release management for the FileMaker Security Updater project.
4+
5+
## Files
6+
7+
### Release Documentation
8+
- **`RELEASE_NOTES_v1.0.0.md`** - Comprehensive release notes for v1.0.0
9+
- **`GITHUB_RELEASE_TEMPLATE.md`** - Step-by-step instructions for creating GitHub releases
10+
- **`VERSION`** - Current version number (1.0.0)
11+
12+
### Release Scripts
13+
- **`prepare-release.sh`** - Automated release preparation script
14+
- Verifies all required files are present
15+
- Runs test suite validation
16+
- Creates release archives (tar.gz and zip)
17+
- Generates SHA256 checksums
18+
- Provides GitHub release instructions
19+
20+
## Usage
21+
22+
### Preparing a Release
23+
24+
1. **Run the preparation script**:
25+
```bash
26+
cd release
27+
./prepare-release.sh
28+
```
29+
30+
2. **Follow the generated instructions** to create the GitHub release
31+
32+
3. **Upload the generated assets** from `/tmp/`:
33+
- `filemaker-security-updater-v1.0.0.tar.gz`
34+
- `filemaker-security-updater-v1.0.0.zip`
35+
- `filemaker-security-updater-v1.0.0.tar.gz.sha256`
36+
- `filemaker-security-updater-v1.0.0.zip.sha256`
37+
38+
### Creating Future Releases
39+
40+
1. **Update VERSION file** with new version number
41+
2. **Create new release notes** following the format of `RELEASE_NOTES_v1.0.0.md`
42+
3. **Update prepare-release.sh** if needed for new version
43+
4. **Run preparation script** and follow instructions
44+
45+
## Release Process
46+
47+
The release process follows these steps:
48+
49+
1. **Pre-Release Validation**
50+
- Verify all required files exist
51+
- Run complete test suite
52+
- Check git status for uncommitted changes
53+
54+
2. **Archive Creation**
55+
- Create temporary directory with release files
56+
- Generate tar.gz and zip archives
57+
- Calculate SHA256 checksums
58+
59+
3. **GitHub Release**
60+
- Create new release with appropriate tag
61+
- Upload release assets
62+
- Copy release notes as description
63+
- Mark as latest release
64+
65+
## Security Considerations
66+
67+
- **Checksums**: Always verify SHA256 checksums for downloaded releases
68+
- **Signatures**: Future releases may include GPG signatures
69+
- **Assets**: Only download official release assets from GitHub releases page
70+
71+
## Version History
72+
73+
- **v1.0.0** (December 23, 2024) - Initial release addressing CVE-2025-46295
File renamed without changes.
File renamed without changes.
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ RELEASE_TAG="v${VERSION}"
1010
echo "🚀 Preparing GitHub Release: ${RELEASE_NAME}"
1111
echo "=================================================="
1212

13+
# Change to project root directory
14+
cd "$(dirname "$0")/.."
15+
1316
# Verify we're in the right directory
1417
if [[ ! -f "README.md" ]] || [[ ! -f "replace-filemaker-jars-macos.sh" ]]; then
1518
echo "❌ Error: Not in the correct project directory"
@@ -20,8 +23,8 @@ fi
2023
echo "📋 Checking core files..."
2124
REQUIRED_FILES=(
2225
"README.md"
23-
"VERSION"
24-
"RELEASE_NOTES_v1.0.0.md"
26+
"release/VERSION"
27+
"release/RELEASE_NOTES_v1.0.0.md"
2528
"TODO.md"
2629
"replace-filemaker-jars-windows.ps1"
2730
"replace-filemaker-jars-macos.sh"
@@ -118,8 +121,8 @@ mkdir -p "$TEMP_DIR"
118121
# Copy essential files for release
119122
echo " 📋 Copying files to archive..."
120123
cp README.md "$TEMP_DIR/"
121-
cp VERSION "$TEMP_DIR/"
122-
cp RELEASE_NOTES_v1.0.0.md "$TEMP_DIR/"
124+
cp release/VERSION "$TEMP_DIR/"
125+
cp release/RELEASE_NOTES_v1.0.0.md "$TEMP_DIR/"
123126
cp TODO.md "$TEMP_DIR/"
124127
cp replace-filemaker-jars-*.sh "$TEMP_DIR/"
125128
cp replace-filemaker-jars-*.ps1 "$TEMP_DIR/"
@@ -178,7 +181,7 @@ echo " 3. ${ARCHIVE_NAME}.tar.gz.sha256"
178181
echo " 4. ${ARCHIVE_NAME}.zip.sha256"
179182
echo ""
180183
echo "📝 Release Description:"
181-
echo "Use the content from RELEASE_NOTES_v1.0.0.md"
184+
echo "Use the content from release/RELEASE_NOTES_v1.0.0.md"
182185

183186
# Final verification
184187
echo ""

0 commit comments

Comments
 (0)