Skip to content

Commit aa4e529

Browse files
committed
Enhance development and release documentation for clarity
1 parent c69d8b4 commit aa4e529

File tree

3 files changed

+95
-1
lines changed

3 files changed

+95
-1
lines changed

docs/DEVELOPMENT.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Development Guide
22

3+
## Git Remotes and Repository Management
4+
5+
This project is maintained across two primary GitHub remotes to ensure both private development and public community access.
6+
7+
| Remote Name | URL | Purpose |
8+
| :--- | :--- | :--- |
9+
| **`community`** | `https://github.com/intersystems-community/iris-pgwire.git` | **Public / Shared Repo**: The source of truth for the community and where releases are published. |
10+
| **`origin`** | `https://github.com/isc-tdyar/iris-pgwire.git` | **Development Repo**: Primary location for staging features and experimental work. |
11+
12+
### Workflow for Features
13+
14+
1. Create a feature branch from `main`.
15+
2. Implement and verify changes.
16+
3. Merge feature branch to `main`.
17+
4. **Push to both remotes**:
18+
```bash
19+
git push origin main
20+
git push community main
21+
```
22+
323
## Optional Development Dependencies
424

525
### iris-devtools

docs/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@
6262
- **[Development Setup](DEVELOPMENT.md)** - Local development environment
6363

6464
### Release & Quality
65-
- **[PyPI Release Process](PYPI_RELEASE.md)** - Package publishing workflow
65+
- **[Release Guide](RELEASING.md)** - Workflow for publishing to PyPI and GitHub
66+
- **[PyPI Release Process](PYPI_RELEASE.md)** - Package publishing checklist
6667
- **[Pre-Commit Setup](PRE_COMMIT_SETUP.md)** - Code quality hooks
6768

6869
---

docs/RELEASING.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Release Guide: Publishing to PyPI and GitHub
2+
3+
This guide outlines the standard workflow for creating a new release of `iris-pgwire`.
4+
5+
## 1. Finalize Version and Changelog
6+
7+
1. **Update Version**: Increment the version in `src/iris_pgwire/__init__.py`.
8+
```python
9+
__version__ = "1.0.7"
10+
```
11+
2. **Update Changelog**: Ensure `CHANGELOG.md` is updated with all changes for the new version.
12+
3. **Verify Tests**: Run the full suite to ensure no regressions.
13+
```bash
14+
pytest tests/
15+
```
16+
17+
## 2. Merge and Push to Remotes
18+
19+
Merge your feature branch into `main` and push to both the development and community remotes.
20+
21+
```bash
22+
git checkout main
23+
git merge feature-branch-name
24+
git push origin main
25+
git push community main
26+
```
27+
28+
## 3. Create a Git Tag
29+
30+
Create a semantic version tag on the `main` branch and push it to the `community` remote.
31+
32+
```bash
33+
git tag -a v1.0.7 -m "Release version 1.0.7"
34+
git push community v1.0.7
35+
```
36+
37+
## 4. Build and Publish to PyPI
38+
39+
We use `hatch` (via `uv` or directly) to build the package.
40+
41+
### Build the Package
42+
```bash
43+
# Clean previous builds
44+
rm -rf dist/
45+
46+
# Build source distribution and wheel
47+
uv build
48+
```
49+
50+
### Verify Package Contents
51+
```bash
52+
tar -tzf dist/*.tar.gz
53+
```
54+
55+
### Upload to PyPI
56+
You will need your PyPI API token configured.
57+
58+
```bash
59+
# Test upload (optional but recommended)
60+
twine upload --repository testpypi dist/*
61+
62+
# Production upload
63+
twine upload dist/*
64+
```
65+
66+
## 5. Post-Release
67+
68+
1. **Verify on PyPI**: Check [pypi.org/project/iris-pgwire/](https://pypi.org/project/iris-pgwire/).
69+
2. **GitHub Release**: Go to the `community` repository on GitHub and create a new release from the tag, pasting the changelog notes.
70+
3. **Update AGENTS.md**: Run the context update script to keep agent instructions in sync.
71+
```bash
72+
bash .specify/scripts/bash/update-agent-context.sh
73+
```

0 commit comments

Comments
 (0)