Skip to content

Commit

Permalink
Sleepers version 2.2.0 (ITISFoundation#155)
Browse files Browse the repository at this point in the history
* no sleep upper limit
* option to have a dream defined in bytes
* uses python 3.11
* uses uv
  • Loading branch information
sanderegg authored Feb 27, 2024
1 parent 3e7c9cf commit 4622407
Show file tree
Hide file tree
Showing 21 changed files with 357 additions and 405 deletions.
23 changes: 10 additions & 13 deletions .github/workflows/sleeper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,22 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python: [3.8]
python: [3.11]
os: [ubuntu-22.04]
node: [10]
node: [16]
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: setup python environment
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
cache: "pip"
cache-dependency-path: "**/requirements.txt"
- name: install uv
uses: yezz123/setup-uv@v1
- name: show versions
run: ./ci/helpers/show_system_versions.bash
- uses: actions/cache@v2
name: getting cached data
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: set owner variable
run: echo "OWNER=${GITHUB_REPOSITORY%/*}" >> $GITHUB_ENV
- name: set docker image tag
Expand Down Expand Up @@ -74,13 +71,13 @@ jobs:
make push-version
- name: set up QEMU
id: qemu
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:latest
platforms: all
- name: setup docker buildx
id: buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v3
with:
version: ${{ matrix.docker_buildx }}
driver: docker-container # a must for multi-arch buildsplatform
Expand Down
2 changes: 1 addition & 1 deletion services/sleeper/.cookiecutterrc
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ default_context:
project_slug: "sleeper"
project_type: "computational"
release_date: "2020"
version: "2.1.6"
version: "2.2.0"
12 changes: 5 additions & 7 deletions services/sleeper/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,22 @@ LOCAL_REGISTRY = ${LOCAL_REGISTRY_HOST}/${COMP_ITIS_PATH}
# ENVIRON ----------------------------------
.PHONY: devenv
.venv:
python3 -m venv $@
uv venv $@
# upgrading package managers
$@/bin/pip3 install --upgrade \
uv pip install --upgrade \
pip \
wheel \
setuptools
# tooling
$@/bin/pip3 install pip-tools

requirements.txt: .venv requirements.in
# freezes requirements
$</bin/pip-compile --upgrade --build-isolation --output-file $@ $(word2, $^)
uv pip compile --upgrade --build-isolation $(word 2, $^) --output-file $@

devenv: .venv requirements.txt ## create a python virtual environment with tools to dev, run and tests cookie-cutter
# installing extra tools
@$</bin/pip3 install -r $(word 2,$^)
uv pip install -r $(word 2,$^)
# your dev environment contains
@$</bin/pip3 list
@$</bin/pip list
@echo "To activate the virtual environment, run 'source $</bin/activate'"


Expand Down
2 changes: 1 addition & 1 deletion services/sleeper/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.6
2.2.0
8 changes: 5 additions & 3 deletions services/sleeper/docker-compose-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ services:
dockerfile: docker/custom/Dockerfile
target: production
args:
BASE_IMAGE: python:3.9-slim-buster
BASE_IMAGE: python:3.11-slim

sleeper-gpu:
image: local/${DOCKER_IMAGE_NAME}-gpu:${DOCKER_BUILD_TARGET}
Expand All @@ -16,12 +16,14 @@ services:
dockerfile: docker/custom/Dockerfile
target: production
args:
BASE_IMAGE: nvidia/cuda:10.0-base-ubuntu18.04
INSTALL_EXTRAS: true
BASE_IMAGE: nvidia/cuda:12.3.1-base-ubuntu22.04
sleeper-mpi:
image: local/${DOCKER_IMAGE_NAME}-mpi:${DOCKER_BUILD_TARGET}
build:
context: ./
dockerfile: docker/custom/Dockerfile
target: production
args:
BASE_IMAGE: nvidia/cuda:10.0-base-ubuntu18.04
INSTALL_EXTRAS: true
BASE_IMAGE: nvidia/cuda:12.3.1-base-ubuntu22.04
101 changes: 65 additions & 36 deletions services/sleeper/docker-compose-meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,28 @@ services:
io.simcore.authors: '{"authors": [{"name": "Manuel Guidon", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}, {"name": "Odei Maiz", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}, {"name": "Andrei Neagu", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}]}'
"affiliation": "IT''IS Foundation"}, {"name": "Sylvain Anderegg", "email":
"[email protected]", "affiliation": "IT''IS Foundation"}]}'
io.simcore.contact: '{"contact": "[email protected]"}'
io.simcore.description: '{"description": "A service which awaits for time
to pass, two times."}'
io.simcore.inputs: '{"inputs": {"input_1": {"displayOrder": 1, "label": "File
with int number", "description": "Pick a file containing only one integer",
"type": "data:text/plain", "fileToKeyMap": {"single_number.txt": "input_1"}},
"input_2": {"displayOrder": 2, "label": "Sleep interval", "description":
"Choose an amount of time to sleep in range [0-65]", "defaultValue": 2,
"type": "ref_contentSchema", "contentSchema": {"title": "Sleep interval",
"type": "integer", "x_unit": "second", "minimum": 0, "maximum": 65}}, "input_3":
{"displayOrder": 3, "label": "Fail after sleep", "description": "If set
to true will cause service to fail after it sleeps", "type": "boolean",
"defaultValue": false}, "input_4": {"displayOrder": 4, "label": "Distance
to bed", "description": "It will first walk the distance to bed", "defaultValue":
0, "type": "ref_contentSchema", "contentSchema": {"title": "Distance to
bed", "type": "integer", "x_unit": "meter"}}}}'
"Choose an amount of time to sleep in range [0:]", "defaultValue": 2, "type":
"ref_contentSchema", "contentSchema": {"title": "Sleep interval", "type":
"integer", "x_unit": "second", "minimum": 0}}, "input_3": {"displayOrder":
3, "label": "Fail after sleep", "description": "If set to true will cause
service to fail after it sleeps", "type": "boolean", "defaultValue": false},
"input_4": {"displayOrder": 4, "label": "Distance to bed", "description":
"It will first walk the distance to bed", "defaultValue": 0, "type": "ref_contentSchema",
"contentSchema": {"title": "Distance to bed", "type": "integer", "x_unit":
"meter"}}, "input_5": {"displayOrder": 5, "label": "Dream (or nightmare)
of the night", "description": "Defines the size of the dream that will be
generated [0:]", "defaultValue": 0, "type": "ref_contentSchema", "contentSchema":
{"title": "Dream of the night", "type": "integer", "x_unit": "bytes", "minimum":
0}}}}'
io.simcore.integration-version: '{"integration-version": "1.0.0"}'
io.simcore.key: '{"key": "simcore/services/comp/itis/sleeper"}'
io.simcore.name: '{"name": "sleeper"}'
Expand All @@ -31,9 +36,11 @@ services:
"output_1"}}, "output_2": {"displayOrder": 2, "label": "Random sleep interval",
"description": "Interval is generated in range [1-9]", "type": "ref_contentSchema",
"contentSchema": {"title": "Random sleep interval", "type": "integer", "x_unit":
"second"}}}}'
"second"}}, "output_3": {"displayOrder": 3, "label": "Dream output", "description":
"Contains some random data representing a dream", "type": "data:text/plain",
"fileToKeyMap": {"dream.txt": "output_3"}}}}'
io.simcore.type: '{"type": "computational"}'
io.simcore.version: '{"version": "2.1.6"}'
io.simcore.version: '{"version": "2.2.0"}'
org.label-schema.build-date: ${BUILD_DATE}
org.label-schema.schema-version: '1.0'
org.label-schema.vcs-ref: ${VCS_REF}
Expand All @@ -47,31 +54,42 @@ services:
io.simcore.authors: '{"authors": [{"name": "Manuel Guidon", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}, {"name": "Odei Maiz", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}, {"name": "Andrei Neagu", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}]}'
io.simcore.contact: '{"contact": "[email protected]"}'
"affiliation": "IT''IS Foundation"}, {"name": "Sylvain Anderegg", "email":
"[email protected]", "affiliation": "IT''IS Foundation"}]}'
io.simcore.contact: '{"contact": "[email protected]"}'
io.simcore.description: '{"description": "A service which awaits for time
to pass."}'
to pass, two times."}'
io.simcore.inputs: '{"inputs": {"input_1": {"displayOrder": 1, "label": "File
with int number", "description": "Pick a file containing only one integer",
"type": "data:text/plain", "fileToKeyMap": {"single_number.txt": "input_1"}},
"input_2": {"displayOrder": 2, "label": "Sleep interval", "description":
"Choose an amount of time to sleep", "type": "integer", "unit": "second",
"defaultValue": 2}, "input_3": {"displayOrder": 3, "label": "Fail after
sleep", "description": "If set to true will cause service to fail after
it sleeps", "type": "boolean", "defaultValue": false}, "input_4": {"displayOrder":
4, "label": "Distance to bed", "description": "It will first walk the distance
to bed", "type": "integer", "unit": "meter", "defaultValue": 0}}}'
"Choose an amount of time to sleep in range [0:]", "defaultValue": 2, "type":
"ref_contentSchema", "contentSchema": {"title": "Sleep interval", "type":
"integer", "x_unit": "second", "minimum": 0}}, "input_3": {"displayOrder":
3, "label": "Fail after sleep", "description": "If set to true will cause
service to fail after it sleeps", "type": "boolean", "defaultValue": false},
"input_4": {"displayOrder": 4, "label": "Distance to bed", "description":
"It will first walk the distance to bed", "defaultValue": 0, "type": "ref_contentSchema",
"contentSchema": {"title": "Distance to bed", "type": "integer", "x_unit":
"meter"}}, "input_5": {"displayOrder": 5, "label": "Dream (or nightmare)
of the night", "description": "Defines the size of the dream that will be
generated [0:]", "defaultValue": 0, "type": "ref_contentSchema", "contentSchema":
{"title": "Dream of the night", "type": "integer", "x_unit": "bytes", "minimum":
0}}}}'
io.simcore.integration-version: '{"integration-version": "1.0.0"}'
io.simcore.key: '{"key": "simcore/services/comp/itis/sleeper-gpu"}'
io.simcore.name: '{"name": "sleeper-gpu"}'
io.simcore.outputs: '{"outputs": {"output_1": {"displayOrder": 1, "label":
"File containing one random integer", "description": "Integer is generated
in range [1-9]", "type": "data:text/plain", "fileToKeyMap": {"single_number.txt":
"output_1"}}, "output_2": {"displayOrder": 2, "label": "Random sleep interval",
"description": "Interval is generated in range [1-9]", "type": "integer",
"unit": "second"}}}'
"description": "Interval is generated in range [1-9]", "type": "ref_contentSchema",
"contentSchema": {"title": "Random sleep interval", "type": "integer", "x_unit":
"second"}}, "output_3": {"displayOrder": 3, "label": "Dream output", "description":
"Contains some random data representing a dream", "type": "data:text/plain",
"fileToKeyMap": {"dream.txt": "output_3"}}}}'
io.simcore.type: '{"type": "computational"}'
io.simcore.version: '{"version": "2.1.4"}'
io.simcore.version: '{"version": "2.2.0"}'
org.label-schema.build-date: ${BUILD_DATE}
org.label-schema.schema-version: '1.0'
org.label-schema.vcs-ref: ${VCS_REF}
Expand All @@ -87,31 +105,42 @@ services:
io.simcore.authors: '{"authors": [{"name": "Manuel Guidon", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}, {"name": "Odei Maiz", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}, {"name": "Andrei Neagu", "email": "[email protected]",
"affiliation": "IT''IS Foundation"}]}'
io.simcore.contact: '{"contact": "[email protected]"}'
"affiliation": "IT''IS Foundation"}, {"name": "Sylvain Anderegg", "email":
"[email protected]", "affiliation": "IT''IS Foundation"}]}'
io.simcore.contact: '{"contact": "[email protected]"}'
io.simcore.description: '{"description": "A service which awaits for time
to pass."}'
to pass, two times."}'
io.simcore.inputs: '{"inputs": {"input_1": {"displayOrder": 1, "label": "File
with int number", "description": "Pick a file containing only one integer",
"type": "data:text/plain", "fileToKeyMap": {"single_number.txt": "input_1"}},
"input_2": {"displayOrder": 2, "label": "Sleep interval", "description":
"Choose an amount of time to sleep", "type": "integer", "unit": "second",
"defaultValue": 2}, "input_3": {"displayOrder": 3, "label": "Fail after
sleep", "description": "If set to true will cause service to fail after
it sleeps", "type": "boolean", "defaultValue": false}, "input_4": {"displayOrder":
4, "label": "Distance to bed", "description": "It will first walk the distance
to bed", "type": "integer", "unit": "meter", "defaultValue": 0}}}'
"Choose an amount of time to sleep in range [0:]", "defaultValue": 2, "type":
"ref_contentSchema", "contentSchema": {"title": "Sleep interval", "type":
"integer", "x_unit": "second", "minimum": 0}}, "input_3": {"displayOrder":
3, "label": "Fail after sleep", "description": "If set to true will cause
service to fail after it sleeps", "type": "boolean", "defaultValue": false},
"input_4": {"displayOrder": 4, "label": "Distance to bed", "description":
"It will first walk the distance to bed", "defaultValue": 0, "type": "ref_contentSchema",
"contentSchema": {"title": "Distance to bed", "type": "integer", "x_unit":
"meter"}}, "input_5": {"displayOrder": 5, "label": "Dream (or nightmare)
of the night", "description": "Defines the size of the dream that will be
generated [0:]", "defaultValue": 0, "type": "ref_contentSchema", "contentSchema":
{"title": "Dream of the night", "type": "integer", "x_unit": "bytes", "minimum":
0}}}}'
io.simcore.integration-version: '{"integration-version": "1.0.0"}'
io.simcore.key: '{"key": "simcore/services/comp/itis/sleeper-mpi"}'
io.simcore.name: '{"name": "sleeper-mpi"}'
io.simcore.outputs: '{"outputs": {"output_1": {"displayOrder": 1, "label":
"File containing one random integer", "description": "Integer is generated
in range [1-9]", "type": "data:text/plain", "fileToKeyMap": {"single_number.txt":
"output_1"}}, "output_2": {"displayOrder": 2, "label": "Random sleep interval",
"description": "Interval is generated in range [1-9]", "type": "integer",
"unit": "second"}}}'
"description": "Interval is generated in range [1-9]", "type": "ref_contentSchema",
"contentSchema": {"title": "Random sleep interval", "type": "integer", "x_unit":
"second"}}, "output_3": {"displayOrder": 3, "label": "Dream output", "description":
"Contains some random data representing a dream", "type": "data:text/plain",
"fileToKeyMap": {"dream.txt": "output_3"}}}}'
io.simcore.type: '{"type": "computational"}'
io.simcore.version: '{"version": "2.1.4"}'
io.simcore.version: '{"version": "2.2.0"}'
org.label-schema.build-date: ${BUILD_DATE}
org.label-schema.schema-version: '1.0'
org.label-schema.vcs-ref: ${VCS_REF}
Expand Down
Loading

0 comments on commit 4622407

Please sign in to comment.