Features
* `seml`'s CLI has been reimplemented for better usability, scalability, and optics. (116)
* As part of this, all seml output will now use `rich` for pretty printing.
* `seml` now supports sacred's [named configurations](https://sacred.readthedocs.io/en/stable/configuration.html#:~:text=Named%20Configurations,-With%20so%20called&text=Note%20that%20the%20named%20ConfigScope,that%20are%20computed%20from%20them.&text=You%20can%20have%20multiple%20named,like%20for%20any%20given%20run.) (119)
* You can import named configurations in your yaml file at the top level with `$config[_<optional_name>]: str | {'name': str, 'priority': int}`. Use the optional priority to indicate the import order. The optional name allows for importing multiple configs.
* As part of this change, the whole configuration is now evaluated when starting an experiment! (no more duplicates if you add a default parameter to your yaml file)
* [OmegaConf](https://omegaconf.readthedocs.io/en/latest/) is now supported to allow interpolations in your config files. (#119)
* See [advanced_example_config.yaml](https://github.com/TUM-DAML/seml/blob/master/examples/advanced_example_config.yaml).
* `seml` now supports descriptions! (118)
* Use `seml.description` in your `yaml` files to set descriptions.
* You can retrospectively change descriptions via `seml collection description set`
* Descriptions are listed in `status`, `list` and `print-fail-trace`
* Support for wildcards and multiple config files (100)
* `seml <collection> add *.yaml`
* `seml <collection> add config1.yaml config2.yaml`
* Added `seml list <regex>` to list the state of all collections matching the regex (if left empty, all collections will be shown). (114)
* Note: this does not checks for killed or interrupted experiments.
* Added `seml <collection> print-fail-trace` to print all fail traces in a collection. (114)
* No more manual checks in the MongoDB!
* Added projections to `status` and `print-fail-trace` (118)
* You can inspect data from your failed experiments via `seml collection status -p config.dataset -p config.model`
* Added support for CLI argument completion (115).
* Install argument completion via `seml --install-completion {shell}`
* `seml` will complete collection names, command names, and flags.
* Added support for Python 3.10 and 3.11
Breaking Changes
* Dropped support for Python 3.7
* The new CLI has slightly changed parameters. Make sure to check the documentation!
* The behavior of `seml configure` has been adjusted to incorporate more configurations in the future. For now, the default behavior is identical.
* All CLI outputs have been updated. Scripts relying on inspecting these are unlikely to work.
* The whole configuration is now evaluated when adding an experiment rather than at runtime (119)
Changes
* Collections will now be dropped if they are empty after `seml <collection> delete`. (100)
* Support integers as dict keys (we convert them to strings) (113)
* We switched to importing larger modules lazily. Thanks to this, `seml` is now faster
* Before: `time seml`: 1.2s - 2s
* After: `time seml`: 0.5 - 0.8s
* With the newest version of `munch` and `sacred`: ~0.3s
Bug fixes
* Better handling of working directories.
* Correct inheritance order to default -> template -> experiment (109)