Skip to content

Commit 30fdc1e

Browse files
lchoquelthomashebrardclaude
authored
Release/v0.8.0 (#76)
* docs/README-Add-link-to-VS-Code-extension (#35) * Fix/readme (#36) * fix readme * bump version * Feature/docs fixes and cleanups (#40) * Add docs for github commands * swe_from_file_cmd use PipeCode the same way as swe_from_repo_cmd added some pipe codes to enum * Renamed write_changelog_v2 to write_changelog_enhanced * Rename check_docs_consistency to check_doc_inconsistencies * fix/cursor_rules (#41) * fix/cursor_rules * fix rules * Better-extension-and-Blackbox-support (#42) * Feature/more GitHub power (#44) * Split CLI code of all commands: ### Changed - **Major CLI restructuring**: Reorganized flat command structure into logical command groups for better organization and maintainability - `repox` → `repox convert` (repository processing commands) - `swe-*` commands → `swe *` subcommands (e.g., `swe-from-repo` → `swe from-repo`) - `validate` → `validation validate` (with additional `validation dry-run` and `validation check-config` options) - **Improved CLI architecture**: Extracted command implementations from main CLI module into co-located packages (`cocode/repox/repox_cli.py`, `cocode/swe/swe_cli.py`, etc.) for better code organization - **Updated documentation**: All examples and references updated to reflect new command structure ### Added - Command group structure with `app.add_typer()` for better CLI organization - `cocode/common.py` module with shared utilities (`PipeCode` enum, `validate_repo_path()`, `get_output_dir()`) - Alternative command names for flexibility (e.g., `repox repo` alongside `repox convert`) ### Deprecated - Direct `cocode validate` command (still works but shows deprecation notice; use `cocode validation validate` instead) **Migration**: Replace hyphens with spaces in SWE commands (e.g., `swe-from-repo` → `swe from-repo`) and use `repox convert` instead of `repox`. All old functionality remains available in the new structure. * use github repos with temp clones * Fix linting * Cleanup imports * Lint format * Adapt to New inference backend config (#48) - Bump `pipelex` to `v0.10.2`: See `Pipelex` changelog [here](https://docs.pipelex.com/changelog/) * Last step to remove redundancies in finalized changelog (#50) * fix/clean cli commands (#51) * fix/clean cli commands * update changelog * remove blackbox * Fix/clean cli commands (#53) * Feature/new cmd analyze (#55) * Duplicate changelog as analyze * cli to Analyze * Last step to remove redundancies in finalized changelog (#56) * Refactor/move pipelines (#57) * refactor/For Pipelex 0.11.x * WIP update Pipelex * Update config and libraries * Ignore patterns OK * Rename ignore_patterns to exclude_patterns * Cleanup dependencies * Move pipelines * Adapt to Pipelex * Pipelex deb dev * Restore gemini via Pipelex inference * Adapt to pipelex new syntax for multiplicity (#59) * Adapt to pipelex new syntax for multiplicity * Adapt more details * Agent rules * Improve changelog pipeline and Bump Pipelex (#60) * Fix/changelog duplicate bundles (#63) * Fix dupe biundles * - Upgraded `pipelex` dependency from to `0.15.2` * Feature/check is initialized (#65) * Before tests, check_is_initialized * update pipelex and pytest * cleanup imports * Pin pipelex to released 0.31.0 and bump pyright to 1.1.410 (#72) * Use Pipelex Gateway (local dep) * PLX fixes related to new checks * Update for Pipelex * Use feature/Chicago * Pipelex dep * Cleanup imports * CI --disable-inference to run without Pipelex Service agreement + cleaned up agent rules * Use Chicago b2 * Rename .plx to .mthds, reorganize inference deck, and remove redundant AI instruction files Migrate pipeline files from .plx to .mthds extension, restructure the inference deck into separate files (llm, img_gen, extract, custom), update backend configs, and consolidate AI coding instructions into CLAUDE.md by removing .blackboxrules, .cursor/rules, .windsurfrules.md, AGENTS.md, and .github/copilot-instructions.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix NameError in changelog_struct by using builtin list type Replace typing.List with builtin list[str] and remove unnecessary from __future__ import annotations to fix annotation resolution failure after pipelex update. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update pipelex dependency to feature/Chicago branch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update stuff * Consume pipelex public validation API in validation CLI and tests Replace the hand-rolled load_all_pipeline_libraries / dry_run_all_pipes helpers with pipelex's new public composers: load_libraries_and_activate (the open/set/load ceremony) and BundleValidator.validate_current_library (no-teardown sweep of the active library). Rewire the validation CLI commands, the test conftest (both the inference and --disable-inference branches), and the test_basic dry-run smoke test. Update the conftest disable-inference branch to the current Pipelex.make(needs_inference=False) API in place of the removed disable_inference kwarg. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Enhance model deck configurations and add runtime trace ignore patterns * Pin pipelex to released 0.31.0 and bump pyright to 1.1.410 Switch the pipelex dependency from the local editable ../pipelex source to the published 0.31.0 release on PyPI and drop the [tool.uv.sources] override. Raise the pyright dev floor to 1.1.410 and regenerate uv.lock accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Replace removed llm_for_large_codebase preset and tidy test bootstrap Point doc_proofread and text_utils pipes at the engineering-codebase-analysis preset (the old llm_for_large_codebase alias was removed with base_deck.toml under pipelex 0.31). Also align test fixtures on PIPELINE_LIBRARY_DIRS_FOR_TESTS, bump best-gemini to gemini-pro-latest, and drop the stale hello_world xfail. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Louis Choquel <8851983+lchoquel@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: track pipelex keyword-only refactor + migrate to PipelexMTHDSProtocol (#75) * chore: track pipelex keyword-only refactor + migrate to PipelexMTHDSProtocol Pin pipelex to the keyword-only-arguments refactor branch (git rev) and migrate the SWE runner off the removed PipelexRunner class. - pyproject/uv.lock: pipelex ==0.32.1 -> ==0.33.0 via git rev 529b9082 - swe_cmd.py + integration test: PipelexRunner -> PipelexMTHDSProtocol, execute_pipeline() -> execute() (response.pipe_output unchanged) make agent-check and agent-test pass; uv lock --check is consistent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: bump pinned pipelex rev to 755b8211 (keyword-only arg reorderings) Tracks the latest pipelex keyword-only refactor commit, which reorders several function signatures to keyword-only. No call-site changes needed here — every call site already passes the affected args by keyword. agent-check + agent-test green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: re-pin pipelex to 0e32c8c0 (positional-subject consolidation) Bumps the pinned pipelex git rev 755b8211 -> 0e32c8c0. That commit makes all remaining non-subject params keyword-only (no reordering); all call sites here already pass by keyword, so this is a no-op bump. agent-check + agent-test green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Refactor configuration and update dependencies - Removed experimental feature flags from pipelex.toml. - Updated VSCode settings to enable format on save and organize imports. - Cleaned up ai_instruction_update.mthds by removing combined_output. - Adjusted changelog.mthds template formatting for consistency. - Removed combined_output from swe_docs.mthds. - Renamed TestingStrategyDoc to TestStrategyDoc in swe_docs.py and updated references. - Updated pipelex.toml to remove pipeline tracking and reporting flags. - Specified exact version for ruff in pyproject.toml and updated dependencies. - Updated uv.lock to reflect changes in package versions and sources. * use pipelex from pypi --------- Co-authored-by: Louis Choquel <8851983+lchoquel@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Release v0.8.0 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CofmZexDhCrSnqmwsdAGWm --------- Co-authored-by: Thomas Hebrard <thomas@pipelex.com> Co-authored-by: Louis Choquel <8851983+lchoquel@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent e971202 commit 30fdc1e

12 files changed

Lines changed: 88 additions & 79 deletions

File tree

.pipelex/pipelex.toml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,6 @@ console_print_target = "stdout"
140140
# Log levels for specific packages (use "-" instead of "." in package names)
141141
pipelex = "INFO"
142142

143-
####################################################################################################
144-
# Feature Config
145-
####################################################################################################
146-
147-
[pipelex.feature_config]
148-
# WIP/Experimental feature flags
149-
is_reporting_enabled = true
150-
151143
####################################################################################################
152144
# Reporting Config
153145
####################################################################################################

.vscode/settings.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
{
2+
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
23
"[python]": {
3-
"editor.defaultFormatter": "charliermarsh.ruff"
4+
"editor.defaultFormatter": "charliermarsh.ruff",
5+
"editor.formatOnSave": true,
6+
"editor.codeActionsOnSave": {
7+
"source.organizeImports": "explicit",
8+
"source.fixAll": "explicit"
9+
}
410
},
511
"ruff.configuration": "--config=pyproject.toml",
612
"mypy.enabled": true,
713
"mypy.runUsingActiveInterpreter": true,
814
"search.exclude": {
915
".mypy_cache/*": true,
10-
"**/dev_context": true
1116
},
1217
"files.exclude": {
1318
"**/__pycache__": true,

CHANGELOG.md

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

3+
## [v0.8.0] - 2026-07-06
4+
5+
### Added
6+
- **Editor:** Added VS Code workspace settings (`.vscode/settings.json`) to auto-format code and organize imports on save via Ruff, and set the default Python interpreter.
7+
8+
### Changed
9+
- **Dependencies:** Upgraded `pipelex` to `0.37.0` (enforces keyword-only arguments across the public API) and pinned `ruff` to `0.14.13`.
10+
- **Core:** Migrated the SWE pipeline runner to the new MTHDS Protocol, replacing `PipelexRunner`/`execute_pipeline()` with `PipelexMTHDSProtocol`/`execute()` across `swe_cmd.py` and integration tests.
11+
- **Pipelines:** Renamed `TestingStrategyDoc` to `TestStrategyDoc` and its `testing_strategy` field to `test_strategy` in the `swe_docs` pipeline schema.
12+
13+
### Fixed
14+
- **Pipelines:** Corrected markdown list formatting in the `swe_diff/changelog.mthds` template by removing an errant leading space.
15+
16+
### Removed
17+
- **Config:** Removed the experimental `[pipelex.feature_config]` section and its flags (`is_reporting_enabled`, `is_pipeline_tracking_enabled`) from `pipelex.toml` files.
18+
- **Pipelines:** Removed `combined_output` definitions from the `ai_instruction_update.mthds` and `swe_docs.mthds` pipelines.
19+
320
## [v0.7.1] - 2026-06-09
421

522
### Changed

cocode/pipelines/doc_update/ai_instruction_update.mthds

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,6 @@ branches = [
282282
{ pipe = "analyze_claude_md_changes", result = "claude_analysis" },
283283
{ pipe = "analyze_cursor_rules_changes", result = "cursor_analysis" },
284284
]
285-
combined_output = "ai_instruction_update.AIInstructionParallelResults"
286285

287286
[pipe.ai_instruction_update]
288287
type = "PipeSequence"

cocode/pipelines/swe_diff/changelog.mthds

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,42 +46,42 @@ template = """
4646
{% if structured_changelog.added %}
4747
### Added
4848
{% for item in structured_changelog.added %}
49-
- {{ item }}
49+
- {{ item }}
5050
{% endfor %}
5151
{% endif %}
5252

5353
{% if structured_changelog.changed %}
5454
### Changed
5555
{% for item in structured_changelog.changed %}
56-
- {{ item }}
56+
- {{ item }}
5757
{% endfor %}
5858
{% endif %}
5959

6060
{% if structured_changelog.fixed %}
6161
### Fixed
6262
{% for item in structured_changelog.fixed %}
63-
- {{ item }}
63+
- {{ item }}
6464
{% endfor %}
6565
{% endif %}
6666

6767
{% if structured_changelog.removed %}
6868
### Removed
6969
{% for item in structured_changelog.removed %}
70-
- {{ item }}
70+
- {{ item }}
7171
{% endfor %}
7272
{% endif %}
7373

7474
{% if structured_changelog.deprecated %}
7575
### Deprecated
7676
{% for item in structured_changelog.deprecated %}
77-
- {{ item }}
77+
- {{ item }}
7878
{% endfor %}
7979
{% endif %}
8080

8181
{% if structured_changelog.security %}
8282
### Security
8383
{% for item in structured_changelog.security %}
84-
- {{ item }}
84+
- {{ item }}
8585
{% endfor %}
8686
{% endif %}
8787
"""

cocode/pipelines/swe_docs/swe_docs.mthds

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ branches = [
4747
{ pipe = "extract_test_strategy", result = "test_strategy" },
4848
{ pipe = "extract_collaboration", result = "collaboration" },
4949
]
50-
combined_output = "swe.OnboardingDocumentation"
5150

5251
[pipe.extract_fundamentals]
5352
type = "PipeLLM"

cocode/pipelines/swe_docs/swe_docs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ class CodingStandardsDoc(StructuredContent):
7575
)
7676

7777

78-
class TestingStrategyDoc(StructuredContent):
78+
class TestStrategyDoc(StructuredContent):
7979
test_pyramid_overview: Optional[str] = Field(
8080
None,
8181
description="Unit / integration / e2e boundaries and philosophy",
@@ -137,5 +137,5 @@ class OnboardingDocumentation(StructuredContent):
137137
fundamentals: Optional[FundamentalsDoc] = Field(None, description="Core project context and domain primer")
138138
environment_build: Optional[EnvironmentBuildDoc] = Field(None, description="Local environment requirements and build steps")
139139
coding_standards: Optional[CodingStandardsDoc] = Field(None, description="Style, linting, typing and security checks")
140-
testing_strategy: Optional[TestingStrategyDoc] = Field(None, description="Testing philosophy, organization, commands and targets")
140+
test_strategy: Optional[TestStrategyDoc] = Field(None, description="Testing philosophy, organization, commands and targets")
141141
collaboration: Optional[CollaborationDoc] = Field(None, description="Branching, PR flow, issue templates and licenses")

cocode/swe/swe_cmd.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pipelex.core.stuffs.stuff_factory import StuffFactory
1111
from pipelex.hub import get_required_concept
1212
from pipelex.pipe_run.pipe_run_mode import PipeRunMode
13-
from pipelex.pipeline.runner import PipelexRunner
13+
from pipelex.pipeline.runner import PipelexMTHDSProtocol
1414
from pipelex.reporting.cost_report_renderer import render_cost_report_for_output
1515
from pipelex.tools.misc.file_utils import ensure_path, failable_load_text_from_path, load_text_from_path, save_text_to_path
1616

@@ -32,8 +32,8 @@ async def _execute_pipeline(
3232
inputs: Any = None,
3333
pipe_run_mode: PipeRunMode | None = None,
3434
) -> PipeOutput:
35-
runner = PipelexRunner(pipe_run_mode=pipe_run_mode)
36-
response = await runner.execute_pipeline(pipe_code=pipe_code, inputs=inputs)
35+
runner = PipelexMTHDSProtocol(pipe_run_mode=pipe_run_mode)
36+
response = await runner.execute(pipe_code=pipe_code, inputs=inputs)
3737
return response.pipe_output
3838

3939

pipelex.toml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,3 @@ api_key_method = "env"
1212

1313
[cogt.extract_config]
1414
page_output_text_file_name = "page_text.md"
15-
16-
[pipelex.feature_config]
17-
# WIP/Experimental feature flags
18-
is_pipeline_tracking_enabled = false
19-
is_reporting_enabled = true

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "cocode"
3-
version = "0.7.1"
3+
version = "0.8.0"
44
description = "Cocode is the friend of your code"
55
authors = [{ name = "Evotis S.A.S.", email = "evotis@pipelex.com" }]
66
maintainers = [{ name = "Pipelex staff", email = "oss@pipelex.com" }]
@@ -18,7 +18,7 @@ classifiers = [
1818
]
1919

2020
dependencies = [
21-
"pipelex[anthropic,google,google-genai,bedrock]==0.32.1",
21+
"pipelex[anthropic,google,google-genai,bedrock]==0.37.0",
2222
"PyGithub==2.4.0",
2323
]
2424

@@ -38,7 +38,7 @@ dev = [
3838
"pytest-cov>=6.1.1",
3939
"pytest-mock>=3.14.0",
4040
"pytest-sugar>=1.0.0",
41-
"ruff>=0.6.8",
41+
"ruff==0.14.13",
4242
"types-aioboto3[bedrock,bedrock-runtime]>=13.4.0",
4343
"types-aiofiles>=24.1.0.20240626",
4444
"types-markdown>=3.6.0.20240316",

0 commit comments

Comments
 (0)