shenron 0.5.3__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.
- shenron-0.5.3/.github/copilot-instructions.md +36 -0
- shenron-0.5.3/.github/workflows/ci.yaml +157 -0
- shenron-0.5.3/.github/workflows/pr-title-check.yml +27 -0
- shenron-0.5.3/.github/workflows/python-release.yaml +72 -0
- shenron-0.5.3/.github/workflows/release-assets.yaml +60 -0
- shenron-0.5.3/.github/workflows/release-please.yaml +21 -0
- shenron-0.5.3/.gitignore +212 -0
- shenron-0.5.3/.gitmodules +0 -0
- shenron-0.5.3/.release-please-manifest.json +3 -0
- shenron-0.5.3/CHANGELOG.md +73 -0
- shenron-0.5.3/Cargo.lock +634 -0
- shenron-0.5.3/Cargo.toml +24 -0
- shenron-0.5.3/LICENSE +21 -0
- shenron-0.5.3/PKG-INFO +78 -0
- shenron-0.5.3/README.md +61 -0
- shenron-0.5.3/VERSION +1 -0
- shenron-0.5.3/configs/Qwen06B-cu126-TP1.yml +36 -0
- shenron-0.5.3/docker/Dockerfile.cu126 +105 -0
- shenron-0.5.3/docker/Dockerfile.cu129 +116 -0
- shenron-0.5.3/docker/Dockerfile.cu130 +56 -0
- shenron-0.5.3/docker/README.md +21 -0
- shenron-0.5.3/docker/docker-compose.yml +51 -0
- shenron-0.5.3/docker/entrypoint_samples/Shenron-0.1.0-B200-Qwen3-VL-235B-FP8-TP2.sh +237 -0
- shenron-0.5.3/docker/entrypoint_samples/Shenron-0.1.0-Hopper-Qwen3-VL-235B-FP8-TP4.sh +164 -0
- shenron-0.5.3/docker/entrypoint_samples/Shenron-0.1.0-Hopper-Qwen3-VL-235B-FP8-TP8-EP8.sh +165 -0
- shenron-0.5.3/docker/entrypoint_samples/Shenron-0.1.0-Qwen0.6B.sh +235 -0
- shenron-0.5.3/docker/run_docker_compose.sh +30 -0
- shenron-0.5.3/docker/vllm_samples/QWEN235VL-FP8-TP4.sh +11 -0
- shenron-0.5.3/pyproject.toml +30 -0
- shenron-0.5.3/release-please-config.json +14 -0
- shenron-0.5.3/scripts/ci.sh +26 -0
- shenron-0.5.3/shenron/__init__.py +3 -0
- shenron-0.5.3/shenron/__main__.py +40 -0
- shenron-0.5.3/src/core.rs +582 -0
- shenron-0.5.3/src/lib.rs +21 -0
- shenron-0.5.3/tests/test_compose_generation.sh +32 -0
- shenron-0.5.3/tests/test_docker_compose.sh +19 -0
- shenron-0.5.3/tests/test_generate_from_config.sh +26 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Copilot instructions (Shenron)
|
|
2
|
+
|
|
3
|
+
## What this repo is
|
|
4
|
+
- This repository is primarily a **docker-compose distribution + launcher script** for a multi-service inference stack.
|
|
5
|
+
- The stack is defined in [docker/docker-compose.yml](docker/docker-compose.yml) and is driven by [docker/run_docker_compose.sh](docker/run_docker_compose.sh), which generates runtime config into `docker/.generated/`.
|
|
6
|
+
|
|
7
|
+
## Big-picture runtime architecture
|
|
8
|
+
- `vllm` (GPU inference) runs `vllm serve ...` inside `ghcr.io/doublewordai/shenron:${SHENRON_VERSION}-cu${CU}`.
|
|
9
|
+
- `onwards` is an **external gateway image** (`ghcr.io/doublewordai/onwards:latest`) configured via a generated JSON file.
|
|
10
|
+
- `prometheus` scrapes vLLM metrics over the docker network.
|
|
11
|
+
- `scouter-reporter` reads Prometheus and reports to a Scouter collector (reachable via `host.docker.internal`).
|
|
12
|
+
|
|
13
|
+
## Local workflows (source of truth)
|
|
14
|
+
- Generate configs only: `./docker/run_docker_compose.sh --dry-run` (writes `docker/.generated/*`).
|
|
15
|
+
- Start the stack: `./docker/run_docker_compose.sh` (runs `docker compose ... up -d`).
|
|
16
|
+
- vLLM is **not exposed to the host**; debug it via compose exec, e.g. `docker compose -f docker/docker-compose.yml exec vllm curl -sS http://localhost:8000/health`.
|
|
17
|
+
|
|
18
|
+
## Editing behavior (important conventions)
|
|
19
|
+
- If changing vLLM launch flags, edit the `VLLM_ARGS=(...)` array in [docker/run_docker_compose.sh](docker/run_docker_compose.sh). Do **not** hand-edit `docker/.generated/vllm_start.sh` (it is regenerated).
|
|
20
|
+
- If you change `MODELNAME`, `APIKEY`, or ports (e.g. `VLLM_PORT`), rerun `./docker/run_docker_compose.sh` to regenerate `docker/.generated/onwards_config.json`, `prometheus.yml`, and `*.env`.
|
|
21
|
+
- When updating only runtime args (no image rebuild), restart just vLLM:
|
|
22
|
+
`docker compose -f docker/docker-compose.yml up -d --no-deps --force-recreate vllm`
|
|
23
|
+
|
|
24
|
+
## Versioning and releases (don’t break this)
|
|
25
|
+
- `VERSION` is the single source of truth for the release version (used as `SHENRON_VERSION`).
|
|
26
|
+
- Compose must reference `${SHENRON_VERSION}` **without** a hardcoded fallback; tests enforce this (see [tests/test_compose_version_matches.sh](tests/test_compose_version_matches.sh)).
|
|
27
|
+
- [docker/run_docker_compose.sh](docker/run_docker_compose.sh) contains the placeholder `__SHENRON_RELEASE_TAG__` which is stamped by the release workflow; keep that placeholder intact.
|
|
28
|
+
|
|
29
|
+
## Tests / CI expectations
|
|
30
|
+
- Run the same checks as CI: `./scripts/ci.sh`.
|
|
31
|
+
- Includes shell tests in [tests/](tests/) and optionally runs docker-compose validation if `docker` is available.
|
|
32
|
+
- ShellCheck is expected to pass for the launcher script: `shellcheck -x docker/run_docker_compose.sh`.
|
|
33
|
+
|
|
34
|
+
## When making changes
|
|
35
|
+
- Prefer small, surgical edits to [docker/run_docker_compose.sh](docker/run_docker_compose.sh), [docker/docker-compose.yml](docker/docker-compose.yml), and the shell tests.
|
|
36
|
+
- If you add/remove any generated artifact, update the required-file list in [tests/test_run_docker_compose_dry_run.sh](tests/test_run_docker_compose_dry_run.sh).
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
release:
|
|
9
|
+
types: [published]
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
if: github.event_name != 'release'
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v6
|
|
18
|
+
|
|
19
|
+
- name: Install ShellCheck
|
|
20
|
+
run: sudo apt-get update && sudo apt-get install -y shellcheck
|
|
21
|
+
|
|
22
|
+
- name: ShellCheck (docker/run_docker_compose.sh)
|
|
23
|
+
run: shellcheck -x docker/run_docker_compose.sh
|
|
24
|
+
|
|
25
|
+
test:
|
|
26
|
+
if: github.event_name != 'release'
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v6
|
|
30
|
+
|
|
31
|
+
- name: Set up Python
|
|
32
|
+
uses: actions/setup-python@v5
|
|
33
|
+
with:
|
|
34
|
+
python-version: '3.11'
|
|
35
|
+
|
|
36
|
+
- name: Install Rust
|
|
37
|
+
uses: dtolnay/rust-toolchain@stable
|
|
38
|
+
|
|
39
|
+
- name: Run Shenron tests
|
|
40
|
+
run: ./scripts/ci.sh
|
|
41
|
+
|
|
42
|
+
docker-build:
|
|
43
|
+
name: docker-build (${{ matrix.name }})
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
if: github.event_name == 'push' || github.event_name == 'release'
|
|
46
|
+
permissions:
|
|
47
|
+
contents: read
|
|
48
|
+
packages: write
|
|
49
|
+
id-token: write
|
|
50
|
+
strategy:
|
|
51
|
+
fail-fast: false
|
|
52
|
+
matrix:
|
|
53
|
+
include:
|
|
54
|
+
- name: cu126
|
|
55
|
+
dockerfile: docker/Dockerfile.cu126
|
|
56
|
+
tag_suffix: -cu126
|
|
57
|
+
- name: cu129
|
|
58
|
+
dockerfile: docker/Dockerfile.cu129
|
|
59
|
+
tag_suffix: -cu129
|
|
60
|
+
- name: cu130
|
|
61
|
+
dockerfile: docker/Dockerfile.cu130
|
|
62
|
+
tag_suffix: -cu130
|
|
63
|
+
|
|
64
|
+
steps:
|
|
65
|
+
- name: Maximize build space
|
|
66
|
+
uses: easimon/maximize-build-space@v10
|
|
67
|
+
with:
|
|
68
|
+
root-reserve-mb: 1024
|
|
69
|
+
temp-reserve-mb: 100
|
|
70
|
+
swap-size-mb: 1024
|
|
71
|
+
remove-dotnet: 'true'
|
|
72
|
+
remove-android: 'true'
|
|
73
|
+
remove-haskell: 'true'
|
|
74
|
+
remove-codeql: 'true'
|
|
75
|
+
|
|
76
|
+
- uses: actions/checkout@v6
|
|
77
|
+
with:
|
|
78
|
+
ref: ${{ github.event_name == 'release' && github.event.release.tag_name || github.sha }}
|
|
79
|
+
|
|
80
|
+
- name: Detect changes
|
|
81
|
+
id: changes
|
|
82
|
+
uses: dorny/paths-filter@v3
|
|
83
|
+
with:
|
|
84
|
+
filters: |
|
|
85
|
+
docker_cuda:
|
|
86
|
+
- 'docker/Dockerfile.cu*'
|
|
87
|
+
release_version:
|
|
88
|
+
- 'VERSION'
|
|
89
|
+
|
|
90
|
+
- name: Read VERSION
|
|
91
|
+
if: github.event_name == 'release' || steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true'
|
|
92
|
+
run: echo "VERSION=$(tr -d '[:space:]' < VERSION)" >> "$GITHUB_ENV"
|
|
93
|
+
|
|
94
|
+
- uses: docker/setup-buildx-action@v3
|
|
95
|
+
if: github.event_name == 'release' || steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true'
|
|
96
|
+
|
|
97
|
+
- name: Set up Depot CLI
|
|
98
|
+
if: github.event_name == 'release' || steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true'
|
|
99
|
+
uses: depot/setup-action@v1
|
|
100
|
+
|
|
101
|
+
- name: Log in to GitHub Container Registry
|
|
102
|
+
if: |
|
|
103
|
+
(github.event_name == 'release') ||
|
|
104
|
+
(github.event_name == 'push' && (steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true'))
|
|
105
|
+
uses: docker/login-action@v3
|
|
106
|
+
with:
|
|
107
|
+
registry: ghcr.io
|
|
108
|
+
username: ${{ github.actor }}
|
|
109
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
110
|
+
|
|
111
|
+
- name: Extract metadata
|
|
112
|
+
if: github.event_name == 'release' || steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true'
|
|
113
|
+
id: meta
|
|
114
|
+
uses: docker/metadata-action@v5
|
|
115
|
+
with:
|
|
116
|
+
images: ghcr.io/${{ github.repository_owner }}/shenron
|
|
117
|
+
flavor: |
|
|
118
|
+
suffix=${{ matrix.tag_suffix }}
|
|
119
|
+
tags: |
|
|
120
|
+
type=raw,value=${{ env.VERSION }}
|
|
121
|
+
type=sha,event=branch,prefix=sha-
|
|
122
|
+
type=ref,event=pr
|
|
123
|
+
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
|
124
|
+
|
|
125
|
+
- name: Verify Depot project configuration
|
|
126
|
+
if: (github.event_name == 'push' || github.event_name == 'release') && (steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true') && !vars.DEPOT_PROJECT_ID
|
|
127
|
+
run: |
|
|
128
|
+
echo "::error::DEPOT_PROJECT_ID repo variable is not set. Create a Depot project and set DEPOT_PROJECT_ID in GitHub repo Variables." \
|
|
129
|
+
" If you are using OIDC, also add a Trust Relationship in Depot project settings for this repo/workflow." \
|
|
130
|
+
" Otherwise, set a DEPOT_TOKEN secret and the workflow will use it."
|
|
131
|
+
exit 1
|
|
132
|
+
|
|
133
|
+
- name: Build and push with Depot (main)
|
|
134
|
+
if: github.event_name == 'push' && (steps.changes.outputs.docker_cuda == 'true' || steps.changes.outputs.release_version == 'true')
|
|
135
|
+
uses: depot/build-push-action@v1
|
|
136
|
+
with:
|
|
137
|
+
project: ${{ vars.DEPOT_PROJECT_ID }}
|
|
138
|
+
token: ${{ secrets.DEPOT_TOKEN }}
|
|
139
|
+
context: .
|
|
140
|
+
file: ./${{ matrix.dockerfile }}
|
|
141
|
+
platforms: linux/amd64
|
|
142
|
+
push: true
|
|
143
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
144
|
+
|
|
145
|
+
- name: Build and push with Depot (release)
|
|
146
|
+
if: github.event_name == 'release'
|
|
147
|
+
uses: depot/build-push-action@v1
|
|
148
|
+
with:
|
|
149
|
+
project: ${{ vars.DEPOT_PROJECT_ID }}
|
|
150
|
+
token: ${{ secrets.DEPOT_TOKEN }}
|
|
151
|
+
context: .
|
|
152
|
+
file: ./${{ matrix.dockerfile }}
|
|
153
|
+
platforms: linux/amd64,linux/arm64
|
|
154
|
+
push: true
|
|
155
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
156
|
+
sbom: true
|
|
157
|
+
provenance: true
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: PR Title Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, edited, synchronize, reopened]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
pull-requests: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
check-title:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- if: ${{ env.ACT }}
|
|
15
|
+
name: Validate PR title locally (act)
|
|
16
|
+
env:
|
|
17
|
+
PR_TITLE: ${{ github.event.pull_request.title }}
|
|
18
|
+
run: |
|
|
19
|
+
if ! echo "$PR_TITLE" | grep -Eq '^(feat|fix|docs|style|refactor|perf|test|build|ci|chore)(\(.+\))?!?: .+'; then
|
|
20
|
+
echo "Invalid PR title: $PR_TITLE" >&2
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
- if: ${{ !env.ACT }}
|
|
25
|
+
uses: amannn/action-semantic-pull-request@v6
|
|
26
|
+
env:
|
|
27
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Publish Python Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
release_tag:
|
|
9
|
+
description: Release tag to build from (e.g. v0.5.3)
|
|
10
|
+
required: false
|
|
11
|
+
type: string
|
|
12
|
+
dry_run:
|
|
13
|
+
description: Skip PyPI publish step
|
|
14
|
+
required: false
|
|
15
|
+
type: boolean
|
|
16
|
+
default: true
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
id-token: write
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
publish:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
environment: pypi
|
|
26
|
+
steps:
|
|
27
|
+
- if: ${{ !env.ACT }}
|
|
28
|
+
uses: actions/checkout@v6
|
|
29
|
+
with:
|
|
30
|
+
ref: ${{ github.event.release.tag_name }}
|
|
31
|
+
|
|
32
|
+
- if: ${{ env.ACT }}
|
|
33
|
+
uses: actions/checkout@v6
|
|
34
|
+
|
|
35
|
+
- name: Set up Python
|
|
36
|
+
uses: actions/setup-python@v5
|
|
37
|
+
with:
|
|
38
|
+
python-version: '3.11'
|
|
39
|
+
|
|
40
|
+
- name: Install Rust
|
|
41
|
+
uses: dtolnay/rust-toolchain@stable
|
|
42
|
+
|
|
43
|
+
- name: Sync package versions to release tag
|
|
44
|
+
run: |
|
|
45
|
+
if [[ "${GITHUB_EVENT_NAME}" == "release" ]]; then
|
|
46
|
+
tag="${{ github.event.release.tag_name }}"
|
|
47
|
+
elif [[ -n "${{ inputs.release_tag }}" ]]; then
|
|
48
|
+
tag="${{ inputs.release_tag }}"
|
|
49
|
+
else
|
|
50
|
+
tag="v$(tr -d '[:space:]' < VERSION)"
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
version="${tag}"
|
|
54
|
+
version="${version#v}"
|
|
55
|
+
sed -i -E "s/^version = \".*\"$/version = \"${version}\"/" Cargo.toml
|
|
56
|
+
sed -i -E "s/^version = \".*\"$/version = \"${version}\"/" pyproject.toml
|
|
57
|
+
sed -i -E "s/^shenron_version:.*$/shenron_version: ${version}/" configs/Qwen06B-cu126-TP1.yml
|
|
58
|
+
printf "%s\n" "$version" > VERSION
|
|
59
|
+
|
|
60
|
+
- name: Build wheel and sdist
|
|
61
|
+
uses: PyO3/maturin-action@v1
|
|
62
|
+
with:
|
|
63
|
+
command: build
|
|
64
|
+
args: --release --sdist --out dist
|
|
65
|
+
|
|
66
|
+
- name: Verify dist locally (act)
|
|
67
|
+
if: ${{ env.ACT }}
|
|
68
|
+
run: ls -la dist
|
|
69
|
+
|
|
70
|
+
- name: Publish to PyPI
|
|
71
|
+
if: ${{ !env.ACT && !(github.event_name == 'workflow_dispatch' && inputs.dry_run) }}
|
|
72
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: Release Assets
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
release_tag:
|
|
9
|
+
description: Release tag to stamp into assets (e.g. v0.5.3)
|
|
10
|
+
required: false
|
|
11
|
+
type: string
|
|
12
|
+
dry_run:
|
|
13
|
+
description: Skip GitHub release upload step
|
|
14
|
+
required: false
|
|
15
|
+
type: boolean
|
|
16
|
+
default: true
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: write
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
upload-assets:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
steps:
|
|
25
|
+
- if: ${{ !env.ACT }}
|
|
26
|
+
uses: actions/checkout@v6
|
|
27
|
+
with:
|
|
28
|
+
ref: ${{ github.event.release.tag_name }}
|
|
29
|
+
|
|
30
|
+
- if: ${{ env.ACT }}
|
|
31
|
+
uses: actions/checkout@v6
|
|
32
|
+
|
|
33
|
+
- name: Prepare assets
|
|
34
|
+
run: |
|
|
35
|
+
if [[ "${GITHUB_EVENT_NAME}" == "release" ]]; then
|
|
36
|
+
tag="${{ github.event.release.tag_name }}"
|
|
37
|
+
elif [[ -n "${{ inputs.release_tag }}" ]]; then
|
|
38
|
+
tag="${{ inputs.release_tag }}"
|
|
39
|
+
else
|
|
40
|
+
tag="v$(tr -d '[:space:]' < VERSION)"
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
version="${tag}"
|
|
44
|
+
version="${version#v}"
|
|
45
|
+
for cfg in configs/*.yml; do
|
|
46
|
+
out="$(basename "$cfg")"
|
|
47
|
+
sed -E "s|^shenron_version:.*$|shenron_version: ${version}|g" "$cfg" > "$out"
|
|
48
|
+
done
|
|
49
|
+
|
|
50
|
+
- name: Verify assets locally (act)
|
|
51
|
+
if: ${{ env.ACT }}
|
|
52
|
+
run: ls -la ./*.yml
|
|
53
|
+
|
|
54
|
+
- name: Upload assets
|
|
55
|
+
if: ${{ !env.ACT && !(github.event_name == 'workflow_dispatch' && inputs.dry_run) }}
|
|
56
|
+
uses: softprops/action-gh-release@v2
|
|
57
|
+
with:
|
|
58
|
+
fail_on_unmatched_files: true
|
|
59
|
+
files: |
|
|
60
|
+
*.yml
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Release Please
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
pull-requests: write
|
|
11
|
+
issues: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
release-please:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: googleapis/release-please-action@v4
|
|
18
|
+
with:
|
|
19
|
+
config-file: release-please-config.json
|
|
20
|
+
manifest-file: .release-please-manifest.json
|
|
21
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
shenron-0.5.3/.gitignore
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[codz]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py.cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
Cargo.lock
|
|
78
|
+
|
|
79
|
+
# Jupyter Notebook
|
|
80
|
+
.ipynb_checkpoints
|
|
81
|
+
|
|
82
|
+
# IPython
|
|
83
|
+
profile_default/
|
|
84
|
+
ipython_config.py
|
|
85
|
+
|
|
86
|
+
# pyenv
|
|
87
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
88
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
89
|
+
# .python-version
|
|
90
|
+
|
|
91
|
+
# pipenv
|
|
92
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
93
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
94
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
95
|
+
# install all needed dependencies.
|
|
96
|
+
#Pipfile.lock
|
|
97
|
+
|
|
98
|
+
# UV
|
|
99
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
100
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
101
|
+
# commonly ignored for libraries.
|
|
102
|
+
#uv.lock
|
|
103
|
+
|
|
104
|
+
docker/.generated/
|
|
105
|
+
configs/.generated/
|
|
106
|
+
configs/docker-compose.yml
|
|
107
|
+
|
|
108
|
+
# poetry
|
|
109
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
110
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
111
|
+
# commonly ignored for libraries.
|
|
112
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
113
|
+
#poetry.lock
|
|
114
|
+
#poetry.toml
|
|
115
|
+
|
|
116
|
+
# pdm
|
|
117
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
118
|
+
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
|
119
|
+
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
|
120
|
+
#pdm.lock
|
|
121
|
+
#pdm.toml
|
|
122
|
+
.pdm-python
|
|
123
|
+
.pdm-build/
|
|
124
|
+
|
|
125
|
+
# pixi
|
|
126
|
+
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
|
127
|
+
#pixi.lock
|
|
128
|
+
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
|
129
|
+
# in the .venv directory. It is recommended not to include this directory in version control.
|
|
130
|
+
.pixi
|
|
131
|
+
|
|
132
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
133
|
+
__pypackages__/
|
|
134
|
+
|
|
135
|
+
# Celery stuff
|
|
136
|
+
celerybeat-schedule
|
|
137
|
+
celerybeat.pid
|
|
138
|
+
|
|
139
|
+
# SageMath parsed files
|
|
140
|
+
*.sage.py
|
|
141
|
+
|
|
142
|
+
# Environments
|
|
143
|
+
.env
|
|
144
|
+
.envrc
|
|
145
|
+
.venv
|
|
146
|
+
env/
|
|
147
|
+
venv/
|
|
148
|
+
ENV/
|
|
149
|
+
env.bak/
|
|
150
|
+
venv.bak/
|
|
151
|
+
|
|
152
|
+
# Spyder project settings
|
|
153
|
+
.spyderproject
|
|
154
|
+
.spyproject
|
|
155
|
+
|
|
156
|
+
# Rope project settings
|
|
157
|
+
.ropeproject
|
|
158
|
+
|
|
159
|
+
# mkdocs documentation
|
|
160
|
+
/site
|
|
161
|
+
|
|
162
|
+
# mypy
|
|
163
|
+
.mypy_cache/
|
|
164
|
+
.dmypy.json
|
|
165
|
+
dmypy.json
|
|
166
|
+
|
|
167
|
+
# Pyre type checker
|
|
168
|
+
.pyre/
|
|
169
|
+
|
|
170
|
+
# pytype static type analyzer
|
|
171
|
+
.pytype/
|
|
172
|
+
|
|
173
|
+
# Cython debug symbols
|
|
174
|
+
cython_debug/
|
|
175
|
+
|
|
176
|
+
# PyCharm
|
|
177
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
178
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
179
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
180
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
181
|
+
#.idea/
|
|
182
|
+
|
|
183
|
+
# Abstra
|
|
184
|
+
# Abstra is an AI-powered process automation framework.
|
|
185
|
+
# Ignore directories containing user credentials, local state, and settings.
|
|
186
|
+
# Learn more at https://abstra.io/docs
|
|
187
|
+
.abstra/
|
|
188
|
+
|
|
189
|
+
# Visual Studio Code
|
|
190
|
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
|
191
|
+
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
192
|
+
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
|
193
|
+
# you could uncomment the following to ignore the entire vscode folder
|
|
194
|
+
# .vscode/
|
|
195
|
+
|
|
196
|
+
# Ruff stuff:
|
|
197
|
+
.ruff_cache/
|
|
198
|
+
|
|
199
|
+
# PyPI configuration file
|
|
200
|
+
.pypirc
|
|
201
|
+
|
|
202
|
+
# Cursor
|
|
203
|
+
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
|
|
204
|
+
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
|
|
205
|
+
# refer to https://docs.cursor.com/context/ignore-files
|
|
206
|
+
.cursorignore
|
|
207
|
+
.cursorindexingignore
|
|
208
|
+
|
|
209
|
+
# Marimo
|
|
210
|
+
marimo/_static/
|
|
211
|
+
marimo/_lsp/
|
|
212
|
+
__marimo__/
|
|
File without changes
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.5.2](https://github.com/doublewordai/shenron/compare/v0.5.1...v0.5.2) (2026-02-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* add depy auth ([4fa847a](https://github.com/doublewordai/shenron/commit/4fa847a73ee0fe5dd19e728489ac4eda7b296353))
|
|
9
|
+
* add verification for DEPOT_PROJECT_ID in CI workflow and update build steps ([223c256](https://github.com/doublewordai/shenron/commit/223c256f4334513e22c68b368960c9f8ab4461b4))
|
|
10
|
+
* add verification for DEPOT_PROJECT_ID in CI workflow and update build steps ([b5111df](https://github.com/doublewordai/shenron/commit/b5111dfc91a5cc441d5617d50e596cfe7bce9c76))
|
|
11
|
+
|
|
12
|
+
## [0.5.1](https://github.com/doublewordai/shenron/compare/v0.5.0...v0.5.1) (2026-02-09)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* add Depot CLI setup step to CI workflow for release events ([87e7ef8](https://github.com/doublewordai/shenron/commit/87e7ef8654f149f2f5721626cb87ed94e8dd3248))
|
|
18
|
+
* add Depot CLI setup step to CI workflow for release events ([cc642c1](https://github.com/doublewordai/shenron/commit/cc642c1da8919e54f15657d91cf7e5c28f6a62c0))
|
|
19
|
+
|
|
20
|
+
## [0.5.0](https://github.com/doublewordai/shenron/compare/v0.4.0...v0.5.0) (2026-02-09)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* add Copilot instructions and enhance CI workflow with build space maximization ([b632cea](https://github.com/doublewordai/shenron/commit/b632ceaf851a3f6efad59ae340c303c809b1a88d))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* add Copilot instructions and enhance CI workflow with build space maximization ([d15d018](https://github.com/doublewordai/shenron/commit/d15d018a71b445b528c15ef5f9e3ccd2ff49dbfb))
|
|
31
|
+
|
|
32
|
+
## [0.4.0](https://github.com/doublewordai/shenron/compare/v0.3.0...v0.4.0) (2026-02-06)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Features
|
|
36
|
+
|
|
37
|
+
* update Docker image references to use ghcr.io for consistency ([7797780](https://github.com/doublewordai/shenron/commit/7797780b06b42bdcc67ac34142b5fb6a54ec7a3f))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* update Docker image references to use ghcr.io for consistency ([c3d755a](https://github.com/doublewordai/shenron/commit/c3d755af94ee52d35c2ca88570de483626521792))
|
|
43
|
+
|
|
44
|
+
## [0.3.0](https://github.com/doublewordai/shenron/compare/v0.2.0...v0.3.0) (2026-02-06)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
* update SHENRON_VERSION handling in docker-compose and related tests ([333db7f](https://github.com/doublewordai/shenron/commit/333db7f90ca2074ca898c59c18bec5f40985f954))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* update SHENRON_VERSION handling in docker-compose and related t… ([77cd3bd](https://github.com/doublewordai/shenron/commit/77cd3bd34e1cb241f090ac1b2d4f57e1053f8f84))
|
|
55
|
+
|
|
56
|
+
## [0.2.0](https://github.com/doublewordai/shenron/compare/v0.1.0...v0.2.0) (2026-02-06)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
### Features
|
|
60
|
+
|
|
61
|
+
* add ci ([f2c245e](https://github.com/doublewordai/shenron/commit/f2c245e6ab6c844a6aba6f26159842e3b8706ebd))
|
|
62
|
+
* add GitHub Actions workflow for automated releases ([05b8ad4](https://github.com/doublewordai/shenron/commit/05b8ad4505867be33eadd4cf258e825d2c5253c5))
|
|
63
|
+
* add GitHub Actions workflow for releasing assets and enhance run_docker_compose.sh for auto-downloading compose files ([c470d11](https://github.com/doublewordai/shenron/commit/c470d113fc2d00695a61c8910084b8b8a40b1c6a))
|
|
64
|
+
* add pull-requests permission to docker-build job in CI workflow ([08b02f8](https://github.com/doublewordai/shenron/commit/08b02f889f396aee878a8482e40466ea23811e73))
|
|
65
|
+
* remove branch protection workflow for main ([a23b950](https://github.com/doublewordai/shenron/commit/a23b950eebe51f4943e127c18db3a8692f860e12))
|
|
66
|
+
* remove branch protection workflow for main ([cd17472](https://github.com/doublewordai/shenron/commit/cd17472029b3f98c5ac493e277e4a56f1434cfad))
|
|
67
|
+
* remove redundant hadolint and Rust formatting steps from CI workflow ([cb07f9f](https://github.com/doublewordai/shenron/commit/cb07f9f9bd5998b961364f2f315f45e5268e1813))
|
|
68
|
+
* update CI workflow to specify ShellCheck target and enhance run_docker_compose.sh for version handling and vLLM config ([773e931](https://github.com/doublewordai/shenron/commit/773e931bd4d14237debfd12c254641653ef552f8))
|
|
69
|
+
* update docker-build job permissions and conditions in CI workflow ([dcf13ad](https://github.com/doublewordai/shenron/commit/dcf13ad81cf45fd90a0b45a975f3638e1d83e4e0))
|
|
70
|
+
* update release-please workflow to use GITHUB_TOKEN instead of RELEASE_TOKEN ([ca24a0c](https://github.com/doublewordai/shenron/commit/ca24a0c5639cdf70f31d0b3dda3724f0d630324f))
|
|
71
|
+
* update release-please workflow to use GITHUB_TOKEN instead of RELEASE_TOKEN ([dadf699](https://github.com/doublewordai/shenron/commit/dadf6996ccc0c405a785618b8feeb2bd152ffbfb))
|
|
72
|
+
|
|
73
|
+
## Changelog
|