-
Notifications
You must be signed in to change notification settings - Fork 657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MNT] manage core dependencies prior to 1.1.0 release #1616
Comments
@benHeid, @yarnabrina, @fnhirwa, @XinyuWuu, question: what should be the end state of core/soft dependencies? We should discuss soft dependencies and potential soft dependencies:
For completeness, I consider the following scope-central and thus not advisable to move to soft dependencies, but we could also discuss - e.g., if we want to go with strict containerization:
|
My suggested end state for the 1.1.0 release: core =
existing dep sets |
I agree to your proposed end state. |
This makes sense to me also |
Isolates `optuna`, `optuna-integration`, and `statsmodels` as soft dependencies in a new soft dep set `all_extras` to collect all soft dependencies, and in another soft dep set `tuning`. Towards #1616 This was quite simple, since the imports happen in only one very narrow location, the `optimize_hyperparameters` utility which is also not core architecturally.
Isolates `matplotlib` as soft dependency in a new soft dep set `all_extras`. #1616 The imports happen in `plot_sth` methods throughout the code base, some attached to classes, some not. This allows to use `pytorch-forecasting` without plotting or graphical logging, or use a different plotting backend manually. Isolation strategy: * where the purpose of the function is creating a plot or nothing else, absence of `matplotlib` raises an exception * where `matplotlib` is additional or part of the logic, absence of `matplotlib` causes the specific parts to be skipped. Example: `log_gradient_flow` - this is crucial, as raising an exception would prevent the models from running.
Isolates `pytorch-optimizer` as soft dependency in a new soft dep set `all_extras`. #1616 The imports happen only in `BaseModel`, when resolving aliases for `optimizer`. Isolation consists of two steps: * replacing resolution of the alias with a request to install the package, and removing from resolution scope if not installed * replacing the default optimizer `"ranger"` with `"adam"` if `pytorch-optimizer` is not installed (left at `"ranger"` if installed) Deprecation messages and actions are added, to changne the default to `"adam"` from 1.2.0, in order to minimize the number of dependencies in default parameter settings
done with 1.1.0 release |
Before we release 1.1.0, we should make sure we have managed the core dependencies carefully.
For instance, we do not want to add core dependencies that can be avoided, and potentially remove core dependencies that can be isolated.
Things to ensure we watch out for:
optuna-integration
,pyarrow
,tensorflow
,cpflows
.optuna-integrations
is required only ifoptuna>=3.3.0
mqf2
The text was updated successfully, but these errors were encountered: