File: RELEASE.md

package info (click to toggle)
python-sqlalchemy-utils 0.42.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 1,236 kB
  • sloc: python: 13,002; makefile: 20
file content (72 lines) | stat: -rw-r--r-- 1,709 bytes parent folder | download
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
# SQLAlchemy-Utils Release Process

This document outlines the process for creating a new release of SQLAlchemy-Utils.

## Prerequisites

- Access to the GitHub repository with push permissions
- PyPI account with API token for the project
- `uv` package manager installed
- `gh` CLI tool installed (optional, for GitHub releases)

## Release Process

### 1. Prepare the Release

1. **Update CHANGES.rst**
   - Move items from "Unreleased changes" section to a new version section
   - Follow the existing format: `X.Y.Z (YYYY-MM-DD)`
   - Add a new "Unreleased changes" section

2. **Update version in pyproject.toml**
   ```bash
   # Edit pyproject.toml and update the version field
   version = "X.Y.Z"
   ```

3. **Commit the changes**
   ```bash
   git add CHANGES.rst pyproject.toml
   git commit -m "Bump version to X.Y.Z"
   git push origin master
   ```

### 2. Create Git Tag

```bash
git tag -a X.Y.Z -m "Release version X.Y.Z"
git push origin X.Y.Z
```

### 3. Build and Publish to PyPI

1. **Build the package**
   ```bash
   uv build
   ```

2. **Publish to PyPI**
   ```bash
   uv publish --token pypi-your-api-token-here
   ```

   Alternatively, set the token as an environment variable:
   ```bash
   export UV_PUBLISH_TOKEN="pypi-your-api-token-here"
   uv publish
   ```

### 4. Create GitHub Release

```bash
gh release create X.Y.Z --title "X.Y.Z" --notes-from-tag
```

Or create the release manually on GitHub using the tag.

## Version Numbering

This project follows [Semantic Versioning](https://semver.org/):
- **MAJOR** version for incompatible API changes
- **MINOR** version for backwards-compatible functionality additions
- **PATCH** version for backwards-compatible bug fixes