Version 1.1.0 - bac d'Eloka
With this release, we begin a new tradition of naming releases with famous court cases in French administrative law. The Bac d'Eloka case sets a distinction between administrative public services and public services that have and industrial and commercial aspect.
As always, all the features are documented in the Catala book.
New features
Testing integration within the VSCode IDE
The Catala language server now fully integrates with the "Testing" pane of the VSCode IDE, showing :
- the list of available tests;
- which tests pass or not after a run;
- failed assertions and more.
Test UI
The Catala language server now features a fully-fledged UI for creating and editing tests! Activate it by creating a file containing test in the name, right click "Open in Catala test editor"! Make sure the GUI editor is enable in the VSCode extension settings.
JSON inputs and outputs
You can now pass JSON inputs to clerk run when running a scope! Useful for debugging and prototyping; we advise you use proper test declarations as Catala scopes most of the time though, to benefit from all the integration and tooling we already have around them.
Fixes and small improvements
- Assertions can now be used anywhere inside of expressions
- Error messages can be added using the
#[error.message = "Some message"]attribute - You can now have enumerations with hundreds of different cases, and no bug will occur in the backends.
- The Python backend produces more readable code and avoids
ifpattern nested too deeply. - Files with extensions
.catala_en.mdand.catala_fr.mdare recognized as valid Catala files, while being read by most tools as Markdown files. - A warning now shows up if you copy/paste a scope variable definition without editing it.
- External modules now support externally-defined types.
- The test UI now has a tabular editor for values who are lists.
Contributor's log
See also the catala-language-server sister release for the contributor's log of the other repository.
- Add a short document on the release process by @AltGr in #908
- Handle multiple errors during compilation passes by @vincent-botbol in #907
- Allow Catala files with a .md suffix by @vincent-botbol in #916
- Fix silent assertion failures by @vincent-botbol in #919
- Fix included_dirs bug when a trailing dir separator is present by @vincent-botbol in #920
- Measure and report test coverage by @denismerigoux in #869
- OCaml: use constant constructors for constructors with empty payload by @AltGr in #924
- Some small optims by @AltGr in #925
- Python: use "elif" when appropriate instead of nested "if"s, allow long lines by @AltGr in #926
- Fix consistency issues of module file-name normalisation by @AltGr in #927
- Add a warning for conflicting definitions with identical conditions by @AltGr in #930
- Refactor module loading by @AltGr in #929
- Add runtimes as .PHONY in Makefile by @vincent-botbol in #933
- Add Json encoding of scope inputs and --json-input to interpret command by @vincent-botbol in #928
- Add support for external types by @AltGr in #935
- Upgrade ocamlformat to 0.28 by @AltGr in #940
- Allow asserts in expressions; add support for error messages by @AltGr in #938
- Automatically open same-named types in modules by @AltGr in #942
- Provide version bound for json-data-encoding by @denismerigoux in #943
- Fix code generator and explain plugin bugs by @AltGr in #944
- Add an algorithm to determine the day of the week given a date in the standard library by @guelfaure in #937
- Fix conflict warning by @vincent-botbol in #945
- Add Integer.sum, etc. to the stdlib by @AltGr in #946
- Carry over correct path of qualified topdefvars by @vincent-botbol in #949
- Stdlib: refactor day_of_week computation by @AltGr in #948
- Switch menhir deprecated function by @vincent-botbol in #950
- Fix broken links and typo in README by @slawsk in #951
New Contributors
- @guelfaure made their first contribution in #937
- @slawsk made their first contribution in #951
Full Changelog: 1.0.0...1.1.0