moth/CHANGELOG.md

241 lines
7.8 KiB
Markdown
Raw Normal View History

2019-11-26 12:09:40 -07:00
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
2024-01-19 12:24:37 -07:00
2024-01-19 12:09:53 -07:00
## [v4.5.0] - 2024-01-19
2023-09-12 17:30:36 -06:00
### Changed
- Answer hashes are now the first 4 characters of the hex-encoded SHA1 digest
- Reworked the built-in theme
2023-09-14 17:42:02 -06:00
- Devel mode no longer accepts an empty team ID
- messages.html moved into theme
2024-01-03 14:28:50 -07:00
### Added
- [moth.mjs](theme/moth.mjs) is now the standard MOTH library for ECMAScript
- Exported state now includes "Enabled" boolean
2024-01-03 14:30:13 -07:00
- New `Extra` field on puzzles will allow arbitrary metadata on puzzles.
2023-09-12 17:30:36 -06:00
2023-10-18 15:01:51 -06:00
## [v4.4.11] - 2023-04-11
### Changed
- CI/CD now builds tags
## [v4.4.10] - 2022-10-21
### Changed
- `enabled` file is no longer used
- `hours.txt` parsing logs more verbosely
- Participant IDs are no longer used anywhere
- A few changes to CI/CD test reporting
2022-05-12 18:15:46 -06:00
## [v4.4.9] - 2022-05-12
### Changed
- Added a performance optimization for events with a large number of teams
backed by NFS
2022-05-10 17:53:31 -06:00
## [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 the `teams/` directory)
2022-05-10 15:26:01 -06:00
## [v4.4.7] - 2022-05-10
### Changed
- Initializing an instance now truncates `events.csv`
2021-10-26 13:33:57 -06:00
## [v4.4.6] - 2021-10-26
2021-10-26 12:48:23 -06:00
### 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.
2021-10-20 14:27:32 -06:00
## [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.
2021-10-20 14:22:21 -06:00
## [v4.3.3] - 2021-10-20
2021-10-13 16:43:51 -06:00
### 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)
2021-10-20 14:22:30 -06:00
- A few other very minor bugs were closed when I couldn't reproduce them or decided they weren't actually bugs.
2021-10-13 16:43:51 -06:00
2021-10-14 19:17:38 -06:00
### Changed
- Many error messages were changed to start with a lower-case letter,
in order to satisfy a new linter check.
2021-10-19 17:22:11 -06:00
- CI/CD moved to our Cyber Fire Gitlab instance
2021-10-20 14:22:21 -06:00
- 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 ;)
2021-10-14 19:17:38 -06:00
2021-09-30 16:50:32 -06:00
## [v4.2.2] - 2021-09-30
### Added
- `debug.notes` front matter field
## [v4.2.1] - 2021-04-13
2021-04-13 17:28:22 -06:00
### Fixed
- Transpiled KSAs no longer dropped
2021-03-29 12:27:07 -06:00
## [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 mkpuzzle
- `transpile 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](https://github.com/dirtbags/moth-devel).
### Fixed
- `transpile` will now run `mkcategory` and `mkpuzzle` when invoked without `-dir`
## [v4.1.1] - 2020-03-02
2021-03-02 12:42:43 -07:00
### Removed
- ppc64le and i386 builds of github, because ppc64le keep failing mysteriously, and we don't need them anyhow.
2021-03-02 11:26:54 -07:00
## [v4.1.0] - 2020-03-02
2021-02-25 16:00:19 -07:00
### Added
2021-02-25 16:03:41 -07:00
- `transpile` now has a `markdown` command,
2021-03-02 11:25:38 -07:00
so you can use the "stock" markdown formatter
2021-02-25 16:00:19 -07:00
2020-11-19 14:26:53 -07:00
### Changed
2020-12-02 19:55:23 -07:00
- 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.
2021-02-01 16:55:23 -07:00
- 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` to `goldmark`, to support CommonMark
2021-02-25 16:00:19 -07:00
- `puzzle.json`no longer has `Pre` and `Post` sections
### Removed
2021-02-25 16:00:19 -07:00
- JavaScript code we didn't write is now pulled from a CDN
2020-10-29 13:51:49 -06:00
2020-10-29 13:51:49 -06:00
## [v4.0.2] - 2020-10-29
2020-10-29 10:45:45 -06:00
### Added
- Build multiarch Docker images
2020-10-28 17:42:23 -06:00
### Changed
- Stop building devel server from this codebase; this is moving to a new repo
2020-10-27 16:23:03 -06:00
## [v4.0.1] - 2020-10-27
### Fixed
- Clear Debug.summary field when making mothballs
2020-10-16 14:18:44 -06:00
### Changed
- Regulated category/puzzle provider API: now everything returns a JSON dictionary (or octet stream for files)
2020-10-14 18:20:49 -06:00
### Added
- More log events
- [Log channels document](docs/logs.md)
- More detailed [API documntation](docs/api.md)
2020-10-20 11:18:15 -06:00
- Transpiler warning if `mkpuzzle` exists but is not executable
2020-10-14 18:20:49 -06:00
2020-10-14 16:08:19 -06:00
## [v4.0.0] - 2020-10-14
2020-10-13 18:43:36 -06:00
### Fixed
- Multiple bugs preventing production server from working properly
- CI builds should be working now
- Team registration now correctly writes names to files
2020-10-14 09:46:51 -06:00
- Anonymized team names now only computed once per team
2020-10-14 10:11:37 -06:00
- Don't output "self" team for unauthenticated state exports
2020-10-13 18:43:36 -06:00
2020-10-14 16:08:19 -06:00
### Added
- Documented the HTTP API
- Added a drawing of how things fit together
2020-10-13 18:43:36 -06:00
## [v4.0-rc1] - 2020-10-13
2019-11-26 12:09:40 -07:00
### Changed
- Major rewrite/refactor of `mothd`
2020-09-17 18:56:40 -06:00
- 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
2020-09-17 18:56:40 -06:00
- Puzzle URLs are now just `/content/${cat}/${points}/`
- Changes to `state` directory
- Most files now have a bit of (English) documentation at the beginning
- `state/until` is now `state/hours` and can specify multiple begin/end hours
- `state/disabled` is now `state/enabled`
- Mothball structure has changed
- Mothballs no longer contain `map.txt`
2020-09-17 18:56:40 -06:00
- Mothballs no longer obfuscate content paths
- Clients now expect unlocked puzzles to just be `map[string][]int`
2020-09-17 18:56:40 -06:00
- 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
2019-11-26 12:09:40 -07:00
### Deprecated
### Removed
- Development server is gone now; use `mothd` directly with a flag to transpile on the fly
### Fixed
### Security
2020-03-16 10:34:36 -06:00
## [v3.5.1] - 2020-03-16
2020-03-16 10:31:44 -06:00
### Fixed
- Support insta-checking for legacy puzzles
2020-03-13 15:14:43 -06:00
2020-03-13 15:14:43 -06:00
## [v3.5.0] - 2020-03-13
2020-03-10 14:58:43 -06:00
### Changed
- We are now using SHA256 instead of djb2hash
2019-11-20 14:52:58 -07:00
### 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).
2019-12-17 10:48:22 -07:00
- 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
2020-03-10 14:58:43 -06:00
- Mothballs can now specify `X-Answer-Pattern` header fields, which allow `*`
at the beginning, end, or both, of an answer. This is `X-` 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
2019-11-18 10:42:56 -07:00
2019-11-20 17:30:48 -07:00
## [3.4.3] - 2019-11-20
2019-11-20 17:29:44 -07:00
### Fixed
- Made top-scoring teams full-width
2019-11-18 10:42:56 -07:00
2019-11-18 10:42:56 -07:00
## [3.4.2] - 2019-11-18
### Fixed
- Issue with multiple answers in devel server and YAML-format .moth
2019-11-13 15:31:13 -07:00
2019-11-17 17:20:22 -07:00
## [3.4.1] - 2019-11-17
### Fixed
- Scoreboard was double-counting points
2019-11-13 15:31:13 -07:00
## [3.4] - 2019-11-13
2019-11-08 12:26:53 -07:00
### Added
- A changelog
- Support for embedding Python libraries at the category or puzzle level
2019-11-08 12:29:38 -07:00
- 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