@@ -10,6 +10,16 @@ DIST := dist
1010LIB_NAME := libmicron
1111UNAME_S := $(shell uname -s 2>/dev/null || echo unknown)
1212
13+ # Reticulum / rngit dual-push origin (GitHub fetch, GitHub+RNS push).
14+ RNS_DEST ?= 06a54b505bb67b25ef3f8097e8001edc
15+ RNS_GROUP ?= public
16+ RNS_REPO ?= micron-parser-go
17+ RNS_REMOTE ?= rns://$(RNS_DEST ) /$(RNS_GROUP ) /$(RNS_REPO )
18+ GH_REPO ?= Quad4-Software/Micron-Parser-Go
19+ CHANGELOG ?= CHANGELOG.md
20+ # TAG required for rngit-release / rngit-notes / rngit-push-tag (e.g. TAG=v1.1.0).
21+ TAG ?=
22+
1323ifeq ($(OS ) ,Windows_NT)
1424 LIB_FILE := $(LIB_NAME ) .dll
1525else ifneq (,$(findstring MINGW,$(UNAME_S)))
2434 LIB_FILE := $(LIB_NAME ) .so
2535endif
2636
27- .PHONY : all test test-race test-smoke test-interop test-interop-python test-wasm fuzz wasm serve-web lib lib-install bindings-test clean cover bench bench-go bench-js bench-wasm sync-vendor-js check-vendor-js verify fmt fix lint lint-gosec vet
37+ .PHONY : all test test-race test-smoke test-interop test-interop-python test-wasm fuzz wasm serve-web lib lib-install bindings-test clean cover bench bench-go bench-js bench-wasm sync-vendor-js check-vendor-js verify fmt fix lint lint-gosec vet rngit-notes rngit-push rngit-push-tag rngit-release rngit-release-local rngit-list
2838
2939all : check-vendor-js test wasm
3040
@@ -190,3 +200,35 @@ bindings-test: lib
190200clean :
191201 rm -f $(WASM_OUT ) $(WASM_JS ) coverage.out coverage.html
192202 rm -rf $(DIST )
203+
204+ # Print CHANGELOG section for TAG (strips leading v).
205+ rngit-notes :
206+ @test -n " $( TAG) " || (echo " set TAG=vX.Y.Z" >&2 ; exit 2)
207+ @./scripts/changelog-entry.sh " $( TAG) " " $( CHANGELOG) "
208+
209+ # Push current branch to dual-push origin (GitHub + RNS).
210+ rngit-push :
211+ git push origin HEAD
212+
213+ # Push TAG to dual-push origin. Example: make rngit-push-tag TAG=v1.1.0
214+ rngit-push-tag :
215+ @test -n " $( TAG) " || (echo " set TAG=vX.Y.Z" >&2 ; exit 2)
216+ git push origin " refs/tags/$( TAG) "
217+
218+ # Publish rngit release for TAG using GitHub release assets + CHANGELOG notes.
219+ # Example: make rngit-release TAG=v1.1.0
220+ rngit-release :
221+ @test -n " $( TAG) " || (echo " set TAG=vX.Y.Z" >&2 ; exit 2)
222+ RNS_REMOTE=" $( RNS_REMOTE) " GH_REPO=" $( GH_REPO) " CHANGELOG=" $( CHANGELOG) " \
223+ ./scripts/rngit-release.sh " $( TAG) "
224+
225+ # Same as rngit-release but upload from a local directory (default: dist).
226+ # Example: make rngit-release-local TAG=v1.1.0 ARTIFACTS=./dist
227+ ARTIFACTS ?= $(DIST )
228+ rngit-release-local :
229+ @test -n " $( TAG) " || (echo " set TAG=vX.Y.Z" >&2 ; exit 2)
230+ RNS_REMOTE=" $( RNS_REMOTE) " CHANGELOG=" $( CHANGELOG) " \
231+ ./scripts/rngit-release.sh " $( TAG) " " $( ARTIFACTS) "
232+
233+ rngit-list :
234+ rngit release " $( RNS_REMOTE) " list
0 commit comments