Skip to content

Commit 80451f1

Browse files
authored
204: trial search improvements and PyPI trusted publisher (#146)
* 204: trial search improvements, PyPI trusted publisher, v0.8.10 - Add boolean-aware eligibility query handling for --mutation (OR/AND/NOT) - Add --criteria flag for free-text eligibility search - Push keyword into trial condition for search all relevance - Add PyPI publish via Trusted Publishers (OIDC, no token needed) - Bump version to 0.8.10 - Update README, CHANGELOG, SKILL.md for new features * fix: address Codex review — AND NOT parsing, cross-compile targets, lockfile sync - Handle unary NOT in boolean expressions (e.g., "dMMR AND NOT MSI-H") - Add Rust target to pypi-build toolchain for cross-compilation - Regenerate Cargo.lock to match 0.8.10 version * fix: remove changelog from mkdocs nav (file not in docs/) * serve install.sh from biomcp.org instead of raw GitHub URL Copy install.sh into docs/ so MkDocs serves it at biomcp.org/install.sh. Update all references from the raw.githubusercontent.com URL.
1 parent 0b0ed73 commit 80451f1

File tree

20 files changed

+685
-79
lines changed

20 files changed

+685
-79
lines changed

.github/workflows/release.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212

1313
permissions:
1414
contents: write
15+
id-token: write
1516

1617
jobs:
1718
build:
@@ -131,3 +132,99 @@ jobs:
131132
fail_on_unmatched_files: true
132133
env:
133134
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
135+
136+
pypi-build:
137+
needs: build
138+
strategy:
139+
fail-fast: false
140+
matrix:
141+
include:
142+
- os: ubuntu-latest
143+
target: x86_64-unknown-linux-gnu
144+
- os: ubuntu-latest
145+
target: aarch64-unknown-linux-gnu
146+
- os: macos-latest
147+
target: x86_64-apple-darwin
148+
- os: macos-14
149+
target: aarch64-apple-darwin
150+
- os: windows-latest
151+
target: x86_64-pc-windows-msvc
152+
153+
runs-on: ${{ matrix.os }}
154+
155+
steps:
156+
- uses: actions/checkout@v4
157+
158+
- name: Cache protoc
159+
uses: actions/cache@v4
160+
with:
161+
path: ${{ runner.tool_cache }}/protoc
162+
key: protoc-${{ runner.os }}-${{ runner.arch }}-v28.3
163+
164+
- uses: arduino/setup-protoc@v3
165+
continue-on-error: true
166+
with:
167+
version: "28.3"
168+
repo-token: ${{ secrets.GITHUB_TOKEN }}
169+
170+
- uses: actions/setup-python@v5
171+
with:
172+
python-version: "3.12"
173+
174+
- uses: dtolnay/rust-toolchain@stable
175+
with:
176+
targets: ${{ matrix.target }}
177+
178+
- name: Install Linux cross toolchain
179+
if: runner.os == 'Linux' && matrix.target == 'aarch64-unknown-linux-gnu'
180+
run: |
181+
sudo apt-get update
182+
sudo apt-get install -y gcc-aarch64-linux-gnu
183+
184+
- name: Sync Cargo.toml and pyproject.toml version from release tag
185+
shell: bash
186+
run: |
187+
TAG="${{ github.event.release.tag_name || inputs.tag }}"
188+
VER="${TAG#v}"
189+
if [ -n "$VER" ]; then
190+
python - "$VER" <<'PY'
191+
import pathlib
192+
import re
193+
import sys
194+
195+
version = sys.argv[1]
196+
for path in (pathlib.Path("Cargo.toml"), pathlib.Path("pyproject.toml")):
197+
text = path.read_text()
198+
updated = re.sub(r'^version = ".*"$', f'version = "{version}"', text, count=1, flags=re.M)
199+
path.write_text(updated)
200+
PY
201+
echo "Set Cargo.toml and pyproject.toml version to $VER"
202+
fi
203+
204+
- name: Build wheels
205+
uses: PyO3/maturin-action@v1
206+
with:
207+
command: build
208+
args: --release --target ${{ matrix.target }}
209+
210+
- name: Upload wheel artifact
211+
uses: actions/upload-artifact@v4
212+
with:
213+
name: wheel-${{ matrix.target }}
214+
path: target/wheels/*.whl
215+
216+
pypi-publish:
217+
needs: pypi-build
218+
runs-on: ubuntu-latest
219+
environment: pypi
220+
221+
steps:
222+
- name: Download all wheel artifacts
223+
uses: actions/download-artifact@v4
224+
with:
225+
pattern: wheel-*
226+
path: dist
227+
merge-multiple: true
228+
229+
- name: Publish to PyPI
230+
uses: pypa/gh-action-pypi-publish@release/v1

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## 0.9.0
4+
5+
- Added boolean-aware eligibility query handling for `search trial --mutation` (supports `OR`/`AND`/`NOT` operator expressions).
6+
- Added `search trial --criteria` for explicit eligibility-text matching in ClinicalTrials.gov workflows.
7+
- Improved `search all` trial relevance by pushing disease+keyword intent into trial condition queries.
8+
- Added PyPI install path documentation and release pipeline updates for publishing `biomcp-cli`.
9+
310
## 0.8.4
411

512
- Simplified CI/CD workflow triggers to avoid redundant post-merge runs.

0 commit comments

Comments
 (0)