Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d2d81c0
⬆️ Upgrade models-library (pydantic v2) (#6333)
giancarloromeo Sep 18, 2024
19e3923
♻️ Add common library (#6495)
giancarloromeo Oct 7, 2024
1d92881
⬆️ Upgrade libraries (pydantic v2) (#6366)
giancarloromeo Oct 9, 2024
329b00d
Upgrade agent service (Pydantic v2) (#6508)
giancarloromeo Oct 10, 2024
6786b92
Upgrade EFS guardian service (Pydantic v2) (#6516)
giancarloromeo Oct 11, 2024
bbe92a2
Upgrade invitations service (Pydantic v2) (#6513)
giancarloromeo Oct 11, 2024
42c0a68
Upgrade clusters keeper service (Pydantic v2) (#6519)
giancarloromeo Oct 14, 2024
1c833e0
Merge remote-tracking branch 'origin/master' into pydantic_v2_migrati…
sanderegg Oct 22, 2024
cac8134
♻️Pydantic V2 upgrade: autoscaling (#6535)
sanderegg Oct 15, 2024
e97258e
🎨 pydantic2 migration: fixed unit-tests for dynamic-sidecar (#6534)
GitHK Oct 18, 2024
463488b
🎨 pydantic2 migration: fixed unit-tests for dynamic-scheduler (#6547)
GitHK Oct 18, 2024
c2b4983
🎨 pydantic2 migration: fixed unit-tests for agent (#6546)
GitHK Oct 18, 2024
64293f0
🎨 pydantic2 migration: fixed unit-tests for payments (#6553)
GitHK Oct 18, 2024
cf5546b
Upgrade resource usage tracker (Pydantic v2) (#6517)
giancarloromeo Oct 21, 2024
3b188f5
Merge remote-tracking branch 'origin/master' into pydantic_v2_migrati…
sanderegg Oct 22, 2024
4716e55
Merge remote-tracking branch 'origin/master' into pydantic_v2_migrati…
sanderegg Oct 22, 2024
84f1e51
missing file from re-creating branch
sanderegg Oct 22, 2024
cf95d81
restored from old pydanitc_v2_migration branch
sanderegg Oct 22, 2024
7be9541
fixes after merge
sanderegg Oct 22, 2024
6199ed6
⬆️Dask sidecar: migration to v2 (#6591)
sanderegg Oct 24, 2024
f0ed518
unlock pydantic
sanderegg Oct 24, 2024
34d6779
bump
sanderegg Oct 24, 2024
c25a365
migrated
sanderegg Oct 24, 2024
a993b18
fixed mypy
sanderegg Oct 24, 2024
b289e6c
bumped fastapi-pagination
sanderegg Oct 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .env-devel
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ AUTOSCALING_EC2_ACCESS=null
AUTOSCALING_EC2_INSTANCES=null
AUTOSCALING_LOGLEVEL=WARNING
AUTOSCALING_NODES_MONITORING=null
AUTOSCALING_POLL_INTERVAL=10
AUTOSCALING_POLL_INTERVAL="00:00:10"
AUTOSCALING_SSM_ACCESS=null

AWS_S3_CLI_S3=null
Expand Down
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Makefile @pcrespov @sanderegg
/api/ @sanderegg @pcrespov @matusdrobuliak66
/ci/ @sanderegg @pcrespov
/docs/ @pcrespov
/packages/common-library/ @giancarloromeo
/packages/models-library/ @sanderegg @pcrespov @matusdrobuliak66
/packages/postgres-database/ @matusdrobuliak66
/packages/pytest-simcore/ @pcrespov @sanderegg
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/ci-testing-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ jobs:
aws-library: ${{ steps.filter.outputs.aws-library }}
dask-task-models-library: ${{ steps.filter.outputs.dask-task-models-library }}
models-library: ${{ steps.filter.outputs.models-library }}
common-library: ${{ steps.filter.outputs.common-library }}
notifications-library: ${{ steps.filter.outputs.notifications-library }}
postgres-database: ${{ steps.filter.outputs.postgres-database }}
service-integration: ${{ steps.filter.outputs.service-integration }}
Expand Down Expand Up @@ -110,6 +111,8 @@ jobs:
- 'services/docker-compose*'
- 'scripts/mypy/*'
- 'mypy.ini'
common-library:
- 'packages/common-library/**'
notifications-library:
- 'packages/notifications-library/**'
- 'packages/postgres-database/**'
Expand Down Expand Up @@ -1605,6 +1608,47 @@ jobs:
with:
flags: unittests #optional

unit-test-common-library:
needs: changes
if: ${{ needs.changes.outputs.common-library == 'true' || github.event_name == 'push' }}
timeout-minutes: 18 # if this timeout gets too small, then split the tests
name: "[unit] common-library"
runs-on: ${{ matrix.os }}
strategy:
matrix:
python: ["3.11"]
os: [ubuntu-22.04]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: setup docker buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
- name: setup python environment
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: install uv
uses: yezz123/setup-uv@v4
- uses: actions/cache@v4
id: cache-uv
with:
path: ~/.cache/uv
key: ${{ runner.os }}-${{ github.job }}-python-${{ matrix.python }}-uv
- name: show system version
run: ./ci/helpers/show_system_versions.bash
- name: install
run: ./ci/github/unit-testing/common-library.bash install
- name: typecheck
run: ./ci/github/unit-testing/common-library.bash typecheck
- name: test
run: ./ci/github/unit-testing/common-library.bash test
- uses: codecov/[email protected]
with:
flags: unittests #optional

unit-test-notifications-library:
needs: changes
if: ${{ needs.changes.outputs.notifications-library == 'true' || github.event_name == 'push' }}
Expand Down Expand Up @@ -1716,6 +1760,7 @@ jobs:
unit-test-efs-guardian,
unit-test-frontend,
unit-test-models-library,
unit-test-common-library,
unit-test-notifications-library,
unit-test-osparc-gateway-server,
unit-test-payments,
Expand Down
43 changes: 43 additions & 0 deletions ci/github/unit-testing/common-library.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash
# http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -o errexit # abort on nonzero exitstatus
set -o nounset # abort on unbound variable
set -o pipefail # don't hide errors within pipes
IFS=$'\n\t'

install() {
make devenv
# shellcheck source=/dev/null
source .venv/bin/activate
pushd packages/common-library
make install-ci
popd
uv pip list
}

test() {
# shellcheck source=/dev/null
source .venv/bin/activate
pushd packages/common-library
make tests-ci
popd
}

typecheck() {
# shellcheck source=/dev/null
source .venv/bin/activate
uv pip install mypy
pushd packages/common-library
make mypy
popd
}

# Check if the function exists (bash specific)
if declare -f "$1" >/dev/null; then
# call arguments verbatim
"$@"
else
# Show a helpful error
echo "'$1' is not a known function name" >&2
exit 1
fi
30 changes: 19 additions & 11 deletions ci/helpers/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in
# uv pip compile requirements.in -o requirements.txt
aiohttp==3.9.5
# via
# -c ../../requirements/constraints.txt
# -r requirements.in
aiosignal==1.3.1
# via aiohttp
annotated-types==0.7.0
# via pydantic
anyio==4.3.0
# via starlette
async-timeout==4.0.3
# via aiohttp
attrs==23.2.0
# via aiohttp
exceptiongroup==1.2.1
# via anyio
fastapi==0.99.1
fastapi==0.115.0
# via -r requirements.in
frozenlist==1.4.1
# via
# aiohttp
Expand All @@ -24,16 +26,22 @@ multidict==6.0.5
# via
# aiohttp
# yarl
pydantic==1.10.15
# via fastapi
pydantic==2.9.2
# via
# -c ../../requirements/constraints.txt
# fastapi
pydantic-core==2.23.4
# via pydantic
sniffio==1.3.1
# via anyio
starlette==0.27.0
# via fastapi
starlette==0.38.6
# via
# -c ../../requirements/constraints.txt
# fastapi
typing-extensions==4.11.0
# via
# anyio
# fastapi
# pydantic
# pydantic-core
yarl==1.9.4
# via aiohttp
1 change: 1 addition & 0 deletions packages/aws-library/requirements/_base.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Specifies third-party dependencies for 'aws-library'
#
--constraint ../../../requirements/constraints.txt
--requirement ../../../packages/common-library/requirements/_base.in
--requirement ../../../packages/models-library/requirements/_base.in
--requirement ../../../packages/service-library/requirements/_base.in
--requirement ../../../packages/settings-library/requirements/_base.in
Expand Down
21 changes: 20 additions & 1 deletion packages/aws-library/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ aiormq==6.8.1
# via aio-pika
aiosignal==1.3.1
# via aiohttp
annotated-types==0.7.0
# via pydantic
anyio==4.6.0
# via
# fast-depends
Expand Down Expand Up @@ -178,7 +180,7 @@ protobuf==4.25.5
# opentelemetry-proto
psutil==6.0.0
# via -r requirements/../../../packages/service-library/requirements/_base.in
pydantic==1.10.18
pydantic==2.9.1
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
Expand All @@ -193,6 +195,20 @@ pydantic==1.10.18
# -r requirements/../../../packages/settings-library/requirements/_base.in
# -r requirements/_base.in
# fast-depends
# pydantic-extra-types
# pydantic-settings
pydantic-core==2.23.3
# via pydantic
pydantic-extra-types==2.9.0
# via
# -r requirements/../../../packages/models-library/requirements/_base.in
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
pydantic-settings==2.5.2
# via
# -r requirements/../../../packages/models-library/requirements/_base.in
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
# -r requirements/../../../packages/settings-library/requirements/_base.in
pygments==2.18.0
# via rich
pyinstrument==4.7.3
Expand All @@ -201,6 +217,8 @@ python-dateutil==2.9.0.post0
# via
# arrow
# botocore
python-dotenv==1.0.1
# via pydantic-settings
pyyaml==6.0.2
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
Expand Down Expand Up @@ -277,6 +295,7 @@ typing-extensions==4.12.2
# faststream
# opentelemetry-sdk
# pydantic
# pydantic-core
# typer
# types-aiobotocore
# types-aiobotocore-ec2
Expand Down
15 changes: 13 additions & 2 deletions packages/aws-library/requirements/_test.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
annotated-types==0.7.0
# via
# -c requirements/_base.txt
# pydantic
antlr4-python3-runtime==4.13.2
# via moto
appdirs==1.4.4
Expand Down Expand Up @@ -154,11 +158,15 @@ py-partiql-parser==0.5.6
# via moto
pycparser==2.22
# via cffi
pydantic==1.10.18
pydantic==2.9.1
# via
# -c requirements/../../../requirements/constraints.txt
# -c requirements/_base.txt
# aws-sam-translator
pydantic-core==2.23.3
# via
# -c requirements/_base.txt
# pydantic
pyparsing==3.1.4
# via moto
pytest==8.3.3
Expand Down Expand Up @@ -196,7 +204,9 @@ python-dateutil==2.9.0.post0
# faker
# moto
python-dotenv==1.0.1
# via -r requirements/_test.in
# via
# -c requirements/_base.txt
# -r requirements/_test.in
pyyaml==6.0.2
# via
# -c requirements/../../../requirements/constraints.txt
Expand Down Expand Up @@ -274,6 +284,7 @@ typing-extensions==4.12.2
# flexparser
# pint
# pydantic
# pydantic-core
# types-aioboto3
# types-aiobotocore
urllib3==2.2.3
Expand Down
3 changes: 2 additions & 1 deletion packages/aws-library/requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
--requirement _tools.txt

# installs this repo's packages
simcore-common-library @ ../common-library
simcore-models-library @ ../models-library/
pytest-simcore @ ../pytest-simcore
simcore-models-library @ ../models-library
simcore-service-library @ ../service-library/
simcore-settings-library @ ../settings-library/

Expand Down
3 changes: 2 additions & 1 deletion packages/aws-library/requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
--requirement _tools.txt

# installs this repo's packages
--editable ../pytest-simcore
--editable ../common-library/
--editable ../models-library/
--editable ../pytest-simcore/
--editable ../service-library/
--editable ../settings-library/

Expand Down
8 changes: 8 additions & 0 deletions packages/aws-library/src/aws_library/ec2/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from ._client import SimcoreEC2API
from ._errors import EC2AccessError, EC2NotConnectedError, EC2RuntimeError
from ._models import (
AWS_TAG_KEY_MAX_LENGTH,
AWS_TAG_KEY_MIN_LENGTH,
AWS_TAG_VALUE_MAX_LENGTH,
AWS_TAG_VALUE_MIN_LENGTH,
AWSTagKey,
AWSTagValue,
EC2InstanceBootSpecific,
Expand All @@ -14,6 +18,10 @@
__all__: tuple[str, ...] = (
"AWSTagKey",
"AWSTagValue",
"AWS_TAG_KEY_MIN_LENGTH",
"AWS_TAG_KEY_MAX_LENGTH",
"AWS_TAG_VALUE_MIN_LENGTH",
"AWS_TAG_VALUE_MAX_LENGTH",
"EC2AccessError",
"EC2InstanceBootSpecific",
"EC2InstanceConfig",
Expand Down
7 changes: 2 additions & 5 deletions packages/aws-library/src/aws_library/ec2/_errors.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
# pylint: disable=too-many-ancestors
from typing import Any

from models_library.errors_classes import OsparcErrorMixin
from common_library.errors_classes import OsparcErrorMixin


class EC2BaseError(OsparcErrorMixin, Exception):
def __init__(self, **ctx: Any) -> None:
super().__init__(**ctx)
pass


class EC2RuntimeError(EC2BaseError, RuntimeError):
Expand Down
Loading
Loading