cuvis-ai-schemas 0.1.0__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/.githooks/pre-commit +38 -38
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/.githooks/pre-push +54 -54
- cuvis_ai_schemas-0.1.2/.github/workflows/pypi-release.yml +169 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/.gitignore +207 -207
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/CHANGELOG.md +90 -68
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/LICENSE +190 -190
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/PKG-INFO +111 -111
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/__init__.py +5 -5
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/discovery/__init__.py +6 -6
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/enums/__init__.py +5 -5
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/enums/types.py +30 -30
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/execution/__init__.py +12 -12
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/execution/context.py +41 -41
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/execution/monitoring.py +83 -83
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/extensions/__init__.py +3 -3
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/extensions/ui/__init__.py +8 -8
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/extensions/ui/port_display.py +159 -159
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/__init__.py +3 -3
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/__init__.py +11 -11
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/pipeline/__init__.py +17 -17
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/pipeline/config.py +238 -238
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/pipeline/ports.py +48 -48
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/plugin/__init__.py +6 -6
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/plugin/config.py +118 -118
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/plugin/manifest.py +95 -95
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/PKG-INFO +111 -111
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/SOURCES.txt +1 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/proto/cuvis_ai/grpc/v1/cuvis_ai.proto +604 -604
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/setup.cfg +4 -4
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_imports.py +109 -109
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_pipeline.py +80 -80
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_plugin.py +80 -80
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_training.py +82 -82
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/README.md +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2.pyi +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2_grpc.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/__init__.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/callbacks.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/config.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/data.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/optimizer.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/run.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/scheduler.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/trainer.py +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/dependency_links.txt +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/requires.txt +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/top_level.txt +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/pyproject.toml +0 -0
- {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/uv.lock +0 -0
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Pre-commit hook: Fast quality checks (linting + formatting)
|
|
3
|
-
# Skip with: git commit --no-verify
|
|
4
|
-
|
|
5
|
-
set -e
|
|
6
|
-
|
|
7
|
-
echo "Running pre-commit checks..."
|
|
8
|
-
|
|
9
|
-
# Get list of tracked files before running checks
|
|
10
|
-
TRACKED_FILES=$(git diff --name-only --cached)
|
|
11
|
-
|
|
12
|
-
# Run Ruff formatting first
|
|
13
|
-
echo "→ Running Ruff formatting..."
|
|
14
|
-
if ! uv run ruff format .; then
|
|
15
|
-
echo "✗ Ruff formatting failed. Please fix the errors and try again."
|
|
16
|
-
exit 1
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
# Run Ruff linting with auto-fix (on formatted code)
|
|
20
|
-
echo "→ Running Ruff linting (with auto-fix)..."
|
|
21
|
-
if ! uv run ruff check . --fix; then
|
|
22
|
-
echo "✗ Ruff linting failed. Please fix the errors and try again."
|
|
23
|
-
exit 1
|
|
24
|
-
fi
|
|
25
|
-
|
|
26
|
-
# Auto-stage any files that were modified by Ruff
|
|
27
|
-
# Only re-stage files that were originally staged
|
|
28
|
-
if [ -n "$TRACKED_FILES" ]; then
|
|
29
|
-
echo "→ Auto-staging formatted files..."
|
|
30
|
-
echo "$TRACKED_FILES" | while read -r file; do
|
|
31
|
-
if [ -f "$file" ]; then
|
|
32
|
-
git add "$file"
|
|
33
|
-
fi
|
|
34
|
-
done
|
|
35
|
-
fi
|
|
36
|
-
|
|
37
|
-
echo "✓ Pre-commit checks passed!"
|
|
38
|
-
exit 0
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Pre-commit hook: Fast quality checks (linting + formatting)
|
|
3
|
+
# Skip with: git commit --no-verify
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
echo "Running pre-commit checks..."
|
|
8
|
+
|
|
9
|
+
# Get list of tracked files before running checks
|
|
10
|
+
TRACKED_FILES=$(git diff --name-only --cached)
|
|
11
|
+
|
|
12
|
+
# Run Ruff formatting first
|
|
13
|
+
echo "→ Running Ruff formatting..."
|
|
14
|
+
if ! uv run ruff format .; then
|
|
15
|
+
echo "✗ Ruff formatting failed. Please fix the errors and try again."
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Run Ruff linting with auto-fix (on formatted code)
|
|
20
|
+
echo "→ Running Ruff linting (with auto-fix)..."
|
|
21
|
+
if ! uv run ruff check . --fix; then
|
|
22
|
+
echo "✗ Ruff linting failed. Please fix the errors and try again."
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# Auto-stage any files that were modified by Ruff
|
|
27
|
+
# Only re-stage files that were originally staged
|
|
28
|
+
if [ -n "$TRACKED_FILES" ]; then
|
|
29
|
+
echo "→ Auto-staging formatted files..."
|
|
30
|
+
echo "$TRACKED_FILES" | while read -r file; do
|
|
31
|
+
if [ -f "$file" ]; then
|
|
32
|
+
git add "$file"
|
|
33
|
+
fi
|
|
34
|
+
done
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
echo "✓ Pre-commit checks passed!"
|
|
38
|
+
exit 0
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Pre-push hook: Comprehensive quality checks (linting + formatting + docstrings + tests)
|
|
3
|
-
# Skip with: git push --no-verify
|
|
4
|
-
|
|
5
|
-
set -e
|
|
6
|
-
|
|
7
|
-
echo "Running pre-push checks..."
|
|
8
|
-
|
|
9
|
-
# Sync dev dependencies first
|
|
10
|
-
echo "→ Syncing dev dependencies..."
|
|
11
|
-
if ! uv sync --all-extras --dev; then
|
|
12
|
-
echo "✗ Dev dependency sync failed. Please check your environment."
|
|
13
|
-
exit 1
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
# Run Ruff formatting first
|
|
17
|
-
echo "→ Running Ruff formatting..."
|
|
18
|
-
if ! uv run ruff format .; then
|
|
19
|
-
echo "✗ Ruff formatting failed. Please fix the errors and try again."
|
|
20
|
-
exit 1
|
|
21
|
-
fi
|
|
22
|
-
|
|
23
|
-
# Run Ruff linting with auto-fix (on formatted code)
|
|
24
|
-
echo "→ Running Ruff linting (with auto-fix)..."
|
|
25
|
-
if ! uv run ruff check . --fix; then
|
|
26
|
-
echo "✗ Ruff linting failed. Please fix the errors and try again."
|
|
27
|
-
exit 1
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
# Check docstring coverage (configured in pyproject.toml)
|
|
31
|
-
echo "→ Checking docstring coverage..."
|
|
32
|
-
if ! uv run interrogate cuvis_ai_schemas/; then
|
|
33
|
-
echo ""
|
|
34
|
-
echo "✗ Docstring coverage check failed!"
|
|
35
|
-
echo " See configuration in pyproject.toml [tool.interrogate]"
|
|
36
|
-
echo ""
|
|
37
|
-
echo " To see detailed missing docstrings:"
|
|
38
|
-
echo " interrogate -vv cuvis_ai_schemas/"
|
|
39
|
-
echo ""
|
|
40
|
-
echo " To skip this check (not recommended):"
|
|
41
|
-
echo " git push --no-verify"
|
|
42
|
-
echo ""
|
|
43
|
-
exit 1
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
# Run pytest with non-GPU tests
|
|
47
|
-
echo "→ Running pytest (excluding GPU tests)..."
|
|
48
|
-
if ! uv run python -m pytest tests/ -v --tb=line -m "not slow and not gpu"; then
|
|
49
|
-
echo "✗ Tests failed. Please fix the failing tests and try again."
|
|
50
|
-
exit 1
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
echo "✓ All pre-push checks passed!"
|
|
54
|
-
exit 0
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Pre-push hook: Comprehensive quality checks (linting + formatting + docstrings + tests)
|
|
3
|
+
# Skip with: git push --no-verify
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
echo "Running pre-push checks..."
|
|
8
|
+
|
|
9
|
+
# Sync dev dependencies first
|
|
10
|
+
echo "→ Syncing dev dependencies..."
|
|
11
|
+
if ! uv sync --all-extras --dev; then
|
|
12
|
+
echo "✗ Dev dependency sync failed. Please check your environment."
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Run Ruff formatting first
|
|
17
|
+
echo "→ Running Ruff formatting..."
|
|
18
|
+
if ! uv run ruff format .; then
|
|
19
|
+
echo "✗ Ruff formatting failed. Please fix the errors and try again."
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Run Ruff linting with auto-fix (on formatted code)
|
|
24
|
+
echo "→ Running Ruff linting (with auto-fix)..."
|
|
25
|
+
if ! uv run ruff check . --fix; then
|
|
26
|
+
echo "✗ Ruff linting failed. Please fix the errors and try again."
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Check docstring coverage (configured in pyproject.toml)
|
|
31
|
+
echo "→ Checking docstring coverage..."
|
|
32
|
+
if ! uv run interrogate cuvis_ai_schemas/; then
|
|
33
|
+
echo ""
|
|
34
|
+
echo "✗ Docstring coverage check failed!"
|
|
35
|
+
echo " See configuration in pyproject.toml [tool.interrogate]"
|
|
36
|
+
echo ""
|
|
37
|
+
echo " To see detailed missing docstrings:"
|
|
38
|
+
echo " interrogate -vv cuvis_ai_schemas/"
|
|
39
|
+
echo ""
|
|
40
|
+
echo " To skip this check (not recommended):"
|
|
41
|
+
echo " git push --no-verify"
|
|
42
|
+
echo ""
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# Run pytest with non-GPU tests
|
|
47
|
+
echo "→ Running pytest (excluding GPU tests)..."
|
|
48
|
+
if ! uv run python -m pytest tests/ -v --tb=line -m "not slow and not gpu"; then
|
|
49
|
+
echo "✗ Tests failed. Please fix the failing tests and try again."
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
echo "✓ All pre-push checks passed!"
|
|
54
|
+
exit 0
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
name: PyPI Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*.*.*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
id-token: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test-and-typecheck:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
fetch-depth: 0
|
|
19
|
+
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v5
|
|
22
|
+
with:
|
|
23
|
+
version: "latest"
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
run: uv python install 3.11
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: uv sync --all-extras
|
|
30
|
+
|
|
31
|
+
- name: Run tests
|
|
32
|
+
run: uv run pytest tests/ --cov --cov-report=term-missing
|
|
33
|
+
|
|
34
|
+
- name: Run mypy
|
|
35
|
+
run: uv run mypy .
|
|
36
|
+
|
|
37
|
+
- name: Run ruff
|
|
38
|
+
run: uv run ruff check .
|
|
39
|
+
|
|
40
|
+
build-and-validate:
|
|
41
|
+
needs: test-and-typecheck
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
steps:
|
|
44
|
+
- uses: actions/checkout@v4
|
|
45
|
+
with:
|
|
46
|
+
fetch-depth: 0
|
|
47
|
+
|
|
48
|
+
- name: Install uv
|
|
49
|
+
uses: astral-sh/setup-uv@v5
|
|
50
|
+
with:
|
|
51
|
+
version: "latest"
|
|
52
|
+
|
|
53
|
+
- name: Set up Python
|
|
54
|
+
run: uv python install 3.11
|
|
55
|
+
|
|
56
|
+
- name: Install dependencies
|
|
57
|
+
run: uv sync --all-extras
|
|
58
|
+
|
|
59
|
+
- name: Build package
|
|
60
|
+
run: uv build
|
|
61
|
+
|
|
62
|
+
- name: Validate package
|
|
63
|
+
run: uv run twine check dist/*
|
|
64
|
+
|
|
65
|
+
- name: Upload artifacts
|
|
66
|
+
uses: actions/upload-artifact@v4
|
|
67
|
+
with:
|
|
68
|
+
name: dist
|
|
69
|
+
path: dist/
|
|
70
|
+
|
|
71
|
+
publish-testpypi:
|
|
72
|
+
needs: build-and-validate
|
|
73
|
+
runs-on: ubuntu-latest
|
|
74
|
+
environment:
|
|
75
|
+
name: testpypi
|
|
76
|
+
url: https://test.pypi.org/p/cuvis-ai-schemas
|
|
77
|
+
steps:
|
|
78
|
+
- uses: actions/download-artifact@v4
|
|
79
|
+
with:
|
|
80
|
+
name: dist
|
|
81
|
+
path: dist/
|
|
82
|
+
|
|
83
|
+
- name: Publish to TestPyPI
|
|
84
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
85
|
+
with:
|
|
86
|
+
repository-url: https://test.pypi.org/legacy/
|
|
87
|
+
skip-existing: true
|
|
88
|
+
|
|
89
|
+
publish-pypi:
|
|
90
|
+
needs: publish-testpypi
|
|
91
|
+
runs-on: ubuntu-latest
|
|
92
|
+
environment:
|
|
93
|
+
name: pypi
|
|
94
|
+
url: https://pypi.org/p/cuvis-ai-schemas
|
|
95
|
+
steps:
|
|
96
|
+
- uses: actions/download-artifact@v4
|
|
97
|
+
with:
|
|
98
|
+
name: dist
|
|
99
|
+
path: dist/
|
|
100
|
+
|
|
101
|
+
- name: Publish to PyPI
|
|
102
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
103
|
+
|
|
104
|
+
create-github-release:
|
|
105
|
+
needs: publish-pypi
|
|
106
|
+
runs-on: ubuntu-latest
|
|
107
|
+
steps:
|
|
108
|
+
- uses: actions/checkout@v4
|
|
109
|
+
with:
|
|
110
|
+
fetch-depth: 0
|
|
111
|
+
|
|
112
|
+
- uses: actions/download-artifact@v4
|
|
113
|
+
with:
|
|
114
|
+
name: dist
|
|
115
|
+
path: dist/
|
|
116
|
+
|
|
117
|
+
- name: Extract changelog
|
|
118
|
+
id: changelog
|
|
119
|
+
run: |
|
|
120
|
+
VERSION=${GITHUB_REF#refs/tags/v}
|
|
121
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
122
|
+
|
|
123
|
+
# Parse CHANGELOG.md for this version's notes
|
|
124
|
+
if [ -f CHANGELOG.md ]; then
|
|
125
|
+
# Escape dots in version for regex (e.g., "0.1.1" -> "0\.1\.1")
|
|
126
|
+
VERSION_ESCAPED=$(echo "$VERSION" | sed 's/\./\\./g')
|
|
127
|
+
|
|
128
|
+
# Extract content between ## [VERSION] headers using sed
|
|
129
|
+
# Matches from ## [X.Y.Z] to the next ## [ line (exclusive)
|
|
130
|
+
NOTES=$(sed -n "/^## \[${VERSION_ESCAPED}\]/,/^## \[/{
|
|
131
|
+
/^## \[${VERSION_ESCAPED}\]/d
|
|
132
|
+
/^## \[/d
|
|
133
|
+
p
|
|
134
|
+
}" CHANGELOG.md)
|
|
135
|
+
|
|
136
|
+
# Remove blank lines at start and end
|
|
137
|
+
NOTES=$(echo "$NOTES" | sed -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}')
|
|
138
|
+
|
|
139
|
+
if [ -z "$NOTES" ]; then
|
|
140
|
+
NOTES="See [CHANGELOG.md](https://github.com/cubert-hyperspectral/cuvis-ai-schemas/blob/main/CHANGELOG.md) for details."
|
|
141
|
+
fi
|
|
142
|
+
else
|
|
143
|
+
NOTES="Release ${VERSION}"
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
# Build release notes
|
|
147
|
+
{
|
|
148
|
+
echo "## Release ${VERSION}"
|
|
149
|
+
echo ""
|
|
150
|
+
echo "$NOTES"
|
|
151
|
+
echo ""
|
|
152
|
+
echo "## Installation"
|
|
153
|
+
echo '```bash'
|
|
154
|
+
echo "uv add cuvis-ai-schemas==${VERSION}"
|
|
155
|
+
echo "# With extras:"
|
|
156
|
+
echo "uv add 'cuvis-ai-schemas[proto]==${VERSION}'"
|
|
157
|
+
echo '```'
|
|
158
|
+
echo ""
|
|
159
|
+
echo "**PyPI**: https://pypi.org/project/cuvis-ai-schemas/${VERSION}/"
|
|
160
|
+
} > release_notes.md
|
|
161
|
+
|
|
162
|
+
- name: Create GitHub Release
|
|
163
|
+
uses: softprops/action-gh-release@v2
|
|
164
|
+
with:
|
|
165
|
+
name: ${{ github.ref_name }}
|
|
166
|
+
files: dist/*
|
|
167
|
+
body_path: release_notes.md
|
|
168
|
+
draft: false
|
|
169
|
+
prerelease: false
|