pupate

No description provided
git clone https://git.woozle.org/neale/pupate.git

pupate / docs
Neale Pickett  ·  2026-01-07

CHANGELOG.md

  1# Changelog
  2All notable changes to this project will be documented in this file.
  3
  4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
  5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  6
  7## [1.2.8] - 2026-01-07
  8### Changed
  9- Default variant no longer publishes all params
 10
 11### Added
 12- Default variant adds "moth releaseid" with .Params.release-id
 13
 14
 15## [1.2.7] - 2025-10-27
 16### Added
 17- Seed is now stored in v5 mothballs
 18
 19### Changed
 20- Modifying a file in the middle of the build will restart the build
 21
 22
 23## [1.2.6] - 2025-05-08
 24### Changed
 25- SCTR variant now uses `$VERSION` instead of `$GITLAB_CI_VERSION`
 26
 27
 28## [1.2.5] - 2025-05-08
 29### Fixed
 30- Version number is now correct (oops, forgot to edit changelog)
 31
 32
 33## [1.2.4] - 2025-05-08
 34### Added
 35- `getenv` template function
 36
 37### Changed
 38- SCTR variant changes
 39
 40## [1.2.3] - 2025-03-31
 41### Fixed
 42- moth4 variant adds question to body, if a question field exists
 43
 44## [1.2.2] - 2025-03-25
 45### Changed
 46- Default variant no longer sets a title when no title is provided for a puzzle
 47
 48## [1.2.1] - 2025-03-25
 49### Fixed
 50- Default variant logs every "moth" metadata field (#12)
 51- More relative URLs fixed in docs HTML
 52- Default variant: `-unsafe` now creates an unlocked category, which it should have been doing all along
 53
 54### Changed
 55- Adjusted some documentation to better reflect reality
 56
 57### Added
 58- Documentation on category formatting
 59- Descriptions of puzzle front matter fields
 60- "markdown" variant writes `puzzles.md`, covering every puzzle in the category
 61
 62
 63## [1.2.0] - 2025-03-03
 64### Added
 65- Cocoon can now be used to debug MOTH clients with `-web`.
 66- Stub call for `PUT /-/state/teamdata` to make clients think that team registration worked.
 67- State information now includes `TeamData.self`, 
 68  so clients will think they are already logged in.
 69
 70### Changed
 71- Variant web files are now served from `/`, not `/web`.
 72- Variant web files are only served in no such file exists in the `-web` directory.
 73  This allows client developers to use cocoon to work on (parts of) their client.
 74
 75## [1.1.2] - 2025-02-25
 76### Fixed
 77- Another attempt to fix the CI/CD release rule.
 78
 79## [1.1.1] - 2025-02-25
 80### Fixed
 81- Fixed (I hope) the CI/CD release rule, so there's actually a release.
 82  No other changes.
 83
 84## [1.1.0] - 2025-02-24
 85### Added
 86- New `cocoon` command provides interactive HTTPd view of transpiile;
 87  previously, this functionality was part of `pupate`
 88- `cocoon` will set up a `categories` directory, populating it with the example puzzles.
 89  You can skip this by providing your own puzzle categories directory as an argument.
 90- `pupate` command only compiles categories now; 
 91  the interactive development environment is `cocoon`
 92- "markdown" is a new variant that just outputs basic text.
 93
 94### Fixed
 95- Preserve whitespace in debug block (#4)
 96- Skip hidden directories when building categories (#5)
 97- Propagate environment variables (#6)
 98- Don't overwrite files created by mkpuzzle (#7)
 99- Unique $SEED per puzzle (#9)
100
101## [1.0.9] - 2025-01-31
102### Fixed
103- mothv4 variant no longer fails when objectives are provided
104
105
106## [1.0.8] - 2025-01-31
107### Fixed
108- Restored `{{.PupateVersion}}` and `{{.PupateDate}}`
109
110
111## [1.0.7] - 2025-01-24
112### Fixed
113- Restored ability to use template functions in puzzle.md files
114
115
116## [1.0.6] - 2025-01-02
117### Changed
118- Code restructured to support >1 command
119- CI/CD releases of container images and executables, from tagged commits
120- `static` directory is now `web`
121
122
123## [1.0.5] - 2024-12-17
124- Rapid development here in an attempt to automate Cyber Fire puzzle builds.
125
126### Fixed
127- v4 variant now includes answer hashes
128
129### Changed
130- We try to run python as `python3`. If that doesn't exist, we try `python`.
131  We do this because Windows and Linux disagree on what the executable is called.
132
133
134## [1.0.4] - 2024-12-16
135### Added
136- Variant configuration option `Mothball` to create `.mb` files from categories.
137- examples/counting/500 demonstrates attachments
138- category bodies are displayed by default variant
139- CI/CD container image build
140
141### Removed
142- InjectStyle / OverrideStyle is gone now.
143  If you don't want style sheets in a puzzle, you can remove them with JavaScript.
144  To date, we have never had a puzzle that wanted to do this:
145  the strategy appears to be "link to a new .html file".
146
147### Changed
148- unsafe mothballs get their own extension, to prevent possible oopsies
149- Linux binary no longer links libc
150- CI/CD builds Linux and Windows executables
151- Variant configuration is now YAML, not JSON
152- HTTP server mirros change to MOTHv5 API URLs:
153  `/puzzles/-/counting/1/index.html` is now
154  `/-/puzzles/1/index.html`
155- Removed outdated `moth.mjs` dependency:
156  everything is just inline now. Possibly easier to read.
157- When running as a server, 
158  pupate will keep going if it encounters an error in a category.
159  This will let you preview changes to a working puzzle,
160  even if there are problems with other puzzles in the category.
161- On Windows, we now try to run Python 3 as `python`, not `python3`.
162  This works on both installations of Python I have access to,
163  which is 100%!
164
165### Fixed
166- Added missing `puzzles.txt` to default variant.
167- Default variant now correctly creates `__MOTH` meta-directory.
168- Puzzle content no longer gets HTML escaped by `eval`:
169  This was causing `<` to be double-escaped by `markdownify`.
170
171
172## [1.0.3] - 2024-08-23
173### Added
174- `TrimSpace` template function
175- Version appears in a few places, and is computed from this changelog
176- `moth4` variant
177- Variant template directories can now have subdirectories
178- `{{skip}}` lets you omit pages
179- `{{(eval "content" .) | markdownify}}` works:
180  `{{(template "content" .) | markdownify}}` doesn't.
181- Log messages are now colorful, like a delicious fruit salad
182- Color syntax highlighting for code examples,
183  if you can get to cloudflare. Gracefully handles if you can't.
184
185### Changed
186- The web server always starts now, even when there is a build error
187- Builds are "debounced": you should only get one reload per save now
188- Try to speed up calls to `currentuser` on Windows by preloading at startup
189- MOTH and SCTR variants pull unique names for css and mjs,
190  helping with browser caching
191- Bespoke frontmatter library, so SCTR can fall back to rendering something
192  if cdnjs is unreachable, like if your roof is gone so you had to take down your
193  microwave Internet transciever
194- Variant directories now have static files at the top level
195- Internal refactoring
196- Pages and variants both use the same templating system (mostly).
197
198### Fixed
199- Documentation no longer has `{{- /* front matter line */ -}}` all over
200- SCTR variant works again
201- The way variants work internally makes me less confused
202
203
204## [1.0.2] - 2024-08-20
205### Fixed
206- `moth.mjs`: Possible fix for older Firefox puzzle rendering problem
207
208
209## [1.0.1] - 2024-08-19
210### Added
211- Online documentation
212- Loads and loads of changes
213
214
215## [1.0.0] - 2024-08-15
216- Initial release for internal testing