KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Pakowanie biblioteki
Czego się nauczysz
- Prześledź źródła i wyjaśnij opisany kontrakt.
- W PackLibrary porównaj wejścia i artefakty pakowania. Wskaż krok, który weryfikuje integralność przed użyciem.
Wymagania wstępne
- Ukończ Podstawy i wcześniejszy poziom tej ścieżki.
Wyjaśnienie krok po kroku
Pakowanie biblioteki i pakowanie pluginu to różne operacje. Zamrożony zakres KretLib to offline z blokadą i skrótami. Opcjonalny rejestr HTTPS nie daje zgody na publikację i nie zmienia praw wykonania kodu zależności.
Praca z kodem źródłowym
Paczka biblioteki `.klibpkg` i rozstrzyganie wersji
`kret lib pack` tworzy paczkę biblioteki (ZIP z `library.klib` i `Script/**.krs`; tożsamością jest skrót listy plików). `kret lib resolve --update` ponownie rozstrzyga wersje. Paczki bibliotek **nie są podpisywane** (brak podpisów KretLib — ograniczenie SDK).
module Main
// Projekt wymaga biblioteki mathx; textutil przychodzi jako jej zależność i nie jest tu używana bezpośrednio.
fn Start() -> String {
let values = [4, 8, 15, 16, 23, 42]
let text = MathX.describe(values)
log.info(text)
return text
}
fn Shutdown() {
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
module MainDeklaracja modułu KretS; porównaj nazwę z nazwą pliku.Pusta linia oddziela fragmenty źródła.// Projekt wymaga biblioteki mathx; textutil przychodzi jako jej zależność i nie jest tu używana bezpośrednio.Komentarz autora; nie jest wykonywany.fn Start() -> String {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.let values = [4, 8, 15, 16, 23, 42]Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.let text = MathX.describe(values)Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.log.info(text)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.return textZwrócenie wartości z funkcji; nie jest zapisem do dziennika.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.fn Shutdown() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.}Zamknięcie struktury otwartej we wcześniejszych liniach.
Oczekiwany wynik: Kod 0 w obu krokach; w `{OUT}` powstaje `mathx-1.2.0.klibpkg`.
Typowy błąd: Liczenie na automatyczny wybór wersji przedpremierowej: `>=1.2.0 <2.0.0` **nie** dopuszcza `2.0.0-rc.1` (wariant bezpieczny do decyzji KCS-08).
Instrukcja, wersje i zapisane wyniki →Materiały źródłowe do tego tematu
Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.
KretLib — zgodność i wersje / compatibility and versions
KretLib — zgodność i wersje / compatibility and versions
Polski
- Zamrożony zakres: offline + blokada + skróty. Rejestr testowany tylko z serwerem testowym (rzeczywisty: NOT_RUN).
- Ograniczenie tej rundy (EXP-F02):
kretui-host --self-testnie dołącza bibliotek (KCS-KRS-1003).
KretLib — kody diagnostyczne / diagnostic codes
KretLib — kody diagnostyczne / diagnostic codes
| Kod / code | Polski |
|---|---|
KCS-KLB-0001 | uszkodzony / niekanoniczny plik blokady lub indeksu (np. powtórzone pole) |
KCS-KLB-0003 | brak biblioteki |
KCS-KLB-0004 | konflikt wersji / cykl |
KCS-KLB-0007 | tylko wydawca spoza polityki spełnia wymaganie |
KCS-KLB-0008 | biblioteka nie jest zainstalowana (uruchom instalację) |
KCS-KLB-0009 | limit kroków / liczby bibliotek |
Format: kret-diagnostics/1 (kod, plik, wiersz, kolumna, zakres) / (code, file, line, column, range).
KretLib — bezpieczeństwo / security
KretLib — bezpieczeństwo / security
Polski
- Brak podpisów bibliotek — skrót gwarantuje tę samą treść, nie autora.
- Archiwa
.klibpkgtraktowane jako niezaufane (12 wrogich przypadków w testach SDK). - Rejestr: tylko https, bez danych logowania, bez przekierowań.
KretLib — rozwiązywanie problemów / troubleshooting
KretLib — rozwiązywanie problemów / troubleshooting
| Problem (PL) | Rozwiązanie (PL) |
|---|---|
KCS-KLB-0008 przy kret check | najpierw kret lib restore <projekt> |
KretLib — samouczek ADVANCED
KretLib — samouczek ADVANCED
Status 1.0: `FROZEN_SUPPORTED_SUBSET` — zamrożony dokładnie opisany zakres; reszta poza kontraktem 1.0. Gramatyka/wersja: klib "1.0" · klibs "1.0". Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.Cel: integracja z Core i innymi językami, KretDB, bezpieczny dostęp do API, pluginy, stan, testy, diagnostyka, uprawnienia.
Narzędzia: kret = <SDK>\Compiler\kret.exe (SDK 1.0.0-rc.3+kret.local.3), kretui-host = <SDK>\UiHost\kretui-host.exe. {DATA}/{OUT} = nowe, puste katalogi.
1. Paczka biblioteki .klibpkg i rozstrzyganie wersji (KRETLIB-A01-PackLibrary)
Projekt: ../../Examples/ADVANCED_PackLibrary/ · klasyfikacja VALIDATION_ONLY · Playground LOCAL_VALIDATE
Kroki (katalog roboczy: katalog przykładu):
kret lib pack vendor/mathx -o {OUT}/mathx-1.2.0.klibpkgkret lib resolve . --update
Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.
Ćwiczenie i sprawdzenie wiedzy
W PackLibrary porównaj wejścia i artefakty pakowania. Wskaż krok, który weryfikuje integralność przed użyciem.
Szkic nie jest wysyłany na serwer i znika po opuszczeniu lekcji. Przed wyjściem możesz go skopiować.Podpowiedzi
- KretLib zarządza bibliotekami KretS: manifest biblioteki (`library.klib`), wymagania projektu (`project.klibs`), rozstrzyganie wersji, plik blokady ze skrótami SHA-256, instalacja offline do `Libs/` i opcjonalny rejestr HTTPS. Zamrożony zakres: biblioteki offline z blokadą i skrótami. Biblioteka **nie deklaruje uprawnień**.
- Odczytaj ograniczenia i oczekiwane błędy z dostarczonego samouczka; check i run są oddzielnymi krokami.
Omówienie rozwiązania
Odpowiedź oprzyj na pokazanym kodzie i rozdziale źródłowym. Pakowanie biblioteki i pakowanie pluginu to różne operacje. Zamrożony zakres KretLib to offline z blokadą i skrótami. Opcjonalny rejestr HTTPS nie daje zgody na publikację i nie zmienia praw wykonania kodu zależności.
Podsumowanie i następny krok
Pakowanie biblioteki i pakowanie pluginu to różne operacje. Zamrożony zakres KretLib to offline z blokadą i skrótami. Opcjonalny rejestr HTTPS nie daje zgody na publikację i nie zmienia praw wykonania kodu zależności.
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →