context-server 0.1.0__tar.gz → 0.1.4__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.
Files changed (22) hide show
  1. context_server-0.1.4/.github/workflows/release.yml +89 -0
  2. {context_server-0.1.0 → context_server-0.1.4}/.gitignore +1 -0
  3. {context_server-0.1.0 → context_server-0.1.4}/Cargo.lock +1 -1
  4. {context_server-0.1.0 → context_server-0.1.4}/Cargo.toml +1 -1
  5. context_server-0.1.4/Containerfile +55 -0
  6. {context_server-0.1.0 → context_server-0.1.4}/PKG-INFO +17 -1
  7. {context_server-0.1.0 → context_server-0.1.4}/README.md +16 -0
  8. {context_server-0.1.0 → context_server-0.1.4}/pyproject.toml +1 -1
  9. context_server-0.1.4/scripts/build-wheel.sh +25 -0
  10. context_server-0.1.0/.github/workflows/release.yml +0 -62
  11. {context_server-0.1.0 → context_server-0.1.4}/.cargo/config.toml.example +0 -0
  12. {context_server-0.1.0 → context_server-0.1.4}/LICENSE +0 -0
  13. {context_server-0.1.0 → context_server-0.1.4}/PLAN.md +0 -0
  14. {context_server-0.1.0 → context_server-0.1.4}/examples/sample-docs/README.md +0 -0
  15. {context_server-0.1.0 → context_server-0.1.4}/examples/sample-docs/onboarding.md +0 -0
  16. {context_server-0.1.0 → context_server-0.1.4}/examples/sample-docs/release-process.md +0 -0
  17. {context_server-0.1.0 → context_server-0.1.4}/src/embed.rs +0 -0
  18. {context_server-0.1.0 → context_server-0.1.4}/src/index.rs +0 -0
  19. {context_server-0.1.0 → context_server-0.1.4}/src/main.rs +0 -0
  20. {context_server-0.1.0 → context_server-0.1.4}/src/mcp.rs +0 -0
  21. {context_server-0.1.0 → context_server-0.1.4}/src/search.rs +0 -0
  22. {context_server-0.1.0 → context_server-0.1.4}/src/store.rs +0 -0
@@ -0,0 +1,89 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ linux:
14
+ name: Linux wheel (${{ matrix.arch }})
15
+ runs-on: ${{ matrix.os }}
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ include:
20
+ - os: ubuntu-latest
21
+ arch: x86_64
22
+ - os: ubuntu-24.04-arm
23
+ arch: aarch64
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+
27
+ # Same Containerfile as local `./scripts/build-wheel.sh` (podman/docker).
28
+ # Ubuntu 24.04 base is required: ort prebuilts need glibc >= ~2.38.
29
+ - name: Build wheel with Containerfile
30
+ run: |
31
+ set -euo pipefail
32
+ docker build -t context-server-wheel -f Containerfile .
33
+ cid="$(docker create context-server-wheel)"
34
+ mkdir -p dist
35
+ docker cp "$cid:/out/." dist/
36
+ docker rm "$cid"
37
+ ls -la dist
38
+
39
+ - uses: actions/upload-artifact@v4
40
+ with:
41
+ name: wheels-linux-${{ matrix.arch }}
42
+ path: dist/*
43
+
44
+ macos:
45
+ name: macOS wheel (aarch64)
46
+ runs-on: macos-latest
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+
50
+ # ort does not ship prebuilt ONNX Runtime for x86_64-apple-darwin.
51
+ - uses: PyO3/maturin-action@v1
52
+ with:
53
+ target: aarch64-apple-darwin
54
+ args: --release --locked --out dist
55
+ manylinux: 'off'
56
+
57
+ - uses: actions/upload-artifact@v4
58
+ with:
59
+ name: wheels-macos-aarch64
60
+ path: dist/*
61
+
62
+ publish:
63
+ name: Publish to PyPI
64
+ needs: [linux, macos]
65
+ runs-on: ubuntu-latest
66
+ if: startsWith(github.ref, 'refs/tags/')
67
+ environment:
68
+ name: release
69
+ url: https://pypi.org/project/context-server/
70
+ permissions:
71
+ id-token: write
72
+ contents: read
73
+ steps:
74
+ - uses: astral-sh/setup-uv@v6
75
+
76
+ - uses: actions/download-artifact@v4
77
+ with:
78
+ pattern: wheels-*
79
+ path: wheels
80
+ merge-multiple: true
81
+
82
+ - name: Show artifacts
83
+ run: ls -la wheels
84
+
85
+ # Trusted Publishing (OIDC). Configure at:
86
+ # https://pypi.org/manage/project/context-server/settings/publishing/
87
+ # Owner: shanemcd, Repo: context-server, Workflow: release.yml, Environment: release
88
+ - name: Publish to PyPI
89
+ run: uv publish --trusted-publishing always -v wheels/*
@@ -7,4 +7,5 @@ context-server
7
7
  models/
8
8
  third_party/
9
9
  .fastembed_cache/
10
+ /dist/
10
11
  **/.DS_Store
@@ -415,7 +415,7 @@ dependencies = [
415
415
 
416
416
  [[package]]
417
417
  name = "context-server"
418
- version = "0.1.0"
418
+ version = "0.1.4"
419
419
  dependencies = [
420
420
  "anyhow",
421
421
  "clap",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "context-server"
3
- version = "0.1.0"
3
+ version = "0.1.4"
4
4
  edition = "2021"
5
5
  description = "Lightweight MCP server for semantic search over organizational markdown"
6
6
  license = "MIT"
@@ -0,0 +1,55 @@
1
+ # Build Linux wheels for context-server.
2
+ #
3
+ # ORT's prebuilt static libraries need glibc >= ~2.38 (__isoc23_*,
4
+ # __libc_single_threaded), so classic manylinux_2_28 images cannot link.
5
+ # Ubuntu 24.04 (glibc 2.39) matches that requirement and is what CI uses.
6
+ #
7
+ # Local:
8
+ # ./scripts/build-wheel.sh
9
+ #
10
+ # Extract without the helper:
11
+ # podman build -t context-server-wheel -f Containerfile .
12
+ # cid=$(podman create context-server-wheel)
13
+ # podman cp "$cid:/out/." ./dist/ && podman rm "$cid"
14
+
15
+ FROM docker.io/library/ubuntu:24.04
16
+
17
+ ENV DEBIAN_FRONTEND=noninteractive \
18
+ RUSTUP_HOME=/usr/local/rustup \
19
+ CARGO_HOME=/usr/local/cargo \
20
+ PATH=/usr/local/cargo/bin:$PATH \
21
+ OPENSSL_NO_VENDOR=1
22
+
23
+ RUN apt-get update \
24
+ && apt-get install -y --no-install-recommends \
25
+ build-essential \
26
+ ca-certificates \
27
+ cmake \
28
+ curl \
29
+ git \
30
+ libssl-dev \
31
+ patchelf \
32
+ pkg-config \
33
+ python3 \
34
+ python3-pip \
35
+ python3-venv \
36
+ && rm -rf /var/lib/apt/lists/*
37
+
38
+ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
39
+ | sh -s -- -y --default-toolchain stable --profile minimal \
40
+ && rustc --version \
41
+ && cargo --version
42
+
43
+ RUN python3 -m pip install --break-system-packages 'maturin[patchelf]>=1.0,<2.0' \
44
+ && maturin --version
45
+
46
+ WORKDIR /src
47
+ COPY . .
48
+
49
+ # Tag as manylinux_2_39; maturin/patchelf vendors libssl into the wheel for PyPI.
50
+ RUN mkdir -p /out \
51
+ && maturin build --release --locked --compatibility manylinux_2_39 -o /out \
52
+ && maturin sdist -o /out \
53
+ && ls -la /out
54
+
55
+ CMD ["ls", "-la", "/out"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: context-server
3
- Version: 0.1.0
3
+ Version: 0.1.4
4
4
  License-File: LICENSE
5
5
  Summary: Lightweight MCP server for semantic search over organizational markdown
6
6
  Home-Page: https://github.com/shanemcd/context-server
@@ -38,6 +38,14 @@ mkdir -p .linker && ln -sfn /usr/lib64/libstdc++.so.6 .linker/libstdc++.so
38
38
  export RUSTFLAGS="-L native=$(pwd)/.linker"
39
39
  ```
40
40
 
41
+ ## Install
42
+
43
+ ```bash
44
+ pip install context-server
45
+ ```
46
+
47
+ Platform wheels: Linux x86_64/aarch64 (`manylinux_2_39`, glibc 2.39+ / Ubuntu 24.04+) and macOS Apple Silicon.
48
+
41
49
  ## Build
42
50
 
43
51
  ```bash
@@ -46,6 +54,14 @@ cargo build --release
46
54
 
47
55
  The first embedding run downloads the MiniLM model into the local Hugging Face / fastembed cache (~tens of MB, once).
48
56
 
57
+ ### Linux wheels (Podman)
58
+
59
+ Same Containerfile CI uses (Ubuntu 24.04 / glibc 2.39 — required by current ORT prebuilts):
60
+
61
+ ```bash
62
+ ./scripts/build-wheel.sh # writes dist/*.whl
63
+ ```
64
+
49
65
  ## Usage
50
66
 
51
67
  ```bash
@@ -27,6 +27,14 @@ mkdir -p .linker && ln -sfn /usr/lib64/libstdc++.so.6 .linker/libstdc++.so
27
27
  export RUSTFLAGS="-L native=$(pwd)/.linker"
28
28
  ```
29
29
 
30
+ ## Install
31
+
32
+ ```bash
33
+ pip install context-server
34
+ ```
35
+
36
+ Platform wheels: Linux x86_64/aarch64 (`manylinux_2_39`, glibc 2.39+ / Ubuntu 24.04+) and macOS Apple Silicon.
37
+
30
38
  ## Build
31
39
 
32
40
  ```bash
@@ -35,6 +43,14 @@ cargo build --release
35
43
 
36
44
  The first embedding run downloads the MiniLM model into the local Hugging Face / fastembed cache (~tens of MB, once).
37
45
 
46
+ ### Linux wheels (Podman)
47
+
48
+ Same Containerfile CI uses (Ubuntu 24.04 / glibc 2.39 — required by current ORT prebuilts):
49
+
50
+ ```bash
51
+ ./scripts/build-wheel.sh # writes dist/*.whl
52
+ ```
53
+
38
54
  ## Usage
39
55
 
40
56
  ```bash
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "context-server"
7
- version = "0.1.0"
7
+ version = "0.1.4"
8
8
  description = "Lightweight MCP server for semantic search over organizational markdown"
9
9
  requires-python = ">=3.10"
10
10
  license = "MIT"
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ # Build a Linux wheel with podman using the repo Containerfile.
3
+ set -euo pipefail
4
+
5
+ root="$(cd "$(dirname "$0")/.." && pwd)"
6
+ cd "$root"
7
+
8
+ IMAGE_TAG="${IMAGE_TAG:-context-server-wheel}"
9
+ OUT_DIR="${OUT_DIR:-$root/dist}"
10
+
11
+ mkdir -p "$OUT_DIR"
12
+
13
+ echo "Building wheel image..."
14
+ podman build \
15
+ -t "$IMAGE_TAG" \
16
+ -f Containerfile \
17
+ .
18
+
19
+ cid="$(podman create "$IMAGE_TAG")"
20
+ cleanup() { podman rm -f "$cid" >/dev/null 2>&1 || true; }
21
+ trap cleanup EXIT
22
+
23
+ podman cp "$cid:/out/." "$OUT_DIR/"
24
+ echo "Wheels written to $OUT_DIR:"
25
+ ls -la "$OUT_DIR"
@@ -1,62 +0,0 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*'
7
- workflow_dispatch:
8
-
9
- permissions:
10
- contents: read
11
-
12
- jobs:
13
- build:
14
- name: Build wheels (${{ matrix.target }})
15
- runs-on: ${{ matrix.os }}
16
- strategy:
17
- fail-fast: false
18
- matrix:
19
- include:
20
- - os: ubuntu-latest
21
- target: x86_64-unknown-linux-gnu
22
- manylinux: "2_28"
23
- - os: ubuntu-latest
24
- target: aarch64-unknown-linux-gnu
25
- manylinux: "2_28"
26
- - os: macos-latest
27
- target: aarch64-apple-darwin
28
- - os: macos-13
29
- target: x86_64-apple-darwin
30
- steps:
31
- - uses: actions/checkout@v4
32
-
33
- - uses: PyO3/maturin-action@v1
34
- with:
35
- target: ${{ matrix.target }}
36
- manylinux: ${{ matrix.manylinux || 'auto' }}
37
- args: --release --locked --out dist
38
-
39
- - uses: actions/upload-artifact@v4
40
- with:
41
- name: wheels-${{ matrix.target }}
42
- path: dist
43
-
44
- publish:
45
- name: Publish to PyPI
46
- needs: build
47
- runs-on: ubuntu-latest
48
- if: startsWith(github.ref, 'refs/tags/')
49
- environment:
50
- name: release
51
- permissions:
52
- id-token: write
53
- steps:
54
- - uses: astral-sh/setup-uv@v6
55
-
56
- - uses: actions/download-artifact@v4
57
- with:
58
- pattern: wheels-*
59
- path: wheels
60
- merge-multiple: true
61
-
62
- - run: uv publish -v wheels/*
File without changes
File without changes