moth/CHANGELOG.md

94 lines
3.6 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).
2020-09-17 18:56:40 -06:00
## [v4.0.0] - Unreleased
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
2019-11-08 12:26:53 -07:00
## [Unreleased]
2020-02-28 16:30:01 -07:00
### Changed
- Endpoints `/points.json`, `/puzzles.json`, and `/messages.html` (optional theme file) combine into `/state`
2020-02-28 16:32:31 -07:00
- No more `__devel__` category for dev server: this is now `.config.devel` in the `/state` endpoint
2020-02-28 16:30:01 -07:00
- Development server no longer serves a static `/` with links: it now redirects you to a randomly-generated seed URL
- Default theme modifications to handle all this
- Default theme now automatically "logs you in" with Team ID if it's getting state from the devel server
2019-11-20 17:30:48 -07:00
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
## [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
## [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