FR-190 開發環境:套件改走本機路徑

主系統與 Agent 開發期都不用 Nexus 版號,改指到套件 repo 的工作區 ~/Projects/Jedicogy/module/jedi-python-package/.worktrees/CM-3765(develop 模式)。 改動不 commit:兩個 repo 的 pyproject.toml、poetry.lock 都設了 assume-unchanged,git status 看不到。

§1

改了什麼

repo 檔 改動
主系統 pyproject.toml [project] dependencies 的 jedi-remote-agent==…、jedi-agent-protocol==… 兩行註解掉;dev path 區塊 jedi-remote-agent 取消註解並新增 jedi-agent-protocol,都指向工作區
Agent pyproject.toml jedi-agent-protocol==… 註解掉;[tool.poetry.group.dev.dependencies] 加 path 行(放 dev group 才會被 poetry 鎖進去;Agent 不裝 jedi-remote-agent)
§2

怎麼驗

# 主系統(在 BE 工作區)
.venv/bin/python -c 'import jedi_agent_protocol, jedi_remote_agent; print(jedi_agent_protocol.__file__, jedi_remote_agent.__file__)'
# Agent
env -u VIRTUAL_ENV poetry run python -c 'import jedi_agent_protocol; print(jedi_agent_protocol.__file__)'

路徑必須在 jedi-python-package/.worktrees/CM-3765/ 底下;落在 site-packages 就是讀到 Nexus 舊版。

§3

陷阱

  • 從 BE session 跑別目錄的 poetry 一律 env -u VIRTUAL_ENV,否則套件裝進 BE venv。
  • 主系統所有工作區的 .venv 都連到同一個 compliance-manager-be/.venv,別的工作坊跑 poetry 會蓋掉;開工前先跑上面的 import 驗證指令,路徑不在自己的工作區就重跑 poetry update <兩支>。
  • poetry update 一律指定套件名。這次因 path 依賴,lock 重解時把幾支第三方/jedi 套件版號也回到 pyproject 釘的版(如 jedi-common 1.4.2→1.4.1);還原釘版後會一併回來。
§4

還原(收尾卡 P3-2 做)

  1. 兩個 repo 各 git update-index --no-assume-unchanged pyproject.toml poetry.lock
  2. git checkout以外的方式還原:手動把 pin 行取消註解、path 行改回註解(Agent 刪掉 dev group 那行),pin 版號改成本案發版後的新版號
  3. poetry update jedi-agent-protocol jedi-remote-agent(Agent 只更新 protocol),再驗 import 路徑已回 site-packages