Skip to content

Can we use compatible release spec in environment.yml? #46

@MattF-NSIDC

Description

@MattF-NSIDC

Hello all,

My usual practice with environment.yml is to use compatible release spec to make upgrades easier, and a lockfile for reproducibility. Since this repository has a lockfile, what do you think about modifying the environment.yml to not pin dependencies as strictly? This article speaks to the different use cases of these two types of spec files: One focuses on specifying a human-curated environment optimized for upgradeability, while the other optimizes for reproducibility and is generated by machine from a real environment.

Compatible release spec allows specifying an arbitrary number of version digits, e.g. ~=1, ~=1.2, or ~=1.2.3. The last digit specified is allowed to "move", and others are not. If you specify ~=1.2.3, version 1.2.4 would be allowed, but 1.3 would not. This provides some advantage over greater/less-than spec because in my experience a spec like >=3.0,<4.0 can allow a 4.0.0alpha1 package to be installed. Perhaps this issue has been long-since resolved, but it's the reason I stopped using that style.

In PR #45 I used compatibility spec out of habit and then realized the inconsistency. Happy to change it or not (or, if desired, overhaul the entire environment.yml file to use compat spec) depending on discussion outcome :)

Thanks all!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions