Skip to content

Commit c056b6a

Browse files
authored
Merge pull request #589 from Pipelex/feature/Chicago
pre-release/v0.18.0b1: Chicago
2 parents 0e4a895 + 8b99102 commit c056b6a

File tree

454 files changed

+29975
-3496
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

454 files changed

+29975
-3496
lines changed

.badges/tests.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"schemaVersion": 1,
33
"label": "tests",
4-
"message": "1802",
4+
"message": "2751",
55
"color": "blue",
66
"cacheSeconds": 300
77
}

.blackboxrules

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
This runs multiple code quality tools:
1717
- Pyright: Static type checking
18-
- Ruff: Fix unised imports, lint, format
18+
- Ruff: Fix unused imports, lint, format
1919
- Mypy: Static type checker
2020

2121
Always fix any issues reported by these tools before proceeding.
@@ -283,7 +283,6 @@ NEVER EVER put more than one TestClass into a test module.
283283
- `tests/unit/` - for unit tests that test individual functions/classes in isolation
284284
- `tests/integration/` - for integration tests that test component interactions
285285
- `tests/e2e/` - for end-to-end tests that test complete workflows
286-
- `tests/test_pipelines/` - for test pipeline definitions (PLX files and their structuring python files)
287286
- Do NOT add `__init__.py` files to test directories. Test directories do not need to be Python packages.
288287
- Fixtures are defined in conftest.py modules at different levels of the hierarchy, their scope is handled by pytest
289288
- Test data is placed inside test_data.py at different levels of the hierarchy, they must be imported with package paths from the root like `from tests.integration.pipelex.cogt.test_data`. Their content is all constants, regrouped inside classes to keep things tidy.
@@ -294,11 +293,12 @@ NEVER EVER put more than one TestClass into a test module.
294293
#### Markers
295294

296295
Apply the appropriate markers:
296+
- "gha_disabled: will not be able to run properly on GitHub Actions"
297297
- "llm: uses an LLM to generate text or objects"
298298
- "img_gen: uses an image generation AI"
299299
- "extract: uses text/image extraction from documents"
300300
- "inference: uses either an LLM or an image generation AI"
301-
- "gha_disabled: will not be able to run properly on GitHub Actions"
301+
- never add "@pytest.mark.dry_runnable" if you haven't set the "inference" marker
302302

303303
Several markers may be applied. For instance, if the test uses an LLM, then it uses inference, so you must mark with both `inference`and `llm`.
304304

.claude/commands/changelog.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Update CHANGELOG.md (Unreleased)
2+
3+
You will be given a block of “changes” immediately after this message (pasted by the user).
4+
Your job: update the repository changelog.
5+
6+
## Target file
7+
- Prefer `CHANGELOG.md` at the repo root.
8+
- If not found, search the repo for a changelog file (common names: CHANGELOG.md, Changelog.md, changelog.md) and use the main one.
9+
10+
## Rules (must follow)
11+
1) Keep existing formatting and conventions of the file.
12+
2) Update ONLY the `Unreleased` section:
13+
- If a `## [Unreleased]` (or `## Unreleased`) section exists, merge the pasted changes into it.
14+
- If it does not exist, create it near the top of the changelog:
15+
- After the main title/introduction
16+
- Before the first released version section
17+
3) Merge behavior:
18+
- If the pasted changes already contain subsection headings like `### Added`, `### Changed`, `### Fixed`, etc., merge bullets under matching subsections in Unreleased.
19+
- If a needed subsection doesn’t exist under Unreleased, create it.
20+
- If the pasted changes do NOT include headings, classify each line into one of:
21+
- Added / Changed / Deprecated / Removed / Fixed / Security
22+
- Use best-effort classification by wording (add/introduce -> Added, fix/bug -> Fixed, remove/delete -> Removed, security/vuln -> Security, deprecate -> Deprecated, otherwise -> Changed)
23+
- If onf of the pasted changes seems worthy of highlighting, propose to the user to do so and get their approval.
24+
4) De-duplicate:
25+
- If a very similar bullet already exists in Unreleased, do not add it again.
26+
5) Preserve order:
27+
- Keep the pasted changes in the order provided within each subsection.
28+
29+
## Output
30+
- Make the minimal necessary edits to the changelog file.
31+
- When done, reply with:
32+
- A brief summary of what you added (by subsection)
33+
- The exact diff or the updated Unreleased section (whichever is shorter).

.claude/commands/docs-uth.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Add a new page to the "Under the Hood" Documentation
2+
3+
Explain the provided feature in the docs: add a new page to @docs/under-the-hood/
4+
5+
Don't present the changes as "changes". Describe as if it were always like this. We are documenting the (new) current solution as the new normal.
6+
7+
---
8+
Use our under-the-hood template:
9+
10+
Structure: Principle → Usage variants → Interfaces → Architecture (Mermaid) → Implementation → Reference tables
11+
12+
Approach:
13+
14+
- Why before how
15+
16+
- Exhaustive case tables (Scenario | Behavior)
17+
18+
- Short code snippets (5-15 lines) for every concept
19+
20+
- Factory-time vs runtime split when relevant
21+
22+
- Interfaces section (if any) covers:
23+
- CLI commands/flags
24+
- API
25+
- Inputs: expected types, sources, validation
26+
- Outputs: return types, side effects, artifacts produced
27+
28+
- !!! warning/info admonitions for gotchas
29+
30+
Tone: Terse, declarative, jargon-friendly (assumes Pydantic/Jinja2 familiarity)
31+
32+
Ends with: Syntax quick-ref + file→purpose table + "Next Steps" links

.cursor/rules/commands.mdc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ description: Guidelines for running commands
1616

1717
This runs multiple code quality tools:
1818
- Pyright: Static type checking
19-
- Ruff: Fix unised imports, lint, format
19+
- Ruff: Fix unused imports, lint, format
2020
- Mypy: Static type checker
2121

2222
Always fix any issues reported by these tools before proceeding.

.cursor/rules/pytest_standards.mdc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ NEVER EVER put more than one TestClass into a test module.
1818
- `tests/unit/` - for unit tests that test individual functions/classes in isolation
1919
- `tests/integration/` - for integration tests that test component interactions
2020
- `tests/e2e/` - for end-to-end tests that test complete workflows
21-
- `tests/test_pipelines/` - for test pipeline definitions (PLX files and their structuring python files)
2221
- Do NOT add `__init__.py` files to test directories. Test directories do not need to be Python packages.
2322
- Fixtures are defined in conftest.py modules at different levels of the hierarchy, their scope is handled by pytest
2423
- Test data is placed inside test_data.py at different levels of the hierarchy, they must be imported with package paths from the root like `from tests.integration.pipelex.cogt.test_data`. Their content is all constants, regrouped inside classes to keep things tidy.
@@ -29,11 +28,12 @@ NEVER EVER put more than one TestClass into a test module.
2928
### Markers
3029

3130
Apply the appropriate markers:
31+
- "gha_disabled: will not be able to run properly on GitHub Actions"
3232
- "llm: uses an LLM to generate text or objects"
3333
- "img_gen: uses an image generation AI"
3434
- "extract: uses text/image extraction from documents"
3535
- "inference: uses either an LLM or an image generation AI"
36-
- "gha_disabled: will not be able to run properly on GitHub Actions"
36+
- never add "@pytest.mark.dry_runnable" if you haven't set the "inference" marker
3737

3838
Several markers may be applied. For instance, if the test uses an LLM, then it uses inference, so you must mark with both `inference`and `llm`.
3939

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
blank_issues_enabled: false
22
contact_links:
3+
# PRERELEASE_LINK (discussions are repo-level, not branch-specific - no URL change needed)
34
- name: 💡 Pipeline requests
45
url: https://github.com/Pipelex/pipelex-cookbook/discussions/categories/ideas
56
about: "Please start an Idea Discussion in the Cookbook."

.github/copilot-instructions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
This runs multiple code quality tools:
1717
- Pyright: Static type checking
18-
- Ruff: Fix unised imports, lint, format
18+
- Ruff: Fix unused imports, lint, format
1919
- Mypy: Static type checker
2020

