Skip to content

Commit 147d42b

Browse files
committed
Merge branch 'main' into feature/105-NIP-03-opentimestamps-support
2 parents 0d73080 + e1a7bfb commit 147d42b

10 files changed

Lines changed: 4982 additions & 11372 deletions

.changeset/config.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [],
6+
"linked": [],
7+
"access": "restricted",
8+
"baseBranch": "main",
9+
"updateInternalDependencies": "patch",
10+
"ignore": []
11+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": patch
3+
---
4+
5+
Replace semantic-release with changesets for explicit PR-level version management. Contributors now add a changeset file per PR; the Changesets Release workflow handles version bumps and GitHub releases.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
"nostream": minor
3+
---
4+
5+
Release highlights:
6+
7+
**Features**
8+
- NIP-05 verification support (#463)
9+
- NIP-17 & NIP-44 v2 Modern Direct Messages (#458)
10+
- NIP-62 vanish event support (#418)
11+
- Vanish optimization (#446)
12+
- Export events to JSON Lines format (#451)
13+
- Import .jsonl events into events table (#414)
14+
- Opt-in event retention purge (#359, #412)
15+
- Wipe events table script (#450)
16+
- Nginx reverse proxy in docker-compose (#423)
17+
- Docker DNS pre-flight check for connectivity verification (#398)
18+
- Strict validation for payment callbacks (#426)
19+
- Real home page with templated pages (#409)
20+
21+
**Bug Fixes**
22+
- NIP-01 compliance: deterministic event ordering by event_id
23+
- NIP-01 compliance: correct dedup keys for parametrized replaceable events (#480)
24+
- NIP-01 replaceable event tiebreaker (#416)
25+
- NIP-11 served only on root path instead of relay path (#399)
26+
- Dockerfile: run database migrations in CMD (#422)
27+
- Added expired_at filter to message pipeline (#403)
28+
- Removed unsafe-inline and implemented script nonces for CSP hardening (#394)
29+
- Axios upgraded to fix CVE-2025-62718 (#466)
30+
31+
**Refactors & Chores**
32+
- Migrated validation from Joi to Zod (#484)
33+
- Migrated linting and formatting to Biome (#452)
34+
- Converted user admission to PostgreSQL stored function (#428)
35+
- Upgraded to Node.js 24 LTS (#419)
36+
- Updated dependencies (express, body-parser, js-yaml, axios)

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@
3333
- [ ] I have updated the documentation accordingly.
3434
- [ ] I have read the **CONTRIBUTING** document.
3535
- [ ] I have added tests to cover my code changes.
36+
- [ ] I added a changeset, or this is docs-only and I added an empty changeset.
3637
- [ ] All new and existing tests passed.

.github/workflows/changesets.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Changesets Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
concurrency: ${{ github.workflow }}-${{ github.ref }}
9+
10+
jobs:
11+
release:
12+
name: Release
13+
runs-on: ubuntu-latest
14+
environment: release
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v3
18+
with:
19+
fetch-depth: 0
20+
21+
- uses: actions/setup-node@v3
22+
with:
23+
node-version-file: .nvmrc
24+
cache: npm
25+
26+
- name: Install package dependencies
27+
run: npm ci
28+
29+
- name: Create Release Pull Request or Publish
30+
uses: changesets/action@v1
31+
with:
32+
version: npm run changeset:version
33+
publish: npm run changeset:tag
34+
createGithubReleases: true
35+
env:
36+
GITHUB_TOKEN: ${{ secrets.RELEASE_PAT }}

.github/workflows/checks.yml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -142,24 +142,20 @@ jobs:
142142
with:
143143
github-token: ${{ secrets.GITHUB_TOKEN }}
144144
parallel-finished: true
145-
release:
146-
name: Release
145+
changeset-check:
146+
name: Changeset Required
147147
runs-on: ubuntu-latest
148-
needs: [test-units-and-cover, test-integrations-and-cover]
149-
if: github.ref == 'refs/heads/main'
150-
environment: release
151-
env:
152-
TELEGRAM_BOT_ID: ${{ secrets.TELEGRAM_BOT_ID }}
153-
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
148+
if: github.event_name == 'pull_request' && github.head_ref != 'changeset-release/main'
154149
steps:
155150
- name: Checkout
156151
uses: actions/checkout@v3
152+
with:
153+
fetch-depth: 0
157154
- uses: actions/setup-node@v3
158155
with:
159156
node-version-file: .nvmrc
157+
cache: npm
160158
- name: Install package dependencies
161159
run: npm ci
162-
- name: Release
163-
env:
164-
GITHUB_TOKEN: ${{ secrets.RELEASE_PAT }}
165-
run: npx semantic-release
160+
- name: Check for changeset
161+
run: npx changeset status --since origin/${{ github.base_ref }}

.releaserc.json

Lines changed: 0 additions & 24 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,47 @@ npm run knip
2020

2121
1. Update the relevant documentation with details of changes to the interface, this includes new environment
2222
variables, exposed ports, useful file locations and container parameters.
23-
2. Increase the version numbers in any examples files and the README.md to the new version that this
24-
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
23+
2. Follow the versioning and changeset process described in [Releases & Versioning](#releases--versioning).
2524
3. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
2625
do not have permission to do that, you may request the second reviewer to merge it for you.
2726

27+
## Releases & Versioning
28+
29+
This project uses [Changesets](https://github.com/changesets/changesets) for version management.
30+
31+
### For contributors
32+
33+
Every pull request that changes behavior, adds a feature, or fixes a bug **must include a changeset file**. The CI `changeset-check` job will fail if no changeset is present.
34+
35+
To add a changeset:
36+
37+
```bash
38+
npx changeset
39+
```
40+
41+
This interactive prompt will ask you to:
42+
1. Select the bump type: `major`, `minor`, or `patch`
43+
2. Write a short summary of the change (this becomes the changelog entry)
44+
45+
The command creates a file in `.changeset/` — commit it with your PR.
46+
47+
### Docs-only PRs (no release)
48+
49+
If your PR only updates documentation and should not affect versioning, add an empty changeset:
50+
51+
```bash
52+
npx changeset --empty
53+
```
54+
55+
Commit the generated `.changeset/*.md` file with your PR. This satisfies CI without producing a version bump or changelog entry.
56+
57+
### Release process
58+
59+
1. Changesets accumulate as PRs are merged to `main`
60+
2. The `Changesets Release` workflow automatically opens a **"Version Packages"** PR that aggregates all pending changesets, bumps `package.json`, and updates `CHANGELOG.md`
61+
3. When a maintainer merges the Version Packages PR, the workflow publishes a GitHub release and creates the corresponding git tag
62+
4. The Docker image is then automatically built and pushed to GHCR via the `release.yml` workflow
63+
2864
## Code Quality
2965

3066
Run Biome checks before opening a pull request:

0 commit comments

Comments
 (0)