Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Pakowanie biblioteki

ADVANCED40 min
Postęp nauki 0 / 3
Zaloguj się na konto użytkownika, aby zachować postęp.

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.

  1. module MainDeklaracja modułu KretS; porównaj nazwę z nazwą pliku.
  2. Pusta linia oddziela fragmenty źródła.
  3. // Projekt wymaga biblioteki mathx; textutil przychodzi jako jej zależność i nie jest tu używana bezpośrednio.Komentarz autora; nie jest wykonywany.
  4. fn Start() -> String {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  5. let values = [4, 8, 15, 16, 23, 42]Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.
  6. let text = MathX.describe(values)Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.
  7. log.info(text)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. return textZwrócenie wartości z funkcji; nie jest zapisem do dziennika.
  9. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  10. Pusta linia oddziela fragmenty źródła.
  11. fn Shutdown() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  12. }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-test nie dołącza bibliotek (KCS-KRS-1003).
Otwórz cały rozdział ze źródłem →
KretLib — kody diagnostyczne / diagnostic codes

KretLib — kody diagnostyczne / diagnostic codes

Kod / codePolski
KCS-KLB-0001uszkodzony / niekanoniczny plik blokady lub indeksu (np. powtórzone pole)
KCS-KLB-0003brak biblioteki
KCS-KLB-0004konflikt wersji / cykl
KCS-KLB-0007tylko wydawca spoza polityki spełnia wymaganie
KCS-KLB-0008biblioteka nie jest zainstalowana (uruchom instalację)
KCS-KLB-0009limit kroków / liczby bibliotek

Format: kret-diagnostics/1 (kod, plik, wiersz, kolumna, zakres) / (code, file, line, column, range).

Otwórz cały rozdział ze źródłem →
KretLib — bezpieczeństwo / security

KretLib — bezpieczeństwo / security

Polski

  • Brak podpisów bibliotek — skrót gwarantuje tę samą treść, nie autora.
  • Archiwa .klibpkg traktowane jako niezaufane (12 wrogich przypadków w testach SDK).
  • Rejestr: tylko https, bez danych logowania, bez przekierowań.
Otwórz cały rozdział ze źródłem →
KretLib — rozwiązywanie problemów / troubleshooting

KretLib — rozwiązywanie problemów / troubleshooting

Problem (PL)Rozwiązanie (PL)
KCS-KLB-0008 przy kret checknajpierw kret lib restore <projekt>
Otwórz cały rozdział ze źródłem →
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):

  1. kret lib pack vendor/mathx -o {OUT}/mathx-1.2.0.klibpkg
  2. kret lib resolve . --update

Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.

Otwórz cały rozdział ze źródłem →

Ć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.

Które podsumowanie jest zgodne z lekcją?

To quiz o opisanym kontrakcie. Nie kompiluje kodu, nie potwierdza wykonania programu i nie przyznaje nagród.

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 →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności