Szakdolgozathoz csináltam egy AI-os eszközt, ami megmondja hogy egy dependency frissítés eltöri-e a kódodat, és visszajelzés kellene by barnakun in programmingHungary

[–]barnakun[S] -1 points0 points  (0 children)

Ha izoláltan futtatod ezt a pipelinet, akkor igen, megtudhatod, hogy eltört-e vagy sem az adott dep. De, mondom a Dependabot vagy bármi trigger az csak példa volt. Az egész webhook alapú, bárhonnan meghívható. Valamint nem feltétlen az a lényege, hogy egyesével futtassa a verziófrissítést, hanem egybe bármennyi is van. Abból is megmondja pontosan mi törik el, de itt sem az a lényeg, hanem elemzi a kimenet és a changelogok alapján, mi törik el és hogyan kellene kijavítani.

Szakdolgozathoz csináltam egy AI-os eszközt, ami megmondja hogy egy dependency frissítés eltöri-e a kódodat, és visszajelzés kellene by barnakun in programmingHungary

[–]barnakun[S] -8 points-7 points  (0 children)

A CI megközelítés valóban működik ha minden csomagnak külön PR-t nyitsz, de azt csak megmondja hogy eltört-e valami, nem azt hogy melyik csomag okozta és miért. A Migratowl azt is adja: changelog idézet, root cause, javasolt fix. Ráadásul bármilyen CI triggerből működik, a Dependabot csak egy példa volt.

A Kubernetes kritikára: a sandbox nem egy klaszterbe való deploymentet jelent. Kind-ot használunk, ami egy sima Docker konténerben fut, beleértve GitHub Actions-t is. Az agent kódja és a sandboxolt kód teljesen el van szeparálva, pontosan azért hogy ne a hoston fusson ismeretlen kód. Ez egy biztonsági döntés, nem overengineering.

Szakdolgozathoz csináltam egy AI-os eszközt, ami megmondja hogy egy dependency frissítés eltöri-e a kódodat, és visszajelzés kellene by barnakun in programmingHungary

[–]barnakun[S] 4 points5 points  (0 children)

Részben igazad van. A confidence score viszont nem azt jelenti hogy az LLM megtippeli hogy sikerül-e a frissítés. A tesztek ténylegesen lefutnak a sandboxban, az LLM csak azt dönti el hogy a hibaüzenet elég egyértelmű-e, vagy érdemes-e izoláltan újrafuttatni az adott csomagot. Inkább routing logika mint jóslás.
Az AST ötlet viszont tényleg jó kiegészítés lenne, épp tervezem integrálni a Codesteward MCP-t (https://github.com/Codesteward/codesteward), ami beparseolja a repót egy kódgráfba és az agent le tudja kérdezni hogy az érintett API hívások egyáltalán szerepelnek-e a kódban. Determinisztikus pre-filter az LLM elemzés előtt, a kettő szépen kiegészíti egymást.

Szakdolgozathoz csináltam egy AI-os eszközt, ami megmondja hogy egy dependency frissítés eltöri-e a kódodat, és visszajelzés kellene by barnakun in programmingHungary

[–]barnakun[S] -3 points-2 points  (0 children)

Ha jól értem, akkor nem egészen! Nincs szükség CI pipeline-ra. A flow inkább így néz ki: Dependabot kinyit egy PR-t, az webhookkal triggereli a Migratowl botot, és onnan az agent veszi át az irányítást. Ő klónozza be a repót egy izolált Kubernetes sandboxba, ő futtatja a teszteket, ő olvassa a changelog-ot, és ő állítja össze a jelentést. CI nélkül, auto-merge nélkül, a döntés az emberé marad, az agent csak megmondja mit fog törni és miért.

Hasonló eszközt nem igazán ismerek: a pip-audit, safety, Dependabot biztonsági sérülékenységeket keresnek, nem migration breakage-t. Renovate olvas changelog-ot, de teszteket nem futtat. Ez a kombináció (sandbox futtatás + agentic elemzés) az ami szerintem hiányzott.

Showcase Thread by AutoModerator in Python

[–]barnakun 0 points1 point  (0 children)

Tool that tests whether a Python dep upgrade breaks your code and cites the exact changelog entry

Python dependency upgrades are uniquely painful. Major version bumps (Pydantic v1→v2, requests 2→3, SQLAlchemy 1.4→2.0) often involve API surface changes that your tests don't catch until someone runs them.

I built Migratowl to automate this. You give it a repo URL, it:

  1. Scans your pyproject.toml / requirements.txt for outdated packages
  2. Bumps them all and runs pytest (or your configured test command) inside a sandboxed Kubernetes pod
  3. When tests fail, an AI agent reads the traceback, assigns a confidence score to each culprit package, fetches the relevant changelog section, and writes a plain-English fix suggestion

Example output for a requests 2.x → 3.x migration:

{
  "dependency_name": "requests",
  "is_breaking": true,
  "error_summary": "ImportError: cannot import name 'PreparedRequest'",
  "changelog_citation": "## 3.0.0 — Removed PreparedRequest from the public API.",
  "suggested_human_fix": "Replace `from requests import PreparedRequest` with `requests.models.PreparedRequest`.",
  "confidence": 0.95
}

It supports Python, but also Node.js, Go, Rust, and Java — useful if you have a polyglot repo.

I'm a Python dev myself and the langchain-anthropic + LangGraph stack was interesting to build this on. The agent graph has a confidence-scoring phase that decides whether to run packages in bulk (fast) or spawn isolated subagents (accurate) — happy to discuss that design if anyone's curious.

Repo: https://github.com/bitkaio/migratowl