diff --git a/Dockerfile b/Dockerfile index b7f8db3f2..6d73e6a90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG ALPINE_VERSION=3.12.0 +ARG ALPINE_VERSION=3.15.0 FROM alpine:${ALPINE_VERSION} RUN apk add --no-cache git python3 python3-dev py-pip build-base @@ -22,7 +22,7 @@ RUN pip3 install hg-evolve --user --no-cache-dir # install repo2docker COPY --from=0 /tmp/wheelhouse /tmp/wheelhouse -RUN pip3 install --no-cache-dir /tmp/wheelhouse/*.whl --ignore-installed \ +RUN pip3 install --use-deprecated=legacy-resolver --no-cache-dir /tmp/wheelhouse/*.whl --ignore-installed \ && pip3 list # add git-credential helper diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 7212257f0..a511ca47e 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -3,6 +3,56 @@ Changelog ========= +Version 2022.02.0 +================= + +`Full changelog `_ + +New features +------------ + +- Update ipywidgets jupyter-offlinenotebook jupyterlab :pr:`1127` by :user:`manics` +- Allow passing in extra args to Docker initialization :pr:`1124` by :user:`yuvipanda` +- Allow passing in traitlets via commandline :pr:`1123` by :user:`yuvipanda` +- Bump default R version to 4.1 :pr:`1107` by :user:`yuvipanda` +- Update jupyterlab 3.2.5 jupyter-resource-usage 0.6.1 :pr:`1105` by :user:`manics` +- Get binary R packages from packagemanager.rstudio.com :pr:`1104` by :user:`yuvipanda` +- Support R 4.1 :pr:`1102` by :user:`yuvipanda` +- Add command line option to pass extra build args :pr:`1100` by :user:`TimoRoth` +- Set labels when building image from Dockerfile :pr:`1097` by :user:`TimoRoth` +- jupyterlab 3.1.17 :pr:`1092` by :user:`minrk` +- Bump JupyterLab to 3.1.11 :pr:`1081` by :user:`choldgraf` +- Bootstrap base env with micromamba :pr:`1062` by :user:`wolfv ` +- Default UI to JupyterLab :pr:`1035` by :user:`SylvainCorlay` + +API changes +----------- + +Bug fixes +--------- + +Other merged PRs +---------------- + +- Put micromamba in /usr/local/bin and use mamba for installs :pr:`1128` by :user:`minrk` +- Remove deprecated calls to distutils :pr:`1122` by :user:`minrk` +- Delete /tmp/downloaded_packages after running install.R :pr:`1119` by :user:`yuvipanda` +- Use a smaller R library in our tests :pr:`1118` by :user:`yuvipanda` +- Only get R itself (r-base-core) from apt, not CRAN packages :pr:`1117` by :user:`minrk` +- set USER root after each directive block :pr:`1115` by :user:`minrk` +- Say 'apt repository' rather than PPA :pr:`1111` by :user:`yuvipanda` +- add tests for R conda :pr:`1108` by :user:`aplamada` +- Add help message to freeze.py :pr:`1106` by :user:`manics` +- Quieter R builds :pr:`1103` by :user:`yuvipanda` +- update user_interface doc to reflect that lab is default :pr:`1085` by :user:`minrk` +- Updates to dev docs + Recommonmark -> MyST Parser :pr:`1082` by :user:`choldgraf` +- Fix Docker build (again) :pr:`1078` by :user:`manics` +- [mrg] __init__.py: r_version: fixed description :pr:`1074` by :user:`magnush0lm` +- Typo fix in utils docstring :pr:`1072` by :user:`jgarte` +- Rename requirements.py-3.5.txt to requirements.py-3.5.pip :pr:`1061` by :user:`manics` +- Remove nodesource' nodejs :pr:`847` by :user:`yuvipanda` + + Version 2021.08.0 ================= diff --git a/repo2docker/__main__.py b/repo2docker/__main__.py index 1dd49ebe9..5dd139ec8 100644 --- a/repo2docker/__main__.py +++ b/repo2docker/__main__.py @@ -66,6 +66,20 @@ def get_argparser(): description="Fetch a repository and build a container image" ) + argparser.add_argument( + "--help-all", + dest="help_all", + action="store_true", + help="Display all configurable options and exit.", + ) + + argparser.add_argument( + "--version", + dest="version", + action="store_true", + help="Print the repo2docker version and exit.", + ) + argparser.add_argument( "--config", default="repo2docker_config.py", @@ -204,15 +218,24 @@ def get_argparser(): argparser.add_argument("--appendix", type=str, help=Repo2Docker.appendix.help) - argparser.add_argument("--subdir", type=str, help=Repo2Docker.subdir.help) + argparser.add_argument( + "--label", + dest="labels", + action="append", + help="Extra label to set on the image, in form name=value", + default=[], + ) argparser.add_argument( - "--version", - dest="version", - action="store_true", - help="Print the repo2docker version and exit.", + "--build-arg", + dest="build_args", + action="append", + help="Extra build arg to pass to the build process, in form name=value", + default=[], ) + argparser.add_argument("--subdir", type=str, help=Repo2Docker.subdir.help) + argparser.add_argument( "--cache-from", action="append", default=[], help=Repo2Docker.cache_from.help ) @@ -229,15 +252,24 @@ def make_r2d(argv=None): if argv is None: argv = sys.argv[1:] + argparser = get_argparser() + # version must be checked before parse, as repo/cmd are required and # will spit out an error if allowed to be parsed first. if "--version" in argv: print(__version__) sys.exit(0) - args = get_argparser().parse_args(argv) + if "--help-all" in argv: + argparser.print_help() + print("\nAll configurable options:\n") + Repo2Docker().print_help(classes=True) + sys.exit(0) + + args, traitlet_args = argparser.parse_known_args(argv) r2d = Repo2Docker() + r2d.parse_command_line(traitlet_args) if args.debug: r2d.log_level = logging.DEBUG @@ -246,6 +278,14 @@ def make_r2d(argv=None): if args.appendix: r2d.appendix = args.appendix + for l in args.labels: + key, _, val = l.partition("=") + r2d.labels[key] = val + + for a in args.build_args: + key, _, val = a.partition("=") + r2d.extra_build_args[key] = val + r2d.repo = args.repo r2d.ref = args.ref diff --git a/repo2docker/app.py b/repo2docker/app.py index 12f346d94..480d98055 100755 --- a/repo2docker/app.py +++ b/repo2docker/app.py @@ -47,6 +47,10 @@ class Repo2Docker(Application): name = "jupyter-repo2docker" version = __version__ description = __doc__ + # disable aliases/flags because we don't use the traitlets for CLI parsing + # other than --Class.trait=value + aliases = {} + flags = {} @default("log_level") def _default_log_level(self): @@ -239,6 +243,26 @@ def _user_name_default(self): """, ) + labels = Dict( + {}, + help=""" + Extra labels to set on the final image. + + Each Label is a key-value pair, with the key being the name of the label + and the value its value. + """, + config=True, + ) + + extra_build_args = Dict( + {}, + help=""" + Extra build args to pass to the image build process. + This is pretty much only useful for custom Dockerfile based builds. + """, + config=True, + ) + json_logs = Bool( False, help=""" @@ -472,7 +496,7 @@ def json_excepthook(self, etype, evalue, traceback): extra=dict(phase="failed"), ) - def initialize(self): + def initialize(self, *args, **kwargs): """Init repo2docker configuration before start""" # FIXME: Remove this function, move it to setters / traitlet reactors if self.json_logs: @@ -749,23 +773,28 @@ def build(self): picked_buildpack.labels["repo2docker.repo"] = repo_label picked_buildpack.labels["repo2docker.ref"] = self.ref + picked_buildpack.labels.update(self.labels) + + build_args = { + "NB_USER": self.user_name, + "NB_UID": str(self.user_id), + } + if self.target_repo_dir: + build_args["REPO_DIR"] = self.target_repo_dir + build_args.update(self.extra_build_args) + if self.dry_run: - print(picked_buildpack.render()) + print(picked_buildpack.render(build_args)) else: self.log.debug( - picked_buildpack.render(), extra=dict(phase="building") + picked_buildpack.render(build_args), + extra=dict(phase="building"), ) if self.user_id == 0: raise ValueError( "Root as the primary user in the image is not permitted." ) - build_args = { - "NB_USER": self.user_name, - "NB_UID": str(self.user_id), - } - if self.target_repo_dir: - build_args["REPO_DIR"] = self.target_repo_dir self.log.info( "Using %s builder\n", bp.__class__.__name__, diff --git a/repo2docker/buildpacks/_r_base.py b/repo2docker/buildpacks/_r_base.py index a9892a01b..5e14f3c91 100644 --- a/repo2docker/buildpacks/_r_base.py +++ b/repo2docker/buildpacks/_r_base.py @@ -3,66 +3,67 @@ Keeping this in r.py would lead to cyclic imports. """ +from ..semver import parse_version as V -# Via https://rstudio.com/products/rstudio/download-server/debian-ubuntu/ -RSTUDIO_URL = "https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.2.5001-amd64.deb" -# This is MD5, because that is what RStudio download page provides! -RSTUDIO_CHECKSUM = "d33881b9ab786c09556c410e7dc477de" -# Via https://www.rstudio.com/products/shiny/download-server/ -SHINY_URL = "https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.12.933-amd64.deb" -SHINY_CHECKSUM = "9aeef6613e7f58f21c97a4600921340e" - -# Version of MRAN to pull devtools from. -DEVTOOLS_VERSION = "2018-02-01" +def rstudio_base_scripts(r_version): + """Base steps to install RStudio and shiny-server.""" -# IRKernel version - specified as a tag in the IRKernel repository -IRKERNEL_VERSION = "1.1" + # Shiny server (not the package!) seems to be the same version for all R versions + shiny_server_url = "https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.17.973-amd64.deb" + shiny_proxy_version = "1.1" + shiny_sha256sum = "80f1e48f6c824be7ef9c843bb7911d4981ac7e8a963e0eff823936a8b28476ee" + if V(r_version) <= V("4.1"): + # Older RStudio and jupyter-rsession-proxy for v4.1 and below + rstudio_url = "https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.959-amd64.deb" + rstudio_sha256sum = ( + "187af05cab1221282487fdc33f4b161484c3228eaade3d6697b1d41c206ee6d9" + ) + rsession_proxy_version = "1.4" + else: + rstudio_url = "https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.1-372-amd64.deb" + rstudio_sha256sum = ( + "c58df09468870b89f1796445853dce2dacaa0fc5b7bb1f92b036fa8da1d1f8a3" + ) + rsession_proxy_version = "2.0.1" -def rstudio_base_scripts(): - """Base steps to install RStudio and shiny-server.""" return [ ( "root", - # Install RStudio! + # we should have --no-install-recommends on all our apt-get install commands, + # but here it's important because these recommend r-base, + # which will upgrade the installed version of R, undoing our pinned version r""" - curl --silent --location --fail {rstudio_url} > /tmp/rstudio.deb && \ - echo '{rstudio_checksum} /tmp/rstudio.deb' | md5sum -c - && \ - apt-get update && \ - apt install -y /tmp/rstudio.deb && \ - rm /tmp/rstudio.deb && \ - apt-get -qq purge && \ - apt-get -qq clean && \ - rm -rf /var/lib/apt/lists/* - """.format( - rstudio_url=RSTUDIO_URL, rstudio_checksum=RSTUDIO_CHECKSUM + curl --silent --location --fail {rstudio_url} > /tmp/rstudio.deb && \ + curl --silent --location --fail {shiny_server_url} > /tmp/shiny.deb && \ + echo '{rstudio_sha256sum} /tmp/rstudio.deb' | sha256sum -c - && \ + echo '{shiny_sha256sum} /tmp/shiny.deb' | sha256sum -c - && \ + apt-get update > /dev/null && \ + apt install -y --no-install-recommends /tmp/rstudio.deb /tmp/shiny.deb && \ + rm /tmp/rstudio.deb && \ + apt-get -qq purge && \ + apt-get -qq clean && \ + rm -rf /var/lib/apt/lists/* + """.format( + rstudio_url=rstudio_url, + rstudio_sha256sum=rstudio_sha256sum, + shiny_server_url=shiny_server_url, + shiny_sha256sum=shiny_sha256sum, ), ), ( - "root", - # Install Shiny Server! + "${NB_USER}", + # Install jupyter-rsession-proxy r""" - curl --silent --location --fail {url} > {deb} && \ - echo '{checksum} {deb}' | md5sum -c - && \ - dpkg -i {deb} && \ - rm {deb} + pip install --no-cache \ + jupyter-rsession-proxy=={rsession_proxy_version} \ + jupyter-shiny-proxy=={shiny_proxy_version} """.format( - url=SHINY_URL, checksum=SHINY_CHECKSUM, deb="/tmp/shiny.deb" + rsession_proxy_version=rsession_proxy_version, + shiny_proxy_version=shiny_proxy_version, ), ), - ( - "${NB_USER}", - # Install nbrsessionproxy - r""" - pip install --no-cache-dir jupyter-server-proxy==1.4.0 && \ - pip install --no-cache-dir https://github.com/jupyterhub/jupyter-rsession-proxy/archive/d5efed5455870556fc414f30871d0feca675a4b4.zip && \ - pip install --no-cache-dir https://github.com/ryanlovett/jupyter-shiny-proxy/archive/47557dc47e2aeeab490eb5f3eeae414cdde4a6a9.zip && \ - jupyter serverextension enable jupyter_server_proxy --sys-prefix && \ - jupyter nbextension install --py jupyter_server_proxy --sys-prefix && \ - jupyter nbextension enable --py jupyter_server_proxy --sys-prefix - """, - ), ( # Not all of these locations are configurable; so we make sure # they exist and have the correct permissions diff --git a/repo2docker/buildpacks/base.py b/repo2docker/buildpacks/base.py index e7c2b22d8..65fb821fe 100644 --- a/repo2docker/buildpacks/base.py +++ b/repo2docker/buildpacks/base.py @@ -52,11 +52,6 @@ --uid ${NB_UID} \ ${NB_USER} -RUN wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \ - DISTRO="bionic" && \ - echo "deb https://deb.nodesource.com/node_14.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list && \ - echo "deb-src https://deb.nodesource.com/node_14.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list - # Base package installs are not super interesting to users, so hide their outputs # If install fails for some reason, errors will still be printed RUN apt-get -qq update && \ @@ -105,6 +100,8 @@ {% for sd in build_script_directives -%} {{ sd }} {% endfor %} +# ensure root user after build scripts +USER root # Allow target path repo is cloned to be configurable ARG REPO_DIR=${HOME} @@ -143,6 +140,8 @@ {% for sd in preassemble_script_directives -%} {{ sd }} {% endfor %} +# ensure root user after preassemble scripts +USER root # Copy stuff. COPY --chown={{ user }}:{{ user }} src/ ${REPO_DIR} @@ -251,7 +250,6 @@ def get_base_packages(self): return { # Utils! "less", - "nodejs", "unzip", } @@ -635,32 +633,8 @@ def get_build_env(self): """Return env directives required for build""" return [ ("APP_BASE", "/srv"), - ("NPM_DIR", "${APP_BASE}/npm"), - ("NPM_CONFIG_GLOBALCONFIG", "${NPM_DIR}/npmrc"), ] - def get_path(self): - return super().get_path() + ["${NPM_DIR}/bin"] - - def get_build_scripts(self): - scripts = [ - ( - "root", - r""" - mkdir -p ${NPM_DIR} && \ - chown -R ${NB_USER}:${NB_USER} ${NPM_DIR} - """, - ), - ( - "${NB_USER}", - r""" - npm config --global set prefix ${NPM_DIR} - """, - ), - ] - - return super().get_build_scripts() + scripts - def get_env(self): """Return env directives to be set after build""" return [] diff --git a/repo2docker/buildpacks/conda/__init__.py b/repo2docker/buildpacks/conda/__init__.py index 8b88507af..5c37ba186 100644 --- a/repo2docker/buildpacks/conda/__init__.py +++ b/repo2docker/buildpacks/conda/__init__.py @@ -6,7 +6,7 @@ from ruamel.yaml import YAML from ..base import BaseImage -from .._r_base import rstudio_base_scripts, IRKERNEL_VERSION +from .._r_base import rstudio_base_scripts from ...utils import is_local_pip_requirement # pattern for parsing conda dependency line @@ -51,7 +51,14 @@ def get_build_env(self): env = super().get_build_env() + [ ("CONDA_DIR", "${APP_BASE}/conda"), ("NB_PYTHON_PREFIX", "${CONDA_DIR}/envs/notebook"), + # We install npm / node from conda-forge + ("NPM_DIR", "${APP_BASE}/npm"), + ("NPM_CONFIG_GLOBALCONFIG", "${NPM_DIR}/npmrc"), ("NB_ENVIRONMENT_FILE", self._nb_environment_file), + ("MAMBA_ROOT_PREFIX", "${CONDA_DIR}"), + # this exe should be used for installs after bootstrap with micromamba + # switch this to /usr/local/bin/micromamba to use it for all installs + ("MAMBA_EXE", "${CONDA_DIR}/bin/mamba"), ] if self._nb_requirements_file: env.append(("NB_REQUIREMENTS_FILE", self._nb_requirements_file)) @@ -85,6 +92,8 @@ def get_path(self): if self.py2: path.insert(0, "${KERNEL_PYTHON_PREFIX}/bin") path.insert(0, "${NB_PYTHON_PREFIX}/bin") + # This is at the end of $PATH, for backwards compat reasons + path.append("${NPM_DIR}/bin") return path def get_build_scripts(self): @@ -93,7 +102,7 @@ def get_build_scripts(self): All scripts here should be independent of contents of the repository. - This sets up through `install-miniforge.bash` (found in this directory): + This sets up through `install-base-env.bash` (found in this directory): - a directory for the conda environment and its ownership by the notebook user @@ -110,10 +119,17 @@ def get_build_scripts(self): "root", r""" TIMEFORMAT='time: %3R' \ - bash -c 'time /tmp/install-miniforge.bash' && \ - rm -rf /tmp/install-miniforge.bash /tmp/env + bash -c 'time /tmp/install-base-env.bash' && \ + rm -rf /tmp/install-base-env.bash /tmp/env """, - ) + ), + ( + "root", + r""" + mkdir -p ${NPM_DIR} && \ + chown -R ${NB_USER}:${NB_USER} ${NPM_DIR} + """, + ), ] major_pythons = {"2": "2.7", "3": "3.7"} @@ -134,7 +150,7 @@ def get_build_script_files(self): """ files = { - "conda/install-miniforge.bash": "/tmp/install-miniforge.bash", + "conda/install-base-env.bash": "/tmp/install-base-env.bash", "conda/activate-conda.sh": "/etc/profile.d/activate-conda.sh", } py_version = self.python_version @@ -320,14 +336,16 @@ def get_env_scripts(self): environment_yml = self.binder_path("environment.yml") env_prefix = "${KERNEL_PYTHON_PREFIX}" if self.py2 else "${NB_PYTHON_PREFIX}" if os.path.exists(environment_yml): + # TODO: when using micromamba, we call $MAMBA_EXE install -p ... + # whereas mamba/conda need `env update -p ...` when it's an env.yaml file scripts.append( ( "${NB_USER}", r""" TIMEFORMAT='time: %3R' \ - bash -c 'time mamba env update -p {0} -f "{1}" && \ - time mamba clean --all -f -y && \ - mamba list -p {0} \ + bash -c 'time ${{MAMBA_EXE}} env update -p {0} --file "{1}" && \ + time ${{MAMBA_EXE}} clean --all -f -y && \ + ${{MAMBA_EXE}} list -p {0} \ ' """.format( env_prefix, environment_yml @@ -344,15 +362,15 @@ def get_env_scripts(self): ( "${NB_USER}", r""" - mamba install -p {0} r-base{1} r-irkernel={2} r-devtools -y && \ - mamba clean --all -f -y && \ - mamba list -p {0} + ${{MAMBA_EXE}} install -p {0} r-base{1} r-irkernel=1.2 r-devtools -y && \ + ${{MAMBA_EXE}} clean --all -f -y && \ + ${{MAMBA_EXE}} list -p {0} """.format( - env_prefix, r_pin, IRKERNEL_VERSION + env_prefix, r_pin ), ) ) - scripts += rstudio_base_scripts() + scripts += rstudio_base_scripts(self.r_version) scripts += [ ( "root", diff --git a/repo2docker/buildpacks/conda/activate-conda.sh b/repo2docker/buildpacks/conda/activate-conda.sh index 2af21a11e..48372318e 100755 --- a/repo2docker/buildpacks/conda/activate-conda.sh +++ b/repo2docker/buildpacks/conda/activate-conda.sh @@ -1,11 +1,14 @@ # enable conda and activate the notebook environment -CONDA_PROFILE="${CONDA_DIR}/etc/profile.d/conda.sh" -test -f $CONDA_PROFILE && . $CONDA_PROFILE +eval $(micromamba shell hook -s posix -p ${CONDA_DIR}) +for name in conda mamba; do + CONDA_PROFILE="${CONDA_DIR}/etc/profile.d/${name}.sh" + test -f $CONDA_PROFILE && . $CONDA_PROFILE +done if [[ "${KERNEL_PYTHON_PREFIX}" != "${NB_PYTHON_PREFIX}" ]]; then # if the kernel is a separate env, stack them # so both are on PATH, notebook first - conda activate ${KERNEL_PYTHON_PREFIX} - conda activate --stack ${NB_PYTHON_PREFIX} + mamba activate ${KERNEL_PYTHON_PREFIX} + mamba activate --stack ${NB_PYTHON_PREFIX} # even though it's second on $PATH # make sure CONDA_DEFAULT_ENV is the *kernel* env @@ -14,5 +17,5 @@ if [[ "${KERNEL_PYTHON_PREFIX}" != "${NB_PYTHON_PREFIX}" ]]; then # which only contains UI when the two are different export CONDA_DEFAULT_ENV="${KERNEL_PYTHON_PREFIX}" else - conda activate ${NB_PYTHON_PREFIX} + mamba activate ${NB_PYTHON_PREFIX} fi diff --git a/repo2docker/buildpacks/conda/environment.lock b/repo2docker/buildpacks/conda/environment.lock index b697f6441..13528f204 100644 --- a/repo2docker/buildpacks/conda/environment.lock +++ b/repo2docker/buildpacks/conda/environment.lock @@ -1,23 +1,26 @@ # AUTO GENERATED FROM environment.py-3.7.yml, DO NOT MANUALLY MODIFY -# Frozen on 2021-10-06 07:33:42 UTC +# Frozen on 2022-01-26 18:35:40 UTC # Generated by conda-lock. # platform: linux-64 -# input_hash: e916b3483f9a6a858e8e836b294a35ef667c4f7b74b486b5d22621b93a0b9cbb +# input_hash: 8daa45fe7e84c647f0c5ab04c1199514abe3834c110cffac7bd4a18cc5375472 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2#6a777890e94194dc94a29a76d2a7e721 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26 https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_9.tar.bz2#a41b94921f55a353a8bbf5bb8d5ca335 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.14.2-h7f98852_0.tar.bz2#036a4ef13793d1bd771090b49c4c2550 -https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_9.tar.bz2#1090e28709184ec3d2f6ad6abd55fa31 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065 +https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.17.0.1-h7f98852_0.tar.bz2#bd9fa82641da6dfe5696fd196e3c7cf1 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_9.tar.bz2#84b1ec6f5b2d21968add479348515bba -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.17.2-h7f98852_0.tar.bz2#a25871010e5104556045aa01850fbddf +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a +https://conda.anaconda.org/conda-forge/linux-64/icu-69.1-h9c3ff4c_0.tar.bz2#e0773c9556d588b062a4e1424a6a02fa https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h9c3ff4c_4.tar.bz2#dea515312db9d4788e52c2edfc657635 +https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 +https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206 https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d +https://conda.anaconda.org/conda-forge/linux-64/libuv-1.43.0-h7f98852_0.tar.bz2#b34d856aa7e06ebd79bded72ef4afc16 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 @@ -26,89 +29,89 @@ https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2# https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.43.0-h812cca2_1.tar.bz2#d0a7846b7b3b8fb0d8b36904a53b8155 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-ha56f1ee_2.tar.bz2#6ab4eaa11ff01801cffca0a27489dc04 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2#3588c2c6cb9f9bcc65b544ab1c715d60 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.18.3-h8ca31f7_2.tar.bz2#192a478a1ae899992e4afce84520badb +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2#84e76fb280e735fec1efd2d21fd9cb27 -https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_2.tar.bz2#2094cf6b08a571cecf7fa332152e6461 -https://conda.anaconda.org/conda-forge/linux-64/python-3.7.10-hb7a2778_102_cpython.tar.bz2#67ddb126f309b101e57da5cfe8741959 +https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_3.tar.bz2#e29650992ae593bc05fc93722483e5c3 +https://conda.anaconda.org/conda-forge/linux-64/python-3.7.12-hb7a2778_100_cpython.tar.bz2#2d94b3e6a9fdaf83f6955d008c8011a7 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 -https://conda.anaconda.org/conda-forge/noarch/attrs-21.2.0-pyhd8ed1ab_0.tar.bz2#d2e1c7f388ac403df7079b411c37cc50 +https://conda.anaconda.org/conda-forge/noarch/attrs-21.4.0-pyhd8ed1ab_0.tar.bz2#f70280205d7044c8b8358c8de3190e5d https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 https://conda.anaconda.org/conda-forge/noarch/backports-1.0-py_2.tar.bz2#0da16b293affa6ac31812376f8eb79dd https://conda.anaconda.org/conda-forge/noarch/blinker-1.4-py_1.tar.bz2#fa509a09190583f869ae442bf4d17f5f -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.0-pyhd8ed1ab_0.tar.bz2#4a57e24d5b759893615c05926b7b5fb9 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.0-pyhd8ed1ab_0.tar.bz2#71b13ba2e0efcff45646f05d619534b0 +https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.10-pyhd8ed1ab_0.tar.bz2#ea77236c8031cfa821720b21b4cb0ceb +https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/idna-3.1-pyhd3deb0d_0.tar.bz2#9c9aea4b8391264477df484f798562d0 +https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.3-pyhd8ed1ab_1003.tar.bz2#bbf9a201f6ce99a506f4955374d9a9f4 +https://conda.anaconda.org/conda-forge/noarch/flit-core-3.6.0-pyhd8ed1ab_0.tar.bz2#f8c17f22a3ce533876c468157ff8ff8f +https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.0.2-pyhd8ed1ab_0.tar.bz2#eaff56fe28d1236076aa3bb13c35b434 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.79.1-h2574ce0_1.tar.bz2#7df45d44314d8ed15453dbe9f6c125db -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.1-pyhd8ed1ab_0.tar.bz2#47a51a5b8f9cc41004c8d7bd88b62447 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.4-pyhd8ed1ab_0.tar.bz2#0d86e4e6ac78912f3f47e0453b124aca https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.2-pyhd8ed1ab_0.tar.bz2#fb40b157bd62b457a1cc82527b63f0b0 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.11.0-pyhd8ed1ab_0.tar.bz2#01f530bf82d9f589c2087b8c347d5e29 +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094 +https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.13.0-pyhd8ed1ab_0.tar.bz2#f5567b5e7a5abc9133f198b8356674d1 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6 -https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.1.0-pyhd8ed1ab_0.tar.bz2#c602e093a43beb74210362e983584666 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff +https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.3.0-pyhd8ed1ab_1.tar.bz2#b7bc0de380f114658af5fe57cebdcd9e +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.1-pyh9f0ad1d_0.tar.bz2#aed452f2f9f8bc8b2b0c412975051b5b https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.7-2_cp37m.tar.bz2#afff88bf9a7048da740c70aeb8cdbb82 https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395 https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/testpath-0.5.0-pyhd8ed1ab_0.tar.bz2#53b57d6a468bebc7cef1253b177a5e9e -https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.0-pyhd8ed1ab_0.tar.bz2#f6ba1dcaac382d318901f44c0eb3dcb8 -https://conda.anaconda.org/conda-forge/noarch/typing_extensions-3.10.0.2-pyha770c72_0.tar.bz2#85dfd487a244bbe2cf7019ce8a39b5bc +https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.1-pyhd8ed1ab_0.tar.bz2#a1bc9765ef9499760e88f568b3a6622c +https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.0.1-pyha770c72_0.tar.bz2#1fc03816925d3cb7fdab9ab234e7fea7 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.0-pyhd8ed1ab_1.tar.bz2#3aa2c3e25dd361b453d010388b9cdff1 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.6.0-pyhd8ed1ab_0.tar.bz2#855e2c4622f5eb50a4f6f7167b9ba17a +https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.2.3-pyhd8ed1ab_0.tar.bz2#a9e89668df0da0f33c8c4ddf7c118f6d +https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.1-pyhd8ed1ab_0.tar.bz2#1ca02aaf78d9c70d9a81a3bed5752022 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_0.tar.bz2#947f7f41958eabc0f6e886557512bb76 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e -https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.5.30-py37h89c1867_0.tar.bz2#105f18ae8597a5f4d4e3188bcb06c796 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py37h036bc23_1.tar.bz2#43cbbebef925c942310d814502323c63 -https://conda.anaconda.org/conda-forge/linux-64/chardet-4.0.0-py37h89c1867_1.tar.bz2#f4fbd4721b80f0d6b53b3a3374914068 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.4.1-py37hcd2ae1e_0.tar.bz2#2fe9a412db79e302782f7ed9e18c02dd -https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py37hc8dfbb8_1002.tar.bz2#1d8fad3ab1118f88aada03a56efa93d8 -https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py37hcd2ae1e_0.tar.bz2#46690607252de1ec38dbf9e390ae1819 -https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.8.1-py37h89c1867_0.tar.bz2#6c71b2b82c7e5908e1077b932632b6cf -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.2.2-pyhd8ed1ab_0.tar.bz2#95f347313ca89b90b65ea5265051aea1 -https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.0-py37h89c1867_2.tar.bz2#5e95b453f199caec4dd1bf6002ae0ce2 -https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.8.1-py37h89c1867_0.tar.bz2#7fd03e4247346d69702ad89c726c96fe -https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py37h5e8e339_0.tar.bz2#90ad307f6997784664de956e09ec689e +https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.10.8-py37h89c1867_1.tar.bz2#48e8442b6097c7d4a0e3494c74ff9eeb +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.0-py37h036bc23_0.tar.bz2#05ab26c7685bcb7dd8bc8752c121f823 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.5.1-py37hcd2ae1e_0.tar.bz2#739a721301e47f42998af7bd51f0c42c +https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py37hcd2ae1e_1.tar.bz2#f39576dbfb9a1067293d24f0e3b6bdda +https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.10.1-py37h89c1867_0.tar.bz2#4684501699ad9eccbc29fa694d5343fc +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.4.0-pyhd8ed1ab_0.tar.bz2#9fb134dbabe7851a9d71411064b2c30d +https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.1-py37h89c1867_0.tar.bz2#432446f7c13e1babe6bc05ba74d30f64 +https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.9.1-py37h89c1867_1.tar.bz2#95df6ebc6f4e8edd5d87aa99c59da605 +https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py37h5e8e339_1.tar.bz2#6c7c14c95d4c435b66261639b64c7c51 https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.3-pyhd8ed1ab_0.tar.bz2#be3bfd435802d2c768c6b2439f325f3d -https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py37h5e8e339_1004.tar.bz2#2a5b3879a9268d1cad576f36a6b41349 -https://conda.anaconda.org/conda-forge/noarch/packaging-21.0-pyhd8ed1ab_0.tar.bz2#45cfb8e482b5cce8f07c87e0e19a592c -https://conda.anaconda.org/conda-forge/linux-64/pexpect-4.8.0-py37hc8dfbb8_1.tar.bz2#fda2ad946f9f5b7ce3531cc34ab262e9 -https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py37hc8dfbb8_1002.tar.bz2#14ce4d7ec7d9a22007168539135bc6d5 -https://conda.anaconda.org/conda-forge/linux-64/psutil-5.8.0-py37h5e8e339_1.tar.bz2#2923250371b05e798f3732531cdb5300 -https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py37h88a64d2_0.tar.bz2#60e46ec940aea1198b559bd37c805243 -https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.17.3-py37h5e8e339_2.tar.bz2#829e0a0279d711a7b5aa67fe18c73672 -https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py37h89c1867_3.tar.bz2#bd069d59ee91a2e26552cd7bb4c64032 +https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py37h5e8e339_1005.tar.bz2#2dd7bedc3ea33c30cb9dcf93d64c10eb +https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh9f0ad1d_2.tar.bz2#5909e7b978141dd80d28dbf9de627827 +https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.0-py37h5e8e339_0.tar.bz2#009832a45a0d9240aa3f3329055da1ef +https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py37h88a64d2_1.tar.bz2#4e4c43ae76df275f09cffc5e63ae936d +https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.18.1-py37h5e8e339_0.tar.bz2#f7e31f8bb6c8b311c3842c090a440e3d +https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py37h89c1867_4.tar.bz2#44df88d27e2891f90e3f06dcfcca0927 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py37h336d617_0.tar.bz2#def88a6d73bb6a7c95418e341708f599 -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.2-py37h5e8e339_2.tar.bz2#4211f3b208e9b1c87a5ccf34775f126b -https://conda.anaconda.org/conda-forge/linux-64/setuptools-58.2.0-py37h89c1867_0.tar.bz2#df8adba0800b87a9232e801c70ec14d9 -https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py37h89c1867_1.tar.bz2#a48a71b3c0a40b5227056a7cb653d99d -https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py37h5e8e339_1.tar.bz2#92449128c4639feae48d731ef2186099 -https://conda.anaconda.org/conda-forge/linux-64/websocket-client-0.57.0-py37h89c1867_4.tar.bz2#b7d10c52e3aaca152f4e16f90e40cd55 -https://conda.anaconda.org/conda-forge/linux-64/anyio-3.3.2-py37h89c1867_0.tar.bz2#badc1ab95ee9ff86e11d256dbfa44eb3 -https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py37h5e8e339_2.tar.bz2#5403470dcc6211e0ad72077616e2519d +https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py37h336d617_1.tar.bz2#6512cf886a870090430e2f37f41b652e +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.6-py37h5e8e339_0.tar.bz2#70ee31b43817f9fb7a46f76db99af94b +https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.5.0-py37h89c1867_0.tar.bz2#8d99eb0fa9aaae9dddb6a91451ac7907 +https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py37h89c1867_2.tar.bz2#464124f171b89cb9b459f47f81cc0e84 +https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py37h5e8e339_2.tar.bz2#ec86ae00c96dea5f2d810957a8fabc26 +https://conda.anaconda.org/conda-forge/linux-64/anyio-3.5.0-py37h89c1867_0.tar.bz2#aa263b5829ec141d12bf6a5dec36bf5b +https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py37h5e8e339_1.tar.bz2#042ff84df84e01a6399caa379deaf044 https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6 https://conda.anaconda.org/conda-forge/noarch/bleach-4.1.0-pyhd8ed1ab_0.tar.bz2#4a2104c7b22c222bd0fe03aaef12862c -https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py37h5e8e339_1001.tar.bz2#871eed4ba322e7b3f200956a096b34e7 -https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.4.7-py37h5d9358c_0.tar.bz2#d811fb6a96ae0cf8c0a17457a8e67ff4 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-4.8.1-hd8ed1ab_0.tar.bz2#ce811c521c3a02d7c8ace1cfbd2a0bcd -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.1-pyhd8ed1ab_0.tar.bz2#c647e77921fd3e245cdcc5b2d451a0f8 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.0.1-pyhd8ed1ab_0.tar.bz2#e51c302441bad8d2fbba17e1e23eac24 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.0.6-pyhd8ed1ab_0.tar.bz2#bad4522cf4a022cb5500969ad67c3342 -https://conda.anaconda.org/conda-forge/noarch/mako-1.1.5-pyhd8ed1ab_0.tar.bz2#e8f5f27557d8a0f6c4ed9950cd622e50 -https://conda.anaconda.org/conda-forge/noarch/pip-21.2.4-pyhd8ed1ab_0.tar.bz2#4104ada314dd5639ea36cc12bce0a2cd -https://conda.anaconda.org/conda-forge/noarch/pygments-2.10.0-pyhd8ed1ab_0.tar.bz2#32bcce837f1316f1c3208118b6c5e5fc -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.16-py37h5e8e339_0.tar.bz2#3022e8a511239bf6fb8a58eed0def135 -https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.25-py37h5e8e339_0.tar.bz2#a99762a92c0d402de973e5cec9da8632 -https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py37h89c1867_0.tar.bz2#b5731c592caa70ecc1363d60ce725243 -https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.3-pyhd8ed1ab_0.tar.bz2#e60694657bfb440e569d043dae99d111 -https://conda.anaconda.org/conda-forge/noarch/argcomplete-1.12.3-pyhd8ed1ab_2.tar.bz2#b8152341fc3fc9880c6e1b9d188974e5 +https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py37h5e8e339_1003.tar.bz2#4ad2e74470a3c08b0f6d59699f0d9a32 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-36.0.1-py37hf1a17b8_0.tar.bz2#7ad2c98aaab85d80017b3a6f79a2aa5d +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.4.0-pyhd8ed1ab_0.tar.bz2#17ec41acce882e5db4efdcc4c01ca7e0 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.1.2-pyhd8ed1ab_0.tar.bz2#9a332b6f8f05629435ce59032df8cfa9 +https://conda.anaconda.org/conda-forge/noarch/mako-1.1.6-pyhd8ed1ab_0.tar.bz2#cb952a55037148f6a5ddd9770ee1384f +https://conda.anaconda.org/conda-forge/noarch/pip-21.3.1-pyhd8ed1ab_0.tar.bz2#e4fe2a9af78ff11f1aced7e62128c6a8 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.19-py37h5e8e339_0.tar.bz2#a909957daac2e6296ce9219940481e1d +https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.31-py37h5e8e339_0.tar.bz2#8c316b01e34dea00fe526456be12fae4 +https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py37h89c1867_1.tar.bz2#658fe17f1a35117ebfb063f3b023c884 +https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.5-pyhd8ed1ab_0.tar.bz2#1102908123392ffc63c01caea136b1d4 +https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 https://conda.anaconda.org/conda-forge/noarch/nbformat-5.1.3-pyhd8ed1ab_0.tar.bz2#bafa5df6d4f8db69a4d197b4657127e7 @@ -116,23 +119,22 @@ https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.1.1-pyhd8ed1ab_0.tar.bz https://conda.anaconda.org/conda-forge/noarch/pyopenssl-21.0.0-pyhd8ed1ab_0.tar.bz2#8c49efecb7dca466e18b06015e8c88ce https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.4-pyhd8ed1ab_0.tar.bz2#66ea0ea89e4f657a8b85fa5bdfce60ac -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.20-pyha770c72_0.tar.bz2#98a90e847b48fc14b2d5b12e4884e8d4 -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.7-pyhd8ed1ab_0.tar.bz2#be75bab4820a56f77ba1a3fc9139c36a -https://conda.anaconda.org/conda-forge/linux-64/ipython-7.28.0-py37h6531663_0.tar.bz2#2a75abe115faed053577f8b680a90f46 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.10-pyhd8ed1ab_1.tar.bz2#000cfe33d6fa746c5a9d1b29a79342a3 +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.24-pyha770c72_0.tar.bz2#edaf527a6d394e2b965aff228c2e552f +https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c +https://conda.anaconda.org/conda-forge/linux-64/ipython-7.31.1-py37h89c1867_0.tar.bz2#764033508e28c9b0f7b02327416aab9a https://conda.anaconda.org/conda-forge/linux-64/nbconvert-6.0.7-py37h89c1867_3.tar.bz2#aa3710e0a8a44d7c7313b37775018446 -https://conda.anaconda.org/conda-forge/noarch/requests-2.26.0-pyhd8ed1ab_0.tar.bz2#0ed2ccbde6db9dd5789068eb7194463f -https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.4.1-py37h6531663_0.tar.bz2#6d07659dabaeadc3b575dfd041852f19 +https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62 +https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.7.0-py37h6531663_0.tar.bz2#1042e547a7d1ec447155d3e727061c2e +https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.13.4-pyhd8ed1ab_0.tar.bz2#70c6e1f755731d858767cb3c08c56a95 https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-base-1.4.2-py37h89c1867_0.tar.bz2#a61ccf7a9c83522c9b869816bb041a4c -https://conda.anaconda.org/conda-forge/noarch/requests-unixsocket-0.2.0-py_0.tar.bz2#1e94a233d2f2c81b2bf11bd43a515fbe -https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.11.1-pyhd8ed1ab_0.tar.bz2#8861413be89425f2c32ec15ad098aeb5 -https://conda.anaconda.org/conda-forge/linux-64/notebook-6.3.0-py37h89c1867_0.tar.bz2#76f65d90332854acdbd6fa16db92bdde -https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.1-pyhd8ed1ab_0.tar.bz2#5e0974a4547a2b82667f65a6498c4145 -https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.0-pyhd8ed1ab_0.tar.bz2#db6c08b360baeacba755a78d0a1ecabb +https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.1-pyhd8ed1ab_0.tar.bz2#a35cb988cd5b9b9b2d1c6179a8a86974 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.10.3-pyhd8ed1ab_0.tar.bz2#65d62a616bed5237b85b9e2a88378ec0 +https://conda.anaconda.org/conda-forge/noarch/notebook-6.3.0-pyha770c72_1.tar.bz2#6a53111a5a62d32abfa21aac8fc55a1b +https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-singleuser-1.4.2-py37h89c1867_0.tar.bz2#fb8151960fce2c583c7d1eaf6d4a178a -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.8.2-pyhd8ed1ab_0.tar.bz2#c7891bb53fbb3911f4b526533314d63b -https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.2-pyhd8ed1ab_0.tar.bz2#289b4ac8e8ce489d747ef9e4d5e1d4d2 +https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.5-pyhd8ed1ab_0.tar.bz2#e9e2281b7dc08d876fc789af0f571ade https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a -https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.1-py37h89c1867_4.tar.bz2#274af17d64191a15d3899d5fdc4abc02 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.3-pyhd3deb0d_0.tar.bz2#536a9ed6d9e740f2b83d1a3c388e4388 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.1.17-pyhd8ed1ab_0.tar.bz2#22bf1d0a87a7015dc51140372ea950fa +https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.2-py37h89c1867_1.tar.bz2#deaf685ad832b287439250b4ff35f64d +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.5-pyhd8ed1ab_0.tar.bz2#6f2ee1ec157104df141e2e5afeba98d4 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.2.8-pyhd8ed1ab_0.tar.bz2#e2cc0671571f14af58f832c912dee025 diff --git a/repo2docker/buildpacks/conda/environment.py-2.7.lock b/repo2docker/buildpacks/conda/environment.py-2.7.lock index 433a32fae..58dd42c09 100644 --- a/repo2docker/buildpacks/conda/environment.py-2.7.lock +++ b/repo2docker/buildpacks/conda/environment.py-2.7.lock @@ -1,43 +1,43 @@ # AUTO GENERATED FROM environment.py-2.7.yml, DO NOT MANUALLY MODIFY -# Frozen on 2021-10-06 07:32:48 UTC +# Frozen on 2022-01-26 18:33:44 UTC # Generated by conda-lock. # platform: linux-64 # input_hash: 6e66c9e333cfc5d702bcabcb832e0f70ee70bd3ef21869e83a2db3596ce0d826 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2#6a777890e94194dc94a29a76d2a7e721 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26 https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_9.tar.bz2#a41b94921f55a353a8bbf5bb8d5ca335 -https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_9.tar.bz2#1090e28709184ec3d2f6ad6abd55fa31 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_9.tar.bz2#84b1ec6f5b2d21968add479348515bba +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1 https://conda.anaconda.org/conda-forge/linux-64/libffi-3.2.1-he1b5a44_1007.tar.bz2#11389072d7d6036fd811c3d9460475cd https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.17-h516909a_0.tar.bz2#a98437ebf6fbbc6e498c64636f3958cf https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53 https://conda.anaconda.org/conda-forge/linux-64/readline-8.1-h46c0cb4_0.tar.bz2#5788de3c8d7a7d64ac56c784c4ef48e6 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.2-he1b5a44_2.tar.bz2#bc50a478e0d59f9a62ad164e7d768f63 https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2#3588c2c6cb9f9bcc65b544ab1c715d60 +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2#84e76fb280e735fec1efd2d21fd9cb27 https://conda.anaconda.org/conda-forge/linux-64/python-2.7.15-h5a48372_1011_cpython.tar.bz2#d1824ac0987155f58a03b7ffda01db38 -https://conda.anaconda.org/conda-forge/linux-64/backports-1.0-py27_1.tar.bz2#eda57aeca994883cc314e03b71968668 -https://conda.anaconda.org/conda-forge/linux-64/backports.shutil_get_terminal_size-1.0.0-py27_1.tar.bz2#539974750142343a3944ac010e475cb6 -https://conda.anaconda.org/conda-forge/linux-64/backports_abc-0.5-py27_0.tar.bz2#125cc4f050a230395060f1f1349ec18e +https://conda.anaconda.org/conda-forge/noarch/backports-1.0-py_2.tar.bz2#0da16b293affa6ac31812376f8eb79dd +https://conda.anaconda.org/conda-forge/noarch/backports_abc-0.5-py_1.tar.bz2#6ac8cc52b55791b066dc43469bbaf8f2 https://conda.anaconda.org/conda-forge/noarch/decorator-4.4.2-py_0.tar.bz2#d2eabb9cabd212e1ec6a9463bd846243 -https://conda.anaconda.org/conda-forge/linux-64/ipython_genutils-0.2.0-py27_0.tar.bz2#5e8c18afa86e5f3af13248316e202288 +https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 https://conda.anaconda.org/conda-forge/linux-64/python_abi-2.7-1_cp27mu.tar.bz2#02d6ad6bce3a798e6ee85494cd9b3d8d -https://conda.anaconda.org/conda-forge/linux-64/simplegeneric-0.8.1-py27_0.tar.bz2#f1db3b1ec8ca72f3b1a26331b386aa51 +https://conda.anaconda.org/conda-forge/noarch/simplegeneric-0.8.1-py_1.tar.bz2#a561caf8601e8d85547c77a54ee99333 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.1.9-pyh9f0ad1d_0.tar.bz2#ef10a99c7570762fa2a69218c171dbc8 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.0-pyhd8ed1ab_1.tar.bz2#3aa2c3e25dd361b453d010388b9cdff1 +https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.1-pyhd8ed1ab_0.tar.bz2#1ca02aaf78d9c70d9a81a3bed5752022 +https://conda.anaconda.org/conda-forge/noarch/backports.shutil_get_terminal_size-1.0.0-py_3.tar.bz2#ed3c4ce59b457c5fd7ca79b94c57eff4 https://conda.anaconda.org/conda-forge/linux-64/certifi-2019.11.28-py27h8c360ce_1.tar.bz2#a345324a2547908c1f9ca4b65d93f5ba https://conda.anaconda.org/conda-forge/linux-64/configparser-3.7.3-py27h8c360ce_2.tar.bz2#fce87da76335c7274cb858745fded401 https://conda.anaconda.org/conda-forge/linux-64/enum34-1.1.10-py27h8c360ce_1.tar.bz2#0af4ab7b9189611125ba54d99163f58d https://conda.anaconda.org/conda-forge/linux-64/futures-3.3.0-py27h8c360ce_1.tar.bz2#2689f3fc54d3987298828719b0244005 -https://conda.anaconda.org/conda-forge/linux-64/pexpect-4.8.0-py27h8c360ce_1.tar.bz2#e772596cb72ea97421227a22aefba64a +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh9f0ad1d_2.tar.bz2#5909e7b978141dd80d28dbf9de627827 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.1-py_0.tar.bz2#0d0150ed9c2d25817f5324108d3f7571 https://conda.anaconda.org/conda-forge/linux-64/pyzmq-19.0.0-py27h76efe43_1.tar.bz2#0f578fd2966e4b2b910ffb3d39951645 https://conda.anaconda.org/conda-forge/linux-64/scandir-1.10.0-py27hdf8410d_1.tar.bz2#bfaf4b51772c5904b696ce7d68731397 @@ -52,6 +52,6 @@ https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py27h8c360ce_1 https://conda.anaconda.org/conda-forge/noarch/pip-20.1.1-pyh9f0ad1d_0.tar.bz2#cd67a20c73ff2514cf5f34cae28fc867 https://conda.anaconda.org/conda-forge/noarch/pygments-2.5.2-py_0.tar.bz2#c48719b941c60b26add57de2b014ef96 https://conda.anaconda.org/conda-forge/linux-64/jupyter_client-5.3.4-py27_1.tar.bz2#ec6099141189dfae14367478d3e96fa9 -https://conda.anaconda.org/conda-forge/linux-64/prompt_toolkit-1.0.15-py27_0.tar.bz2#e64d8ff5a16afcea0dff046bc837f6db +https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-1.0.15-py_1.tar.bz2#f5bea0930b268df84653cb32c8d1542f https://conda.anaconda.org/conda-forge/linux-64/ipython-5.8.0-py27_1.tar.bz2#b95b11ff25dde76c6fa0c5620a8e90ad https://conda.anaconda.org/conda-forge/linux-64/ipykernel-4.8.2-py27_0.tar.bz2#18141b1342f87e1607c5b389c2c12a81 diff --git a/repo2docker/buildpacks/conda/environment.py-3.5.lock b/repo2docker/buildpacks/conda/environment.py-3.5.lock index 252974738..7d4d75059 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.5.lock +++ b/repo2docker/buildpacks/conda/environment.py-3.5.lock @@ -1,25 +1,31 @@ # py3.5 conda packages are no longer being updated as of 12/2018 +# note: one update 11/2021 to shift nodejs into conda-env # this file is hand-maintained now # and should only receive security fixes, no new features @EXPLICIT -https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-main.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2018.10.15-ha4d7672_0.tar.bz2 -https://repo.anaconda.com/pkgs/main/linux-64/libstdcxx-ng-7.2.0-hdf63c60_3.conda -https://repo.anaconda.com/pkgs/main/linux-64/libgcc-ng-7.2.0-hdf63c60_3.conda +https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_11.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_11.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_11.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.6-h470a237_2.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/gmp-6.1.2-hfc679d8_0.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.2.1-hfc679d8_5.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/icu-68.2-h9c3ff4c_0.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_2.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.16-h470a237_1.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.1-hfc679d8_1.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/openssl-1.0.2p-h470a237_1.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.4-h470a237_1.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/libuv-1.42.0-h7f98852_0.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h470a237_3.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.17.4-h92b4a50_0.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/pandoc-1.19.2-0.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/readline-7.0-haf1bffa_1.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.9-ha92aebf_0.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/readline-8.1-h46c0cb4_0.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.2.5-hfc679d8_6.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.25.3-hb1c47c0_0.tar.bz2 -https://conda.anaconda.org/conda-forge/linux-64/python-3.5.5-h5001a0f_2.tar.bz2 +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2 +https://repo.anaconda.com/pkgs/main/linux-64/python-3.5.6-h12debd9_1.conda https://conda.anaconda.org/conda-forge/noarch/backcall-0.1.0-py_0.tar.bz2 https://conda.anaconda.org/conda-forge/linux-64/certifi-2018.8.24-py35_1001.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/decorator-4.3.0-py_0.tar.bz2 diff --git a/repo2docker/buildpacks/conda/environment.py-3.6.lock b/repo2docker/buildpacks/conda/environment.py-3.6.lock index 9a5915f95..8537d0477 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.6.lock +++ b/repo2docker/buildpacks/conda/environment.py-3.6.lock @@ -1,23 +1,26 @@ # AUTO GENERATED FROM environment.py-3.6.yml, DO NOT MANUALLY MODIFY -# Frozen on 2021-10-06 07:33:22 UTC +# Frozen on 2022-01-26 18:34:43 UTC # Generated by conda-lock. # platform: linux-64 -# input_hash: 1b892b16944e00001e2e99c86d794fe0e1077e89eb9e3f11632db4cb8157f34b +# input_hash: a380aced865172581392c0b25b78cfde69a59becdb41fef3ade37eae6b024aed @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2#6a777890e94194dc94a29a76d2a7e721 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26 https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_9.tar.bz2#a41b94921f55a353a8bbf5bb8d5ca335 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.14.2-h7f98852_0.tar.bz2#036a4ef13793d1bd771090b49c4c2550 -https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_9.tar.bz2#1090e28709184ec3d2f6ad6abd55fa31 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065 +https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.17.0.1-h7f98852_0.tar.bz2#bd9fa82641da6dfe5696fd196e3c7cf1 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_9.tar.bz2#84b1ec6f5b2d21968add479348515bba -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.17.2-h7f98852_0.tar.bz2#a25871010e5104556045aa01850fbddf +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a +https://conda.anaconda.org/conda-forge/linux-64/icu-69.1-h9c3ff4c_0.tar.bz2#e0773c9556d588b062a4e1424a6a02fa https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h9c3ff4c_4.tar.bz2#dea515312db9d4788e52c2edfc657635 +https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 +https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206 https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d +https://conda.anaconda.org/conda-forge/linux-64/libuv-1.43.0-h7f98852_0.tar.bz2#b34d856aa7e06ebd79bded72ef4afc16 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 @@ -26,57 +29,58 @@ https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2# https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.43.0-h812cca2_1.tar.bz2#d0a7846b7b3b8fb0d8b36904a53b8155 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-ha56f1ee_2.tar.bz2#6ab4eaa11ff01801cffca0a27489dc04 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2#3588c2c6cb9f9bcc65b544ab1c715d60 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.18.3-h8ca31f7_2.tar.bz2#192a478a1ae899992e4afce84520badb +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2#84e76fb280e735fec1efd2d21fd9cb27 -https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_2.tar.bz2#2094cf6b08a571cecf7fa332152e6461 -https://conda.anaconda.org/conda-forge/linux-64/python-3.6.13-hb7a2778_2_cpython.tar.bz2#c6f337bc180a8de2243ca826b28cb220 +https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_3.tar.bz2#e29650992ae593bc05fc93722483e5c3 +https://conda.anaconda.org/conda-forge/linux-64/python-3.6.15-hb7a2778_0_cpython.tar.bz2#2263dbd2d8116aa8dd974602faabb1a2 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 -https://conda.anaconda.org/conda-forge/noarch/attrs-21.2.0-pyhd8ed1ab_0.tar.bz2#d2e1c7f388ac403df7079b411c37cc50 +https://conda.anaconda.org/conda-forge/noarch/attrs-21.4.0-pyhd8ed1ab_0.tar.bz2#f70280205d7044c8b8358c8de3190e5d https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 -https://conda.anaconda.org/conda-forge/linux-64/backports-1.0-py36_1.tar.bz2#0e8774f348e40cdc512fee62fb202f7b +https://conda.anaconda.org/conda-forge/noarch/backports-1.0-py_2.tar.bz2#0da16b293affa6ac31812376f8eb79dd https://conda.anaconda.org/conda-forge/noarch/blinker-1.4-py_1.tar.bz2#fa509a09190583f869ae442bf4d17f5f -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.0-pyhd8ed1ab_0.tar.bz2#4a57e24d5b759893615c05926b7b5fb9 +https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.10-pyhd8ed1ab_0.tar.bz2#ea77236c8031cfa821720b21b4cb0ceb https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyh787bdff_2.tar.bz2#ed959a4ba14e6ddfa898630a5474a601 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.0-pyhd8ed1ab_0.tar.bz2#71b13ba2e0efcff45646f05d619534b0 +https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/idna-3.1-pyhd3deb0d_0.tar.bz2#9c9aea4b8391264477df484f798562d0 -https://conda.anaconda.org/conda-forge/linux-64/ipython_genutils-0.2.0-py36_0.tar.bz2#80794c9ad52d72002687dc91222b31ba +https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.3-pyhd8ed1ab_1003.tar.bz2#bbf9a201f6ce99a506f4955374d9a9f4 +https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd +https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.0.2-pyhd8ed1ab_0.tar.bz2#eaff56fe28d1236076aa3bb13c35b434 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.79.1-h2574ce0_1.tar.bz2#7df45d44314d8ed15453dbe9f6c125db -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.1-pyhd8ed1ab_0.tar.bz2#47a51a5b8f9cc41004c8d7bd88b62447 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.4-pyhd8ed1ab_0.tar.bz2#0d86e4e6ac78912f3f47e0453b124aca https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 https://conda.anaconda.org/conda-forge/noarch/parso-0.7.1-pyh9f0ad1d_0.tar.bz2#f66647d1ec805566d72ac26f62b19c01 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.11.0-pyhd8ed1ab_0.tar.bz2#01f530bf82d9f589c2087b8c347d5e29 +https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.13.0-pyhd8ed1ab_0.tar.bz2#f5567b5e7a5abc9133f198b8356674d1 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6 -https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.1.0-pyhd8ed1ab_0.tar.bz2#c602e093a43beb74210362e983584666 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff +https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.3.0-pyhd8ed1ab_1.tar.bz2#b7bc0de380f114658af5fe57cebdcd9e +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.1-pyh9f0ad1d_0.tar.bz2#aed452f2f9f8bc8b2b0c412975051b5b https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.6-2_cp36m.tar.bz2#6f5b92d833a339da29ad8578c2a648ad https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395 https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/testpath-0.5.0-pyhd8ed1ab_0.tar.bz2#53b57d6a468bebc7cef1253b177a5e9e -https://conda.anaconda.org/conda-forge/noarch/typing_extensions-3.10.0.2-pyha770c72_0.tar.bz2#85dfd487a244bbe2cf7019ce8a39b5bc +https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.0.1-pyha770c72_0.tar.bz2#1fc03816925d3cb7fdab9ab234e7fea7 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.0-pyhd8ed1ab_1.tar.bz2#3aa2c3e25dd361b453d010388b9cdff1 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.6.0-pyhd8ed1ab_0.tar.bz2#855e2c4622f5eb50a4f6f7167b9ba17a +https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.2.3-pyhd8ed1ab_0.tar.bz2#a9e89668df0da0f33c8c4ddf7c118f6d +https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.1-pyhd8ed1ab_0.tar.bz2#1ca02aaf78d9c70d9a81a3bed5752022 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_0.tar.bz2#947f7f41958eabc0f6e886557512bb76 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.5.30-py36h5fab9bb_0.tar.bz2#500e3fb737f9d2023755f78f1f22ca69 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py36hd8eec40_1.tar.bz2#2e025dd15559c9882880f005e6c02018 -https://conda.anaconda.org/conda-forge/linux-64/chardet-4.0.0-py36h5fab9bb_1.tar.bz2#b63c63a44b8d37acaff014df8a512d92 -https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#3ff18a1ed2e93fb739b97b3669dcaf89 https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.1-py36hc4f0c31_0.tar.bz2#e0509bd49a3747b0442ecabae4a0df1b https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.8.1-py36h5fab9bb_0.tar.bz2#ec50a4f999b407d69b3a433c1405f0ba -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.2.2-pyhd8ed1ab_0.tar.bz2#95f347313ca89b90b65ea5265051aea1 +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.4.0-pyhd8ed1ab_0.tar.bz2#9fb134dbabe7851a9d71411064b2c30d https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py36h5fab9bb_1.tar.bz2#e761c2377eafa1268eda3dd192cb06cb https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py36h8f6f2f9_0.tar.bz2#e450eb239eb68d0467b1c6d0fef28ae9 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py36h8f6f2f9_1004.tar.bz2#a53a196c30fc83ee9f0a84711b8fa681 -https://conda.anaconda.org/conda-forge/noarch/packaging-21.0-pyhd8ed1ab_0.tar.bz2#45cfb8e482b5cce8f07c87e0e19a592c -https://conda.anaconda.org/conda-forge/linux-64/pexpect-4.8.0-py36h9f0ad1d_1.tar.bz2#7fde8ab34b9254a5c8fb8004f7c649cb -https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py36h9f0ad1d_1002.tar.bz2#8fa70e047f8c6e1b8c014d0f52f8d8db +https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh9f0ad1d_2.tar.bz2#5909e7b978141dd80d28dbf9de627827 https://conda.anaconda.org/conda-forge/linux-64/psutil-5.8.0-py36h8f6f2f9_1.tar.bz2#ccecd9206d61f029549a81a980174ed8 https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py36h66a4f8d_0.tar.bz2#ab0c8b5ebc4924b67d1ee2b1444abf0b https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.17.3-py36h8f6f2f9_2.tar.bz2#26db670368942d4a144cad213448496a @@ -86,27 +90,26 @@ https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py36h7068817_0.tar. https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.2-py36h8f6f2f9_2.tar.bz2#20b17ae368cb09dd5609203ad3eaf122 https://conda.anaconda.org/conda-forge/linux-64/setuptools-58.0.4-py36h5fab9bb_2.tar.bz2#d584b24af029d1fc78b6a0d2cc294d40 https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py36h8f6f2f9_1.tar.bz2#3d19680e14cb7cf6f383ba1fd3a72f2c -https://conda.anaconda.org/conda-forge/linux-64/traitlets-4.3.3-py36h9f0ad1d_1.tar.bz2#37802414836e8c0594873aaf656ace5d -https://conda.anaconda.org/conda-forge/noarch/typing-extensions-3.10.0.2-hd8ed1ab_0.tar.bz2#786c3b0de977da13146a2eaaa091ac46 -https://conda.anaconda.org/conda-forge/linux-64/websocket-client-0.57.0-py36h5fab9bb_4.tar.bz2#2102ad374c118953b3906ae19728da28 -https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py36h8f6f2f9_2.tar.bz2#63fee45eaa9ecec8d66c9ec4422ab6e7 +https://conda.anaconda.org/conda-forge/noarch/traitlets-4.3.3-pyhd8ed1ab_2.tar.bz2#dacad0ee02418407a5991b0b62dfdc18 +https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.0.1-hd8ed1ab_0.tar.bz2#c0d4ec4bcbceb927bff1103a997410d3 +https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-21.1.0-py36h8f6f2f9_0.tar.bz2#c7ff3bb6bfd8cb82aefb8d960c439743 https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6 https://conda.anaconda.org/conda-forge/noarch/bleach-4.1.0-pyhd8ed1ab_0.tar.bz2#4a2104c7b22c222bd0fe03aaef12862c https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py36h8f6f2f9_1001.tar.bz2#0f244e9624403e17430e9d959530b01c -https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.4.7-py36hb60f036_0.tar.bz2#e3f8fbf0f4037279847c8ab1551fe6f8 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-35.0.0-py36hb60f036_0.tar.bz2#d7533bed1783b4abef7e598cee93347d https://conda.anaconda.org/conda-forge/linux-64/immutables-0.16-py36h8f6f2f9_0.tar.bz2#e9abd4b9cee6d7dd062ca2b5f4e4c9f3 -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.1-pyhd8ed1ab_0.tar.bz2#c647e77921fd3e245cdcc5b2d451a0f8 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.0.1-pyhd8ed1ab_0.tar.bz2#e51c302441bad8d2fbba17e1e23eac24 +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.1.2-pyhd8ed1ab_0.tar.bz2#94188756716d63117f09d546a30d43e7 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.8.1-py36h5fab9bb_0.tar.bz2#a6fa892e9d37e4e299b426c8fdb6f1d6 -https://conda.anaconda.org/conda-forge/noarch/mako-1.1.5-pyhd8ed1ab_0.tar.bz2#e8f5f27557d8a0f6c4ed9950cd622e50 -https://conda.anaconda.org/conda-forge/noarch/pip-21.2.4-pyhd8ed1ab_0.tar.bz2#4104ada314dd5639ea36cc12bce0a2cd -https://conda.anaconda.org/conda-forge/noarch/pygments-2.10.0-pyhd8ed1ab_0.tar.bz2#32bcce837f1316f1c3208118b6c5e5fc +https://conda.anaconda.org/conda-forge/noarch/mako-1.1.6-pyhd8ed1ab_0.tar.bz2#cb952a55037148f6a5ddd9770ee1384f +https://conda.anaconda.org/conda-forge/noarch/pip-21.3.1-pyhd8ed1ab_0.tar.bz2#e4fe2a9af78ff11f1aced7e62128c6a8 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.16-py36h8f6f2f9_0.tar.bz2#602e4a91b1df8519343e4a317a75fd5a https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.25-py36h8f6f2f9_0.tar.bz2#fbe3f8667087f9c6dc0011df8c39f76b https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py36h5fab9bb_0.tar.bz2#292f1173e1c1b446dc5969444f619108 -https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.3-pyhd8ed1ab_0.tar.bz2#e60694657bfb440e569d043dae99d111 +https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.5-pyhd8ed1ab_0.tar.bz2#1102908123392ffc63c01caea136b1d4 https://conda.anaconda.org/conda-forge/noarch/contextvars-2.4-py_0.tar.bz2#295fe9300971a6bd1dc4b18ad6509be2 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.0.6-pyhd8ed1ab_0.tar.bz2#bad4522cf4a022cb5500969ad67c3342 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.1.2-pyhd8ed1ab_0.tar.bz2#9a332b6f8f05629435ce59032df8cfa9 https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 https://conda.anaconda.org/conda-forge/noarch/nbformat-5.1.3-pyhd8ed1ab_0.tar.bz2#bafa5df6d4f8db69a4d197b4657127e7 @@ -114,25 +117,24 @@ https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.1.1-pyhd8ed1ab_0.tar.bz https://conda.anaconda.org/conda-forge/noarch/pyopenssl-21.0.0-pyhd8ed1ab_0.tar.bz2#8c49efecb7dca466e18b06015e8c88ce https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.4-pyhd8ed1ab_0.tar.bz2#66ea0ea89e4f657a8b85fa5bdfce60ac -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.20-pyha770c72_0.tar.bz2#98a90e847b48fc14b2d5b12e4884e8d4 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.9-pyhd8ed1ab_0.tar.bz2#21554dd9bbabff27ae87f715fee4d56c +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.24-pyha770c72_0.tar.bz2#edaf527a6d394e2b965aff228c2e552f https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py36h5fab9bb_1.tar.bz2#43c550017bd3ffea3cbc9669617b71eb -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.7-pyhd8ed1ab_0.tar.bz2#be75bab4820a56f77ba1a3fc9139c36a +https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c https://conda.anaconda.org/conda-forge/linux-64/anyio-3.3.2-py36h5fab9bb_0.tar.bz2#68e1135e2c76b473fc08831ba4b940c0 https://conda.anaconda.org/conda-forge/linux-64/ipython-7.16.1-py36he448a4c_2.tar.bz2#ac605247c1149f7b275a4bcf9fa0de41 https://conda.anaconda.org/conda-forge/linux-64/nbconvert-6.0.7-py36h5fab9bb_3.tar.bz2#30f571d5b9a389f49b1d54a0e38871bc -https://conda.anaconda.org/conda-forge/noarch/requests-2.26.0-pyhd8ed1ab_0.tar.bz2#0ed2ccbde6db9dd5789068eb7194463f +https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62 https://conda.anaconda.org/conda-forge/linux-64/ipykernel-5.5.5-py36hcb3619a_0.tar.bz2#595507013916992bbd551005bfa96bbf +https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.13.2-pyhd8ed1ab_0.tar.bz2#b6771ff740526a8a04853fda74dc03f3 https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-base-1.4.2-py36h5fab9bb_0.tar.bz2#01e91ea234e632cf4ee3284a338a679d -https://conda.anaconda.org/conda-forge/noarch/requests-unixsocket-0.2.0-py_0.tar.bz2#1e94a233d2f2c81b2bf11bd43a515fbe -https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.11.1-pyhd8ed1ab_0.tar.bz2#8861413be89425f2c32ec15ad098aeb5 +https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.1-pyhd8ed1ab_0.tar.bz2#a35cb988cd5b9b9b2d1c6179a8a86974 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.10.3-pyhd8ed1ab_0.tar.bz2#65d62a616bed5237b85b9e2a88378ec0 https://conda.anaconda.org/conda-forge/linux-64/notebook-6.3.0-py36h5fab9bb_0.tar.bz2#4b075f38968b16bb1be4d17d90cf7e38 -https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.1-pyhd8ed1ab_0.tar.bz2#5e0974a4547a2b82667f65a6498c4145 -https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.0-pyhd8ed1ab_0.tar.bz2#db6c08b360baeacba755a78d0a1ecabb +https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-singleuser-1.4.2-py36h5fab9bb_0.tar.bz2#647d5e58896dda8405b124e4606a5314 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.8.2-pyhd8ed1ab_0.tar.bz2#c7891bb53fbb3911f4b526533314d63b -https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.2-pyhd8ed1ab_0.tar.bz2#289b4ac8e8ce489d747ef9e4d5e1d4d2 +https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.5-pyhd8ed1ab_0.tar.bz2#e9e2281b7dc08d876fc789af0f571ade https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.1-py36h5fab9bb_4.tar.bz2#6919ca2c4ddec0166a900910d54ded67 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.3-pyhd3deb0d_0.tar.bz2#536a9ed6d9e740f2b83d1a3c388e4388 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.1.17-pyhd8ed1ab_0.tar.bz2#22bf1d0a87a7015dc51140372ea950fa +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.5-pyhd8ed1ab_0.tar.bz2#6f2ee1ec157104df141e2e5afeba98d4 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.2.8-pyhd8ed1ab_0.tar.bz2#e2cc0671571f14af58f832c912dee025 diff --git a/repo2docker/buildpacks/conda/environment.py-3.6.yml b/repo2docker/buildpacks/conda/environment.py-3.6.yml index c14f64255..30b8137f8 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.6.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.6.yml @@ -1,14 +1,16 @@ # AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY -# Generated on 2021-10-06 07:32:48 UTC +# Generated on 2022-01-26 18:33:44 UTC channels: - conda-forge dependencies: - python=3.6.* +- nodejs=14 - pip -- ipywidgets==7.6.3 -- jupyter-offlinenotebook==0.2.1 -- jupyter-resource-usage==0.6.0 -- jupyterlab==3.1.17 +- ipywidgets==7.6.5 +- jupyter-offlinenotebook==0.2.2 +- jupyter-resource-usage==0.6.1 +- jupyterlab==3.2.8 + # jupyterhub-singleuser==1.5.0 won't install with python 3.6 (but 2.0.1 does!) - jupyterhub-singleuser==1.4.2 # Newer versions require python 3.7 - nbconvert==6.0.7 diff --git a/repo2docker/buildpacks/conda/environment.py-3.7.lock b/repo2docker/buildpacks/conda/environment.py-3.7.lock index b697f6441..13528f204 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.7.lock +++ b/repo2docker/buildpacks/conda/environment.py-3.7.lock @@ -1,23 +1,26 @@ # AUTO GENERATED FROM environment.py-3.7.yml, DO NOT MANUALLY MODIFY -# Frozen on 2021-10-06 07:33:42 UTC +# Frozen on 2022-01-26 18:35:40 UTC # Generated by conda-lock. # platform: linux-64 -# input_hash: e916b3483f9a6a858e8e836b294a35ef667c4f7b74b486b5d22621b93a0b9cbb +# input_hash: 8daa45fe7e84c647f0c5ab04c1199514abe3834c110cffac7bd4a18cc5375472 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2#6a777890e94194dc94a29a76d2a7e721 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26 https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_9.tar.bz2#a41b94921f55a353a8bbf5bb8d5ca335 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.14.2-h7f98852_0.tar.bz2#036a4ef13793d1bd771090b49c4c2550 -https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_9.tar.bz2#1090e28709184ec3d2f6ad6abd55fa31 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065 +https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.17.0.1-h7f98852_0.tar.bz2#bd9fa82641da6dfe5696fd196e3c7cf1 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_9.tar.bz2#84b1ec6f5b2d21968add479348515bba -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.17.2-h7f98852_0.tar.bz2#a25871010e5104556045aa01850fbddf +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a +https://conda.anaconda.org/conda-forge/linux-64/icu-69.1-h9c3ff4c_0.tar.bz2#e0773c9556d588b062a4e1424a6a02fa https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h9c3ff4c_4.tar.bz2#dea515312db9d4788e52c2edfc657635 +https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 +https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206 https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d +https://conda.anaconda.org/conda-forge/linux-64/libuv-1.43.0-h7f98852_0.tar.bz2#b34d856aa7e06ebd79bded72ef4afc16 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 @@ -26,89 +29,89 @@ https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2# https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.43.0-h812cca2_1.tar.bz2#d0a7846b7b3b8fb0d8b36904a53b8155 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-ha56f1ee_2.tar.bz2#6ab4eaa11ff01801cffca0a27489dc04 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2#3588c2c6cb9f9bcc65b544ab1c715d60 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.18.3-h8ca31f7_2.tar.bz2#192a478a1ae899992e4afce84520badb +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2#84e76fb280e735fec1efd2d21fd9cb27 -https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_2.tar.bz2#2094cf6b08a571cecf7fa332152e6461 -https://conda.anaconda.org/conda-forge/linux-64/python-3.7.10-hb7a2778_102_cpython.tar.bz2#67ddb126f309b101e57da5cfe8741959 +https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_3.tar.bz2#e29650992ae593bc05fc93722483e5c3 +https://conda.anaconda.org/conda-forge/linux-64/python-3.7.12-hb7a2778_100_cpython.tar.bz2#2d94b3e6a9fdaf83f6955d008c8011a7 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 -https://conda.anaconda.org/conda-forge/noarch/attrs-21.2.0-pyhd8ed1ab_0.tar.bz2#d2e1c7f388ac403df7079b411c37cc50 +https://conda.anaconda.org/conda-forge/noarch/attrs-21.4.0-pyhd8ed1ab_0.tar.bz2#f70280205d7044c8b8358c8de3190e5d https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 https://conda.anaconda.org/conda-forge/noarch/backports-1.0-py_2.tar.bz2#0da16b293affa6ac31812376f8eb79dd https://conda.anaconda.org/conda-forge/noarch/blinker-1.4-py_1.tar.bz2#fa509a09190583f869ae442bf4d17f5f -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.0-pyhd8ed1ab_0.tar.bz2#4a57e24d5b759893615c05926b7b5fb9 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.0-pyhd8ed1ab_0.tar.bz2#71b13ba2e0efcff45646f05d619534b0 +https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.10-pyhd8ed1ab_0.tar.bz2#ea77236c8031cfa821720b21b4cb0ceb +https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/idna-3.1-pyhd3deb0d_0.tar.bz2#9c9aea4b8391264477df484f798562d0 +https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.3-pyhd8ed1ab_1003.tar.bz2#bbf9a201f6ce99a506f4955374d9a9f4 +https://conda.anaconda.org/conda-forge/noarch/flit-core-3.6.0-pyhd8ed1ab_0.tar.bz2#f8c17f22a3ce533876c468157ff8ff8f +https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.0.2-pyhd8ed1ab_0.tar.bz2#eaff56fe28d1236076aa3bb13c35b434 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.79.1-h2574ce0_1.tar.bz2#7df45d44314d8ed15453dbe9f6c125db -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.1-pyhd8ed1ab_0.tar.bz2#47a51a5b8f9cc41004c8d7bd88b62447 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.4-pyhd8ed1ab_0.tar.bz2#0d86e4e6ac78912f3f47e0453b124aca https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.2-pyhd8ed1ab_0.tar.bz2#fb40b157bd62b457a1cc82527b63f0b0 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.11.0-pyhd8ed1ab_0.tar.bz2#01f530bf82d9f589c2087b8c347d5e29 +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094 +https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.13.0-pyhd8ed1ab_0.tar.bz2#f5567b5e7a5abc9133f198b8356674d1 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6 -https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.1.0-pyhd8ed1ab_0.tar.bz2#c602e093a43beb74210362e983584666 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff +https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.3.0-pyhd8ed1ab_1.tar.bz2#b7bc0de380f114658af5fe57cebdcd9e +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.1-pyh9f0ad1d_0.tar.bz2#aed452f2f9f8bc8b2b0c412975051b5b https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.7-2_cp37m.tar.bz2#afff88bf9a7048da740c70aeb8cdbb82 https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395 https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/testpath-0.5.0-pyhd8ed1ab_0.tar.bz2#53b57d6a468bebc7cef1253b177a5e9e -https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.0-pyhd8ed1ab_0.tar.bz2#f6ba1dcaac382d318901f44c0eb3dcb8 -https://conda.anaconda.org/conda-forge/noarch/typing_extensions-3.10.0.2-pyha770c72_0.tar.bz2#85dfd487a244bbe2cf7019ce8a39b5bc +https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.1-pyhd8ed1ab_0.tar.bz2#a1bc9765ef9499760e88f568b3a6622c +https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.0.1-pyha770c72_0.tar.bz2#1fc03816925d3cb7fdab9ab234e7fea7 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.0-pyhd8ed1ab_1.tar.bz2#3aa2c3e25dd361b453d010388b9cdff1 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.6.0-pyhd8ed1ab_0.tar.bz2#855e2c4622f5eb50a4f6f7167b9ba17a +https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.2.3-pyhd8ed1ab_0.tar.bz2#a9e89668df0da0f33c8c4ddf7c118f6d +https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.1-pyhd8ed1ab_0.tar.bz2#1ca02aaf78d9c70d9a81a3bed5752022 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_0.tar.bz2#947f7f41958eabc0f6e886557512bb76 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e -https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.5.30-py37h89c1867_0.tar.bz2#105f18ae8597a5f4d4e3188bcb06c796 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py37h036bc23_1.tar.bz2#43cbbebef925c942310d814502323c63 -https://conda.anaconda.org/conda-forge/linux-64/chardet-4.0.0-py37h89c1867_1.tar.bz2#f4fbd4721b80f0d6b53b3a3374914068 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.4.1-py37hcd2ae1e_0.tar.bz2#2fe9a412db79e302782f7ed9e18c02dd -https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py37hc8dfbb8_1002.tar.bz2#1d8fad3ab1118f88aada03a56efa93d8 -https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py37hcd2ae1e_0.tar.bz2#46690607252de1ec38dbf9e390ae1819 -https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.8.1-py37h89c1867_0.tar.bz2#6c71b2b82c7e5908e1077b932632b6cf -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.2.2-pyhd8ed1ab_0.tar.bz2#95f347313ca89b90b65ea5265051aea1 -https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.0-py37h89c1867_2.tar.bz2#5e95b453f199caec4dd1bf6002ae0ce2 -https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.8.1-py37h89c1867_0.tar.bz2#7fd03e4247346d69702ad89c726c96fe -https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py37h5e8e339_0.tar.bz2#90ad307f6997784664de956e09ec689e +https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.10.8-py37h89c1867_1.tar.bz2#48e8442b6097c7d4a0e3494c74ff9eeb +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.0-py37h036bc23_0.tar.bz2#05ab26c7685bcb7dd8bc8752c121f823 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.5.1-py37hcd2ae1e_0.tar.bz2#739a721301e47f42998af7bd51f0c42c +https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py37hcd2ae1e_1.tar.bz2#f39576dbfb9a1067293d24f0e3b6bdda +https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.10.1-py37h89c1867_0.tar.bz2#4684501699ad9eccbc29fa694d5343fc +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.4.0-pyhd8ed1ab_0.tar.bz2#9fb134dbabe7851a9d71411064b2c30d +https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.1-py37h89c1867_0.tar.bz2#432446f7c13e1babe6bc05ba74d30f64 +https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.9.1-py37h89c1867_1.tar.bz2#95df6ebc6f4e8edd5d87aa99c59da605 +https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py37h5e8e339_1.tar.bz2#6c7c14c95d4c435b66261639b64c7c51 https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.3-pyhd8ed1ab_0.tar.bz2#be3bfd435802d2c768c6b2439f325f3d -https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py37h5e8e339_1004.tar.bz2#2a5b3879a9268d1cad576f36a6b41349 -https://conda.anaconda.org/conda-forge/noarch/packaging-21.0-pyhd8ed1ab_0.tar.bz2#45cfb8e482b5cce8f07c87e0e19a592c -https://conda.anaconda.org/conda-forge/linux-64/pexpect-4.8.0-py37hc8dfbb8_1.tar.bz2#fda2ad946f9f5b7ce3531cc34ab262e9 -https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py37hc8dfbb8_1002.tar.bz2#14ce4d7ec7d9a22007168539135bc6d5 -https://conda.anaconda.org/conda-forge/linux-64/psutil-5.8.0-py37h5e8e339_1.tar.bz2#2923250371b05e798f3732531cdb5300 -https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py37h88a64d2_0.tar.bz2#60e46ec940aea1198b559bd37c805243 -https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.17.3-py37h5e8e339_2.tar.bz2#829e0a0279d711a7b5aa67fe18c73672 -https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py37h89c1867_3.tar.bz2#bd069d59ee91a2e26552cd7bb4c64032 +https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py37h5e8e339_1005.tar.bz2#2dd7bedc3ea33c30cb9dcf93d64c10eb +https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh9f0ad1d_2.tar.bz2#5909e7b978141dd80d28dbf9de627827 +https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.0-py37h5e8e339_0.tar.bz2#009832a45a0d9240aa3f3329055da1ef +https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py37h88a64d2_1.tar.bz2#4e4c43ae76df275f09cffc5e63ae936d +https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.18.1-py37h5e8e339_0.tar.bz2#f7e31f8bb6c8b311c3842c090a440e3d +https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py37h89c1867_4.tar.bz2#44df88d27e2891f90e3f06dcfcca0927 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py37h336d617_0.tar.bz2#def88a6d73bb6a7c95418e341708f599 -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.2-py37h5e8e339_2.tar.bz2#4211f3b208e9b1c87a5ccf34775f126b -https://conda.anaconda.org/conda-forge/linux-64/setuptools-58.2.0-py37h89c1867_0.tar.bz2#df8adba0800b87a9232e801c70ec14d9 -https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py37h89c1867_1.tar.bz2#a48a71b3c0a40b5227056a7cb653d99d -https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py37h5e8e339_1.tar.bz2#92449128c4639feae48d731ef2186099 -https://conda.anaconda.org/conda-forge/linux-64/websocket-client-0.57.0-py37h89c1867_4.tar.bz2#b7d10c52e3aaca152f4e16f90e40cd55 -https://conda.anaconda.org/conda-forge/linux-64/anyio-3.3.2-py37h89c1867_0.tar.bz2#badc1ab95ee9ff86e11d256dbfa44eb3 -https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py37h5e8e339_2.tar.bz2#5403470dcc6211e0ad72077616e2519d +https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py37h336d617_1.tar.bz2#6512cf886a870090430e2f37f41b652e +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.6-py37h5e8e339_0.tar.bz2#70ee31b43817f9fb7a46f76db99af94b +https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.5.0-py37h89c1867_0.tar.bz2#8d99eb0fa9aaae9dddb6a91451ac7907 +https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py37h89c1867_2.tar.bz2#464124f171b89cb9b459f47f81cc0e84 +https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py37h5e8e339_2.tar.bz2#ec86ae00c96dea5f2d810957a8fabc26 +https://conda.anaconda.org/conda-forge/linux-64/anyio-3.5.0-py37h89c1867_0.tar.bz2#aa263b5829ec141d12bf6a5dec36bf5b +https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py37h5e8e339_1.tar.bz2#042ff84df84e01a6399caa379deaf044 https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6 https://conda.anaconda.org/conda-forge/noarch/bleach-4.1.0-pyhd8ed1ab_0.tar.bz2#4a2104c7b22c222bd0fe03aaef12862c -https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py37h5e8e339_1001.tar.bz2#871eed4ba322e7b3f200956a096b34e7 -https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.4.7-py37h5d9358c_0.tar.bz2#d811fb6a96ae0cf8c0a17457a8e67ff4 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-4.8.1-hd8ed1ab_0.tar.bz2#ce811c521c3a02d7c8ace1cfbd2a0bcd -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.1-pyhd8ed1ab_0.tar.bz2#c647e77921fd3e245cdcc5b2d451a0f8 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.0.1-pyhd8ed1ab_0.tar.bz2#e51c302441bad8d2fbba17e1e23eac24 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.0.6-pyhd8ed1ab_0.tar.bz2#bad4522cf4a022cb5500969ad67c3342 -https://conda.anaconda.org/conda-forge/noarch/mako-1.1.5-pyhd8ed1ab_0.tar.bz2#e8f5f27557d8a0f6c4ed9950cd622e50 -https://conda.anaconda.org/conda-forge/noarch/pip-21.2.4-pyhd8ed1ab_0.tar.bz2#4104ada314dd5639ea36cc12bce0a2cd -https://conda.anaconda.org/conda-forge/noarch/pygments-2.10.0-pyhd8ed1ab_0.tar.bz2#32bcce837f1316f1c3208118b6c5e5fc -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.16-py37h5e8e339_0.tar.bz2#3022e8a511239bf6fb8a58eed0def135 -https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.25-py37h5e8e339_0.tar.bz2#a99762a92c0d402de973e5cec9da8632 -https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py37h89c1867_0.tar.bz2#b5731c592caa70ecc1363d60ce725243 -https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.3-pyhd8ed1ab_0.tar.bz2#e60694657bfb440e569d043dae99d111 -https://conda.anaconda.org/conda-forge/noarch/argcomplete-1.12.3-pyhd8ed1ab_2.tar.bz2#b8152341fc3fc9880c6e1b9d188974e5 +https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py37h5e8e339_1003.tar.bz2#4ad2e74470a3c08b0f6d59699f0d9a32 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-36.0.1-py37hf1a17b8_0.tar.bz2#7ad2c98aaab85d80017b3a6f79a2aa5d +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.4.0-pyhd8ed1ab_0.tar.bz2#17ec41acce882e5db4efdcc4c01ca7e0 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.1.2-pyhd8ed1ab_0.tar.bz2#9a332b6f8f05629435ce59032df8cfa9 +https://conda.anaconda.org/conda-forge/noarch/mako-1.1.6-pyhd8ed1ab_0.tar.bz2#cb952a55037148f6a5ddd9770ee1384f +https://conda.anaconda.org/conda-forge/noarch/pip-21.3.1-pyhd8ed1ab_0.tar.bz2#e4fe2a9af78ff11f1aced7e62128c6a8 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.19-py37h5e8e339_0.tar.bz2#a909957daac2e6296ce9219940481e1d +https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.31-py37h5e8e339_0.tar.bz2#8c316b01e34dea00fe526456be12fae4 +https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py37h89c1867_1.tar.bz2#658fe17f1a35117ebfb063f3b023c884 +https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.5-pyhd8ed1ab_0.tar.bz2#1102908123392ffc63c01caea136b1d4 +https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 https://conda.anaconda.org/conda-forge/noarch/nbformat-5.1.3-pyhd8ed1ab_0.tar.bz2#bafa5df6d4f8db69a4d197b4657127e7 @@ -116,23 +119,22 @@ https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.1.1-pyhd8ed1ab_0.tar.bz https://conda.anaconda.org/conda-forge/noarch/pyopenssl-21.0.0-pyhd8ed1ab_0.tar.bz2#8c49efecb7dca466e18b06015e8c88ce https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.4-pyhd8ed1ab_0.tar.bz2#66ea0ea89e4f657a8b85fa5bdfce60ac -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.20-pyha770c72_0.tar.bz2#98a90e847b48fc14b2d5b12e4884e8d4 -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.7-pyhd8ed1ab_0.tar.bz2#be75bab4820a56f77ba1a3fc9139c36a -https://conda.anaconda.org/conda-forge/linux-64/ipython-7.28.0-py37h6531663_0.tar.bz2#2a75abe115faed053577f8b680a90f46 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.10-pyhd8ed1ab_1.tar.bz2#000cfe33d6fa746c5a9d1b29a79342a3 +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.24-pyha770c72_0.tar.bz2#edaf527a6d394e2b965aff228c2e552f +https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c +https://conda.anaconda.org/conda-forge/linux-64/ipython-7.31.1-py37h89c1867_0.tar.bz2#764033508e28c9b0f7b02327416aab9a https://conda.anaconda.org/conda-forge/linux-64/nbconvert-6.0.7-py37h89c1867_3.tar.bz2#aa3710e0a8a44d7c7313b37775018446 -https://conda.anaconda.org/conda-forge/noarch/requests-2.26.0-pyhd8ed1ab_0.tar.bz2#0ed2ccbde6db9dd5789068eb7194463f -https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.4.1-py37h6531663_0.tar.bz2#6d07659dabaeadc3b575dfd041852f19 +https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62 +https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.7.0-py37h6531663_0.tar.bz2#1042e547a7d1ec447155d3e727061c2e +https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.13.4-pyhd8ed1ab_0.tar.bz2#70c6e1f755731d858767cb3c08c56a95 https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-base-1.4.2-py37h89c1867_0.tar.bz2#a61ccf7a9c83522c9b869816bb041a4c -https://conda.anaconda.org/conda-forge/noarch/requests-unixsocket-0.2.0-py_0.tar.bz2#1e94a233d2f2c81b2bf11bd43a515fbe -https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.11.1-pyhd8ed1ab_0.tar.bz2#8861413be89425f2c32ec15ad098aeb5 -https://conda.anaconda.org/conda-forge/linux-64/notebook-6.3.0-py37h89c1867_0.tar.bz2#76f65d90332854acdbd6fa16db92bdde -https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.1-pyhd8ed1ab_0.tar.bz2#5e0974a4547a2b82667f65a6498c4145 -https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.0-pyhd8ed1ab_0.tar.bz2#db6c08b360baeacba755a78d0a1ecabb +https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.1-pyhd8ed1ab_0.tar.bz2#a35cb988cd5b9b9b2d1c6179a8a86974 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.10.3-pyhd8ed1ab_0.tar.bz2#65d62a616bed5237b85b9e2a88378ec0 +https://conda.anaconda.org/conda-forge/noarch/notebook-6.3.0-pyha770c72_1.tar.bz2#6a53111a5a62d32abfa21aac8fc55a1b +https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-singleuser-1.4.2-py37h89c1867_0.tar.bz2#fb8151960fce2c583c7d1eaf6d4a178a -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.8.2-pyhd8ed1ab_0.tar.bz2#c7891bb53fbb3911f4b526533314d63b -https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.2-pyhd8ed1ab_0.tar.bz2#289b4ac8e8ce489d747ef9e4d5e1d4d2 +https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.5-pyhd8ed1ab_0.tar.bz2#e9e2281b7dc08d876fc789af0f571ade https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a -https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.1-py37h89c1867_4.tar.bz2#274af17d64191a15d3899d5fdc4abc02 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.3-pyhd3deb0d_0.tar.bz2#536a9ed6d9e740f2b83d1a3c388e4388 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.1.17-pyhd8ed1ab_0.tar.bz2#22bf1d0a87a7015dc51140372ea950fa +https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.2-py37h89c1867_1.tar.bz2#deaf685ad832b287439250b4ff35f64d +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.5-pyhd8ed1ab_0.tar.bz2#6f2ee1ec157104df141e2e5afeba98d4 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.2.8-pyhd8ed1ab_0.tar.bz2#e2cc0671571f14af58f832c912dee025 diff --git a/repo2docker/buildpacks/conda/environment.py-3.7.yml b/repo2docker/buildpacks/conda/environment.py-3.7.yml index 8bd2dc816..69bc0ae13 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.7.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.7.yml @@ -1,14 +1,16 @@ # AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY -# Generated on 2021-10-06 07:33:22 UTC +# Generated on 2022-01-26 18:34:43 UTC channels: - conda-forge dependencies: - python=3.7.* +- nodejs=14 - pip -- ipywidgets==7.6.3 -- jupyter-offlinenotebook==0.2.1 -- jupyter-resource-usage==0.6.0 -- jupyterlab==3.1.17 +- ipywidgets==7.6.5 +- jupyter-offlinenotebook==0.2.2 +- jupyter-resource-usage==0.6.1 +- jupyterlab==3.2.8 + # jupyterhub-singleuser==1.5.0 won't install with python 3.6 (but 2.0.1 does!) - jupyterhub-singleuser==1.4.2 # Newer versions require python 3.7 - nbconvert==6.0.7 diff --git a/repo2docker/buildpacks/conda/environment.py-3.8.lock b/repo2docker/buildpacks/conda/environment.py-3.8.lock index 32d17732e..b3deb7845 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.8.lock +++ b/repo2docker/buildpacks/conda/environment.py-3.8.lock @@ -1,23 +1,26 @@ # AUTO GENERATED FROM environment.py-3.8.yml, DO NOT MANUALLY MODIFY -# Frozen on 2021-10-06 07:34:05 UTC +# Frozen on 2022-01-26 18:36:36 UTC # Generated by conda-lock. # platform: linux-64 -# input_hash: 1b7425281a129eb07cc2888bb7bfdd4a31be1be59d16df223bea0e704dc4af4b +# input_hash: 76e94579a1728608e8c93f5df71d7f564ac6a98a6b3e770fdb3cc24ed7d034c0 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2#6a777890e94194dc94a29a76d2a7e721 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26 https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_9.tar.bz2#a41b94921f55a353a8bbf5bb8d5ca335 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.14.2-h7f98852_0.tar.bz2#036a4ef13793d1bd771090b49c4c2550 -https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_9.tar.bz2#1090e28709184ec3d2f6ad6abd55fa31 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065 +https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.17.0.1-h7f98852_0.tar.bz2#bd9fa82641da6dfe5696fd196e3c7cf1 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_9.tar.bz2#84b1ec6f5b2d21968add479348515bba -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.17.2-h7f98852_0.tar.bz2#a25871010e5104556045aa01850fbddf +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a +https://conda.anaconda.org/conda-forge/linux-64/icu-69.1-h9c3ff4c_0.tar.bz2#e0773c9556d588b062a4e1424a6a02fa https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h9c3ff4c_4.tar.bz2#dea515312db9d4788e52c2edfc657635 +https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 +https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206 https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d +https://conda.anaconda.org/conda-forge/linux-64/libuv-1.43.0-h7f98852_0.tar.bz2#b34d856aa7e06ebd79bded72ef4afc16 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 @@ -26,86 +29,101 @@ https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2# https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.43.0-h812cca2_1.tar.bz2#d0a7846b7b3b8fb0d8b36904a53b8155 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-ha56f1ee_2.tar.bz2#6ab4eaa11ff01801cffca0a27489dc04 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2#3588c2c6cb9f9bcc65b544ab1c715d60 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.18.3-h8ca31f7_2.tar.bz2#192a478a1ae899992e4afce84520badb +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2#84e76fb280e735fec1efd2d21fd9cb27 -https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_2.tar.bz2#2094cf6b08a571cecf7fa332152e6461 -https://conda.anaconda.org/conda-forge/linux-64/python-3.8.12-hb7a2778_1_cpython.tar.bz2#775bb3a23a9b1b529e0cd06bd0091adf +https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_3.tar.bz2#e29650992ae593bc05fc93722483e5c3 +https://conda.anaconda.org/conda-forge/linux-64/python-3.8.12-hb7a2778_2_cpython.tar.bz2#148ea076514259c7f562fbfba956a693 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 -https://conda.anaconda.org/conda-forge/noarch/attrs-21.2.0-pyhd8ed1ab_0.tar.bz2#d2e1c7f388ac403df7079b411c37cc50 +https://conda.anaconda.org/conda-forge/noarch/attrs-21.4.0-pyhd8ed1ab_0.tar.bz2#f70280205d7044c8b8358c8de3190e5d https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 https://conda.anaconda.org/conda-forge/noarch/backports-1.0-py_2.tar.bz2#0da16b293affa6ac31812376f8eb79dd https://conda.anaconda.org/conda-forge/noarch/blinker-1.4-py_1.tar.bz2#fa509a09190583f869ae442bf4d17f5f -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.0-pyhd8ed1ab_0.tar.bz2#4a57e24d5b759893615c05926b7b5fb9 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.0-pyhd8ed1ab_0.tar.bz2#71b13ba2e0efcff45646f05d619534b0 +https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.10-pyhd8ed1ab_0.tar.bz2#ea77236c8031cfa821720b21b4cb0ceb +https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2#a362b2124b06aad102e2ee4581acee7d +https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/idna-3.1-pyhd3deb0d_0.tar.bz2#9c9aea4b8391264477df484f798562d0 +https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.3-pyhd8ed1ab_1003.tar.bz2#bbf9a201f6ce99a506f4955374d9a9f4 +https://conda.anaconda.org/conda-forge/noarch/executing-0.8.2-pyhd8ed1ab_0.tar.bz2#dcd884e2cf5bcdccdf78f7db35999d62 +https://conda.anaconda.org/conda-forge/noarch/flit-core-3.6.0-pyhd8ed1ab_0.tar.bz2#f8c17f22a3ce533876c468157ff8ff8f +https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.0.2-pyhd8ed1ab_0.tar.bz2#eaff56fe28d1236076aa3bb13c35b434 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.79.1-h2574ce0_1.tar.bz2#7df45d44314d8ed15453dbe9f6c125db -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.1-pyhd8ed1ab_0.tar.bz2#47a51a5b8f9cc41004c8d7bd88b62447 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.4-pyhd8ed1ab_0.tar.bz2#0d86e4e6ac78912f3f47e0453b124aca https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.2-pyhd8ed1ab_0.tar.bz2#fb40b157bd62b457a1cc82527b63f0b0 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.11.0-pyhd8ed1ab_0.tar.bz2#01f530bf82d9f589c2087b8c347d5e29 +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094 +https://conda.anaconda.org/conda-forge/noarch/pathspec-0.9.0-pyhd8ed1ab_0.tar.bz2#f93dc0ccbc0a8472624165f6e256c7d1 +https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-2.3.0-pyhd8ed1ab_0.tar.bz2#7bc119135be2a43e1701432399d8c28a +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.13.0-pyhd8ed1ab_0.tar.bz2#f5567b5e7a5abc9133f198b8356674d1 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6 -https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.1.0-pyhd8ed1ab_0.tar.bz2#c602e093a43beb74210362e983584666 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7 +https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2#6784285c7e55cb7212efabc79e4c2883 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff +https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.3.0-pyhd8ed1ab_1.tar.bz2#b7bc0de380f114658af5fe57cebdcd9e +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.1-pyh9f0ad1d_0.tar.bz2#aed452f2f9f8bc8b2b0c412975051b5b https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.8-2_cp38.tar.bz2#bfbb29d517281e78ac53e48d21e6e860 https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395 https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/testpath-0.5.0-pyhd8ed1ab_0.tar.bz2#53b57d6a468bebc7cef1253b177a5e9e -https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.0-pyhd8ed1ab_0.tar.bz2#f6ba1dcaac382d318901f44c0eb3dcb8 +https://conda.anaconda.org/conda-forge/noarch/tomli-1.2.2-pyhd8ed1ab_0.tar.bz2#1c8a2f9ea18c267414e244cee668cd00 +https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.1-pyhd8ed1ab_0.tar.bz2#a1bc9765ef9499760e88f568b3a6622c +https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.0.1-pyha770c72_0.tar.bz2#1fc03816925d3cb7fdab9ab234e7fea7 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.0-pyhd8ed1ab_1.tar.bz2#3aa2c3e25dd361b453d010388b9cdff1 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.6.0-pyhd8ed1ab_0.tar.bz2#855e2c4622f5eb50a4f6f7167b9ba17a +https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.2.3-pyhd8ed1ab_0.tar.bz2#a9e89668df0da0f33c8c4ddf7c118f6d +https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.1-pyhd8ed1ab_0.tar.bz2#1ca02aaf78d9c70d9a81a3bed5752022 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_0.tar.bz2#947f7f41958eabc0f6e886557512bb76 +https://conda.anaconda.org/conda-forge/noarch/asttokens-2.0.5-pyhd8ed1ab_0.tar.bz2#74badce16f060701fee55c39332f5253 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e -https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.5.30-py38h578d9bd_0.tar.bz2#a2e14464711f8e76010cd7e0c49bc4ae -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py38h3931269_1.tar.bz2#01a5442b5cc3c7e901823fd70fb1aeb5 -https://conda.anaconda.org/conda-forge/linux-64/chardet-4.0.0-py38h578d9bd_1.tar.bz2#9294a5e2c7545a2f67ac348aadd53344 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.4.1-py38h709712a_0.tar.bz2#beb94ee1004332a8553d6517ab461644 -https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#b76ac7f9e86b4169c3b3003dedd05e87 -https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py38h709712a_0.tar.bz2#2e1a9093fee4a01fe28605556b411fc9 -https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.8.1-py38h578d9bd_0.tar.bz2#2e668abea4a726f4a19941ddb8a3a9b6 -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.2.2-pyhd8ed1ab_0.tar.bz2#95f347313ca89b90b65ea5265051aea1 -https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.0-py38h578d9bd_2.tar.bz2#6911600fda608a76bcb58e562457c696 -https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.8.1-py38h578d9bd_0.tar.bz2#65f7f2961b0c4f005a0a1540224f3b42 -https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py38h497a2fe_0.tar.bz2#d075babffd68330d81b0488a45435698 +https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.10.8-py38h578d9bd_1.tar.bz2#52a6cee65a5d10ed1c3f0af24fb48dd3 +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.0-py38h3931269_0.tar.bz2#9c491a90ae11d08ca97326a0ed876f3a +https://conda.anaconda.org/conda-forge/linux-64/click-8.0.3-py38h578d9bd_1.tar.bz2#edee3c8cc58ceba6153ac96524146985 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.5.1-py38h709712a_0.tar.bz2#e4562edba9cf178746097668eaac5530 +https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py38h709712a_1.tar.bz2#dcf19dfc362c994575eb36e73c554902 +https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.10.1-py38h578d9bd_0.tar.bz2#26da12e39b1b93e82fb865e967d0cbe0 +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.4.0-pyhd8ed1ab_0.tar.bz2#9fb134dbabe7851a9d71411064b2c30d +https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.1-py38h578d9bd_0.tar.bz2#84ca00ec7d71269b633546dc83e0b088 +https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.9.1-py38h578d9bd_1.tar.bz2#61eac1660d6bb75978662a457efe948b +https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py38h497a2fe_1.tar.bz2#1ef7b5f4826ca48a15e2cd98a5c3436d https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.3-pyhd8ed1ab_0.tar.bz2#be3bfd435802d2c768c6b2439f325f3d -https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py38h497a2fe_1004.tar.bz2#d01626bf0bcaec0c23e3e7834dea9a34 -https://conda.anaconda.org/conda-forge/noarch/packaging-21.0-pyhd8ed1ab_0.tar.bz2#45cfb8e482b5cce8f07c87e0e19a592c -https://conda.anaconda.org/conda-forge/linux-64/pexpect-4.8.0-py38h32f6830_1.tar.bz2#da53534fe197ed435275df2c59043083 -https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py38h32f6830_1002.tar.bz2#7488e0d321c607bbe87ae6555cbc0f18 -https://conda.anaconda.org/conda-forge/linux-64/psutil-5.8.0-py38h497a2fe_1.tar.bz2#3c465545aa3cec37f8f1341546677956 -https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py38h996a351_0.tar.bz2#352a0a3d80f26f84db92b80c0742e212 -https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.17.3-py38h497a2fe_2.tar.bz2#239e9357764e43276e8e80e65535b46f -https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py38h578d9bd_3.tar.bz2#8284bab4783fd6fdd11b695958945614 +https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py38h497a2fe_1005.tar.bz2#e842470b42e2640e90a3a2e32729bc92 +https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.3-py38h578d9bd_4.tar.bz2#8800523c45d8782e76791d1963f2255a +https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh9f0ad1d_2.tar.bz2#5909e7b978141dd80d28dbf9de627827 +https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.0-py38h497a2fe_0.tar.bz2#f94deecb1bc24f2525de2fdf57a27e92 +https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py38h996a351_1.tar.bz2#782a335c4df1f9b00bea7b45ab18503b +https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.18.1-py38h497a2fe_0.tar.bz2#2e21e97d12a98b0cd1b76cd475579921 +https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py38h578d9bd_4.tar.bz2#9c4bbee6f682f2fc7d7803df3996e77e https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py38h2035c66_0.tar.bz2#94a2c6a24a6e7bc51b2ff8d2a01d9b27 -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.2-py38h497a2fe_2.tar.bz2#5637db1362aff1866921cfcd558065ab -https://conda.anaconda.org/conda-forge/linux-64/setuptools-58.2.0-py38h578d9bd_0.tar.bz2#100c93168a364bf78120b862d6923ab4 -https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py38h578d9bd_1.tar.bz2#9d2f849149c1bcce8b74ecdfcff8d4c7 -https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py38h497a2fe_1.tar.bz2#e772c8383768280af283e814e2126663 -https://conda.anaconda.org/conda-forge/linux-64/websocket-client-0.57.0-py38h578d9bd_4.tar.bz2#4c59c0d3cc8efeb027b141db67c4fc56 -https://conda.anaconda.org/conda-forge/linux-64/anyio-3.3.2-py38h578d9bd_0.tar.bz2#a9a4320cc6137b715aa458247aff6f19 -https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py38h497a2fe_2.tar.bz2#254bc9d931e9891ce1068eb0335700c1 +https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py38h2035c66_1.tar.bz2#3938fa672dbd1762f9134b2026aebadc +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.6-py38h497a2fe_0.tar.bz2#bfcfe5dc66dcc3793fdb439fd0e13788 +https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.5.0-py38h578d9bd_0.tar.bz2#9807c89f3ce846015dbad3c1d04348a5 +https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py38h578d9bd_2.tar.bz2#f3551ed88243d9b21494571e3c10e049 +https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py38h497a2fe_2.tar.bz2#63b3b55c98b4239134e0be080f448944 +https://conda.anaconda.org/conda-forge/linux-64/typed-ast-1.5.2-py38h497a2fe_0.tar.bz2#082946878c5af9960bb639d993e3cda6 +https://conda.anaconda.org/conda-forge/linux-64/anyio-3.5.0-py38h578d9bd_0.tar.bz2#586fdb2fe49a3aa161060608c2707b0d +https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py38h497a2fe_1.tar.bz2#0f28a4d17fcad4332e6eb17d7ce2a2f3 https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6 +https://conda.anaconda.org/conda-forge/noarch/black-21.12b0-pyhd8ed1ab_0.tar.bz2#a027de51692086f51b9e17735480bebf https://conda.anaconda.org/conda-forge/noarch/bleach-4.1.0-pyhd8ed1ab_0.tar.bz2#4a2104c7b22c222bd0fe03aaef12862c -https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py38h497a2fe_1001.tar.bz2#56753dd777a6517b34966ddcb39af734 -https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.4.7-py38ha5dfef3_0.tar.bz2#a8b014aba670157256dabdc885f71af4 -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.1-pyhd8ed1ab_0.tar.bz2#c647e77921fd3e245cdcc5b2d451a0f8 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.0.1-pyhd8ed1ab_0.tar.bz2#e51c302441bad8d2fbba17e1e23eac24 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.0.6-pyhd8ed1ab_0.tar.bz2#bad4522cf4a022cb5500969ad67c3342 -https://conda.anaconda.org/conda-forge/noarch/mako-1.1.5-pyhd8ed1ab_0.tar.bz2#e8f5f27557d8a0f6c4ed9950cd622e50 -https://conda.anaconda.org/conda-forge/noarch/pip-21.2.4-pyhd8ed1ab_0.tar.bz2#4104ada314dd5639ea36cc12bce0a2cd -https://conda.anaconda.org/conda-forge/noarch/pygments-2.10.0-pyhd8ed1ab_0.tar.bz2#32bcce837f1316f1c3208118b6c5e5fc -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.16-py38h497a2fe_0.tar.bz2#0a727cdb48a891535e971b87eae51518 -https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.25-py38h497a2fe_0.tar.bz2#7c644b91b1b22c20e4ddeabbae890064 -https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py38h578d9bd_0.tar.bz2#bc1b111d56025800eecdc04d0384bddd -https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.3-pyhd8ed1ab_0.tar.bz2#e60694657bfb440e569d043dae99d111 +https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py38h497a2fe_1003.tar.bz2#9189b42c42b9c87b2b2068cbe31901a8 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-36.0.1-py38h3e25421_0.tar.bz2#acc14d0d71dbf74f6a15f2456951b6cf +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.4.0-pyhd8ed1ab_0.tar.bz2#17ec41acce882e5db4efdcc4c01ca7e0 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.1.2-pyhd8ed1ab_0.tar.bz2#9a332b6f8f05629435ce59032df8cfa9 +https://conda.anaconda.org/conda-forge/noarch/mako-1.1.6-pyhd8ed1ab_0.tar.bz2#cb952a55037148f6a5ddd9770ee1384f +https://conda.anaconda.org/conda-forge/noarch/pip-21.3.1-pyhd8ed1ab_0.tar.bz2#e4fe2a9af78ff11f1aced7e62128c6a8 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.19-py38h497a2fe_0.tar.bz2#694f44b2bd19da8011352ff359f30b76 +https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.31-py38h497a2fe_0.tar.bz2#2c8a6dd6ec5d18fb55f43a65b83e0d8e +https://conda.anaconda.org/conda-forge/noarch/stack_data-0.1.4-pyhd8ed1ab_0.tar.bz2#e68dcab1b415c3c44be2a51d7d41e921 +https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py38h578d9bd_1.tar.bz2#7895939107a904267a9e5f9678c9b27f +https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.5-pyhd8ed1ab_0.tar.bz2#1102908123392ffc63c01caea136b1d4 +https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 https://conda.anaconda.org/conda-forge/noarch/nbformat-5.1.3-pyhd8ed1ab_0.tar.bz2#bafa5df6d4f8db69a4d197b4657127e7 @@ -113,23 +131,22 @@ https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.1.1-pyhd8ed1ab_0.tar.bz https://conda.anaconda.org/conda-forge/noarch/pyopenssl-21.0.0-pyhd8ed1ab_0.tar.bz2#8c49efecb7dca466e18b06015e8c88ce https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.4-pyhd8ed1ab_0.tar.bz2#66ea0ea89e4f657a8b85fa5bdfce60ac -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.20-pyha770c72_0.tar.bz2#98a90e847b48fc14b2d5b12e4884e8d4 -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.7-pyhd8ed1ab_0.tar.bz2#be75bab4820a56f77ba1a3fc9139c36a -https://conda.anaconda.org/conda-forge/linux-64/ipython-7.28.0-py38he5a9106_0.tar.bz2#031a254a82eeb5bb97b3060ec387fcc2 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.10-pyhd8ed1ab_1.tar.bz2#000cfe33d6fa746c5a9d1b29a79342a3 +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.24-pyha770c72_0.tar.bz2#edaf527a6d394e2b965aff228c2e552f +https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c +https://conda.anaconda.org/conda-forge/linux-64/ipython-8.0.1-py38h578d9bd_0.tar.bz2#d0eb7c0e84fc4a9222321840b7ff74a3 https://conda.anaconda.org/conda-forge/linux-64/nbconvert-6.0.7-py38h578d9bd_3.tar.bz2#7d0922152b769b5489407f90e84562a6 -https://conda.anaconda.org/conda-forge/noarch/requests-2.26.0-pyhd8ed1ab_0.tar.bz2#0ed2ccbde6db9dd5789068eb7194463f -https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.4.1-py38he5a9106_0.tar.bz2#4cda1a57a3219bf84c99dd3b2eae9cc3 +https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62 +https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.7.0-py38he5a9106_0.tar.bz2#4ef8df702308288d7abe1358395988c6 +https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.13.4-pyhd8ed1ab_0.tar.bz2#70c6e1f755731d858767cb3c08c56a95 https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-base-1.4.2-py38h578d9bd_0.tar.bz2#3525d4ef3ef2ca54bd7173b5d91a57af -https://conda.anaconda.org/conda-forge/noarch/requests-unixsocket-0.2.0-py_0.tar.bz2#1e94a233d2f2c81b2bf11bd43a515fbe -https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.11.1-pyhd8ed1ab_0.tar.bz2#8861413be89425f2c32ec15ad098aeb5 -https://conda.anaconda.org/conda-forge/linux-64/notebook-6.3.0-py38h578d9bd_0.tar.bz2#4adf7284501331a056f2d1a501570609 -https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.1-pyhd8ed1ab_0.tar.bz2#5e0974a4547a2b82667f65a6498c4145 -https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.0-pyhd8ed1ab_0.tar.bz2#db6c08b360baeacba755a78d0a1ecabb +https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.1-pyhd8ed1ab_0.tar.bz2#a35cb988cd5b9b9b2d1c6179a8a86974 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.10.3-pyhd8ed1ab_0.tar.bz2#65d62a616bed5237b85b9e2a88378ec0 +https://conda.anaconda.org/conda-forge/noarch/notebook-6.3.0-pyha770c72_1.tar.bz2#6a53111a5a62d32abfa21aac8fc55a1b +https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-singleuser-1.4.2-py38h578d9bd_0.tar.bz2#1ec75ee653e8a5eeaf8ff2f73f8a774e -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.8.2-pyhd8ed1ab_0.tar.bz2#c7891bb53fbb3911f4b526533314d63b -https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.2-pyhd8ed1ab_0.tar.bz2#289b4ac8e8ce489d747ef9e4d5e1d4d2 +https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.5-pyhd8ed1ab_0.tar.bz2#e9e2281b7dc08d876fc789af0f571ade https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a -https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.1-py38h578d9bd_4.tar.bz2#beb8a105545382ba138c81c926289b5b -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.3-pyhd3deb0d_0.tar.bz2#536a9ed6d9e740f2b83d1a3c388e4388 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.1.17-pyhd8ed1ab_0.tar.bz2#22bf1d0a87a7015dc51140372ea950fa +https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.2-py38h578d9bd_1.tar.bz2#65b76030f93500b2d2866404c9dc1ac9 +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.5-pyhd8ed1ab_0.tar.bz2#6f2ee1ec157104df141e2e5afeba98d4 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.2.8-pyhd8ed1ab_0.tar.bz2#e2cc0671571f14af58f832c912dee025 diff --git a/repo2docker/buildpacks/conda/environment.py-3.8.yml b/repo2docker/buildpacks/conda/environment.py-3.8.yml index 453971908..aa1b19507 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.8.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.8.yml @@ -1,14 +1,16 @@ # AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY -# Generated on 2021-10-06 07:33:42 UTC +# Generated on 2022-01-26 18:35:40 UTC channels: - conda-forge dependencies: - python=3.8.* +- nodejs=14 - pip -- ipywidgets==7.6.3 -- jupyter-offlinenotebook==0.2.1 -- jupyter-resource-usage==0.6.0 -- jupyterlab==3.1.17 +- ipywidgets==7.6.5 +- jupyter-offlinenotebook==0.2.2 +- jupyter-resource-usage==0.6.1 +- jupyterlab==3.2.8 + # jupyterhub-singleuser==1.5.0 won't install with python 3.6 (but 2.0.1 does!) - jupyterhub-singleuser==1.4.2 # Newer versions require python 3.7 - nbconvert==6.0.7 diff --git a/repo2docker/buildpacks/conda/environment.py-3.9.lock b/repo2docker/buildpacks/conda/environment.py-3.9.lock index 8d9057f19..aedba8895 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.9.lock +++ b/repo2docker/buildpacks/conda/environment.py-3.9.lock @@ -1,24 +1,29 @@ # AUTO GENERATED FROM environment.py-3.9.yml, DO NOT MANUALLY MODIFY -# Frozen on 2021-10-06 07:34:26 UTC +# Frozen on 2022-01-26 18:37:30 UTC # Generated by conda-lock. # platform: linux-64 -# input_hash: b5f1d3830efc370610ea8555a709b2d631ec78e2686563f54edd23491be06086 +# input_hash: 26314177814dc09ebdfe9ad8cd35b257ebec964ae6e21918e0bfb7bf38675075 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.5.30-ha878542_0.tar.bz2#6a777890e94194dc94a29a76d2a7e721 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2021.10.8-ha878542_0.tar.bz2#575611b8a84f45960e87722eeb51fa26 https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.36.1-hea4e1c9_2.tar.bz2#bd4f2e711b39af170e7ff15163fe87ee -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_9.tar.bz2#a41b94921f55a353a8bbf5bb8d5ca335 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.14.2-h7f98852_0.tar.bz2#036a4ef13793d1bd771090b49c4c2550 -https://conda.anaconda.org/conda-forge/noarch/tzdata-2021c-he74cb21_0.tar.bz2#9b44c09d42c07672964f62aa688e07ea -https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_9.tar.bz2#1090e28709184ec3d2f6ad6abd55fa31 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-11.2.0-he4da1e4_12.tar.bz2#7ff3b832ba5e6918c0d026976359d065 +https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.17.0.1-h7f98852_0.tar.bz2#bd9fa82641da6dfe5696fd196e3c7cf1 +https://conda.anaconda.org/conda-forge/noarch/tzdata-2021e-he74cb21_0.tar.bz2#a751ec502589ebdc2eceb183ff602569 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-11.2.0-h1d223b6_12.tar.bz2#763c5ec8116d984b4a33342236d7da36 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_9.tar.bz2#84b1ec6f5b2d21968add479348515bba -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.17.2-h7f98852_0.tar.bz2#a25871010e5104556045aa01850fbddf +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-11.2.0-h1d223b6_12.tar.bz2#d34efbb8d7d6312c816b4bb647b818b1 +https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a +https://conda.anaconda.org/conda-forge/linux-64/icu-69.1-h9c3ff4c_0.tar.bz2#e0773c9556d588b062a4e1424a6a02fa https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h9c3ff4c_4.tar.bz2#dea515312db9d4788e52c2edfc657635 +https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 +https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206 https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d +https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.32.1-h7f98852_1000.tar.bz2#772d69f030955d9646d3d0eaf21d859d +https://conda.anaconda.org/conda-forge/linux-64/libuv-1.43.0-h7f98852_0.tar.bz2#b34d856aa7e06ebd79bded72ef4afc16 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.11-h36c2ea0_1013.tar.bz2#dcddf696ff5dfcab567100d691678e18 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9 +https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h9c3ff4c_0.tar.bz2#fb31bcb7af058244479ca635d20f0f4a https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1l-h7f98852_0.tar.bz2#de7b38a1542dbe6f41653a8ae71adc53 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 @@ -27,86 +32,101 @@ https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2# https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h36c2ea0_1013.tar.bz2#cf7190238072a41e9579e4476a6a60b8 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.43.0-h812cca2_1.tar.bz2#d0a7846b7b3b8fb0d8b36904a53b8155 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-ha56f1ee_2.tar.bz2#6ab4eaa11ff01801cffca0a27489dc04 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.36.0-h9cd32fc_2.tar.bz2#3588c2c6cb9f9bcc65b544ab1c715d60 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.18.3-h8ca31f7_2.tar.bz2#192a478a1ae899992e4afce84520badb +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.37.0-h9cd32fc_0.tar.bz2#eb66fc098824d25518a79e83d12a81d6 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.11-h27826a3_1.tar.bz2#84e76fb280e735fec1efd2d21fd9cb27 -https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_2.tar.bz2#2094cf6b08a571cecf7fa332152e6461 -https://conda.anaconda.org/conda-forge/linux-64/python-3.9.7-hb7a2778_3_cpython.tar.bz2#ab54b978f6f24c485d22a80de0f66bf8 +https://conda.anaconda.org/conda-forge/linux-64/krb5-1.19.2-hcc1bbae_3.tar.bz2#e29650992ae593bc05fc93722483e5c3 +https://conda.anaconda.org/conda-forge/linux-64/python-3.9.9-h62f1059_0_cpython.tar.bz2#cecbf6a8fcdae14bf4a1036e5a35319e https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 -https://conda.anaconda.org/conda-forge/noarch/attrs-21.2.0-pyhd8ed1ab_0.tar.bz2#d2e1c7f388ac403df7079b411c37cc50 +https://conda.anaconda.org/conda-forge/noarch/attrs-21.4.0-pyhd8ed1ab_0.tar.bz2#f70280205d7044c8b8358c8de3190e5d https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 https://conda.anaconda.org/conda-forge/noarch/backports-1.0-py_2.tar.bz2#0da16b293affa6ac31812376f8eb79dd https://conda.anaconda.org/conda-forge/noarch/blinker-1.4-py_1.tar.bz2#fa509a09190583f869ae442bf4d17f5f -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.0-pyhd8ed1ab_0.tar.bz2#4a57e24d5b759893615c05926b7b5fb9 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.0-pyhd8ed1ab_0.tar.bz2#71b13ba2e0efcff45646f05d619534b0 +https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.10-pyhd8ed1ab_0.tar.bz2#ea77236c8031cfa821720b21b4cb0ceb +https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2#a362b2124b06aad102e2ee4581acee7d +https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/idna-3.1-pyhd3deb0d_0.tar.bz2#9c9aea4b8391264477df484f798562d0 +https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.3-pyhd8ed1ab_1003.tar.bz2#bbf9a201f6ce99a506f4955374d9a9f4 +https://conda.anaconda.org/conda-forge/noarch/executing-0.8.2-pyhd8ed1ab_0.tar.bz2#dcd884e2cf5bcdccdf78f7db35999d62 +https://conda.anaconda.org/conda-forge/noarch/flit-core-3.6.0-pyhd8ed1ab_0.tar.bz2#f8c17f22a3ce533876c468157ff8ff8f +https://conda.anaconda.org/conda-forge/noarch/idna-3.3-pyhd8ed1ab_0.tar.bz2#40b50b8b030f5f2f22085c062ed013dd https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.0.2-pyhd8ed1ab_0.tar.bz2#eaff56fe28d1236076aa3bb13c35b434 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.79.1-h2574ce0_1.tar.bz2#7df45d44314d8ed15453dbe9f6c125db -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.1-pyhd8ed1ab_0.tar.bz2#47a51a5b8f9cc41004c8d7bd88b62447 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.4-pyhd8ed1ab_0.tar.bz2#0d86e4e6ac78912f3f47e0453b124aca https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.2-pyhd8ed1ab_0.tar.bz2#fb40b157bd62b457a1cc82527b63f0b0 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.11.0-pyhd8ed1ab_0.tar.bz2#01f530bf82d9f589c2087b8c347d5e29 +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094 +https://conda.anaconda.org/conda-forge/noarch/pathspec-0.9.0-pyhd8ed1ab_0.tar.bz2#f93dc0ccbc0a8472624165f6e256c7d1 +https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-2.3.0-pyhd8ed1ab_0.tar.bz2#7bc119135be2a43e1701432399d8c28a +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.13.0-pyhd8ed1ab_0.tar.bz2#f5567b5e7a5abc9133f198b8356674d1 https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6 -https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.1.0-pyhd8ed1ab_0.tar.bz2#c602e093a43beb74210362e983584666 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7 +https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2#6784285c7e55cb7212efabc79e4c2883 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff +https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.3.0-pyhd8ed1ab_1.tar.bz2#b7bc0de380f114658af5fe57cebdcd9e +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.7-pyhd8ed1ab_0.tar.bz2#727e2216d9c47455d8ddc060eb2caad9 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.1-pyh9f0ad1d_0.tar.bz2#aed452f2f9f8bc8b2b0c412975051b5b https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-2_cp39.tar.bz2#39adde4247484de2bb4000122fdcf665 https://conda.anaconda.org/conda-forge/noarch/pytz-2021.3-pyhd8ed1ab_0.tar.bz2#7e4f811bff46a5a6a7e0094921389395 https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/testpath-0.5.0-pyhd8ed1ab_0.tar.bz2#53b57d6a468bebc7cef1253b177a5e9e -https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.0-pyhd8ed1ab_0.tar.bz2#f6ba1dcaac382d318901f44c0eb3dcb8 +https://conda.anaconda.org/conda-forge/noarch/tomli-1.2.2-pyhd8ed1ab_0.tar.bz2#1c8a2f9ea18c267414e244cee668cd00 +https://conda.anaconda.org/conda-forge/noarch/traitlets-5.1.1-pyhd8ed1ab_0.tar.bz2#a1bc9765ef9499760e88f568b3a6622c +https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.0.1-pyha770c72_0.tar.bz2#1fc03816925d3cb7fdab9ab234e7fea7 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.0-pyhd8ed1ab_1.tar.bz2#3aa2c3e25dd361b453d010388b9cdff1 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.6.0-pyhd8ed1ab_0.tar.bz2#855e2c4622f5eb50a4f6f7167b9ba17a +https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.2.3-pyhd8ed1ab_0.tar.bz2#a9e89668df0da0f33c8c4ddf7c118f6d +https://conda.anaconda.org/conda-forge/noarch/wheel-0.37.1-pyhd8ed1ab_0.tar.bz2#1ca02aaf78d9c70d9a81a3bed5752022 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.7.0-pyhd8ed1ab_0.tar.bz2#947f7f41958eabc0f6e886557512bb76 +https://conda.anaconda.org/conda-forge/noarch/asttokens-2.0.5-pyhd8ed1ab_0.tar.bz2#74badce16f060701fee55c39332f5253 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#74136ed39bfea0832d338df1e58d013e -https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.5.30-py39hf3d152e_0.tar.bz2#7bbfaa3b8363bf8505d7f65e4e2e8a90 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py39h4bc2ebd_1.tar.bz2#f37f029c3b2599386d3ba8fc1b29a8a0 -https://conda.anaconda.org/conda-forge/linux-64/chardet-4.0.0-py39hf3d152e_1.tar.bz2#d0da429a3428ffcacaad25595b96a648 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.4.1-py39he80948d_0.tar.bz2#be6da332f0383972f000902f2edbaa9d -https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#dad6134fb73bfd57f9658c30c7296355 -https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py39he80948d_0.tar.bz2#de102f335f8982b395512993874190d5 -https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.8.1-py39hf3d152e_0.tar.bz2#3223ee559a24f841abc9826de097a7f9 -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.2.2-pyhd8ed1ab_0.tar.bz2#95f347313ca89b90b65ea5265051aea1 -https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.0-py39hf3d152e_2.tar.bz2#cb9b5c105fb10e59bf5a263880735235 -https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.8.1-py39hf3d152e_0.tar.bz2#af36f877c9a5d7dade7b39c07ffafbb1 -https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py39h3811e60_0.tar.bz2#9233d63cfb05aa6536ab9e253bee9507 +https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.10.8-py39hf3d152e_1.tar.bz2#67982d98030fde9139a64219dbe4db5e +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.0-py39h4bc2ebd_0.tar.bz2#f6191bf565dee581e77549d63737751c +https://conda.anaconda.org/conda-forge/linux-64/click-8.0.3-py39hf3d152e_1.tar.bz2#30b637487f64a02e32591c667047cf08 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.5.1-py39he80948d_0.tar.bz2#111c5b430676182de0f0f038233ba3a4 +https://conda.anaconda.org/conda-forge/linux-64/greenlet-1.1.2-py39he80948d_1.tar.bz2#4b440bda7b4cca6303c6dd9c04cb9fc9 +https://conda.anaconda.org/conda-forge/linux-64/importlib-metadata-4.10.1-py39hf3d152e_0.tar.bz2#b39133cc0b0fc1cd13a239e85be5caee +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.4.0-pyhd8ed1ab_0.tar.bz2#9fb134dbabe7851a9d71411064b2c30d +https://conda.anaconda.org/conda-forge/linux-64/jedi-0.18.1-py39hf3d152e_0.tar.bz2#4a03392442a5ba884c186f25281ef8a1 +https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.9.1-py39hf3d152e_1.tar.bz2#e9b6677fca1aa658d98deba00fb89267 +https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py39h3811e60_1.tar.bz2#bba8fc0d724caa73a96220e48aac3b61 https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.3-pyhd8ed1ab_0.tar.bz2#be3bfd435802d2c768c6b2439f325f3d -https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py39h3811e60_1004.tar.bz2#941e3eeb31c5edba5b6c573f3bf41fa3 -https://conda.anaconda.org/conda-forge/noarch/packaging-21.0-pyhd8ed1ab_0.tar.bz2#45cfb8e482b5cce8f07c87e0e19a592c +https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py39h3811e60_1005.tar.bz2#95eb8cbf40bccdcb34888c9e56371570 +https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.3-py39hf3d152e_4.tar.bz2#1778f314bd13102e3a1627280cb8ac79 +https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85 https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh9f0ad1d_2.tar.bz2#5909e7b978141dd80d28dbf9de627827 -https://conda.anaconda.org/conda-forge/linux-64/pickleshare-0.7.5-py39hde42818_1002.tar.bz2#2dc9995512c80256532250a6fd616b14 -https://conda.anaconda.org/conda-forge/linux-64/psutil-5.8.0-py39h3811e60_1.tar.bz2#29cb4c7769cc2a6e86cc13615e9b4a15 -https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py39h72e3413_0.tar.bz2#a9d879a1397a4e5bbd79f169f8fa7e29 -https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.17.3-py39h3811e60_2.tar.bz2#4ec88cc4b941bc447fd97cadd76e32de -https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_3.tar.bz2#f7e7fdc66f2362bebc407f1ab7d10f63 +https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.0-py39h3811e60_0.tar.bz2#3eebabdf4f0bf1d94a97b67263196868 +https://conda.anaconda.org/conda-forge/linux-64/pycurl-7.44.1-py39h72e3413_1.tar.bz2#f3fa6db2ea8983102beb98d87eb85c0b +https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.18.1-py39h3811e60_0.tar.bz2#ed156d752c577f4e9b62159d5aac8557 +https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_4.tar.bz2#eed9d381f391cad4e96f697e8c74e929 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py39h37b5a0c_0.tar.bz2#d12d8a39f21c9891768ba4d783d18cc9 -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.2-py39h3811e60_2.tar.bz2#d7770c88f04155fcff2942a1ff750ff1 -https://conda.anaconda.org/conda-forge/linux-64/setuptools-58.2.0-py39hf3d152e_0.tar.bz2#48ce54090622fe6f7f74de598915a8d9 -https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py39hf3d152e_1.tar.bz2#a620158b380f03f82e8ceac1397270b7 -https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py39h3811e60_1.tar.bz2#763597c8b91b69789ab0f6002439c32b -https://conda.anaconda.org/conda-forge/linux-64/websocket-client-0.57.0-py39hf3d152e_4.tar.bz2#d4b25baf59c9c67c47dc48ceabd1b750 -https://conda.anaconda.org/conda-forge/linux-64/anyio-3.3.2-py39hf3d152e_0.tar.bz2#5387a97cdb149f7d0dc15880f6c1f9ad -https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py39h3811e60_2.tar.bz2#9e69a6cedbffc71321daf4895b9db5bf +https://conda.anaconda.org/conda-forge/linux-64/pyzmq-22.3.0-py39h37b5a0c_1.tar.bz2#90dbe11c01a89fc6fddb90cbe2672e68 +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.6-py39h3811e60_0.tar.bz2#0f9bbd7b79db72e3bc9779432de26427 +https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.5.0-py39hf3d152e_0.tar.bz2#25c23d6577edd40d60ce4e022f407118 +https://conda.anaconda.org/conda-forge/linux-64/sniffio-1.2.0-py39hf3d152e_2.tar.bz2#591e48c37143ef758d6ba0da1cf10a6f +https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py39h3811e60_2.tar.bz2#5a7bb7af2f3bcf31ee6cd817de1d5011 +https://conda.anaconda.org/conda-forge/linux-64/typed-ast-1.5.2-py39h3811e60_0.tar.bz2#f26209afd5f3cb9adbf46002061f6214 +https://conda.anaconda.org/conda-forge/linux-64/anyio-3.5.0-py39hf3d152e_0.tar.bz2#b0d75a9d3fd02ec079504aabb7cd7ec3 +https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py39h3811e60_1.tar.bz2#6770ac3b1842046fcb21c2178d67fa32 https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6 +https://conda.anaconda.org/conda-forge/noarch/black-21.12b0-pyhd8ed1ab_0.tar.bz2#a027de51692086f51b9e17735480bebf https://conda.anaconda.org/conda-forge/noarch/bleach-4.1.0-pyhd8ed1ab_0.tar.bz2#4a2104c7b22c222bd0fe03aaef12862c -https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h3811e60_1001.tar.bz2#35ad78e61aec955783acfd00f3c6bcde -https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.4.7-py39hbca0aa6_0.tar.bz2#04e97f7d5c60f75a36b1e4bdf3652ebd -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.1-pyhd8ed1ab_0.tar.bz2#c647e77921fd3e245cdcc5b2d451a0f8 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.0.1-pyhd8ed1ab_0.tar.bz2#e51c302441bad8d2fbba17e1e23eac24 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.0.6-pyhd8ed1ab_0.tar.bz2#bad4522cf4a022cb5500969ad67c3342 -https://conda.anaconda.org/conda-forge/noarch/mako-1.1.5-pyhd8ed1ab_0.tar.bz2#e8f5f27557d8a0f6c4ed9950cd622e50 -https://conda.anaconda.org/conda-forge/noarch/pip-21.2.4-pyhd8ed1ab_0.tar.bz2#4104ada314dd5639ea36cc12bce0a2cd -https://conda.anaconda.org/conda-forge/noarch/pygments-2.10.0-pyhd8ed1ab_0.tar.bz2#32bcce837f1316f1c3208118b6c5e5fc -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.16-py39h3811e60_0.tar.bz2#9deea133cdd90530091e26db39acfac4 -https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.25-py39h3811e60_0.tar.bz2#bae8784c930168588775f9d96feb8720 -https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py39hf3d152e_0.tar.bz2#2f849f79559879b397218ccb65082836 -https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.3-pyhd8ed1ab_0.tar.bz2#e60694657bfb440e569d043dae99d111 +https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h3811e60_1003.tar.bz2#9b1975f772d5d8a398c34e539a7ea1a1 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-36.0.1-py39h95dcef6_0.tar.bz2#986821383dd9622121c1a0b8a745b1e2 +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.0.3-pyhd8ed1ab_0.tar.bz2#036d872c653780cb26e797e2e2f61b4c +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.4.0-pyhd8ed1ab_0.tar.bz2#17ec41acce882e5db4efdcc4c01ca7e0 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.1.2-pyhd8ed1ab_0.tar.bz2#9a332b6f8f05629435ce59032df8cfa9 +https://conda.anaconda.org/conda-forge/noarch/mako-1.1.6-pyhd8ed1ab_0.tar.bz2#cb952a55037148f6a5ddd9770ee1384f +https://conda.anaconda.org/conda-forge/noarch/pip-21.3.1-pyhd8ed1ab_0.tar.bz2#e4fe2a9af78ff11f1aced7e62128c6a8 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.19-py39h3811e60_0.tar.bz2#5e50592662d6b781b7c42fdb4c434e83 +https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.31-py39h3811e60_0.tar.bz2#16995a401ab29510c6e7665c9aff030f +https://conda.anaconda.org/conda-forge/noarch/stack_data-0.1.4-pyhd8ed1ab_0.tar.bz2#e68dcab1b415c3c44be2a51d7d41e921 +https://conda.anaconda.org/conda-forge/linux-64/terminado-0.12.1-py39hf3d152e_1.tar.bz2#3e73d7571460790b8487d03b630b970b +https://conda.anaconda.org/conda-forge/noarch/alembic-1.7.5-pyhd8ed1ab_0.tar.bz2#1102908123392ffc63c01caea136b1d4 +https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7 https://conda.anaconda.org/conda-forge/noarch/nbformat-5.1.3-pyhd8ed1ab_0.tar.bz2#bafa5df6d4f8db69a4d197b4657127e7 @@ -114,23 +134,22 @@ https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.1.1-pyhd8ed1ab_0.tar.bz https://conda.anaconda.org/conda-forge/noarch/pyopenssl-21.0.0-pyhd8ed1ab_0.tar.bz2#8c49efecb7dca466e18b06015e8c88ce https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.4-pyhd8ed1ab_0.tar.bz2#66ea0ea89e4f657a8b85fa5bdfce60ac -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.20-pyha770c72_0.tar.bz2#98a90e847b48fc14b2d5b12e4884e8d4 -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.7-pyhd8ed1ab_0.tar.bz2#be75bab4820a56f77ba1a3fc9139c36a -https://conda.anaconda.org/conda-forge/linux-64/ipython-7.28.0-py39hef51801_0.tar.bz2#65c72c04ddd3c85a76116a3eaec86edc +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.5.10-pyhd8ed1ab_1.tar.bz2#000cfe33d6fa746c5a9d1b29a79342a3 +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.24-pyha770c72_0.tar.bz2#edaf527a6d394e2b965aff228c2e552f +https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c +https://conda.anaconda.org/conda-forge/linux-64/ipython-8.0.1-py39hf3d152e_0.tar.bz2#d84d046c9dbdfe7b1b1b722e6369daab https://conda.anaconda.org/conda-forge/linux-64/nbconvert-6.0.7-py39hf3d152e_3.tar.bz2#5f914e1113c7a926798c7659efbcd6a3 -https://conda.anaconda.org/conda-forge/noarch/requests-2.26.0-pyhd8ed1ab_0.tar.bz2#0ed2ccbde6db9dd5789068eb7194463f -https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.4.1-py39hef51801_0.tar.bz2#7d8d57f6359342fb633e913c9876cfeb +https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62 +https://conda.anaconda.org/conda-forge/linux-64/ipykernel-6.7.0-py39hef51801_0.tar.bz2#673ae0bc269066e8ddabc7c912739e79 +https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.13.4-pyhd8ed1ab_0.tar.bz2#70c6e1f755731d858767cb3c08c56a95 https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-base-1.4.2-py39hf3d152e_0.tar.bz2#07d2be5eb6460d504a0291cb2aa8328a -https://conda.anaconda.org/conda-forge/noarch/requests-unixsocket-0.2.0-py_0.tar.bz2#1e94a233d2f2c81b2bf11bd43a515fbe -https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.11.1-pyhd8ed1ab_0.tar.bz2#8861413be89425f2c32ec15ad098aeb5 -https://conda.anaconda.org/conda-forge/linux-64/notebook-6.3.0-py39hf3d152e_0.tar.bz2#768afe25d9d82f590b8db716288c7259 -https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.1-pyhd8ed1ab_0.tar.bz2#5e0974a4547a2b82667f65a6498c4145 -https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.0-pyhd8ed1ab_0.tar.bz2#db6c08b360baeacba755a78d0a1ecabb +https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.6.1-pyhd8ed1ab_0.tar.bz2#a35cb988cd5b9b9b2d1c6179a8a86974 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.10.3-pyhd8ed1ab_0.tar.bz2#65d62a616bed5237b85b9e2a88378ec0 +https://conda.anaconda.org/conda-forge/noarch/notebook-6.3.0-pyha770c72_1.tar.bz2#6a53111a5a62d32abfa21aac8fc55a1b +https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb https://conda.anaconda.org/conda-forge/linux-64/jupyterhub-singleuser-1.4.2-py39hf3d152e_0.tar.bz2#176c4f6b76330d7c6f8534640c6cc193 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.8.2-pyhd8ed1ab_0.tar.bz2#c7891bb53fbb3911f4b526533314d63b -https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.2-pyhd8ed1ab_0.tar.bz2#289b4ac8e8ce489d747ef9e4d5e1d4d2 +https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.3.5-pyhd8ed1ab_0.tar.bz2#e9e2281b7dc08d876fc789af0f571ade https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a -https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.1-py39hf3d152e_4.tar.bz2#ae54c7d751b678c0021929892d598ecd -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.3-pyhd3deb0d_0.tar.bz2#536a9ed6d9e740f2b83d1a3c388e4388 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.1.17-pyhd8ed1ab_0.tar.bz2#22bf1d0a87a7015dc51140372ea950fa +https://conda.anaconda.org/conda-forge/linux-64/widgetsnbextension-3.5.2-py39hf3d152e_1.tar.bz2#26c83eb2efd87c9bbef958b9f7117559 +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.6.5-pyhd8ed1ab_0.tar.bz2#6f2ee1ec157104df141e2e5afeba98d4 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.2.8-pyhd8ed1ab_0.tar.bz2#e2cc0671571f14af58f832c912dee025 diff --git a/repo2docker/buildpacks/conda/environment.py-3.9.yml b/repo2docker/buildpacks/conda/environment.py-3.9.yml index 8d1c7e565..fa80fb7a8 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.9.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.9.yml @@ -1,14 +1,16 @@ # AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY -# Generated on 2021-10-06 07:34:05 UTC +# Generated on 2022-01-26 18:36:36 UTC channels: - conda-forge dependencies: - python=3.9.* +- nodejs=14 - pip -- ipywidgets==7.6.3 -- jupyter-offlinenotebook==0.2.1 -- jupyter-resource-usage==0.6.0 -- jupyterlab==3.1.17 +- ipywidgets==7.6.5 +- jupyter-offlinenotebook==0.2.2 +- jupyter-resource-usage==0.6.1 +- jupyterlab==3.2.8 + # jupyterhub-singleuser==1.5.0 won't install with python 3.6 (but 2.0.1 does!) - jupyterhub-singleuser==1.4.2 # Newer versions require python 3.7 - nbconvert==6.0.7 diff --git a/repo2docker/buildpacks/conda/environment.yml b/repo2docker/buildpacks/conda/environment.yml index 35d1b07d8..218ccc1f6 100644 --- a/repo2docker/buildpacks/conda/environment.yml +++ b/repo2docker/buildpacks/conda/environment.yml @@ -2,11 +2,13 @@ channels: - conda-forge dependencies: - python=3.7 + - nodejs=14 - pip - - ipywidgets==7.6.3 - - jupyter-offlinenotebook==0.2.1 - - jupyter-resource-usage==0.6.0 - - jupyterlab==3.1.17 + - ipywidgets==7.6.5 + - jupyter-offlinenotebook==0.2.2 + - jupyter-resource-usage==0.6.1 + - jupyterlab==3.2.8 + # jupyterhub-singleuser==1.5.0 won't install with python 3.6 (but 2.0.1 does!) - jupyterhub-singleuser==1.4.2 # Newer versions require python 3.7 - nbconvert==6.0.7 diff --git a/repo2docker/buildpacks/conda/freeze.py b/repo2docker/buildpacks/conda/freeze.py index 3f6085b15..a4aa09315 100755 --- a/repo2docker/buildpacks/conda/freeze.py +++ b/repo2docker/buildpacks/conda/freeze.py @@ -9,6 +9,7 @@ python freeze.py [3.8] """ +from argparse import ArgumentParser from datetime import datetime import os import pathlib @@ -106,10 +107,21 @@ def set_python(py_env_file, py): if __name__ == "__main__": - # allow specifying which Pythons to update on argv - pys = sys.argv[1:] or ("2.7", "3.6", "3.7", "3.8", "3.9") + parser = ArgumentParser( + description=( + "Refreeze conda environments. See " + "https://repo2docker.readthedocs.io/en/latest/contributing/tasks.html#update-and-freeze-buildpack-dependencies" + ) + ) + parser.add_argument( + "py", + nargs="*", + help="Python version(s) to update and freeze", + default=("2.7", "3.6", "3.7", "3.8", "3.9"), + ) + args = parser.parse_args() default_py = "3.7" - for py in pys: + for py in args.py: env_file = pathlib.Path(str(ENV_FILE_T).format(py=py)) set_python(env_file, py) frozen_file = pathlib.Path(os.path.splitext(env_file)[0] + ".lock") diff --git a/repo2docker/buildpacks/conda/install-base-env.bash b/repo2docker/buildpacks/conda/install-base-env.bash new file mode 100755 index 000000000..658500367 --- /dev/null +++ b/repo2docker/buildpacks/conda/install-base-env.bash @@ -0,0 +1,87 @@ +#!/bin/bash +# This downloads and installs a pinned version of micromamba +# and sets up the base environment +set -ex + +cd $(dirname $0) + +export MAMBA_VERSION=0.19.1 +export CONDA_VERSION=4.11.0 + +URL="https://anaconda.org/conda-forge/micromamba/${MAMBA_VERSION}/download/linux-64/micromamba-${MAMBA_VERSION}-0.tar.bz2" + +# make sure we don't do anything funky with user's $HOME +# since this is run as root +unset HOME +mkdir -p ${CONDA_DIR} + +export MICROMAMBA_EXE="/usr/local/bin/micromamba" + +time wget -qO- ${URL} | tar -xvj bin/micromamba +mv bin/micromamba "$MICROMAMBA_EXE" +chmod 0755 "$MICROMAMBA_EXE" + +eval "$(${MICROMAMBA_EXE} shell hook -p ${CONDA_DIR} -s posix)" + +micromamba activate + +export PATH="${PWD}/bin:$PATH" + +cat <> ${CONDA_DIR}/.condarc +channels: + - conda-forge + - defaults +auto_update_conda: false +show_channel_urls: true +update_dependencies: false +# channel_priority: flexible +EOT + +micromamba install conda=${CONDA_VERSION} mamba=${MAMBA_VERSION} -y + +echo "installing notebook env:" +cat "${NB_ENVIRONMENT_FILE}" + + +time ${MAMBA_EXE} create -p ${NB_PYTHON_PREFIX} --file "${NB_ENVIRONMENT_FILE}" + +if [[ ! -z "${NB_REQUIREMENTS_FILE:-}" ]]; then + echo "installing pip requirements" + cat "${NB_REQUIREMENTS_FILE}" + ${NB_PYTHON_PREFIX}/bin/python -mpip install --no-cache --no-deps -r "${NB_REQUIREMENTS_FILE}" +fi +# empty conda history file, +# which seems to result in some effective pinning of packages in the initial env, +# which we don't intend. +# this file must not be *removed*, however +echo '' > ${NB_PYTHON_PREFIX}/conda-meta/history + +if [[ ! -z "${KERNEL_ENVIRONMENT_FILE:-}" ]]; then + # install kernel env and register kernelspec + echo "installing kernel env:" + cat "${KERNEL_ENVIRONMENT_FILE}" + time ${MAMBA_EXE} create -p ${KERNEL_PYTHON_PREFIX} --file "${KERNEL_ENVIRONMENT_FILE}" + + if [[ ! -z "${KERNEL_REQUIREMENTS_FILE:-}" ]]; then + echo "installing pip requirements for kernel" + cat "${KERNEL_REQUIREMENTS_FILE}" + ${KERNEL_PYTHON_PREFIX}/bin/python -mpip install --no-cache --no-deps -r "${KERNEL_REQUIREMENTS_FILE}" + fi + + ${KERNEL_PYTHON_PREFIX}/bin/ipython kernel install --prefix "${NB_PYTHON_PREFIX}" + echo '' > ${KERNEL_PYTHON_PREFIX}/conda-meta/history + ${MAMBA_EXE} list -p ${KERNEL_PYTHON_PREFIX} +fi + +# Clean things out! +time ${MAMBA_EXE} clean --all -f -y + +# Remove the pip cache created as part of installing micromamba +rm -rf /root/.cache + +chown -R $NB_USER:$NB_USER ${CONDA_DIR} + +${MAMBA_EXE} list -p ${NB_PYTHON_PREFIX} + +# Set NPM config +${NB_PYTHON_PREFIX}/bin/npm config --global set prefix ${NPM_DIR} diff --git a/repo2docker/buildpacks/conda/install-miniforge.bash b/repo2docker/buildpacks/conda/install-miniforge.bash deleted file mode 100755 index 3c99b6a07..000000000 --- a/repo2docker/buildpacks/conda/install-miniforge.bash +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash -# This downloads and installs a pinned version of miniforge -# and sets up the base environment -set -ex - - -cd $(dirname $0) -MINIFORGE_VERSION=4.9.2-2 -MAMBA_VERSION=0.7.4 -# SHA256 for installers can be obtained from https://github.com/conda-forge/miniforge/releases -SHA256SUM="7a7bfaff87680298304a97ba69bcf92f66c810995a7155a2918b99fafb8ca1dc" - -URL="https://github.com/conda-forge/miniforge/releases/download/${MINIFORGE_VERSION}/Mambaforge-${MINIFORGE_VERSION}-Linux-x86_64.sh" -INSTALLER_PATH=/tmp/miniforge-installer.sh - -# make sure we don't do anything funky with user's $HOME -# since this is run as root -unset HOME - -time wget --quiet $URL -O ${INSTALLER_PATH} -chmod +x ${INSTALLER_PATH} - -# check sha256 checksum -if ! echo "${SHA256SUM} ${INSTALLER_PATH}" | sha256sum --quiet -c -; then - echo "sha256 mismatch for ${INSTALLER_PATH}, exiting!" - exit 1 -fi - -time bash ${INSTALLER_PATH} -b -p ${CONDA_DIR} -export PATH="${CONDA_DIR}/bin:$PATH" - -# Preserve behavior of miniconda - packages come from conda-forge + defaults -conda config --system --append channels defaults - -# Do not attempt to auto update conda or dependencies -conda config --system --set auto_update_conda false -conda config --system --set show_channel_urls true - -# bug in conda 4.3.>15 prevents --set update_dependencies -echo 'update_dependencies: false' >> ${CONDA_DIR}/.condarc - -# avoid future changes to default channel_priority behavior -conda config --system --set channel_priority "flexible" - -time mamba install -y mamba==${MAMBA_VERSION} - -echo "installing notebook env:" -cat "${NB_ENVIRONMENT_FILE}" - -time mamba create -p ${NB_PYTHON_PREFIX} --file "${NB_ENVIRONMENT_FILE}" - -if [[ ! -z "${NB_REQUIREMENTS_FILE:-}" ]]; then - echo "installing pip requirements" - cat "${NB_REQUIREMENTS_FILE}" - ${NB_PYTHON_PREFIX}/bin/python -mpip install --no-cache --no-deps -r "${NB_REQUIREMENTS_FILE}" -fi -# empty conda history file, -# which seems to result in some effective pinning of packages in the initial env, -# which we don't intend. -# this file must not be *removed*, however -echo '' > ${NB_PYTHON_PREFIX}/conda-meta/history - -if [[ ! -z "${KERNEL_ENVIRONMENT_FILE:-}" ]]; then - # install kernel env and register kernelspec - echo "installing kernel env:" - cat "${KERNEL_ENVIRONMENT_FILE}" - time mamba create -p ${KERNEL_PYTHON_PREFIX} --file "${KERNEL_ENVIRONMENT_FILE}" - - if [[ ! -z "${KERNEL_REQUIREMENTS_FILE:-}" ]]; then - echo "installing pip requirements for kernel" - cat "${KERNEL_REQUIREMENTS_FILE}" - ${KERNEL_PYTHON_PREFIX}/bin/python -mpip install --no-cache --no-deps -r "${KERNEL_REQUIREMENTS_FILE}" - fi - - ${KERNEL_PYTHON_PREFIX}/bin/ipython kernel install --prefix "${NB_PYTHON_PREFIX}" - echo '' > ${KERNEL_PYTHON_PREFIX}/conda-meta/history - mamba list -p ${KERNEL_PYTHON_PREFIX} -fi - -# Clean things out! -time mamba clean --all -f -y - -# Remove the big installer so we don't increase docker image size too much -rm ${INSTALLER_PATH} - -# Remove the pip cache created as part of installing miniforge -rm -rf /root/.cache - -chown -R $NB_USER:$NB_USER ${CONDA_DIR} - -mamba list -n root -mamba list -p ${NB_PYTHON_PREFIX} diff --git a/repo2docker/buildpacks/docker.py b/repo2docker/buildpacks/docker.py index 8326aecfe..5f0c2fb33 100644 --- a/repo2docker/buildpacks/docker.py +++ b/repo2docker/buildpacks/docker.py @@ -52,6 +52,7 @@ def build( buildargs=build_args, container_limits=limits, cache_from=cache_from, + labels=self.get_labels(), ) build_kwargs.update(extra_build_kwargs) diff --git a/repo2docker/buildpacks/julia/julia_project.py b/repo2docker/buildpacks/julia/julia_project.py index b340acbd2..9a569e519 100644 --- a/repo2docker/buildpacks/julia/julia_project.py +++ b/repo2docker/buildpacks/julia/julia_project.py @@ -1,10 +1,13 @@ """Generates a Dockerfile based on an input matrix for Julia""" import functools import os + import requests +import semver import toml + from ..python import PythonBuildPack -from .semver import find_semver_match, semver +from ...semver import find_semver_match class JuliaProjectTomlBuildPack(PythonBuildPack): diff --git a/repo2docker/buildpacks/julia/julia_require.py b/repo2docker/buildpacks/julia/julia_require.py index b4e4f35e0..075b928e0 100644 --- a/repo2docker/buildpacks/julia/julia_require.py +++ b/repo2docker/buildpacks/julia/julia_require.py @@ -1,9 +1,9 @@ """Generates a Dockerfile based on an input matrix with REQUIRE for legacy Julia""" -from distutils.version import LooseVersion as V import os from ..python import PythonBuildPack +from ...semver import parse_version as V class JuliaRequireBuildPack(PythonBuildPack): diff --git a/repo2docker/buildpacks/r.py b/repo2docker/buildpacks/r.py index 2df72982c..9a734a47d 100644 --- a/repo2docker/buildpacks/r.py +++ b/repo2docker/buildpacks/r.py @@ -3,10 +3,10 @@ import datetime import requests -from distutils.version import LooseVersion as V +from ..semver import parse_version as V from .python import PythonBuildPack -from ._r_base import rstudio_base_scripts, DEVTOOLS_VERSION, IRKERNEL_VERSION +from ._r_base import rstudio_base_scripts class RBuildPack(PythonBuildPack): @@ -20,25 +20,27 @@ class RBuildPack(PythonBuildPack): r--- Where 'year', 'month' and 'date' refer to a specific - date snapshot of https://mran.microsoft.com/timemachine - from which libraries are to be installed. + date whose CRAN snapshot we will use to fetch packages. + Uses https://packagemanager.rstudio.com, or MRAN if no snapshot + is found on packagemanager.rstudio.com 2. A `DESCRIPTION` file signaling an R package - If there is no `runtime.txt`, then the MRAN snapshot is set to latest + If there is no `runtime.txt`, then the CRAN snapshot is set to latest date that is guaranteed to exist across timezones. Additional R packages are installed if specified either - in a file `install.R`, that will be executed at build time, - and can be used for installing packages from both MRAN and GitHub + and can be used for installing packages from both CRAN and GitHub - as dependencies in a `DESCRIPTION` file - are needed by a specific tool - The `r-base` package from Ubuntu apt repositories is used to install - R itself, rather than any of the methods from https://cran.r-project.org/. + The `r-base-core` package from Ubuntu or "Ubuntu packages for R" + apt repositories is used to install R itself, + rather than any of the methods from https://cran.r-project.org/. The `r-base-dev` package is installed as advised in RStudio instructions. """ @@ -72,14 +74,15 @@ def r_version(self): "3.5.1": "3.5.1-2bionic", "3.5.2": "3.5.2-1bionic", "3.5.3": "3.5.3-1bionic", - "3.6": "3.6.1-3bionic", + "3.6": "3.6.3-1bionic", "3.6.0": "3.6.0-2bionic", "3.6.1": "3.6.1-3bionic", - "4.0": "4.0.2-1.1804.0", + "4.0": "4.0.5-1.1804.0", "4.0.2": "4.0.2-1.1804.0", + "4.1": "4.1.2-1.1804.0", } # the default if nothing is specified - r_version = "3.6" + r_version = "4.1" if not hasattr(self, "_r_version"): parts = self.runtime.split("-") @@ -98,7 +101,7 @@ def r_version(self): @property def checkpoint_date(self): """ - Return the date of MRAN checkpoint to use for this repo + Return the date of CRAN checkpoint to use for this repo Returns '' if no date is specified """ @@ -131,11 +134,9 @@ def detect(self): if not self.binder_dir and os.path.exists(description_R): if not self.checkpoint_date: # no R snapshot date set through runtime.txt - # set the R runtime to the latest date that is guaranteed to - # be on MRAN across timezones - two_days_ago = datetime.date.today() - datetime.timedelta(days=2) - self._checkpoint_date = self._get_latest_working_mran_date( - two_days_ago, 3 + # Set it to two days ago from today + self._checkpoint_date = datetime.date.today() - datetime.timedelta( + days=2 ) self._runtime = "r-{}".format(str(self._checkpoint_date)) return True @@ -177,7 +178,7 @@ def get_packages(self): "lsb-release", ] # For R 3.4 we use the default Ubuntu package, for other versions we - # install from a different PPA + # install from a different apt repository if V(self.r_version) < V("3.5"): packages.append("r-base") packages.append("r-base-dev") @@ -185,28 +186,65 @@ def get_packages(self): return super().get_packages().union(packages) - def _get_latest_working_mran_date(self, startdate, max_prior): - """ - Look for a working MRAN snapshot - - Starts from `startdate` and tries up to `max_prior` previous days. - Raises `requests.HTTPError` with the last tried URL if no working snapshot found. - """ - for days in range(max_prior + 1): - test_date = startdate - datetime.timedelta(days=days) - mran_url = "https://mran.microsoft.com/snapshot/{}".format( - test_date.isoformat() + def get_rspm_snapshot_url(self, snapshot_date, max_days_prior=7): + for i in range(max_days_prior): + snapshots = requests.post( + "https://packagemanager.rstudio.com/__api__/url", + # Ask for midnight UTC snapshot + json={ + "repo": "all", + "snapshot": (snapshot_date - datetime.timedelta(days=i)).strftime( + "%Y-%m-%dT00:00:00Z" + ), + }, + ).json() + # Construct a snapshot URL that will give us binary packages for Ubuntu Bionic (18.04) + if "upsi" in snapshots: + return ( + "https://packagemanager.rstudio.com/all/__linux__/bionic/" + + snapshots["upsi"] + ) + raise ValueError( + "No snapshot found for {} or {} days prior in packagemanager.rstudio.com".format( + snapshot_date.strftime("%Y-%m-%d"), max_days_prior ) - r = requests.head(mran_url) + ) + + def get_mran_snapshot_url(self, snapshot_date, max_days_prior=7): + for i in range(max_days_prior): + try_date = snapshot_date - datetime.timedelta(days=i) + # Fall back to MRAN if packagemanager.rstudio.com doesn't have it + url = "https://mran.microsoft.com/snapshot/{}".format(try_date.isoformat()) + r = requests.head(url) if r.ok: - return test_date - self.log.warning( - "Failed to get MRAN snapshot URL %s: %s %s", - mran_url, - r.status_code, - r.reason, + return url + raise ValueError( + "No snapshot found for {} or {} days prior in mran.microsoft.com".format( + snapshot_date.strftime("%Y-%m-%d"), max_days_prior ) - r.raise_for_status() + ) + + def get_cran_mirror_url(self, snapshot_date): + # Date after which we will use rspm + binary packages instead of MRAN + source packages + rspm_cutoff_date = datetime.date(2022, 1, 1) + + if snapshot_date >= rspm_cutoff_date or self.r_version >= V("4.1"): + return self.get_rspm_snapshot_url(snapshot_date) + else: + return self.get_mran_snapshot_url(snapshot_date) + + def get_devtools_snapshot_url(self): + """ + Return url of snapshot to use for getting devtools install + + devtools is part of our 'core' base install, so we should have some + control over what version we install here. + """ + # Picked from https://packagemanager.rstudio.com/client/#/repos/1/overview + # Hardcoded rather than dynamically determined from a date to avoid extra API calls + # Plus, we can always use packagemanager.rstudio.com here as we always install the + # necessary apt packages. + return "https://packagemanager.rstudio.com/all/__linux__/bionic/2022-01-04+Y3JhbiwyOjQ1MjYyMTU7NzlBRkJEMzg" def get_build_scripts(self): """ @@ -220,7 +258,7 @@ def get_build_scripts(self): for installing R packages into - RStudio - R's devtools package, at a particular frozen version - (determined by MRAN) + (determined by CRAN) - IRKernel - nbrsessionproxy (to access RStudio via Jupyter Notebook) @@ -228,61 +266,61 @@ def get_build_scripts(self): contents of runtime.txt. """ - mran_url = "https://mran.microsoft.com/snapshot/{}".format( - self.checkpoint_date.isoformat() - ) + cran_mirror_url = self.get_cran_mirror_url(self.checkpoint_date) - scripts = [] - # For R 3.4 we want to use the default Ubuntu package but otherwise - # we use the packages from R's own repo + # Determine which R apt repository should be enabled if V(self.r_version) >= V("3.5"): if V(self.r_version) >= V("4"): vs = "40" else: vs = "35" - scripts += [ - ( - "root", - rf""" - echo "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran{vs}/" > /etc/apt/sources.list.d/r-ubuntu.list - """, - ), - # Dont use apt-key directly, as gpg does not always respect *_proxy vars. This increase the chances - # of being able to reach it from behind a firewall - ( - "root", - r""" - wget --quiet -O - 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xe298a3a825c0d65dfd57cbb651716619e084dab9' | apt-key add - - """, - ), - ( - "root", - r""" - apt-get update && \ - apt-get install --yes r-base={R_version} \ - r-base-dev={R_version} \ - r-recommended={R_version} \ - libclang-dev && \ - apt-get -qq purge && \ - apt-get -qq clean && \ - rm -rf /var/lib/apt/lists/* - """.format( - R_version=self.r_version - ), + + scripts = [ + ( + "root", + rf""" + echo "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran{vs}/" > /etc/apt/sources.list.d/r-ubuntu.list + """, + ), + # Dont use apt-key directly, as gpg does not always respect *_proxy vars. This increase the chances + # of being able to reach it from behind a firewall + ( + "root", + r""" + wget --quiet -O - 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xe298a3a825c0d65dfd57cbb651716619e084dab9' | apt-key add - + """, + ), + ( + "root", + # we should have --no-install-recommends on all our apt-get install commands, + # but here it's important because it will pull in CRAN packages + # via r-recommends, which is only guaranteed to be compatible with the latest r-base-core + r""" + apt-get update > /dev/null && \ + apt-get install --yes --no-install-recommends \ + r-base-core={R_version} \ + r-base-dev={R_version} \ + libclang-dev \ + libzmq3-dev > /dev/null && \ + apt-get -qq purge && \ + apt-get -qq clean && \ + rm -rf /var/lib/apt/lists/* + """.format( + R_version=self.r_version ), - ] + ), + ] + + scripts += rstudio_base_scripts(self.r_version) - scripts.append( + scripts += [ ( "root", r""" mkdir -p ${R_LIBS_USER} && \ chown -R ${NB_USER}:${NB_USER} ${R_LIBS_USER} """, - ) - ) - scripts += rstudio_base_scripts() - scripts += [ + ), ( "root", # Set paths so that RStudio shares libraries with base R @@ -294,33 +332,30 @@ def get_build_scripts(self): """, ), ( - "${NB_USER}", - # Install a pinned version of IRKernel and set it up for use! + "root", + # RStudio's CRAN mirror needs this to figure out which binary package to serve. + # If not set properly, it will just serve up source packages + # Quite hilarious, IMO. + # See https://docs.rstudio.com/rspm/1.0.12/admin/binaries.html + # Set mirror for RStudio too, by modifying rsession.conf r""" - R --quiet -e "install.packages('devtools', repos='https://mran.microsoft.com/snapshot/{devtools_version}', method='libcurl')" && \ - R --quiet -e "devtools::install_github('IRkernel/IRkernel', ref='{irkernel_version}')" && \ - R --quiet -e "IRkernel::installspec(prefix='$NB_PYTHON_PREFIX')" + R RHOME && \ + mkdir -p /usr/lib/R/etc /etc/rstudio && \ + echo 'options(repos = c(CRAN = "{cran_mirror_url}"))' > /usr/lib/R/etc/Rprofile.site && \ + echo 'options(HTTPUserAgent = sprintf("R/%s R (%s)", getRversion(), paste(getRversion(), R.version$platform, R.version$arch, R.version$os)))' >> /usr/lib/R/etc/Rprofile.site && \ + echo 'r-cran-repos={cran_mirror_url}' > /etc/rstudio/rsession.conf """.format( - devtools_version=DEVTOOLS_VERSION, irkernel_version=IRKERNEL_VERSION + cran_mirror_url=cran_mirror_url ), ), ( "${NB_USER}", - # Install shiny library + # Install a pinned version of devtools, IRKernel and shiny r""" - R --quiet -e "install.packages('shiny', repos='{}', method='libcurl')" - """.format( - mran_url - ), - ), - ( - "root", - # We set the default CRAN repo to the MRAN one at given date - # We set download method to be curl so we get HTTPS support - r""" - echo "options(repos = c(CRAN='{mran_url}'), download.file.method = 'libcurl')" > /etc/R/Rprofile.site + R --quiet -e "install.packages(c('devtools', 'IRkernel', 'shiny'), repos='{devtools_cran_mirror_url}')" && \ + R --quiet -e "IRkernel::installspec(prefix='$NB_PYTHON_PREFIX')" """.format( - mran_url=mran_url + devtools_cran_mirror_url=self.get_devtools_snapshot_url() ), ), ] @@ -352,7 +387,10 @@ def get_preassemble_scripts(self): scripts += [ ( "${NB_USER}", - "Rscript %s && touch /tmp/.preassembled || true" % installR_path, + # Delete /tmp/downloaded_packages only if install.R fails, as the second + # invocation of install.R might be able to reuse them + "Rscript %s && touch /tmp/.preassembled || true && rm -rf /tmp/downloaded_packages" + % installR_path, ) ] @@ -368,7 +406,8 @@ def get_assemble_scripts(self): ( "${NB_USER}", # only run install.R if the pre-assembly failed - "if [ ! -f /tmp/.preassembled ]; then Rscript {}; fi".format( + # Delete any downloaded packages in /tmp, as they aren't reused by R + """if [ ! -f /tmp/.preassembled ]; then Rscript {}; rm -rf /tmp/downloaded_packages; fi""".format( installR_path ), ) diff --git a/repo2docker/docker.py b/repo2docker/docker.py index c1f3b4188..6b9099fd3 100644 --- a/repo2docker/docker.py +++ b/repo2docker/docker.py @@ -3,6 +3,7 @@ """ import docker +from traitlets import Dict from iso8601 import parse_date from .engine import Container, ContainerEngine, ContainerEngineException, Image @@ -53,12 +54,27 @@ class DockerEngine(ContainerEngine): string_output = False + extra_init_args = Dict( + {}, + help=""" + Extra kwargs to pass to docker client when initializing it. + + Dictionary that allows users to specify extra parameters to pass + to APIClient, parameters listed in https://docker-py.readthedocs.io/en/stable/api.html#docker.api.client.APIClient. + + Parameters here are merged with whatever is picked up from the + environment. + """, + config=True, + ) + def __init__(self, *, parent): super().__init__(parent=parent) try: - self._apiclient = docker.APIClient( - version="auto", **docker.utils.kwargs_from_env() - ) + kwargs = docker.utils.kwargs_from_env() + kwargs.update(self.extra_init_args) + kwargs.setdefault("version", "auto") + self._apiclient = docker.APIClient(**kwargs) except docker.errors.DockerException as e: raise ContainerEngineException("Check if docker is running on the host.", e) @@ -73,6 +89,7 @@ def build( dockerfile="", fileobj=None, path="", + labels=None, **kwargs, ): return self._apiclient.build( @@ -87,6 +104,7 @@ def build( dockerfile=dockerfile, fileobj=fileobj, path=path, + labels=labels, **kwargs, ) diff --git a/repo2docker/engine.py b/repo2docker/engine.py index 4b2a62015..9b5e92eb2 100644 --- a/repo2docker/engine.py +++ b/repo2docker/engine.py @@ -176,6 +176,7 @@ def build( dockerfile="", fileobj=None, path="", + labels=None, **kwargs, ): """ @@ -204,6 +205,8 @@ def build( A tar file-like object containing the build context path : str path to the Dockerfile + labels : dict + Dictionary of labels to set on the image Returns ------- diff --git a/repo2docker/buildpacks/julia/semver.py b/repo2docker/semver.py similarity index 86% rename from repo2docker/buildpacks/julia/semver.py rename to repo2docker/semver.py index da9bf7c77..d0a2a5b86 100644 --- a/repo2docker/buildpacks/julia/semver.py +++ b/repo2docker/semver.py @@ -12,11 +12,13 @@ import re +from functools import lru_cache import semver def find_semver_match(constraint, versions_list): + """Find first version in a list of versions that matches a constraint""" matcher = create_semver_matcher(constraint) for vstr in reversed(versions_list): if matcher.match(str_to_version(vstr)): @@ -25,9 +27,29 @@ def find_semver_match(constraint, versions_list): def str_to_version(vstr): + """Convert a simple x[.y[.z]] version string to a tuple of ints""" return tuple([int(n) for n in vstr.split(".")]) +@lru_cache() +def parse_version(vstr): + """Convert a simple 'x[.y[.z]]' version string to a comparable VersionInfo + + Wraps semver.VersionInfo.parse with zero-padding, + so it can accept '1.0', where upstream only accepts exactly 3 version fields. + """ + try: + return semver.VersionInfo.parse(vstr) + except ValueError: + # may fail for e.g. short 1.0 versions + n_fields = vstr.count(".") + if n_fields < 2: + vstr = vstr + (".0" * (2 - n_fields)) + return semver.VersionInfo.parse(vstr) + else: + raise + + # Helpers def major(v): return v[0] @@ -41,6 +63,7 @@ def patch(v): return v[2] if len(v) >= 3 else 0 +@lru_cache() def create_semver_matcher(constraint_str): """Create a matcher that can be used to match version tuples diff --git a/tests/conda/binder-dir/verify b/tests/conda/binder-dir/verify index b5e017b35..46a533ba3 100755 --- a/tests/conda/binder-dir/verify +++ b/tests/conda/binder-dir/verify @@ -4,7 +4,18 @@ from subprocess import check_output assert sys.version_info[:2] == (3, 5), sys.version -out = check_output(["conda", "--version"]).decode("utf8").strip() -assert out == "conda 4.9.2", out +out = check_output(["micromamba", "--version"]).decode("utf8").strip() +assert ( + out + == """micromamba: 0.19.1 +libmamba: 0.19.1""" +), out + +out = check_output(["mamba", "--version"]).decode("utf8").strip() +assert ( + out + == """mamba 0.19.1 +conda 4.11.0""" +), out import numpy diff --git a/tests/conda/r/environment.yml b/tests/conda/r3.6/environment.yml similarity index 65% rename from tests/conda/r/environment.yml rename to tests/conda/r3.6/environment.yml index 29d84f12e..c1d2a2bee 100644 --- a/tests/conda/r/environment.yml +++ b/tests/conda/r3.6/environment.yml @@ -1,3 +1,3 @@ dependencies: - r-base=3.6 - - r-ggplot2 + - r-testthat diff --git a/tests/conda/r3.6/verify b/tests/conda/r3.6/verify new file mode 100755 index 000000000..63a7165fd --- /dev/null +++ b/tests/conda/r3.6/verify @@ -0,0 +1,7 @@ +#!/bin/sh + +jupyter serverextension list 2>&1 | grep jupyter_server_proxy +jupyter nbextension list 2>&1 | grep jupyter_server_proxy +R -e "library('testthat')" +# Fail if version is not 3.6 +R -e 'if (!(version$major == "3" && as.double(version$minor) >= 6 && as.double(version$minor) < 7)) quit("yes", 1)' diff --git a/tests/conda/r4.0/environment.yml b/tests/conda/r4.0/environment.yml new file mode 100644 index 000000000..2fb5e3480 --- /dev/null +++ b/tests/conda/r4.0/environment.yml @@ -0,0 +1,3 @@ +dependencies: + - r-base=4.0 + - r-ggplot2 diff --git a/tests/conda/r/verify b/tests/conda/r4.0/verify similarity index 52% rename from tests/conda/r/verify rename to tests/conda/r4.0/verify index 5906028de..308dfa353 100755 --- a/tests/conda/r/verify +++ b/tests/conda/r4.0/verify @@ -3,3 +3,5 @@ jupyter serverextension list 2>&1 | grep jupyter_server_proxy jupyter nbextension list 2>&1 | grep jupyter_server_proxy R -e "library('ggplot2')" +# Fail if version is not 4.0 +R -e 'if (!(version$major == "4" && as.double(version$minor) >= 0 && as.double(version$minor) < 1)) quit("yes", 1)' \ No newline at end of file diff --git a/tests/conda/r4.1/environment.yml b/tests/conda/r4.1/environment.yml new file mode 100644 index 000000000..479d4df78 --- /dev/null +++ b/tests/conda/r4.1/environment.yml @@ -0,0 +1,3 @@ +dependencies: + - r-base=4.1 + - r-ggplot2 diff --git a/tests/conda/r4.1/verify b/tests/conda/r4.1/verify new file mode 100755 index 000000000..d512316e4 --- /dev/null +++ b/tests/conda/r4.1/verify @@ -0,0 +1,7 @@ +#!/bin/sh + +jupyter serverextension list 2>&1 | grep jupyter_server_proxy +jupyter nbextension list 2>&1 | grep jupyter_server_proxy +R -e "library('ggplot2')" +# Fail if version is not 4.1 +R -e 'if (!(version$major == "4" && as.double(version$minor) >= 1 && as.double(version$minor) < 2)) quit("yes", 1)' \ No newline at end of file diff --git a/tests/conda/simple-py2/verify b/tests/conda/simple-py2/verify index e6efc73b1..b251755a6 100755 --- a/tests/conda/simple-py2/verify +++ b/tests/conda/simple-py2/verify @@ -14,13 +14,13 @@ assert sorted(specs) == ["python2", "python3"], specs.keys() import json from subprocess import check_output -envs = json.loads(check_output(["conda", "env", "list", "--json"]).decode("utf8")) +envs = json.loads(check_output(["micromamba", "env", "list", "--json"]).decode("utf8")) assert envs == { "envs": ["/srv/conda", "/srv/conda/envs/kernel", "/srv/conda/envs/notebook"] }, envs pkgs = json.loads( - check_output(["conda", "list", "-n", "kernel", "--json"]).decode("utf8") + check_output(["micromamba", "list", "-n", "kernel", "--json"]).decode("utf8") ) pkg_names = [pkg["name"] for pkg in pkgs] assert "ipykernel" in pkg_names, pkg_names diff --git a/tests/dockerfile/binder-dir/binder/Dockerfile b/tests/dockerfile/binder-dir/binder/Dockerfile index 989e2ec0a..492446360 100644 --- a/tests/dockerfile/binder-dir/binder/Dockerfile +++ b/tests/dockerfile/binder-dir/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.5 +FROM python:3.10 RUN pip install --no-cache notebook diff --git a/tests/dockerfile/simple/Dockerfile b/tests/dockerfile/simple/Dockerfile index 989e2ec0a..492446360 100644 --- a/tests/dockerfile/simple/Dockerfile +++ b/tests/dockerfile/simple/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.5 +FROM python:3.10 RUN pip install --no-cache notebook diff --git a/tests/pipfile/environment-yml/environment.yml b/tests/pipfile/environment-yml/environment.yml index 13421ffc4..7482eae47 100644 --- a/tests/pipfile/environment-yml/environment.yml +++ b/tests/pipfile/environment-yml/environment.yml @@ -1,3 +1,4 @@ dependencies: + - pip - pip: - pypi-pkg-test diff --git a/tests/r/apt/apt.txt b/tests/r/apt/apt.txt new file mode 100644 index 000000000..ede891d85 --- /dev/null +++ b/tests/r/apt/apt.txt @@ -0,0 +1 @@ +libsodium-dev diff --git a/tests/r/apt/install.R b/tests/r/apt/install.R new file mode 100644 index 000000000..8b43883c0 --- /dev/null +++ b/tests/r/apt/install.R @@ -0,0 +1 @@ +install.packages("viridisLite") diff --git a/tests/r/apt/runtime.txt b/tests/r/apt/runtime.txt new file mode 100644 index 000000000..a05a61215 --- /dev/null +++ b/tests/r/apt/runtime.txt @@ -0,0 +1 @@ +r-4.1-2021-10-22 diff --git a/tests/r/apt/verify b/tests/r/apt/verify new file mode 100755 index 000000000..636a3374d --- /dev/null +++ b/tests/r/apt/verify @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -euo pipefail +apt list +apt list | grep libsodium-dev +# make sure we got R +which R diff --git a/tests/r/mran/install.R b/tests/r/mran/install.R new file mode 100644 index 000000000..b4fdeb90e --- /dev/null +++ b/tests/r/mran/install.R @@ -0,0 +1 @@ +install.packages("testthat") diff --git a/tests/r/mran/runtime.txt b/tests/r/mran/runtime.txt new file mode 100644 index 000000000..308424ab2 --- /dev/null +++ b/tests/r/mran/runtime.txt @@ -0,0 +1 @@ +r-3.6-2016-01-03 diff --git a/tests/r/mran/verify b/tests/r/mran/verify new file mode 100755 index 000000000..b15da1547 --- /dev/null +++ b/tests/r/mran/verify @@ -0,0 +1,9 @@ +#!/usr/bin/env Rscript +library('testthat') + +print(version) + +# Fail if MRAN isn't the configured CRAN mirror +if (!(startsWith(options()$repos["CRAN"], "https://mran.microsoft.com"))) { + quit("yes", 1) +} diff --git a/tests/r/r3.6/install.R b/tests/r/r3.6/install.R new file mode 100644 index 000000000..b4fdeb90e --- /dev/null +++ b/tests/r/r3.6/install.R @@ -0,0 +1 @@ +install.packages("testthat") diff --git a/tests/r/r3.6/runtime.txt b/tests/r/r3.6/runtime.txt new file mode 100644 index 000000000..50ebaa6a3 --- /dev/null +++ b/tests/r/r3.6/runtime.txt @@ -0,0 +1 @@ +r-3.6-2018-07-07 diff --git a/tests/r/r3.6/verify b/tests/r/r3.6/verify new file mode 100755 index 000000000..42f33de32 --- /dev/null +++ b/tests/r/r3.6/verify @@ -0,0 +1,8 @@ +#!/usr/bin/env Rscript +library('testthat') + +print(version) +# Fail if version is not 3.6 +if (!(version$major == "3" && as.double(version$minor) >= 6 && as.double(version$minor) < 7)) { + quit("yes", 1) +} diff --git a/tests/r/r4.0-rspm/install.R b/tests/r/r4.0-rspm/install.R new file mode 100644 index 000000000..b4fdeb90e --- /dev/null +++ b/tests/r/r4.0-rspm/install.R @@ -0,0 +1 @@ +install.packages("testthat") diff --git a/tests/r/r4.0-rspm/runtime.txt b/tests/r/r4.0-rspm/runtime.txt new file mode 100644 index 000000000..e9f265b55 --- /dev/null +++ b/tests/r/r4.0-rspm/runtime.txt @@ -0,0 +1 @@ +r-4.0-2022-01-01 diff --git a/tests/r/r4.0-rspm/verify b/tests/r/r4.0-rspm/verify new file mode 100755 index 000000000..091739e2c --- /dev/null +++ b/tests/r/r4.0-rspm/verify @@ -0,0 +1,13 @@ +#!/usr/bin/env Rscript +library('testthat') + +print(version) +# Fail if version is not 4.0 +if (!(version$major == "4" && as.double(version$minor) >= 0 && as.double(version$minor) < 1)) { + quit("yes", 1) +} + +# The date we have chosen should give us an rspm mirror +if (!(startsWith(options()$repos["CRAN"], "https://packagemanager.rstudio.com"))) { + quit("yes", 1) +} \ No newline at end of file diff --git a/tests/r/r4.0/install.R b/tests/r/r4.0/install.R new file mode 100644 index 000000000..b4fdeb90e --- /dev/null +++ b/tests/r/r4.0/install.R @@ -0,0 +1 @@ +install.packages("testthat") diff --git a/tests/r/r4.0/runtime.txt b/tests/r/r4.0/runtime.txt new file mode 100644 index 000000000..b051a4326 --- /dev/null +++ b/tests/r/r4.0/runtime.txt @@ -0,0 +1 @@ +r-4.0-2021-07-07 diff --git a/tests/r/r4.0/verify b/tests/r/r4.0/verify new file mode 100755 index 000000000..d715cb38d --- /dev/null +++ b/tests/r/r4.0/verify @@ -0,0 +1,13 @@ +#!/usr/bin/env Rscript +library('testthat') + +print(version) +# Fail if version is not 4.0 +if (!(version$major == "4" && as.double(version$minor) >= 0 && as.double(version$minor) < 1)) { + quit("yes", 1) +} + +# The date we have chosen should give us an MRAN mirror +if (!(startsWith(options()$repos["CRAN"], "https://mran.microsoft.com"))) { + quit("yes", 1) +} \ No newline at end of file diff --git a/tests/r/r4.1/install.R b/tests/r/r4.1/install.R new file mode 100644 index 000000000..b4fdeb90e --- /dev/null +++ b/tests/r/r4.1/install.R @@ -0,0 +1 @@ +install.packages("testthat") diff --git a/tests/r/r4.1/runtime.txt b/tests/r/r4.1/runtime.txt new file mode 100644 index 000000000..a05a61215 --- /dev/null +++ b/tests/r/r4.1/runtime.txt @@ -0,0 +1 @@ +r-4.1-2021-10-22 diff --git a/tests/r/r4.1/verify b/tests/r/r4.1/verify new file mode 100755 index 000000000..c390f2706 --- /dev/null +++ b/tests/r/r4.1/verify @@ -0,0 +1,12 @@ +#!/usr/bin/env Rscript +library('testthat') + +# Fail if version is not 4.1 +if (!(version$major == "4" && as.double(version$minor) >= 1 && as.double(version$minor) < 2)) { + quit("yes", 1) +} + +# R 4.1 always uses rspm snapshots +if (!(startsWith(options()$repos["CRAN"], "https://packagemanager.rstudio.com"))) { + quit("yes", 1) +} diff --git a/tests/r/r4/install.R b/tests/r/r4/install.R deleted file mode 100644 index df6d6a837..000000000 --- a/tests/r/r4/install.R +++ /dev/null @@ -1 +0,0 @@ -install.packages("ggplot2") diff --git a/tests/r/r4/runtime.txt b/tests/r/r4/runtime.txt deleted file mode 100644 index e0b263062..000000000 --- a/tests/r/r4/runtime.txt +++ /dev/null @@ -1 +0,0 @@ -r-4.0-2020-07-07 diff --git a/tests/r/r4/verify b/tests/r/r4/verify deleted file mode 100755 index 6d28082b2..000000000 --- a/tests/r/r4/verify +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env Rscript -library('ggplot2') - -print(version) -if (version$major != "4") { - quit("yes", 1) -} diff --git a/tests/r/simple/install.R b/tests/r/simple/install.R index df6d6a837..b4fdeb90e 100644 --- a/tests/r/simple/install.R +++ b/tests/r/simple/install.R @@ -1 +1 @@ -install.packages("ggplot2") +install.packages("testthat") diff --git a/tests/r/simple/verify b/tests/r/simple/verify index eec6690f2..1ccbaa970 100755 --- a/tests/r/simple/verify +++ b/tests/r/simple/verify @@ -1,2 +1,7 @@ #!/usr/bin/env Rscript -library('ggplot2') +library('testthat') + +# Fail if version is not 4.1 +if (!(version$major == "4" && as.double(version$minor) >= 1 && as.double(version$minor) < 2)) { + quit("yes", 1) +} \ No newline at end of file diff --git a/tests/unit/contentproviders/test_mercurial.py b/tests/unit/contentproviders/test_mercurial.py index 25257bf39..4619ef862 100644 --- a/tests/unit/contentproviders/test_mercurial.py +++ b/tests/unit/contentproviders/test_mercurial.py @@ -1,15 +1,20 @@ -from pathlib import Path +import os import subprocess +from pathlib import Path from tempfile import TemporaryDirectory -import os -from distutils.util import strtobool import pytest from repo2docker.contentproviders import Mercurial from repo2docker.contentproviders.mercurial import args_enabling_topic -SKIP_HG = strtobool(os.environ.get("REPO2DOCKER_SKIP_HG_TESTS", "False")) + +SKIP_HG = os.environ.get("REPO2DOCKER_SKIP_HG_TESTS", "").lower() not in { + "", + "0", + "false", + "no", +} skip_if_no_hg_tests = pytest.mark.skipif( SKIP_HG, diff --git a/tests/unit/test_r.py b/tests/unit/test_r.py index dda984afd..f2c85041c 100644 --- a/tests/unit/test_r.py +++ b/tests/unit/test_r.py @@ -22,7 +22,7 @@ def test_unsupported_version(tmpdir): @pytest.mark.parametrize( - "runtime_version, expected", [("", "3.6"), ("3.6", "3.6"), ("3.5.1", "3.5")] + "runtime_version, expected", [("", "4.1"), ("3.6", "3.6"), ("3.5.1", "3.5")] ) def test_version_specification(tmpdir, runtime_version, expected): tmpdir.chdir() @@ -43,7 +43,7 @@ def test_version_completion(tmpdir): f.write(f"r-3.6-2019-01-01") r = buildpacks.RBuildPack() - assert r.r_version == "3.6.1-3bionic" + assert r.r_version == "3.6.3-1bionic" @pytest.mark.parametrize( @@ -64,28 +64,46 @@ def test_mran_date(tmpdir, runtime, expected): assert r.checkpoint_date == date(*expected) -@pytest.mark.parametrize("expected", ["2019-12-29", "2019-12-26"]) -def test_mran_latestdate(tmpdir, expected): +def test_snapshot_rspm_date(): + test_dates = { + # Even though there is no snapshot specified in the interface at https://packagemanager.rstudio.com/client/#/repos/1/overview + # For 2021 Oct 22, the API still returns a valid URL that one can install + # packages from - probably some server side magic that repeats our client side logic. + # No snapshot for this date from + date(2021, 10, 22): date(2021, 10, 22), + # Snapshot exists for this date + date(2022, 1, 1): date(2022, 1, 1), + } + + r = buildpacks.RBuildPack() + for requested, expected in test_dates.items(): + snapshot_url = r.get_rspm_snapshot_url(requested) + assert snapshot_url.startswith( + "https://packagemanager.rstudio.com/all/__linux__/bionic/" + + expected.strftime("%Y-%m-%d") + ) + + with pytest.raises(ValueError): + r.get_rspm_snapshot_url(date(1691, 9, 5)) + + +@pytest.mark.parametrize("expected", [date(2019, 12, 29), date(2019, 12, 26)]) +@pytest.mark.parametrize("requested", [date(2019, 12, 31)]) +def test_snapshot_mran_date(requested, expected): def mock_request_head(url): r = Response() - if url == "https://mran.microsoft.com/snapshot/" + expected: + if url == "https://mran.microsoft.com/snapshot/" + expected.isoformat(): r.status_code = 200 else: r.status_code = 404 r.reason = "Mock MRAN no snapshot" return r - tmpdir.chdir() - - with open("DESCRIPTION", "w") as f: - f.write("") - with patch("requests.head", side_effect=mock_request_head): - with patch("datetime.date") as mockdate: - mockdate.today.return_value = date(2019, 12, 31) - r = buildpacks.RBuildPack() - r.detect() - assert r.checkpoint_date.isoformat() == expected + r = buildpacks.RBuildPack() + assert r.get_mran_snapshot_url( + requested + ) == "https://mran.microsoft.com/snapshot/{}".format(expected.isoformat()) def test_install_from_base(tmpdir): @@ -99,7 +117,7 @@ def test_install_from_base(tmpdir): assert "r-base" in r.get_packages() -def test_install_from_ppa(tmpdir): +def test_install_from_cran_apt_repo(tmpdir): # check that for R>3.4 we don't install r-base from Ubuntu tmpdir.chdir() @@ -110,7 +128,7 @@ def test_install_from_ppa(tmpdir): assert "r-base" not in r.get_packages() -def test_custom_ppa(tmpdir): +def test_custom_cran_apt_repo(tmpdir): tmpdir.chdir() with open("runtime.txt", "w") as f: @@ -120,16 +138,16 @@ def test_custom_ppa(tmpdir): scripts = r.get_build_scripts() - # check that at least one of the build scripts adds this new PPA + # check that at least one of the build scripts adds this new apt repository for user, script in scripts: if "https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/" in script: break else: - assert False, "Should have added a new PPA" + assert False, "Should have added a new apt repository" # check that we install the right package for user, script in scripts: - if "r-base=3.5" in script: + if "r-base-core=3.5" in script: break else: assert False, "Should have installed base R" diff --git a/tests/unit/test_semver.py b/tests/unit/test_semver.py index a91024637..bbbf8ca50 100644 --- a/tests/unit/test_semver.py +++ b/tests/unit/test_semver.py @@ -1,5 +1,6 @@ import pytest -from repo2docker.buildpacks.julia import semver +from semver import VersionInfo +from repo2docker import semver @pytest.mark.parametrize("test_input, expected", [("1.5.2", (1, 5, 2)), ("1", (1,))]) @@ -145,3 +146,20 @@ def test_largerthan_equal(): semver.create_semver_matcher(">=1.2.3").match(semver.str_to_version("1.2.2")) == False ) + + +@pytest.mark.parametrize( + "vstr, expected", + [ + ("1.2.3", "1.2.3"), + ("1.2", "1.2.0"), + ("1", "1.0.0"), + ], +) +def test_parse_version(vstr, expected): + version_info = semver.parse_version(vstr) + assert isinstance(version_info, semver.semver.VersionInfo) + assert str(version_info) == expected + # satisfies itself, since this is how we use it + assert semver.parse_version(expected) <= version_info + assert semver.parse_version(expected) >= version_info