From f73ea5773876167f6f6678d0394b50845551fdbc Mon Sep 17 00:00:00 2001 From: Brent Yorgey Date: Mon, 15 Jul 2024 14:05:42 -0500 Subject: [PATCH] 0.6 release (#1980) Closes #1940. --- CHANGELOG.md | 97 +++++++++++++++++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 4 +- README.md | 2 +- swarm.cabal | 2 +- 4 files changed, 101 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46e161977..d53c57eb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,102 @@ # Revision history for swarm +## **0.6.0.0** - 2024-07-15 + +Some of the highlights of this release include native Windows support, +customizable keybindings, type synonyms and equirecursive types, and a +prototype tournament server +([#1798](https://github.com/swarm-game/swarm/pull/1798)) where players +can upload their solutions to challenge scenarios. See below for a +more detailed list (or see the [complete list of git +commits](https://github.com/swarm-game/swarm/commits/main/?since=2023-11-01)). + +Aside from the more visible changes listed below, this release cycle saw a *lot* of internal refactoring. +For example, we finished splitting the codebase into a number of +independent sublibraries and split several large modules into smaller +modules. + +### Community + +* New [Discord server](https://discord.gg/kp8MuSgkPw)! + +### Breaking changes + +* Types are now required to start with an uppercase letter ([#1583](https://github.com/swarm-game/swarm/pull/1583)) + * Use `swarm format --v0.5` to convert old code. + +### Bugfixes + +* Variables in a local monadic binder escape to outer scopes + ([#681](https://github.com/swarm-game/swarm/issues/681); fixed by [#1928](https://github.com/swarm-game/swarm/pull/1928)) + +### New Features + +#### Language + +* `volume` command measuring the enclosed area around a given location + ([#1747](https://github.com/swarm-game/swarm/pull/1747)) +* `sow` command for planting growing entities that spread ([#1817](https://github.com/swarm-game/swarm/pull/1817)) +* Type synonyms ([#1865](https://github.com/swarm-game/swarm/pull/1865)) +* Recursive types ([#1894](https://github.com/swarm-game/swarm/pull/1894)) +* Entity tags and related commands ([#1635](https://github.com/swarm-game/swarm/pull/1635)) +* `meetAll` command now returns a list ([#1999](https://github.com/swarm-game/swarm/pull/1999)) + +#### Entities + recipes + +* New `lens` entity and recipe for `detonator` ([#1876](https://github.com/swarm-game/swarm/pull/1876)) +* `infinite improbability drive` device enabling `teleport` command + ([#1724](https://github.com/swarm-game/swarm/pull/1724)) +* Recipes for `rolex`, `olfactometer`, `dozer blade`, and `hourglass` entities + ([#2028](https://github.com/swarm-game/swarm/pull/2028), [#2025](https://github.com/swarm-game/swarm/pull/2025)) + +#### New scenarios + +* Beekeeping scenario ([#1599](https://github.com/swarm-game/swarm/pull/1599)) +* Fishing scenario ([#1628](https://github.com/swarm-game/swarm/pull/1628)) +* Dim sum restaurant ([#1686](https://github.com/swarm-game/swarm/pull/1686)) +* Gallery scenario ([#1760](https://github.com/swarm-game/swarm/pull/1760)) +* Snake automata ([#1699](https://github.com/swarm-game/swarm/pull/1699)) + +#### Scenario mechanics and authoring improvements + +* Path caching, for more efficient repeated use of the `path` command ([#1595](https://github.com/swarm-game/swarm/pull/1595)) +* Render any map to PNG ([#1632](https://github.com/swarm-game/swarm/pull/1632)) +* Extensible terrain ([#1775](https://github.com/swarm-game/swarm/pull/1775)) +* Spreadable plant growth ([#1817](https://github.com/swarm-game/swarm/pull/1817)) +* Exercising commands can consume entities ([#1777](https://github.com/swarm-game/swarm/pull/1777)) +* Recognize built structures ([#1579](https://github.com/swarm-game/swarm/pull/1579)) +* Test for point-to-point connectivity ([#1721](https://github.com/swarm-game/swarm/pull/1721)) +* Validate palettes ([#1938](https://github.com/swarm-game/swarm/pull/1938)), map shape ([#1935](https://github.com/swarm-game/swarm/pull/1935)), subworld references ([#1875](https://github.com/swarm-game/swarm/pull/1875)) + +#### UI enhancements + +* Fix REPL type display ([#1610](https://github.com/swarm-game/swarm/pull/1610)) +* Handle backword kill word event in REPL ([#1861](https://github.com/swarm-game/swarm/pull/1861)) +* Make log error messages ephemeral ([#1877](https://github.com/swarm-game/swarm/pull/1877)) +* Pretty print code blocks according to widget size ([#1897](https://github.com/swarm-game/swarm/pull/1897)) +* Automatically insert matching close brackets at REPL ([#1953](https://github.com/swarm-game/swarm/pull/1953)) +* Highlight only the part of the REPL input indicated as the location + of an error ([#1957](https://github.com/swarm-game/swarm/pull/1957)) +* Popups for new achievements, recipes, and commands + ([#2027](https://github.com/swarm-game/swarm/pull/2027)) +* Save current REPL input with down arrow + ([#2000](https://github.com/swarm-game/swarm/pull/2000)) +* Customizable keybindings ([#1979](https://github.com/swarm-game/swarm/pull/1979)) + +#### Command line options + +* `format` subcommand now tries to preserve comments ([#1845](https://github.com/swarm-game/swarm/pull/1845)) +* Add `format --v0.5` option to port code from older syntax ([#1851](https://github.com/swarm-game/swarm/pull/1851)) +* `keybindings` subcommand for displaying and initializing keybinding + configuration ([#1979](https://github.com/swarm-game/swarm/pull/1979)) +* `docs recipes` subcommand now takes `--forward` and `--next` flags + for filtering the output edges ([#2033](https://github.com/swarm-game/swarm/pull/2033)) + +### Building/packaging + +* Add Windows build to CI ([#1974](https://github.com/swarm-game/swarm/pull/1974)) +* Native Windows support ([#1617](https://github.com/swarm-game/swarm/pull/1617)) + ## **0.5.0.0** - 2023-11-01 ### Bugfixes diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b03b0fde..f77957ae0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -226,12 +226,12 @@ cabal install fourmolu-0.13.0.0 If this installation does not work, you may have to set your GHC to a version supported by `fourmolu`: ```bash -ghcup install ghc 9.4.5 +ghcup install ghc 9.8.2 ``` and/or: ```bash -ghcup set ghc 9.4.5 +ghcup set ghc 9.8.2 ``` You can run the formatter from the shell: diff --git a/README.md b/README.md index 471686770..0cc37f524 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ unreleased features), read on. Haskell toolchain. 1. Use `ghcup` to install a supported version of GHC: - ghcup install ghc 9.6.4 + ghcup install ghc 9.8.2 1. Use `ghcup` to install `cabal`: diff --git a/swarm.cabal b/swarm.cabal index 15ee9ba62..b9fd539a9 100644 --- a/swarm.cabal +++ b/swarm.cabal @@ -1,6 +1,6 @@ cabal-version: 3.8 name: swarm -version: 0.5.0.0 +version: 0.6.0.0 synopsis: 2D resource gathering game with programmable robots description: Swarm is a 2D programming and resource gathering