Skip to content

Latest commit

 

History

History
511 lines (338 loc) · 27 KB

NEWS.md

File metadata and controls

511 lines (338 loc) · 27 KB

1.0.6 (2021-01-29)

Bug Fixes

  • Fix interpolation in Hydra config node (#1335)

Maintenance Changes

  • Remove Plugins from Singleton.get_state() (#1330)

1.0.5 (2021-01-07)

Features

  • Support Python 3.9 . (#1062)

API Change (Renames, deprecations and removals)

  • Deprecate support for renaming packages via the command line. (#1140)

Bug Fixes

  • Fixed hydra.job.id and hydra.job.num not getting passed to jobs in multirun (#1270)

Plugins

  • Support additional_parameters as an optional param in the Submitit launcher plugin.
  • Add Optuna Sweeper plugin

Maintenance Changes

  • Limit OmegaConf depedency to 2.0 versions (#1253)

1.0.4 (2020-11-17)

Bug Fixes

  • Hydra no longer errorenously changes the USER environment variable in pytest unit tests once installed (#1059)
  • Allow @ symbol in unquoted values in overrides (#1074)
  • Fix a bug where Structured Config has a field like 'list : Optional[List[int]] = None` (#1117)

Plugins

  • Switch Ax Sweeper plugin to use new Hydra command line syntax
  • Switch Nevergrad Sweeper plugin to use new Hydra command line syntax
  • Revert the use of "_" to separate the path element in keys for the Ax sweeper plugin.

1.0.3 (2020-09-22)

Bug Fixes

  • Fixed interaction between interpolation and instantiate (#1001)
  • Fix float parsing for values where the exponent starts with 0 (e.g 1e-05) (#999)

1.0.2 (2020-09-20)

This is a small update improving support for config dataclasses generated by configen

Features

  • Overridden parameters annotated as Any in the config are not type checked by instantiate() (#982)

1.0.1 (2020-09-15)

Features

  • Add ability to escape special characters in unquoted command line values (#954)

Bug Fixes

  • Add support for merging dicts and lists specified in the commend line (#939)
  • Fix appending dict values with new fields to config with + (#946)
  • Fix for Override Grammar integer parsing: Integers are now compatible with Python integers ('+' prefix, correct handling of '_') (#954)

Maintenance Changes

  • Upgrade to OmegaConf 2.0.2 (#755)

1.0.0 (2020-09-03)

Hydra 1.0 is out! See blog post for high level details.

Major new features in Hydra 1.0

  • Config type safety via Structured Configs
  • More powerful command line
  • New plugins enabling remote launching and hyper parameter optimization
  • Improved error reporting
  • Reduce nesting levels with config packages

These release notes are covering the changes since 1.0.0rc4.

To see the complete release notes for 1.0 take a look at the release notes of:

Features

  • Add support for casting interval to ints and floats (#915)

Bug Fixes

  • Fix to flush logging instead of shutting it down at job end (#833)
  • compose() no longer initialized logging subsystem (#833)
  • Fix overriding of hydra.job.env_set from the command line (#854)
  • Fix tab completion to not output errors in some cases when using --multirun (#856)
  • Fix OmegaConf custom resolvers not being propagated to Sweepers properly (#861)
  • Interpolation accepts any char between ${ and } (#891)
  • Update the signature of hydra.utils.instantiate() allow input configs of Any type (#896)
  • Fix instantiate to work correctly when parameters are interpolations into a parent node (#904)
  • Apps will now raise underlying exception if env HYDRA_FULL_ERROR=1 (#926)

Plugins

  • Fix integer/float choice from spec in the Nevergrad plugin

Improved Documentation

  • New page in Structured Configs tutorial: Static schema with many configs (#918)
  • New page in Structured Configs tutorial: Dynamic schema with many configs (#918)

1.0.0rc4 (2020-08-18)

Be aware that cfg.pretty() is now deprecated and you should use OmegaConf.to_yaml(cfg) instead.

Features

  • Upgrade to OmegaConf 2.0.1rc12 (#889)

Bug Fixes

  • Fix bug with bash autocompletion for the users who has . in their PATH environment variable (#868)
  • Fix instantiate to return None when None config is passed (#887)

1.0.0rc3 (2020-08-17)

Features

  • Extended Override grammar supports range(),glob(),type casts,shuffle, sort and more. (#752)
  • Add support for specifying an additional config dir in the command line (#874)
  • Allow overriding of the defaults and hydra nodes in primary Structured Configs that does not mentioned defaults and hydra. (#877)

API Change (Renames, deprecations and removals)

  • ObjectConf is deprecated for TargetConf. See upgrade page. (#882)
  • All plugins updated to use TargetConf. Be sure to update all your Hydra plugins (#882)
  • Instantiated objects no longer have a params node in the conf. keys like hydra.launcher.params.foo are changed to hydra.launcher.foo. Update your configs and overrides if you were overriding such parameters. (#882)

Bug Fixes

  • Fixed parsing of two nested lists with whitespace between them: [[a], [b]] (#836)

Improved Documentation

  • New Extended command line syntax page (#752)

1.0.0rc2 (2020-07-18)

Features

  • Introducing a DSL for the command line override syntax (#797)
  • Sanitize exception messages by default, showing only interesting stack frames (#646)
  • Add a new --info flag to show Hydra debug information without running the user function. (#662)
  • Add --package flag, can be used with --cfg to print a specific config package (#674)
  • Improve the Compose API initialization methods (#702)
  • Switch internal package resource loader from pkg_resources to importlb_resources (#719)
  • Allow interpolation in the Hydra config node to access the application config (#771)
  • Hydra provides pytest fixtures (hydra_sweep_runner, hydra_task_runner, hydra_restore_singletons) (#687)
  • Added contexts to help initialize Hydra in a localized context (Mostly for Unit Tests and Jupyter Notebooks) (#687)
  • Prints error when command line override looks like a sweep but --multirun is not specified (#712)
  • Frozen Structured Configs are respected during composition command line overrides (#724)

API Change (Renames, deprecations and removals)

  • Hydra argparse flags are now consistently using dash-style. (#661)
  • Restructure the configuration of the Submitit launcher (#682)
  • Deprecated cls in favor of target in hydra.utils.{instantiate()/call{}} (#721)

Bug Fixes

  • Add hydra/py.typed to pip package to enable type checking in downstream projects (#657)
  • Fix initialization of Hydra in a module imported from a Jupyter Notebook (#695)
  • Fix handling of main module override via HYDRA_MAIN_MODULE (#717)
  • Fix interpolations in overrides to evaluate lazily (#725)
  • Fixed handling of multirun when target config node is introduced by composition (#726)
  • Sweepers are now validating config composition before launching (#775)
  • Save .hydra/*.yaml before task execution (#678)

Plugins

  • Add Redis Queue Launcher plugin (Jan-Matthis)
  • Upgrade ax-platform used by Ax sweeper plugin to 0.1.13 or newer

Improved Documentation

Maintenance Changes

  • Integrate yamllint (#693)
  • Upgrade to OmegaConf 2.0.1rc11 which solves multiple bugs (#755)

1.0.0-rc1 (2020-05-31)

Hydra 1.0 is a major release introducing many new features and breaking some compatibility.

Features

  • Upgrade to OmegaConf 2.0 (Release notes) (#630)
  • Optional config type safety via Structured Configs (#629)
  • Improve command line and config composition error reporting (#349)
  • Hydra config can now be accessed through interpolation using ${hydra:key}, for example ${hydra:job.name} (#325)
  • Support for setting environment variable of running job (#7)
  • Changes command line processing (requiring + and ~ prefixes for appending and removing items) (#598)
  • Introducing @package header for config files (#586)
  • Add command line override flags for config_path and config_name (#386)
  • hydra.main() now take an optional cfg object to passthrough to the function (#575)
  • Add hydra.experimental.{initialize_with_file, initialize_with_module} (#574)
  • Support for disabling the creation of the .hydra subdirectory by overriding "hydra.output_subdir" to "null" (#324)
  • Add hydra.utils.call() to call methods and functions as well as instantiate objects. Search module paths more generically. (#498)
  • Add support for overriding package from command line and defaults list (#235)
  • Config source is now abstracted, allowing additional config sources to be used (#257)
  • New ConfigSource plugin API allowing configs to be provided by external plugins (#367)
  • Add isort to ensure imports are always sorted (#340)
  • Codebase is now passing mypy --strict type checking (#342)
  • Improve performance of plugin discovery and instantiation (#489)
  • Modules whose name starts with "_" are skipped during plugin discovery (#494)

Plugins

API Change (Renames, deprecations and removals)

  • Drop support Python 2.7 and 3.5 (#313)
  • hydra.main() now takes an additional optional config_name and composite-style config_path is deprecated (#395)
  • Launcher API launch method now takes an additional initial_job_idx indicating the id of the first job in the batch (#284)
  • Singleton metaclass is now exposed at hydra.core.Singleton (#371)
  • Moved HydraConfig from hydra.plugins.common.utils to hydra.core (#371)
  • Move several formerly internal APIs to hydra/core to ensure plugins does not need to use internal APIs (#371)
  • Plugin import now requires explicit name (from hydra.plugins.launcher import Launcher) (#371)
  • Object Config "class" field is deprecated in favor of "cls" and will be removed in a future version. (#389)
  • Experimental compose API config_file changed to config_name (#395)
  • User plugins should be modified to not import twice during plugin discovery. see issue for details. (#482)
  • Change hydra.core.plugins.Plugins class to a Singleton. access should be changed to the pattern Plugins.instance().foo() (#489)
  • Plugins should now include test fixtures (sweep_runner, task_runner) via a standardized conftest.py (#521)
  • Switch Python 3 native namespace packages for plugins (See task for details) (#534)
  • Packaged configuration directories now requires an __init__.py at their top level (#536)
  • Appending config groups to the defaults list via the command line now requires a + prefix (#598)
  • Removing an item from the defaults list by assigning null (db=null) is deprecated, use ~db instead (#598)
  • Installed Hydra applications no longer need have an additional entry() function on the stack (#92)

Bug Fixes

  • Fix a bug causing sys.exit() error code to not be propagated (#351)
  • Shutdown logging subsystem aftter job finishes to ensure log files are flushed and closed (#378)
  • Fix a bug with utils.instantiate() failing if params contains interpolated values. (#388)
  • Allow hydra.utils.instantiate() to accept non primitive objects for passthrough by name (#400)
  • Fix to work when an Hydra app is executed in Jupyter notebook using the %run command (#481)
  • Plugins are no longer imported twice during plugin discovery (#482)
  • to_absolute_dir(path) now converts relative path to be relative to os.cwd() when used outside of Hydra (#496)

Improved Documentation

  • Working examples are provided for all Hydra plugins in plugins/examples (#253)
  • The basic tutorial was rewritten to reflect many changes (#602)
  • Add a new tutorial covering Structured Configs (#628)

0.11.3 (2019-12-29)

Bug Fixes

  • Pin Hydra 0.11 to OmegaConf 1.4 to avoid breaking compatibility when OmegaConf 2.0 is released (#334)

Improved Documentation

  • Document a simple Ray example (#317)

0.11.2 (2019-12-04)

Features

  • Change website from cli.dev to hydra.cc (#314)

Bug Fixes

  • Fixes --cfg command line flag not working (#305)

0.11.0 (2019-11-19)

Features

  • Add hydra.experimental API for composing configuration on demand (hydra.experimental.compose) (#219)
  • Add hydra.utils.get_original_cwd() to access original working directory and hydra.utils.to_absolute_path() to convert a path to absolute path (#251)
  • Change hydra logging format pattern, example: "[2019-10-22 16:13:10,769][HYDRA] Installed Hydra Plugins" (#254)
  • Change --cfg to require config type (one of 'job', 'hydra' or 'all') (#270)
  • Upgrade to OmegaConf 1.4.0, see full change log here (#280)
  • Experimental support for Jupyter notebooks via compose API (#281)
  • Allow configuring override_dirname via hydra.job.config.override_dirname to exclude specific keys or change separator characters (#95)

Bug Fixes

  • Fix a bug that caused out of order composition when mixing config-groups with non-config-group in the defaults block (#261)
  • Allow '=' to be used in the value of an override, eg. foo=bar=10 (key foo, value bar=10). (#266)
  • Allow composing config files with dot in their name (foo.bar.yaml) (#271)

Plugins

  • hydra-colorlog plugin adds colored log output.

Improved Documentation

  • Document utils.get_original_cwd() and utils.to_absolute_path("foo") (#251)

0.10.0 (2019-10-19)

Configuration structure changes

  • Change the default sweep subdir from ${hydra.job.num}_${hydra.job.id} to ${hydra.job.num} (#150)

Features

  • App help now contains config groups and generated config App help can now be customized Hydra help is now available via --hydra-help (#1)
  • Simplify install and uninstall commands for tab completion (#200)
  • hydra.runtime.cwd now contains the original working directory the app was launched from (#244)

Bug Fixes

  • Fix an error with tab completion that occurred when a TAB was pressed after two spaces (#203)
  • Fix a bug when sweeping over groups that are used in an interpolation in defaults (#206)
  • Fix tab completion for cases where app name looks like foo.par (#213)

Improved Documentation

  • Describe news fragment types in more details in development/contributing (#150)
  • Examples dir now mirrors the structure of the website docs (#209)

0.9.0 (2019-10-01)

Deprecations and Removals

  • Old demos directory was removed and a new tutorial directory as added (#167)

Features

  • Make strict mode the default when a config file is specified directly (#150)
  • Replace --verbose with a standard override (hydra.verbose) (#161)
  • Add IntegrationTestSuite to test_utils for testing Launcher plugins (#168)
  • Add support for specifying which config to print in -c, options are job (default), hydra or all. (#176)
  • Hydra is now hosted on https://cli.dev! (#75)
  • Move all Hydra configuration files to a subfolder (.hydra by default) under the output folder (#77)

Bug Fixes

  • Fix a bug in tab completion of missing mandatory values. (#145)
  • Fix a bug with multirun overriding free config groups (not in defaults) when strict mode is enabled (#181)
  • Fix a bug that prevented sweeping over an unspecified ('???') default group (#187)

Improved Documentation

  • Updated the primary tutorial on the web site and added a brand new tutorial directory (#58)
  • Documented debugging methods in website (#6)

0.1.5 (2019-09-22)

Deprecations and Removals

  • Move FAIRTask, Submititit and FAIR-cluster-defaults plugins to fairinternal/hydra-fair-plugins repository (#138)
  • Remove Fairtask and Submitit example configs from demos as they are no longer needed (#146)

Features

  • Created hydra-core pip package, Hydra can now installed with 'pip install hydra-core' (#143)
  • Finalized submitit support (#18)

Plugins

  • Add default launcher config for Fairtask and Submitit launcher plugins

0.1.4 (2019-09-18)

Features

  • hydra.utils.instantiate() can now take an additional optional kwargs dictionary to pass to constructor of the instantiated object (#142)
  • Initial support for bash completion, see documentation for details (#8)

Bug Fixes

  • Fixed Town Crier to generate correct links to issues in generated news file. (#122)
  • Fixed bug with overriding hydra defaults from user config file. (#123)
  • Fixed Singletons not getting serialized to remote jobs. (#128)
  • Fixed a bug that prevented using submitit in strict mode (#129)
  • Fixed example submitit config to set the job name (#133)

0.1.3 (2019-09-02)

Configuration structure changes

  • Changed Hydra core defaults to be more appropriate for open source use. To get the FAIR cluster defaults install the fair_cluster plugin (#103)
  • Changed output directories default to group by day (output/DAY/TIME instead of output/DAY_TIME) (#121)

Features

  • Added the ability to prevent a default from being merged it by assigning null to it (hydra/launcher=null) (#106)
  • Implemented Plugin discovery mechanism, this can be used to find all installed plugins that implement a specific interface (#119)
  • Implemented an API to for manipulating the config search path (#120)

Bug Fixes

  • Fixed config loading to properly support the use case in demos/8_specializing_config (#104)
  • Fixed error message when the user config contains defaults that is a mapping and not a list (#107)
  • Fixed config loading order to allow properly overriding Hydra config groups from user config (#115)

Plugins

  • New plugin: fair_cluster Change Hydra defaults to be appropriate for the FAIR cluster

Improved Documentation

  • Initial search path and plugins documentation (#103)

0.1.2 (2019-08-26)

Deprecations and Removals

  • Hydra config groups were moved to the hydra/namespace (#101)
  • Removed support for .hydra directory, Hydra can be configured directly from the job config. (#91)

Bug Fixes

  • Config loading rewrite fixed #88 (#88)

0.1.1 (2019-08-22)

Deprecations and Removals

  • Move non-public APIs into hydra._internal:
    • Moved non-API code into hydra._interanl to flag it as private.
    • Moved plugin interfaces into hydra.plugins.
    • Moved code meant to be used by plugins to hydra.plugins.common. (#78)

Features

  • Integrated towncrier to bring you this news! (#45)
  • Hydra is now compatible with Windows (#63)
  • Hydra apps can now be packaged and installed along with their configuration files. (#87)

Bug Fixes

  • It is now possible to use ${override_dirname} in the output directory of a local job (#31)
  • Override_dirname separator changed from : to =, for example: foo/a:10,b:10 => foo/a=10,b=10 (#63)
  • Fixed automatic detection of missing copyright headers (#72)
  • fixed a bug that caused an empty config to be returned if specifed config file did not have a .yaml extension. (#80)
  • Multi change diff:
    • Logging config search path in verbose logging to assist debugging of config load issues
    • Saving hydra.yaml into the job dir to assist debugging hydra issues
    • Fixed a bug caused by fairtask logging change
    • Improved integration-tests debuggability by switching hydra to debug logging in them
    • Added selective plugin testing to nox using env, for example PLUGINS=fairtask would only test fairtask. (#87)

Improved Documentation

  • Improved the contributing docs (#45)
  • Documented Hydra app packaging under Deployment/Application packaging (#87)