- [#740] Proofread ‘For beginners’ section of docs. Thanks @delucis!
- [#741] LilyPond's log is displayed on LilyPond compilation error.
- [#749] Added `LilyPondCommand` to Abjad's global namespace.
- [#752] Taught `detach()` about different types of grace container.
- [#753] Taught `Dynamics` about _sforzando_ dynamic names.
- [#744] Refactoring and cleanup in `schemetools`. Thanks @ajyoon!
- [#745] Reimplemented Abjad's repr, storage format and object templating system.
- [#755, #760, #761, #763] Cleaned-up class member ordering via a new command-line script. Thanks @ajyoon!
- [#766] Abjad's `ajv` looks for `.ajv` config files in $HOME, the current directory and any parent directory thereof. A [doctest] section can specify imports to be run at the beginning of each doctest in `ajv doctest` via an `imports` key.
- [#745] `AbjadObject`'s `_storage_format_specification` and `_repr_specification` properties are deprecated in favor of a new unified `_get_format_specification()` method. The old properties will no longer be supported in the next Abjad release: 2.20.
- [#762] Improved interaction between chords and ties. Thanks @quesebifurcan!
- [#767] Fixed edge-cases in Graphviz attribute-handling and append/extend behavior.
- [#774] NamedPitch.invert() guards against errors from multiply-augmented or diminished intervals.
Special thanks to 2.19 contributors @delucis (Chris Swithinbank), @ajyoon (Andrew Yoon) and @quesebifurcan (Fredrik Wallberg) on Github, and to Jeffrey Treviño for his constant and patient organization.