upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..fa1655d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,70 @@
1# Changelog
2
3All notable changes to ngit will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8## [Unreleased]
9
10## [2.0.0] - Pull Request support
11
12### Breaking Changes
13
14- **SSH Key Authentication in nostr:// URLs**: The user field in nostr git URLs (e.g., `nym1@ssh/npub123/identifier`) is now treated as an SSH key file location rather than an SSH user. SSH key can be specified as a file within `~/.ssh` (e.g., `~/.ssh/nym1`) or as a full/relative path. Most git servers expect the SSH user to be 'git', so specifying a different SSH key is the idiomatic way to use different credentials.
15
16### Added
17
18- **Pull Requests Support**: Introduced complete PR functionality for large contributions that would be too big for relays as patches:
19
20 - Generate PR events for oversized patches automatically
21 - Support PR updates and PR as patch revision
22 - List open/draft proposals on repo relays/servers as `pr/*` branches and all proposals as `refs/pr/*` and `refs/pr/pr-by-id/head`
23 - Push PRs to custom clone URLs with auto-fork creation fallback
24 - Add `--force-pr` and `--force-patch` flags for manual control
25 - Full NIP-34 compliance with `merge-base` tags
26
27- **NIP-22 Status Events Support**: Read and process NIP-22 style status events for proposals and PRs
28
29- **ngit sync command**: New command to synchronize git servers with nostr state
30
31 - Optional `--force` flag for forced synchronization eg deleting refs on non-GRASP servers
32 - `--ref-name` parameter to limit sync to a single reference
33
34- **ngit init improvements** (simple model for non-grasp servers):
35
36 - Use user's grasp list for defaults instead of hardcoded options
37 - List and allow selection/deselection of non-grasp servers
38 - Check and fetch origin refs when missing locally
39 - Publish state event and sync when existing origin matches tip
40
41- Allow specifying non-default SSH key in `nostr://` address
42
43### Fixed
44
45- **Git server timeouts**: More robust timeout enforcement in both ngit binary and remote helper
46- **Annotated and lightweight tags**: Proper handling and pushing of all tag types
47- **nostr:// URLs with NIP-05**:
48 - Fixed URLs with NIP-05 addresses without local part
49 - Allow NIP-05 domain without `_@` prefix
50- **Sync and fetch improvements**:
51 - Don't fetch tags already available locally
52 - Fetch refs missing locally before sync, fail gracefully
53 - Include all valid nostr state (was incorrectly filtering)
54- **Repository state**: Only use state and announcements from authorized maintainers
55- **Status events**: Only use status events from author and maintainers
56- **Grasp server detection**: Fix to ensure no SSH fallback when not needed
57- **NIP compliance updates**:
58 - Fix `t` tag: `revision-root` → `root-revision` (NIP-34)
59 - Fix mention marker → `q` tag (NIP-10 update)
60- **Error handling**: Capture more errors when updating refs
61- Suppress warnings for poorly formatted proposals (only show to maintainers/author)
62
63### Changed
64
65- Updated to latest rust-nostr v0.43
66- Updated gitworkshop.dev URL format (now uses nevent)
67- Removed blossom from grasp server detection (removed from grasp spec)
68- Print event description before publishing for clearer terminal UI
69
70## [1.7.4] - Previous Release