Skip to content

Instantly share code, notes, and snippets.

@simoncozens
Created January 13, 2020 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save simoncozens/9506892e57acad7924dcf0819341f909 to your computer and use it in GitHub Desktop.
Save simoncozens/9506892e57acad7924dcf0819341f909 to your computer and use it in GitHub Desktop.
## [0.10.0](https://github.com/sile-typesetter/sile/compare/v0.9.5...v0.10.0) (2020-01-13)
### ⚠ BREAKING CHANGES
* This removes the auto-guessing file extension mechanism that allowed *.sil files to be loaded without specifying the full file name with extensions.
A command like `sile test` will no longer find and build sile.sil, you must
run `sile test.sil`. The mechanism that was doing this was a hack than only
worked in some scenarios anyway, and dropping it instead of trying to cover
all the edge cases will make it that much easier to use and document.
Importantly it avoids edge cases where both *.xml, *.sil, and/or *.lua files
all have the same name and the loader really has so idea which one you mean.
Note that _packages_ may still be loaded with no file extension, this
does not affect the `require()` mechanism that looks for *.lua and
various other incantations by default.
* Many internal classes have been renamed or deprecated, and the default class model has changed from `std` to `penlight`. Old methods should still be available, but those developing external Lua packages and classes will want to check the [wiki](https://github.com/sile-typesetter/sile/wiki) for instructions on how to update their code.
### Bug Fixes and Improvements
Most of the many, many improvements in this release are under the hood - the build and test systems have been significantly overhauled, the release process has been streamlined and partially automated, continuous integration now tests code quality and commit messages, and there has been an enormous amount of code refactoring. All of these things make for a more readable codebase and a more reliable and maintainable development environment, which we hope will facilitate SILE development in the future.
There are also some user-facing improvements:
* Installation is made easier, as SILE will now download and installed the Lua modules that it requires. For those who have their own Lua installation and *wish* to install dependent modules with luarocks, use the `--system-luarocks` argument to `./configure`.
* Error and warning reporting has been improved; SILE will now tell you where in the document any errors occurred and the stack of commands it took to get there.
* Language support: fixes to hyphenation in Danish, Greek, Finnish, and Ukranian. French punctuation conventions are followed, with (optional) non-breaking spaces before high punctuation marks. Numbers can now be formatted as ordinals (at least for English and Turkish), by using the counter display type `nth`, and as words using the `string` display type.
* Improvements to tracking/letterspacing.
* Boustrophedon and grid packages now work again.
* We fixed a rare crash when font is specified by filename.
* Dependency system: `sile -m` will output a Makefile snippet showing all the files required to build a SILE document.
* Adding the `toc=false` option to a book section or subsection will cause it not to be added to the table of contents.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment