Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

redo to close #187 and to close #188 #195

Merged
merged 2 commits into from
Mar 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ The client here will eventually be released as "spython" (and eventually to
singularity on pypi), and the versions here will coincide with these releases.

## [master](https://github.com/singularityhub/singularity-cli/tree/master)
- parser bugfixes, arg from Docker not properly parsed (0.2.1)
- version checks removed to support Singularity 3.x and above (0.2.0)
- adding support for SIF (oras pull) (0.1.18)
- updating CI/tests and fixing deprecations (warnings) (0.1.17)
Expand Down
1 change: 0 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ def get_requirements(lookup=None):
"Topic :: Software Development",
"Topic :: Scientific/Engineering",
"Operating System :: Unix",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
],
entry_points={"console_scripts": ["spython=spython.client:main"]},
Expand Down
4 changes: 2 additions & 2 deletions spython/main/parse/parsers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,6 @@ def _replace_from_dict(self, string, args):
string: the string with replacements made
"""
for key, value in args.items():
if re.search(r"\$(" + key + r"|\{[^}]*\})", string):
string = re.sub(r"\$(" + key + r"|\{[^}]*\})", value, string)
if re.search("([$]" + key + "|[$][{]" + key + "[}])", string):
string = re.sub("([$]" + key + "|[$]{" + key + "[}])", value, string)
return string
16 changes: 8 additions & 8 deletions spython/main/parse/writers/docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,16 @@ def validate_stage(self, parser):
if parser.fromHeader is None:
bot.exit("Dockerfile requires a fromHeader.")

# Parse the provided name
uri_regexes = [_reduced_uri, _default_uri, _docker_uri]
# Parse the provided name
uri_regexes = [_reduced_uri, _default_uri, _docker_uri]

for r in uri_regexes:
match = r.match(parser.fromHeader)
if match:
break
for r in uri_regexes:
match = r.match(parser.fromHeader)
if match:
break

if not match:
bot.exit("FROM header %s not valid." % parser.fromHeader)
if not match:
bot.exit("FROM header %s not valid." % parser.fromHeader)

def convert(self, runscript="/bin/bash", force=False):
"""convert is called by the parent class to convert the recipe object
Expand Down
38 changes: 38 additions & 0 deletions spython/tests/testdata/docker2singularity/argsub.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Bootstrap: docker
From: nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04
Stage: spython-base

%files
./requirements.txt /workspace
%labels
maintainer="Dong Wang"
%post
CUDA_VERSION=11.1.1
OS_VERSION=20.04




PATH="/root/miniconda3/bin:${PATH}"
PATH="/root/miniconda3/bin:${PATH}"
DEBIAN_FRONTEND=noninteractive

SHELL ["/bin/bash", "-c"]

apt-get update && apt-get upgrade -y &&\
apt-get install -y wget python3-pip

python3 -m pip install --upgrade pip

cd /workspace
python3 -m pip install -r /workspace/requirements.txt and &&\
rm /workspace/requirements.txt

%environment
export PATH="/root/miniconda3/bin:${PATH}"
%runscript
cd /workspace
exec /bin/bash /bin/bash "$@"
%startscript
cd /workspace
exec /bin/bash /bin/bash "$@"
25 changes: 25 additions & 0 deletions spython/tests/testdata/docker2singularity/argsub.docker
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
ARG CUDA_VERSION=11.1.1
ARG OS_VERSION=20.04

FROM nvidia/cuda:${CUDA_VERSION}-cudnn8-devel-ubuntu${OS_VERSION}

LABEL maintainer="Dong Wang"


ENV PATH="/root/miniconda3/bin:${PATH}"
ARG PATH="/root/miniconda3/bin:${PATH}"
ARG DEBIAN_FRONTEND=noninteractive

SHELL ["/bin/bash", "-c"]

RUN apt-get update && apt-get upgrade -y &&\
apt-get install -y wget python3-pip

RUN python3 -m pip install --upgrade pip

WORKDIR /workspace
ADD ./requirements.txt /workspace
RUN python3 -m pip install -r /workspace/requirements.txt and &&\
rm /workspace/requirements.txt

CMD ["/bin/bash"]
2 changes: 1 addition & 1 deletion spython/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# with this file, You can obtain one at http://mozilla.org/MPL/2.0/.


__version__ = "0.2.0"
__version__ = "0.2.1"
AUTHOR = "Vanessa Sochat"
AUTHOR_EMAIL = "vsoch@users.noreply.github.com"
NAME = "spython"
Expand Down