181 lines
3.0 KiB
Markdown
181 lines
3.0 KiB
Markdown
|
|
# Release Process
|
||
|
|
|
||
|
|
This guide outlines the process for releasing new versions of Crypto Trader.
|
||
|
|
|
||
|
|
## Version Numbering
|
||
|
|
|
||
|
|
Follow [Semantic Versioning](https://semver.org/):
|
||
|
|
|
||
|
|
- **MAJOR**: Breaking changes
|
||
|
|
- **MINOR**: New features (backward compatible)
|
||
|
|
- **PATCH**: Bug fixes (backward compatible)
|
||
|
|
|
||
|
|
Example: `1.2.3`
|
||
|
|
|
||
|
|
## Release Checklist
|
||
|
|
|
||
|
|
### Pre-Release
|
||
|
|
|
||
|
|
- [ ] All tests passing
|
||
|
|
- [ ] Code coverage meets threshold (95%)
|
||
|
|
- [ ] Documentation is up to date
|
||
|
|
- [ ] Changelog is updated
|
||
|
|
- [ ] Version number updated
|
||
|
|
- [ ] All issues for milestone are closed
|
||
|
|
|
||
|
|
### Release Steps
|
||
|
|
|
||
|
|
1. **Update Version**
|
||
|
|
|
||
|
|
Update version in:
|
||
|
|
- `setup.py`
|
||
|
|
- `docs/api/source/conf.py`
|
||
|
|
- `src/__init__.py` (if exists)
|
||
|
|
|
||
|
|
2. **Update Changelog**
|
||
|
|
|
||
|
|
Document all changes in `CHANGELOG.md`:
|
||
|
|
- Added features
|
||
|
|
- Changed features
|
||
|
|
- Deprecated features
|
||
|
|
- Removed features
|
||
|
|
- Fixed bugs
|
||
|
|
- Security updates
|
||
|
|
|
||
|
|
3. **Create Release Branch**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git checkout -b release/v1.2.3
|
||
|
|
git push origin release/v1.2.3
|
||
|
|
```
|
||
|
|
|
||
|
|
4. **Build and Test**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run all tests
|
||
|
|
pytest
|
||
|
|
|
||
|
|
# Build AppImage
|
||
|
|
./packaging/build_appimage.sh
|
||
|
|
|
||
|
|
# Test AppImage
|
||
|
|
./crypto_trader-*.AppImage --test
|
||
|
|
```
|
||
|
|
|
||
|
|
5. **Create Release Tag**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git tag -a v1.2.3 -m "Release v1.2.3"
|
||
|
|
git push origin v1.2.3
|
||
|
|
```
|
||
|
|
|
||
|
|
6. **Create GitHub Release**
|
||
|
|
|
||
|
|
- Create release on GitHub
|
||
|
|
- Upload AppImage
|
||
|
|
- Add release notes from changelog
|
||
|
|
- Mark as latest release
|
||
|
|
|
||
|
|
7. **Merge to Main**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git checkout main
|
||
|
|
git merge release/v1.2.3
|
||
|
|
git push origin main
|
||
|
|
```
|
||
|
|
|
||
|
|
## AppImage Release
|
||
|
|
|
||
|
|
### Building AppImage
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd packaging
|
||
|
|
./build_appimage.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
### AppImage Requirements
|
||
|
|
|
||
|
|
- Must be executable
|
||
|
|
- Must include all dependencies
|
||
|
|
- Must be tested on target system
|
||
|
|
- Must include version in filename
|
||
|
|
|
||
|
|
### AppImage Distribution
|
||
|
|
|
||
|
|
- Upload to GitHub Releases
|
||
|
|
- Include checksums (SHA256)
|
||
|
|
- Provide installation instructions
|
||
|
|
- Test on clean system
|
||
|
|
|
||
|
|
## Post-Release
|
||
|
|
|
||
|
|
1. **Announce Release**
|
||
|
|
|
||
|
|
- Update website (if applicable)
|
||
|
|
- Post release notes
|
||
|
|
- Notify users
|
||
|
|
|
||
|
|
2. **Monitor**
|
||
|
|
|
||
|
|
- Watch for issues
|
||
|
|
- Monitor error reports
|
||
|
|
- Track download statistics
|
||
|
|
|
||
|
|
3. **Hotfixes**
|
||
|
|
|
||
|
|
If critical bugs are found:
|
||
|
|
- Create hotfix branch
|
||
|
|
- Fix and test
|
||
|
|
- Release patch version
|
||
|
|
- Merge to main
|
||
|
|
|
||
|
|
## Release Notes Template
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# Release v1.2.3
|
||
|
|
|
||
|
|
## Added
|
||
|
|
- New feature X
|
||
|
|
- New feature Y
|
||
|
|
|
||
|
|
## Changed
|
||
|
|
- Improved performance of Z
|
||
|
|
- Updated dependency versions
|
||
|
|
|
||
|
|
## Fixed
|
||
|
|
- Fixed bug in A
|
||
|
|
- Fixed issue with B
|
||
|
|
|
||
|
|
## Security
|
||
|
|
- Security update for C
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
Download the AppImage:
|
||
|
|
- [crypto_trader-1.2.3-x86_64.AppImage](link)
|
||
|
|
|
||
|
|
SHA256: [checksum]
|
||
|
|
|
||
|
|
## Upgrade Notes
|
||
|
|
|
||
|
|
[Any upgrade instructions]
|
||
|
|
```
|
||
|
|
|
||
|
|
## Emergency Releases
|
||
|
|
|
||
|
|
For critical security or stability issues:
|
||
|
|
|
||
|
|
1. Create hotfix branch from latest release
|
||
|
|
2. Apply fix
|
||
|
|
3. Test thoroughly
|
||
|
|
4. Release immediately
|
||
|
|
5. Merge to main and develop
|
||
|
|
|
||
|
|
## Version History
|
||
|
|
|
||
|
|
Maintain version history in:
|
||
|
|
- `CHANGELOG.md`
|
||
|
|
- GitHub Releases
|
||
|
|
- Documentation
|
||
|
|
|