2121
Always fix any issues reported by these tools before proceeding.
@@ -283,7 +283,6 @@ NEVER EVER put more than one TestClass into a test module.
283283
- `tests/unit/` - for unit tests that test individual functions/classes in isolation
284284
- `tests/integration/` - for integration tests that test component interactions
285285
- `tests/e2e/` - for end-to-end tests that test complete workflows
286-
- `tests/test_pipelines/` - for test pipeline definitions (PLX files and their structuring python files)
287286
- Do NOT add `__init__.py` files to test directories. Test directories do not need to be Python packages.
288287
- Fixtures are defined in conftest.py modules at different levels of the hierarchy, their scope is handled by pytest
289288
- Test data is placed inside test_data.py at different levels of the hierarchy, they must be imported with package paths from the root like `from tests.integration.pipelex.cogt.test_data`. Their content is all constants, regrouped inside classes to keep things tidy.
@@ -294,11 +293,12 @@ NEVER EVER put more than one TestClass into a test module.
294293
#### Markers
295294

296295
Apply the appropriate markers:
296+
- "gha_disabled: will not be able to run properly on GitHub Actions"
297297
- "llm: uses an LLM to generate text or objects"
298298
- "img_gen: uses an image generation AI"
299299
- "extract: uses text/image extraction from documents"
300300
- "inference: uses either an LLM or an image generation AI"
301-
- "gha_disabled: will not be able to run properly on GitHub Actions"
301+
- never add "@pytest.mark.dry_runnable" if you haven't set the "inference" marker
302302

303303
Several markers may be applied. For instance, if the test uses an LLM, then it uses inference, so you must mark with both `inference`and `llm`.
304304

.github/workflows/changelog-check.yml

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,30 @@ on:
44
pull_request:
55
branches:
66
- main
7+
- 'pre-release/v*'
78
types: [opened, synchronize, reopened]
89

910
jobs:
1011
check-changelog:
1112
runs-on: ubuntu-latest
12-
if: startsWith(github.head_ref, 'release/v') # Only run on release branches
1313
steps:
1414
- uses: actions/checkout@v4
1515

1616
- name: Check Changelog Version
1717
run: |
18-
# Get the current branch name and extract version
19-
BRANCH_NAME=${GITHUB_HEAD_REF}
20-
21-
if [[ $BRANCH_NAME =~ ^release/v([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
22-
VERSION="${BASH_REMATCH[1]}"
23-
echo "Checking release branch v$VERSION against changelog..."
24-
25-
# Look for the version in the changelog
26-
if ! grep -q "## \[v$VERSION\] -" CHANGELOG.md; then
27-
echo "❌ Error: No changelog entry found for version v$VERSION"
28-
echo "The following versions are in the changelog:"
29-
grep -E "^## \[v[0-9]+\.[0-9]+\.[0-9]+\]" CHANGELOG.md
30-
echo "Please add a changelog entry for v$VERSION before merging this release to main"
31-
exit 1
32-
else
33-
echo "✅ Changelog entry found for version v$VERSION"
34-
fi
35-
else
36-
echo "❌ Error: Branch name $BRANCH_NAME does not match expected format 'release/vX.Y.Z'"
18+
# Get version from pyproject.toml
19+
VERSION=$(grep -m 1 'version = ' pyproject.toml | cut -d '"' -f 2)
20+
echo "Version from pyproject.toml: $VERSION"
21+
22+
# Look for the version in the changelog
23+
if ! grep -q "## \[v$VERSION\] -" CHANGELOG.md; then
24+
echo "❌ Error: No changelog entry found for version v$VERSION"
25+
echo ""
26+
echo "The following versions are in the changelog:"
27+
grep -E "^## \[v[0-9]+" CHANGELOG.md | head -10
28+
echo ""
29+
echo "Please add a changelog entry: ## [v$VERSION] - YYYY-MM-DD"
3730
exit 1
38-
fi
31+
else
32+
echo "✅ Changelog entry found for version v$VERSION"
33+
fi

.github/workflows/deploy-docs.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- main
7+
- pre-release/v*
78

89
permissions:
910
contents: write
@@ -41,4 +42,11 @@ jobs:
4142
git config --global user.email "github-actions[bot]@users.noreply.github.com"
4243
4344
- name: Deploy documentation
44-
run: make docs-deploy-stable
45+
run: |
46+
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
47+
echo "Deploying stable docs..."
48+
make docs-deploy-stable
49+
elif [[ "${{ github.ref }}" == refs/heads/pre-release/* ]]; then
50+
echo "Deploying beta docs..."
51+
make docs-deploy-beta
52+
fi

0 commit comments

Comments
 (0)