2.4 KiB
2.4 KiB
name, description, license, allowed-tools, metadata
| name | description | license | allowed-tools | metadata | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sdk-version-upgrade | Podniesienie wersji SDK lub biblioteki wraz z migracją wywołań API - planowanie zmiany, kolejność edycji, obsługa breaking changes i kryteria akceptacji. Użyj gdy zadanie mówi o bumpie wersji, upgradzie SDK, migracji do nowego major release lub usunięciu deprecated API. | Apache-2.0 |
|
|
Upgrade wersji SDK
Zasada nadrzędna
Upgrade to dwie rozłączne zmiany: (a) deklaracja wersji w pliku zależności, (b) dostosowanie kodu do nowego API. Deklarację wersji ustawia deterministycznie silnik pipeline'u - Twoim zadaniem jest wyłącznie (b). Nie edytuj ręcznie plików zależności, chyba że plan mówi inaczej.
Kolejność pracy
- Przeczytaj notatkę migracyjną dla docelowej wersji z katalogu
references/tego skilla. Jeśli brakuje notatki dla danej biblioteki - zatrzymaj się i zgłośrequires_human. Nie migruj API "z pamięci modelu". - Zbuduj mapę zmian:
stary symbol -> nowy symbol -> plik(i) do zmiany. - Edytuj plik po pliku, najmniejszą możliwą zmianą (
replace_in_file, nie przepisywanie pliku). - Po każdym pliku uruchom weryfikację (
run_verification). Czerwony wynik naprawiaj natychmiast, zanim przejdziesz dalej - kumulowanie błędów uniemożliwia ustalenie przyczyny. - Na koniec sprawdź, czy nie zostały użycia starego API:
search_repopo każdym symbolu z mapy.
Breaking changes - reguły decyzyjne
| Sytuacja | Działanie |
|---|---|
| Zmiana nazwy klasy/metody, ta sama semantyka | Migruj bezpośrednio |
| Zmiana nazw parametrów | Migruj, zachowując wartości wywołań 1:1 |
| Zasób wymaga teraz zamknięcia / context managera | Użyj with, nie dodawaj ręcznego close() |
| Nowy wymagany parametr bez sensownej wartości domyślnej | requires_human - to decyzja biznesowa |
| Usunięta funkcjonalność bez zamiennika | requires_human, nie obchodź problemu własną implementacją |
Kryteria akceptacji
- Wszystkie testy repozytorium zielone.
- Zero wystąpień starych symboli poza plikami changelog/dokumentacji.
- Diff nie zawiera zmian niezwiązanych z migracją.
- Deklarowana wersja zależności odpowiada wersji docelowej z zadania.