Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.6 release #1980

Merged
merged 12 commits into from
Jul 15, 2024
94 changes: 94 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,99 @@
# Revision history for swarm

## **0.6.0.0** - XXX

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 external changes listed below (including a few major
additions), this release cycle saw a *lot* of internal refactoring.
byorgey marked this conversation as resolved.
Show resolved Hide resolved
For example, we finished splitting the codebase into a number of
independent sublibraries, split several large modules into smaller
modules, and completed a number of additional simplifications and
improvements.
byorgey marked this conversation as resolved.
Show resolved Hide resolved

### 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))
byorgey marked this conversation as resolved.
Show resolved Hide resolved
* `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))

byorgey marked this conversation as resolved.
Show resolved Hide resolved
#### World features

* Path caching, for more efficient repeated use of the `path` command ([#1595](https://github.com/swarm-game/swarm/pull/1595))
* Code to 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))
byorgey marked this conversation as resolved.
Show resolved Hide resolved

#### 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))
byorgey marked this conversation as resolved.
Show resolved Hide resolved
* `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
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`:

Expand Down
2 changes: 1 addition & 1 deletion swarm.cabal
Original file line number Diff line number Diff line change
@@ -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
Expand Down