aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile22
-rw-r--r--README.org4
-rw-r--r--downstroke.egg2
3 files changed, 25 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 1577aa8..4bd284a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,9 @@
.DEFAULT_GOAL := engine
+# Canonical release string for the tree — keep in sync with downstroke.egg and
+# README v… markers (see bump-version).
+VERSION := 1.0.0rc1
+
# Modules listed in dependency order
MODULE_NAMES := entity tween tilemap world input physics renderer assets animation engine mixer sound prefabs scene-loader
OBJECT_FILES := $(patsubst %,bin/%.o,$(MODULE_NAMES))
@@ -37,7 +41,7 @@ bin/%.o: %.scm | bin
csc -c -J -unit downstroke.$* $*.scm -o bin/$*.o -I bin
@if [ -f downstroke.$*.import.scm ]; then mv downstroke.$*.import.scm bin/; fi
-.PHONY: clean test engine demos filter format
+.PHONY: clean test engine demos filter format bump-version
# Reformat every tracked .scm file with Emacs `indent-region` under the user's
# real init (so geiser-chicken / scheme-mode rules apply consistently).
@@ -87,3 +91,19 @@ demos: engine $(DEMO_BINS)
bin/demo-%: demo/%.scm $(OBJECT_FILES) | bin
csc demo/$*.scm $(OBJECT_FILES) -o bin/demo-$* -I bin $(USES_FLAGS) -L -lSDL2_mixer
+
+# Bump VERSION, downstroke.egg, and README v… strings (POSIX sed: write temp, mv).
+# NEW must not contain &, backslash, or # (sed replacement / delimiter limits).
+bump-version:
+ifndef NEW
+ $(error usage: make bump-version NEW=1.2.3)
+endif
+ @set -e; \
+ test "$(VERSION)" != "$(NEW)" || { echo "bump-version: already at $(VERSION)"; exit 0; }; \
+ old='$(VERSION)'; new='$(NEW)'; \
+ oesc=$$(printf '%s' "$$old" | sed 's/\./\\./g'); \
+ t=$$$$.bump; \
+ sed "s#^VERSION := $$oesc#VERSION := $$new#" Makefile > "Makefile.$$t" && mv "Makefile.$$t" Makefile; \
+ sed "s#((version \"$$oesc\")#((version \"$$new\")#" downstroke.egg > "downstroke.egg.$$t" && mv "downstroke.egg.$$t" downstroke.egg; \
+ sed "s#v$$oesc#v$$new#g" README.org > "README.org.$$t" && mv "README.org.$$t" README.org; \
+ echo "bump-version: $$old -> $$new (Makefile, downstroke.egg, README.org)"
diff --git a/README.org b/README.org
index 368921c..8e4db4e 100644
--- a/README.org
+++ b/README.org
@@ -41,7 +41,7 @@ Early extraction phase. The engine logic is fully working — it powers [[https:
| 8 | Camera follow | pending |
| 9 | Named scene states | pending |
| 10 | AI tag-based lookup | pending |
-| 11 | Package as Chicken egg (v0.1.0) | pending |
+| 11 | Package as Chicken egg (v1.0.0rc1) | pending |
| 12 | Macroknight ported to use the egg | pending |
Milestones 1–6 are pure refactoring. Milestone 7 is the design pivot where the public API stabilises. Milestones 11–12 produce the first installable egg and validate it against macroknight.
@@ -72,6 +72,8 @@ Single test module:
csi -s tests/physics-test.scm
#+end_src
+The canonical version string is =VERSION= at the top of the =Makefile=; it must match =((version "…")= in =downstroke.egg= and the =v…= marker in the milestone table. Bump all three with =make bump-version NEW=1.2.3= (POSIX =sed=; =NEW= must not contain =&=, backslash, or =#=).
+
** Architecture
Modules live at the project root. Each compiles as a Chicken unit (=csc -c -J -unit=). Compile order follows the dependency graph:
diff --git a/downstroke.egg b/downstroke.egg
index 1a3a1d8..7327924 100644
--- a/downstroke.egg
+++ b/downstroke.egg
@@ -1,4 +1,4 @@
-((version "0.1.0")
+((version "1.0.0rc1")
(synopsis "2D tile-driven game engine for Chicken Scheme, built on SDL2")
(author "Gene Pasquet")
(license "BSD-2-Clause")