mirror of https://github.com/dirtbags/moth.git
7.8 KiB
7.8 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[v4.5.0] - 2024-01-19
Changed
- Answer hashes are now the first 4 characters of the hex-encoded SHA1 digest
- Reworked the built-in theme
- Devel mode no longer accepts an empty team ID
- messages.html moved into theme
Added
- moth.mjs is now the standard MOTH library for ECMAScript
- Exported state now includes "Enabled" boolean
- New
Extra
field on puzzles will allow arbitrary metadata on puzzles.
[v4.4.11] - 2023-04-11
Changed
- CI/CD now builds tags
[v4.4.10] - 2022-10-21
Changed
enabled
file is no longer usedhours.txt
parsing logs more verbosely- Participant IDs are no longer used anywhere
- A few changes to CI/CD test reporting
[v4.4.9] - 2022-05-12
Changed
- Added a performance optimization for events with a large number of teams backed by NFS
[v4.4.8] - 2022-05-10
Changed
- You can now join with a team ID not appearing in
teamids.txt
, as long as it is registered (in theteams/
directory)
[v4.4.7] - 2022-05-10
Changed
- Initializing an instance now truncates
events.csv
[v4.4.6] - 2021-10-26
Added
- State is now cached in memory, in an attempt to reduce filesystem metadata operations, which kill NFS.
[v4.4.5] - 2021-10-26
Added
- Images deploying to docker hub too. We're now at capacity for our Docker Hub team.
[v4.4.4] - 2021-10-20
Changed
- Trying to get CI push of built images. I expect this to fail, too. But in a way that can help me debug the issue.
[v4.3.3] - 2021-10-20
Fixed
- Points awarded while scoring is paused are now correctly sorted (#168)
- Writing a new mothball with the same name is now detected and the new mothball loaded (#172)
- Regression test for issue where URL path leading directories were ignored (#144)
- A few other very minor bugs were closed when I couldn't reproduce them or decided they weren't actually bugs.
Changed
- Many error messages were changed to start with a lower-case letter, in order to satisfy a new linter check.
- CI/CD moved to our Cyber Fire Gitlab instance
- I attempted to have the build thingy automatically build moth:v4 and moth:v4.3 and moth:v4.3.3 images, but I can't test it without tagging a release. So v4.3.4 might come out very soon after this ;)
[v4.2.2] - 2021-09-30
Added
debug.notes
front matter field
[v4.2.1] - 2021-04-13
Fixed
- Transpiled KSAs no longer dropped
[v4.2.0] - 2020-03-26
Changed
- example/5/draggable.js fix for FireFox to prevent dropping a draggable trying to load a URL
transpile
arguments now work the same way for the transpile binary as they do for mkpuzzletranspile inventory
does what you expect: inventory of current category, not inventory of all categories
Removed
- No longer building a
moth-devel
image, this is now handled by the moth-devel repository.
Fixed
transpile
will now runmkcategory
andmkpuzzle
when invoked without-dir
[v4.1.1] - 2020-03-02
Removed
- ppc64le and i386 builds of github, because ppc64le keep failing mysteriously, and we don't need them anyhow.
[v4.1.0] - 2020-03-02
Added
transpile
now has amarkdown
command, so you can use the "stock" markdown formatter
Changed
- event.log is now events.csv, to make it easier to import to a spreadsheet
- When in devel mode, any team ID may score points. This allows more interaction with the state directory.
- When in devel mode, any team ID may be registered.
It still works the same way if you register a team in
teamids.txt
, but now you can use anything and it will put you on an already existing team named<devel:$ID>
. - switched from
blackfriday
togoldmark
, to support CommonMark puzzle.json
no longer hasPre
andPost
sections
Removed
- JavaScript code we didn't write is now pulled from a CDN
[v4.0.2] - 2020-10-29
Added
- Build multiarch Docker images
Changed
- Stop building devel server from this codebase; this is moving to a new repo
[v4.0.1] - 2020-10-27
Fixed
- Clear Debug.summary field when making mothballs
Changed
- Regulated category/puzzle provider API: now everything returns a JSON dictionary (or octet stream for files)
Added
- More log events
- Log channels document
- More detailed API documntation
- Transpiler warning if
mkpuzzle
exists but is not executable
[v4.0.0] - 2020-10-14
Fixed
- Multiple bugs preventing production server from working properly
- CI builds should be working now
- Team registration now correctly writes names to files
- Anonymized team names now only computed once per team
- Don't output "self" team for unauthenticated state exports
Added
- Documented the HTTP API
- Added a drawing of how things fit together
[v4.0-rc1] - 2020-10-13
Changed
- Major rewrite/refactor of
mothd
- Clear separation of roles: State, Puzzles, and Theme
- Sqlite, Redis, or S3 should fit in easily now
- Will allow "dynamic" puzzles now, we just need a flag to enable it
- Server no longer provides unlocked content
- Puzzle URLs are now just
/content/${cat}/${points}/
- Puzzle URLs are now just
- Changes to
state
directory- Most files now have a bit of (English) documentation at the beginning
state/until
is nowstate/hours
and can specify multiple begin/end hoursstate/disabled
is nowstate/enabled
- Clear separation of roles: State, Puzzles, and Theme
- Mothball structure has changed
- Mothballs no longer contain
map.txt
- Mothballs no longer obfuscate content paths
- Clients now expect unlocked puzzles to just be
map[string][]int
- Mothballs no longer contain
- New
/state
API endpoint- Provides all server state: event log, team mapping, messages, configuration
Added
- New
transpile
CLI command- Provides
mothball
action to create mothballs - Lets you test a few development server things, if you want
- Provides
Deprecated
Removed
- Development server is gone now; use
mothd
directly with a flag to transpile on the fly
Fixed
Security
[v3.5.1] - 2020-03-16
Fixed
- Support insta-checking for legacy puzzles
[v3.5.0] - 2020-03-13
Changed
- We are now using SHA256 instead of djb2hash
Added
- URL parameter to points.json to allow returning only the JSON for a single team by its team id (e.g., points.json?id=abc123).
- A CONTRIBUTING.md to describe expectations when contributing to MOTH
- Include basic metadata in mothballs
- add_script_stream convenience function allows easy script addition to puzzle
- Autobuild Docker images to test buildability
- Extract and use X-Forwarded-For headers in mothd logging
- Mothballs can now specify
X-Answer-Pattern
header fields, which allow*
at the beginning, end, or both, of an answer. This isX-
because we are hoping to change how this works in the future.
Fixed
- Handle cases where non-legacy puzzles don't have an
author
attribute - Handle YAML-formatted file and script lists as expected
- YAML-formatted example puzzle actually works as expected
- points.log will now always be sorted chronologically
[3.4.3] - 2019-11-20
Fixed
- Made top-scoring teams full-width
[3.4.2] - 2019-11-18
Fixed
- Issue with multiple answers in devel server and YAML-format .moth
[3.4.1] - 2019-11-17
Fixed
- Scoreboard was double-counting points
[3.4] - 2019-11-13
Added
- A changelog
- Support for embedding Python libraries at the category or puzzle level
- Minimal PWA support to permit caching of currently-unlocked content
- Embedded graph in scoreboard
- Optional tracking of participant IDs
- New
notices.html
file for sending broadcast messages to players
Changed
- Use native JS URL objects instead of wrangling everything by hand