diff --git a/repo2docker/buildpacks/conda/environment.frozen.yml b/repo2docker/buildpacks/conda/environment.frozen.yml index df1d8306..eda33f89 100644 --- a/repo2docker/buildpacks/conda/environment.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.frozen.yml @@ -1,87 +1,86 @@ # AUTO GENERATED FROM environment.py-3.7.yml, DO NOT MANUALLY MODIFY -# Frozen on 2019-02-11 20:26:36 UTC +# Frozen on 2019-03-23 18:02:15 UTC name: r2d channels: - conda-forge - defaults - conda-forge/label/broken dependencies: - - attrs=18.2.0=py_0 + - attrs=19.1.0=py_0 - backcall=0.1.0=py_0 - bleach=3.1.0=py_0 - bzip2=1.0.6=h14c3975_1002 - - ca-certificates=2018.11.29=ha4d7672_0 - - certifi=2018.11.29=py37_1000 - - decorator=4.3.2=py_0 + - ca-certificates=2019.3.9=hecc5488_0 + - certifi=2019.3.9=py37_0 + - decorator=4.4.0=py_0 - defusedxml=0.5.0=py_1 - entrypoints=0.3=py37_1000 - - gmp=6.1.2=hf484d3e_1000 - ipykernel=5.1.0=py37h24bf2e0_1002 - - ipython=7.2.0=py37h24bf2e0_1000 + - ipython=7.4.0=py37h24bf2e0_0 - ipython_genutils=0.2.0=py_1 - - jedi=0.13.2=py37_1000 + - ipywidgets=7.4.2=py_0 + - jedi=0.13.3=py37_0 - jinja2=2.10=py_1 - - jsonschema=3.0.0a3=py37_1000 - - jupyter_client=5.2.4=py_1 + - jsonschema=3.0.1=py37_0 + - jupyter_client=5.2.4=py_3 - jupyter_core=4.4.0=py_0 - - jupyterlab_launcher=0.13.1=py_2 - - libffi=3.2.1=hf484d3e_1005 - - libgcc-ng=7.3.0=hdf63c60_0 + - jupyterlab=0.35.4=py37_0 + - jupyterlab_server=0.2.0=py_0 + - libffi=3.2.1=he1b5a44_1006 - libsodium=1.0.16=h14c3975_1001 - - libstdcxx-ng=7.3.0=hdf63c60_0 - - markupsafe=1.1.0=py37h14c3975_1000 + - markupsafe=1.1.1=py37h14c3975_0 - mistune=0.8.4=py37h14c3975_1000 - - nbconvert=5.4.0=1 + - nbconvert=5.4.1=py_2 - nbformat=4.4.0=py_1 - ncurses=6.1=hf484d3e_1002 - - notebook=5.7.4=py37_1000 - - openssl=1.0.2p=h14c3975_1002 - - pandoc=1.19.2=0 + - notebook=5.7.6=py37_0 + - openssl=1.1.1b=h14c3975_1 + - pandoc=2.7.1=0 - pandocfilters=1.4.2=py_1 - - parso=0.3.3=py_0 + - parso=0.3.4=py_0 - pexpect=4.6.0=py37_1000 - pickleshare=0.7.5=py37_1000 - - pip=19.0.2=py37_0 - - prometheus_client=0.5.0=py_0 - - prompt_toolkit=2.0.8=py_0 + - pip=19.0.3=py37_0 + - prometheus_client=0.6.0=py_0 + - prompt_toolkit=2.0.9=py_0 - ptyprocess=0.6.0=py37_1000 - pygments=2.3.1=py_0 - - pyrsistent=0.14.10=py37h14c3975_0 - - python=3.7.1=hd21baee_1000 + - pyrsistent=0.14.11=py37h14c3975_0 + - python=3.7.2=h381d211_0 - python-dateutil=2.8.0=py_0 - - pyzmq=17.1.2=py37h6afc9c9_1001 + - pyzmq=18.0.1=py37h0e1adb2_0 - readline=7.0=hf8c457e_1001 - send2trash=1.5.0=py_0 - setuptools=40.8.0=py37_0 - six=1.12.0=py37_1000 - - sqlite=3.26.0=h67949de_1000 + - sqlite=3.26.0=h67949de_1001 - terminado=0.8.1=py37_1001 - - testpath=0.4.2=py37_1000 + - testpath=0.4.2=py_1001 - tk=8.6.9=h84994c4_1000 - - tornado=5.1.1=py37h14c3975_1000 + - tornado=6.0.1=py37h14c3975_0 - traitlets=4.3.2=py37_1000 - wcwidth=0.1.7=py_1 - webencodings=0.5.1=py_1 - - wheel=0.32.3=py37_0 + - wheel=0.33.1=py37_0 - widgetsnbextension=3.4.2=py37_1000 - xz=5.2.4=h14c3975_1001 - zeromq=4.2.5=hf484d3e_1006 - zlib=1.2.11=h14c3975_1004 - - ipywidgets=7.2.1=py37_0 - - jupyterlab=0.34.9=py37_0 + - libgcc-ng=8.2.0=hdf63c60_1 + - libstdcxx-ng=8.2.0=hdf63c60_1 - pip: - - alembic==1.0.7 + - alembic==1.0.8 - async-generator==1.10 - chardet==3.0.4 - idna==2.8 - jupyterhub==0.9.4 - - mako==1.0.7 + - mako==1.0.8 - nteract-on-jupyter==2.0.0 - pamela==1.0.0 - python-editor==1.0.4 - python-oauth2==1.1.0 - requests==2.21.0 - - sqlalchemy==1.2.17 + - sqlalchemy==1.3.1 - urllib3==1.24.1 prefix: /opt/conda/envs/r2d diff --git a/repo2docker/buildpacks/conda/environment.py-2.7.frozen.yml b/repo2docker/buildpacks/conda/environment.py-2.7.frozen.yml index ffc95300..e7c3e8e5 100644 --- a/repo2docker/buildpacks/conda/environment.py-2.7.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.py-2.7.frozen.yml @@ -1,5 +1,5 @@ # AUTO GENERATED FROM environment.py-2.7.yml, DO NOT MANUALLY MODIFY -# Frozen on 2019-02-11 20:20:33 UTC +# Frozen on 2019-03-23 17:59:14 UTC name: r2d channels: - conda-forge @@ -9,45 +9,45 @@ dependencies: - backports=1.0=py_2 - backports.shutil_get_terminal_size=1.0.0=py_3 - backports_abc=0.5=py_1 - - ca-certificates=2018.11.29=ha4d7672_0 - - certifi=2018.11.29=py27_1000 - - decorator=4.3.2=py_0 + - ca-certificates=2019.3.9=hecc5488_0 + - certifi=2019.3.9=py27_0 + - decorator=4.4.0=py_0 - enum34=1.1.6=py27_1001 - futures=3.2.0=py27_1000 - ipykernel=4.8.2=py27_0 - ipython=5.8.0=py27_0 - ipython_genutils=0.2.0=py_1 - - jupyter_client=5.2.4=py_1 + - jupyter_client=5.2.4=py_3 - jupyter_core=4.4.0=py_0 - - libffi=3.2.1=hf484d3e_1005 - - libgcc-ng=7.3.0=hdf63c60_0 + - libffi=3.2.1=he1b5a44_1006 - libsodium=1.0.16=h14c3975_1001 - - libstdcxx-ng=7.3.0=hdf63c60_0 - ncurses=6.1=hf484d3e_1002 - - openssl=1.0.2p=h14c3975_1002 + - openssl=1.1.1b=h14c3975_1 - pathlib2=2.3.3=py27_1000 - pexpect=4.6.0=py27_1000 - pickleshare=0.7.5=py27_1000 - - pip=19.0.2=py27_0 + - pip=19.0.3=py27_0 - prompt_toolkit=1.0.15=py_1 - ptyprocess=0.6.0=py27_1000 - pygments=2.3.1=py_0 - - python=2.7.15=h938d71a_1006 + - python=2.7.15=h721da81_1008 - python-dateutil=2.8.0=py_0 - - pyzmq=17.1.2=py27h6afc9c9_1001 + - pyzmq=18.0.1=py27h0e1adb2_0 - readline=7.0=hf8c457e_1001 - - scandir=1.9.0=py27h14c3975_1000 + - scandir=1.10.0=py27h14c3975_0 - setuptools=40.8.0=py27_0 - simplegeneric=0.8.1=py_1 - singledispatch=3.4.0.3=py27_1000 - six=1.12.0=py27_1000 - - sqlite=3.26.0=h67949de_1000 + - sqlite=3.26.0=h67949de_1001 - tk=8.6.9=h84994c4_1000 - tornado=5.1.1=py27h14c3975_1000 - traitlets=4.3.2=py27_1000 - wcwidth=0.1.7=py_1 - - wheel=0.32.3=py27_0 + - wheel=0.33.1=py27_0 - zeromq=4.2.5=hf484d3e_1006 - zlib=1.2.11=h14c3975_1004 + - libgcc-ng=8.2.0=hdf63c60_1 + - libstdcxx-ng=8.2.0=hdf63c60_1 prefix: /opt/conda/envs/r2d diff --git a/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml b/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml index 371642de..97d21c50 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.5.frozen.yml @@ -75,7 +75,7 @@ dependencies: - idna==2.7 - jupyterhub==0.9.4 - mako==1.0.7 - - notebook==5.7.4 + - notebook==5.7.6 - nteract-on-jupyter==1.9.6 - pamela==0.3.0 - python-editor==1.0.3 diff --git a/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml b/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml index 65f724c8..b57680a8 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.6.frozen.yml @@ -1,86 +1,85 @@ # AUTO GENERATED FROM environment.py-3.6.yml, DO NOT MANUALLY MODIFY -# Frozen on 2019-02-11 20:22:50 UTC +# Frozen on 2019-03-23 18:00:20 UTC name: r2d channels: - conda-forge - defaults - conda-forge/label/broken dependencies: - - attrs=18.2.0=py_0 + - attrs=19.1.0=py_0 - backcall=0.1.0=py_0 - bleach=3.1.0=py_0 - - ca-certificates=2018.11.29=ha4d7672_0 - - certifi=2018.11.29=py36_1000 - - decorator=4.3.2=py_0 + - ca-certificates=2019.3.9=hecc5488_0 + - certifi=2019.3.9=py36_0 + - decorator=4.4.0=py_0 - defusedxml=0.5.0=py_1 - entrypoints=0.3=py36_1000 - - gmp=6.1.2=hf484d3e_1000 - ipykernel=5.1.0=py36h24bf2e0_1002 - - ipython=7.2.0=py36h24bf2e0_1000 + - ipython=7.4.0=py36h24bf2e0_0 - ipython_genutils=0.2.0=py_1 - - ipywidgets=7.2.1=py36_1 - - jedi=0.13.2=py36_1000 + - ipywidgets=7.4.2=py_0 + - jedi=0.13.3=py36_0 - jinja2=2.10=py_1 - - jsonschema=3.0.0a3=py36_1000 - - jupyter_client=5.2.4=py_1 + - jsonschema=3.0.1=py36_0 + - jupyter_client=5.2.4=py_3 - jupyter_core=4.4.0=py_0 - - jupyterlab=0.34.9=py36_0 - - jupyterlab_launcher=0.13.1=py_2 - - libffi=3.2.1=hf484d3e_1005 - - libgcc-ng=7.3.0=hdf63c60_0 + - jupyterlab=0.35.4=py36_0 + - jupyterlab_server=0.2.0=py_0 + - libffi=3.2.1=he1b5a44_1006 - libsodium=1.0.16=h14c3975_1001 - - libstdcxx-ng=7.3.0=hdf63c60_0 - - markupsafe=1.1.0=py36h14c3975_1000 + - markupsafe=1.1.1=py36h14c3975_0 - mistune=0.8.4=py36h14c3975_1000 - - nbconvert=5.4.0=1 + - nbconvert=5.4.1=py_2 - nbformat=4.4.0=py_1 - ncurses=6.1=hf484d3e_1002 - - notebook=5.7.4=py36_1000 - - openssl=1.0.2p=h14c3975_1002 - - pandoc=1.19.2=0 + - notebook=5.7.6=py36_0 + - openssl=1.1.1b=h14c3975_1 + - pandoc=2.7.1=0 - pandocfilters=1.4.2=py_1 - - parso=0.3.3=py_0 + - parso=0.3.4=py_0 - pexpect=4.6.0=py36_1000 - pickleshare=0.7.5=py36_1000 - - pip=19.0.2=py36_0 - - prometheus_client=0.5.0=py_0 - - prompt_toolkit=2.0.8=py_0 + - pip=19.0.3=py36_0 + - prometheus_client=0.6.0=py_0 + - prompt_toolkit=2.0.9=py_0 - ptyprocess=0.6.0=py36_1000 - pygments=2.3.1=py_0 - - pyrsistent=0.14.10=py36h14c3975_0 - - python=3.6.7=hd21baee_1001 + - pyrsistent=0.14.11=py36h14c3975_0 + - python=3.6.7=h381d211_1004 - python-dateutil=2.8.0=py_0 - - pyzmq=17.1.2=py36h6afc9c9_1001 + - pyzmq=18.0.1=py36h0e1adb2_0 - readline=7.0=hf8c457e_1001 - send2trash=1.5.0=py_0 - setuptools=40.8.0=py36_0 - six=1.12.0=py36_1000 - - sqlite=3.26.0=h67949de_1000 + - sqlite=3.26.0=h67949de_1001 - terminado=0.8.1=py36_1001 - - testpath=0.4.2=py36_1000 + - testpath=0.4.2=py_1001 - tk=8.6.9=h84994c4_1000 - - tornado=5.1.1=py36h14c3975_1000 + - tornado=6.0.1=py36h14c3975_0 - traitlets=4.3.2=py36_1000 - wcwidth=0.1.7=py_1 - webencodings=0.5.1=py_1 - - wheel=0.32.3=py36_0 - - widgetsnbextension=3.2.1=py36_1 + - wheel=0.33.1=py36_0 + - widgetsnbextension=3.4.2=py36_1000 - xz=5.2.4=h14c3975_1001 - zeromq=4.2.5=hf484d3e_1006 - zlib=1.2.11=h14c3975_1004 + - libgcc-ng=8.2.0=hdf63c60_1 + - libstdcxx-ng=8.2.0=hdf63c60_1 - pip: - - alembic==1.0.7 + - alembic==1.0.8 - async-generator==1.10 - chardet==3.0.4 - idna==2.8 - jupyterhub==0.9.4 - - mako==1.0.7 + - mako==1.0.8 - nteract-on-jupyter==2.0.0 - pamela==1.0.0 - python-editor==1.0.4 - python-oauth2==1.1.0 - requests==2.21.0 - - sqlalchemy==1.2.17 + - sqlalchemy==1.3.1 - urllib3==1.24.1 prefix: /opt/conda/envs/r2d diff --git a/repo2docker/buildpacks/conda/environment.py-3.6.yml b/repo2docker/buildpacks/conda/environment.py-3.6.yml index e7e92399..5fa071c3 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.6.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.6.yml @@ -1,11 +1,11 @@ # AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY -# Generated on 2019-02-11 20:22:50 UTC +# Generated on 2019-03-23 18:00:20 UTC dependencies: - python=3.6.* -- ipywidgets==7.2.1 -- jupyterlab==0.34.9 -- nbconvert==5.4.0 -- notebook==5.7.4 +- ipywidgets==7.4.2 +- jupyterlab==0.35.4 +- nbconvert==5.4.1 +- notebook==5.7.6 - pip: - nteract_on_jupyter==2.0.0 - jupyterhub==0.9.4 diff --git a/repo2docker/buildpacks/conda/environment.py-3.7.frozen.yml b/repo2docker/buildpacks/conda/environment.py-3.7.frozen.yml index df1d8306..eda33f89 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.7.frozen.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.7.frozen.yml @@ -1,87 +1,86 @@ # AUTO GENERATED FROM environment.py-3.7.yml, DO NOT MANUALLY MODIFY -# Frozen on 2019-02-11 20:26:36 UTC +# Frozen on 2019-03-23 18:02:15 UTC name: r2d channels: - conda-forge - defaults - conda-forge/label/broken dependencies: - - attrs=18.2.0=py_0 + - attrs=19.1.0=py_0 - backcall=0.1.0=py_0 - bleach=3.1.0=py_0 - bzip2=1.0.6=h14c3975_1002 - - ca-certificates=2018.11.29=ha4d7672_0 - - certifi=2018.11.29=py37_1000 - - decorator=4.3.2=py_0 + - ca-certificates=2019.3.9=hecc5488_0 + - certifi=2019.3.9=py37_0 + - decorator=4.4.0=py_0 - defusedxml=0.5.0=py_1 - entrypoints=0.3=py37_1000 - - gmp=6.1.2=hf484d3e_1000 - ipykernel=5.1.0=py37h24bf2e0_1002 - - ipython=7.2.0=py37h24bf2e0_1000 + - ipython=7.4.0=py37h24bf2e0_0 - ipython_genutils=0.2.0=py_1 - - jedi=0.13.2=py37_1000 + - ipywidgets=7.4.2=py_0 + - jedi=0.13.3=py37_0 - jinja2=2.10=py_1 - - jsonschema=3.0.0a3=py37_1000 - - jupyter_client=5.2.4=py_1 + - jsonschema=3.0.1=py37_0 + - jupyter_client=5.2.4=py_3 - jupyter_core=4.4.0=py_0 - - jupyterlab_launcher=0.13.1=py_2 - - libffi=3.2.1=hf484d3e_1005 - - libgcc-ng=7.3.0=hdf63c60_0 + - jupyterlab=0.35.4=py37_0 + - jupyterlab_server=0.2.0=py_0 + - libffi=3.2.1=he1b5a44_1006 - libsodium=1.0.16=h14c3975_1001 - - libstdcxx-ng=7.3.0=hdf63c60_0 - - markupsafe=1.1.0=py37h14c3975_1000 + - markupsafe=1.1.1=py37h14c3975_0 - mistune=0.8.4=py37h14c3975_1000 - - nbconvert=5.4.0=1 + - nbconvert=5.4.1=py_2 - nbformat=4.4.0=py_1 - ncurses=6.1=hf484d3e_1002 - - notebook=5.7.4=py37_1000 - - openssl=1.0.2p=h14c3975_1002 - - pandoc=1.19.2=0 + - notebook=5.7.6=py37_0 + - openssl=1.1.1b=h14c3975_1 + - pandoc=2.7.1=0 - pandocfilters=1.4.2=py_1 - - parso=0.3.3=py_0 + - parso=0.3.4=py_0 - pexpect=4.6.0=py37_1000 - pickleshare=0.7.5=py37_1000 - - pip=19.0.2=py37_0 - - prometheus_client=0.5.0=py_0 - - prompt_toolkit=2.0.8=py_0 + - pip=19.0.3=py37_0 + - prometheus_client=0.6.0=py_0 + - prompt_toolkit=2.0.9=py_0 - ptyprocess=0.6.0=py37_1000 - pygments=2.3.1=py_0 - - pyrsistent=0.14.10=py37h14c3975_0 - - python=3.7.1=hd21baee_1000 + - pyrsistent=0.14.11=py37h14c3975_0 + - python=3.7.2=h381d211_0 - python-dateutil=2.8.0=py_0 - - pyzmq=17.1.2=py37h6afc9c9_1001 + - pyzmq=18.0.1=py37h0e1adb2_0 - readline=7.0=hf8c457e_1001 - send2trash=1.5.0=py_0 - setuptools=40.8.0=py37_0 - six=1.12.0=py37_1000 - - sqlite=3.26.0=h67949de_1000 + - sqlite=3.26.0=h67949de_1001 - terminado=0.8.1=py37_1001 - - testpath=0.4.2=py37_1000 + - testpath=0.4.2=py_1001 - tk=8.6.9=h84994c4_1000 - - tornado=5.1.1=py37h14c3975_1000 + - tornado=6.0.1=py37h14c3975_0 - traitlets=4.3.2=py37_1000 - wcwidth=0.1.7=py_1 - webencodings=0.5.1=py_1 - - wheel=0.32.3=py37_0 + - wheel=0.33.1=py37_0 - widgetsnbextension=3.4.2=py37_1000 - xz=5.2.4=h14c3975_1001 - zeromq=4.2.5=hf484d3e_1006 - zlib=1.2.11=h14c3975_1004 - - ipywidgets=7.2.1=py37_0 - - jupyterlab=0.34.9=py37_0 + - libgcc-ng=8.2.0=hdf63c60_1 + - libstdcxx-ng=8.2.0=hdf63c60_1 - pip: - - alembic==1.0.7 + - alembic==1.0.8 - async-generator==1.10 - chardet==3.0.4 - idna==2.8 - jupyterhub==0.9.4 - - mako==1.0.7 + - mako==1.0.8 - nteract-on-jupyter==2.0.0 - pamela==1.0.0 - python-editor==1.0.4 - python-oauth2==1.1.0 - requests==2.21.0 - - sqlalchemy==1.2.17 + - sqlalchemy==1.3.1 - urllib3==1.24.1 prefix: /opt/conda/envs/r2d diff --git a/repo2docker/buildpacks/conda/environment.py-3.7.yml b/repo2docker/buildpacks/conda/environment.py-3.7.yml index ef664280..8734c443 100644 --- a/repo2docker/buildpacks/conda/environment.py-3.7.yml +++ b/repo2docker/buildpacks/conda/environment.py-3.7.yml @@ -1,11 +1,11 @@ # AUTO GENERATED FROM environment.yml, DO NOT MANUALLY MODIFY -# Generated on 2019-02-11 20:26:36 UTC +# Generated on 2019-03-23 18:02:15 UTC dependencies: - python=3.7.* -- ipywidgets==7.2.1 -- jupyterlab==0.34.9 -- nbconvert==5.4.0 -- notebook==5.7.4 +- ipywidgets==7.4.2 +- jupyterlab==0.35.4 +- nbconvert==5.4.1 +- notebook==5.7.6 - pip: - nteract_on_jupyter==2.0.0 - jupyterhub==0.9.4 diff --git a/repo2docker/buildpacks/conda/environment.yml b/repo2docker/buildpacks/conda/environment.yml index 88ecadc1..9fde6701 100644 --- a/repo2docker/buildpacks/conda/environment.yml +++ b/repo2docker/buildpacks/conda/environment.yml @@ -1,9 +1,9 @@ dependencies: - python=3.7.* - - ipywidgets==7.2.1 - - jupyterlab==0.34.9 - - nbconvert==5.4.0 - - notebook==5.7.4 + - ipywidgets==7.4.2 + - jupyterlab==0.35.4 + - nbconvert==5.4.1 + - notebook==5.7.6 - pip: - nteract_on_jupyter==2.0.0 - jupyterhub==0.9.4 diff --git a/repo2docker/buildpacks/conda/freeze.py b/repo2docker/buildpacks/conda/freeze.py index 39c73077..b2d6477f 100755 --- a/repo2docker/buildpacks/conda/freeze.py +++ b/repo2docker/buildpacks/conda/freeze.py @@ -46,16 +46,17 @@ def freeze(env_file, frozen_file): Result will be stored in frozen_file """ frozen_dest = HERE / frozen_file + if frozen_dest.exists(): with frozen_dest.open('r') as f: line = f.readline() if 'GENERATED' not in line: - print(f"{frozen_file} not autogenerated, not refreezing") + print(f"{frozen_file.relative_to(HERE)} not autogenerated, not refreezing") return print(f"Freezing {env_file} -> {frozen_file}") with frozen_dest.open('w') as f: - f.write(f"# AUTO GENERATED FROM {env_file}, DO NOT MANUALLY MODIFY\n") + f.write(f"# AUTO GENERATED FROM {env_file.relative_to(HERE)}, DO NOT MANUALLY MODIFY\n") f.write(f"# Frozen on {datetime.utcnow():%Y-%m-%d %H:%M:%S UTC}\n") check_call([ @@ -67,15 +68,15 @@ def freeze(env_file, frozen_file): f"continuumio/miniconda3:{MINICONDA_DOCKER_VERSION}", "sh", "-c", '; '.join([ - 'set -e', + 'set -ex', f"conda install -yq conda={CONDA_VERSION}", 'conda config --add channels conda-forge', 'conda config --system --set auto_update_conda false', - f"conda env create -v -f /r2d/{env_file} -n r2d", + f"conda env create -v -f /r2d/{env_file.relative_to(HERE)} -n r2d", # add conda-forge broken channel as lowest priority in case # any of our frozen packages are marked as broken after freezing 'conda config --append channels conda-forge/label/broken', - f"conda env export -n r2d >> /r2d/{frozen_file}", + f"conda env export -n r2d >> /r2d/{frozen_file.relative_to(HERE)}", ]) ]) @@ -100,7 +101,7 @@ def set_python(py_env_file, py): raise ValueError(f"python dependency not found in {env['dependencies']}") # update python dependency with open(py_env_file, 'w') as f: - f.write(f"# AUTO GENERATED FROM {ENV_FILE}, DO NOT MANUALLY MODIFY\n") + f.write(f"# AUTO GENERATED FROM {ENV_FILE.relative_to(HERE)}, DO NOT MANUALLY MODIFY\n") f.write(f"# Generated on {datetime.utcnow():%Y-%m-%d %H:%M:%S UTC}\n") yaml.dump(env, f) @@ -109,9 +110,9 @@ if __name__ == '__main__': # allow specifying which Pythons to update on argv pys = sys.argv[1:] or ('2.7', '3.5', '3.6', '3.7') for py in pys: - env_file = ENV_FILE_T.format(py=py) + env_file = pathlib.Path(str(ENV_FILE_T).format(py=py)) set_python(env_file, py) - frozen_file = os.path.splitext(env_file)[0] + '.frozen.yml' + frozen_file = pathlib.Path(os.path.splitext(env_file)[0] + '.frozen.yml') freeze(env_file, frozen_file) # use last version as default diff --git a/tests/unit/test_editable.py b/tests/unit/test_editable.py index 87d66ee6..6a015153 100644 --- a/tests/unit/test_editable.py +++ b/tests/unit/test_editable.py @@ -3,10 +3,8 @@ import re import tempfile import time -from repo2docker.app import Repo2Docker from repo2docker.__main__ import make_r2d -from conftest import make_test_func DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'dockerfile', 'editable') @@ -39,19 +37,26 @@ def test_editable_by_host(): app.initialize() app.build() container = app.start_container() + # give the container a chance to start - time.sleep(1) + while container.status != 'running': + time.sleep(1) + try: with tempfile.NamedTemporaryFile(dir=DIR, prefix='testfile', suffix='.txt'): status, output = container.exec_run(['sh', '-c', 'ls testfile????????.txt']) assert status == 0 assert re.match(br'^testfile\w{8}\.txt\n$', output) is not None - # File should be removed in the container as well + # After exiting the with block the file should stop existing + # in the container as well as locally status, output = container.exec_run(['sh', '-c', 'ls testfile????????.txt']) - assert status != 1 + assert status == 2 assert re.match(br'^testfile\w{8}\.txt\n$', output) is None finally: - # stop the container - container.stop() - app.wait_for_container(container) + # stop the container, we don't care how it stops or + # what the exit code is. + container.stop(timeout=1) + container.reload() + assert container.status == 'exited', container.status + container.remove()