Pin essential conda-analytics packages
Versions of crucial packages in Conda-Analytics are pinned in conda-environment.yml which is used to generate the conda-environment.lock.yml file which we use to be able to EXACTLY reproduce an environment by just installing and downloading the packages needed. This is particularly handy in the context of conda-anlytics where you use conda to provision environments in various places. However, those files just specify what versions should be installed in the new environment to start; Conda happily ignores them in all future transactions. This doesn't just mean that package A will be updated if the user runs conda update A. If the user runs conda install B and B lists A as a dependency, Conda will automatically upgrade A to the latest version (even if B's requirement is already satisfied by the existing version). This has caused some environment problems! case some Conda-Analytics packages are incompatible with the latest versions of Pandas and Numpy causing issues when releasing new version of Wmfdata-Python.
This patch intoduces the pinned file which can be used to pin essential package versions. Pinned specs are included with each conda install, subsequent conda update commands. The pinned file is generated by running the generate_conda_pinned.sh script which reads all the packages that require to be pinned from the conda-environment.yml file.
Bug: T356231 Bug: T356230