1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
# Release Checklist
## 1. Pre-Release Checks
- [ ] **Update dependencies:**
```bash
poetry update
```
- [ ] **Run Code Quality Checks:**
Ensure all linting and tests pass.
```bash
# Run all tests and linters
poetry run pytest
poetry run ruff check incant
poetry run mypy .
poetry run bandit -r incant/
poetry run typos
```
## 2. Version Bump
- [ ] **Update `pyproject.toml`:**
Update the `version` field in `pyproject.toml`.
```bash
# Example for 0.5
poetry version 0.5
```
- [ ] **Update `debian/changelog`:**
Add a new entry for the release.
```bash
# Use dch (devscripts)
dch -v 0.5 -D unstable "New upstream release."
```
*Note: Ensure the version matches `pyproject.toml`.*
## 3. Commit and Tag
- [ ] **Commit changes:**
```bash
git add pyproject.toml debian/changelog poetry.lock
git commit -m "Release 0.5"
```
- [ ] **Tag the release:**
```bash
git tag -a v0.5 -m "Release 0.5"
```
## 4. Build and Verify
- [ ] **Build Python Package:**
```bash
poetry build
```
- [ ] **Build Debian Package:**
```bash
dpkg-buildpackage -us -uc
```
*Verify the built packages in the parent directory.*
## 5. Publish
- [ ] **Push to Git:**
```bash
git push origin master --tags
```
- [ ] **Publish to PyPI:**
```bash
poetry publish
```
- [ ] **Publish to Debian:**
* Push to Salsa: `git push salsa master --tags`
* Upload package
|