[English](../../CONTRIBUTING.md) • [Català](../ca/CONTRIBUTING.md) • [Deutsch](../de/CONTRIBUTING.md) • [Español](../es/CONTRIBUTING.md) • [Français](../fr/CONTRIBUTING.md) • [हिंदी](../hi/CONTRIBUTING.md) • [Italiano](../it/CONTRIBUTING.md) • [Nederlands](../nl/CONTRIBUTING.md) • [Русский](../ru/CONTRIBUTING.md) [日本語](../ja/CONTRIBUTING.md) • [한국어](../ko/CONTRIBUTING.md) • Polski • [Português (BR)](../pt-BR/CONTRIBUTING.md) • [Türkçe](../tr/CONTRIBUTING.md) • [Tiếng Việt](../vi/CONTRIBUTING.md) • [简体中文](../zh-CN/CONTRIBUTING.md) • [繁體中文](../zh-TW/CONTRIBUTING.md) # Współtworzenie Roo Code Roo Code to projekt napędzany przez społeczność i bardzo cenimy każdy wkład. Aby zapewnić płynny i skuteczny proces dla wszystkich, **działamy według zasady "[Issue-First](#2-kluczowa-zasada-podejście-issue-first)".** Oznacza to, że każda praca powinna być powiązana z GitHub Issue _przed_ zgłoszeniem Pull Requesta (szczegóły w naszej [Polityce PR](#polityka-pull-request-pr)). Przeczytaj ten przewodnik uważnie, aby dowiedzieć się, jak możesz współtworzyć. Ten przewodnik opisuje, jak współtworzyć Roo Code – czy to naprawiając błędy, dodając funkcje, czy ulepszając dokumentację. ## Spis treści - [I. Zanim zaczniesz współtworzyć](#i-zanim-zaczniesz-współtworzyć) - [1. Kodeks postępowania](#1-kodeks-postępowania) - [2. Zrozumienie roadmapy projektu](#2-zrozumienie-roadmapy-projektu) - [Wsparcie providerów](#wsparcie-providerów) - [Wsparcie modeli](#wsparcie-modeli) - [Wsparcie systemów](#wsparcie-systemów) - [Dokumentacja](#dokumentacja) - [Stabilność](#stabilność) - [Internacjonalizacja](#internacjonalizacja) - [3. Dołącz do społeczności Roo Code](#3-dołącz-do-społeczności-roo-code) - [II. Znajdowanie i planowanie swojego wkładu](#ii-znajdowanie-i-planowanie-swojego-wkładu) - [1. Typy wkładów](#1-typy-wkładów) - [2. Kluczowa zasada: podejście Issue-First](#2-kluczowa-zasada-podejście-issue-first) - [3. Decydowanie, nad czym pracować](#3-decydowanie-nad-czym-pracować) - [4. Zgłaszanie błędów lub problemów](#4-zgłaszanie-błędów-lub-problemów) - [III. Proces rozwoju i zgłaszania](#iii-proces-rozwoju-i-zgłaszania) - [1. Konfiguracja środowiska](#1-konfiguracja-środowiska) - [2. Wytyczne dotyczące pisania kodu](#2-wytyczne-dotyczące-pisania-kodu) - [3. Zgłaszanie kodu: proces Pull Request (PR)](#3-zgłaszanie-kodu-proces-pull-request-pr) - [Pull Requesty w wersji roboczej](#pull-requesty-w-wersji-roboczej) - [Opis Pull Requesta](#opis-pull-requesta) - [Polityka Pull Request (PR)](#polityka-pull-request-pr) - [Cel](#cel) - [Podejście Issue-First](#podejście-issue-first) - [Warunki dla otwartych PR](#warunki-dla-otwartych-pr) - [Procedura](#procedura) - [Odpowiedzialności](#odpowiedzialności) - [IV. Prawne](#iv-prawne) - [Umowa współtwórcy](#umowa-współtwórcy) ## I. Zanim zaczniesz współtworzyć Najpierw zapoznaj się ze standardami społeczności i kierunkiem projektu. ### 1. Kodeks postępowania Wszyscy współtwórcy muszą przestrzegać naszego [Kodeksu postępowania](https://github.com/RooVetGit/Roo-Code/blob/main/CODE_OF_CONDUCT.md). Przeczytaj go przed rozpoczęciem współtworzenia. ### 2. Zrozumienie roadmapy projektu Roo Code ma jasną roadmapę rozwoju, która wyznacza nasze priorytety i przyszły kierunek. Zrozumienie roadmapy pomoże ci: - Dopasować swój wkład do celów projektu - Znaleźć obszary, w których twoja wiedza będzie najbardziej wartościowa - Zrozumieć kontekst niektórych decyzji projektowych - Zainspirować się do nowych funkcji wspierających naszą wizję Obecna roadmapa skupia się na sześciu kluczowych filarach: #### Wsparcie providerów Chcemy dobrze wspierać jak najwięcej providerów: - Więcej wsparcia "OpenAI Compatible" - xAI, Microsoft Azure AI, Alibaba Cloud Qwen, IBM Watsonx, Together AI, DeepInfra, Fireworks AI, Cohere, Perplexity AI, FriendliAI, Replicate - Ulepszone wsparcie dla Ollama i LM Studio #### Wsparcie modeli Chcemy, aby Roo działał na jak największej liczbie modeli, w tym lokalnych: - Wsparcie modeli lokalnych przez niestandardowe prompty systemowe i workflowy - Benchmarki, ewaluacje i przypadki testowe #### Wsparcie systemów Chcemy, aby Roo działał dobrze na każdym komputerze: - Integracja terminala międzyplatformowego - Silne i spójne wsparcie dla Mac, Windows i Linux #### Dokumentacja Chcemy kompleksowej, dostępnej dokumentacji dla wszystkich użytkowników i współtwórców: - Rozszerzone przewodniki użytkownika i samouczki - Jasna dokumentacja API - Lepsze wskazówki dla współtwórców - Wielojęzyczne zasoby dokumentacyjne - Interaktywne przykłady i fragmenty kodu #### Stabilność Chcemy znacznie zmniejszyć liczbę błędów i zwiększyć automatyczne testowanie: - Przełącznik debugowania logów - Przycisk "Kopiuj informacje o maszynie/zadaniu" do zgłoszeń błędów/wsparcia #### Internacjonalizacja Chcemy, aby Roo mówił językiem każdego: - 我们希望 Roo Code 说每个人的语言 - Queremos que Roo Code hable el idioma de todos - हम चाहते हैं कि Roo Code हर किसी की भाषा बोले - نريد أن يتحدث Roo Code لغة الجميع Szczególnie mile widziane są wkłady, które realizują cele roadmapy. Jeśli pracujesz nad czymś zgodnym z tymi filarami, wspomnij o tym w opisie PR. ### 3. Dołącz do społeczności Roo Code Nawiązanie kontaktu ze społecznością Roo Code to świetny sposób na rozpoczęcie: - **Główna metoda**: 1. Dołącz do [społeczności Roo Code na Discordzie](https://discord.gg/roocode). 2. Po dołączeniu wyślij wiadomość prywatną (DM) do **Hannes Rudolph** (Discord: `hrudolph`), aby omówić swoje zainteresowanie i uzyskać wskazówki. - **Alternatywa dla doświadczonych współtwórców**: Jeśli dobrze znasz podejście Issue-First, możesz działać bezpośrednio przez GitHub, śledząc [tablicę Kanban](https://github.com/orgs/RooVetGit/projects/1) i komunikując się przez issues i pull requesty. ## II. Znajdowanie i planowanie swojego wkładu Zdecyduj, nad czym chcesz pracować i jak się za to zabierzesz. ### 1. Typy wkładów Witamy różne typy wkładów: - **Poprawki błędów**: Naprawianie problemów w istniejącym kodzie - **Nowe funkcje**: Dodawanie nowych funkcjonalności - **Dokumentacja**: Ulepszanie przewodników, dodawanie przykładów lub poprawianie literówek ### 2. Kluczowa zasada: podejście Issue-First **Każdy wkład musi zaczynać się od GitHub Issue.** To kluczowe, by zapewnić zgodność i uniknąć niepotrzebnej pracy. - **Znajdź lub utwórz Issue**: - Przed rozpoczęciem sprawdź w [GitHub Issues](https://github.com/RooVetGit/Roo-Code/issues), czy już istnieje issue dla twojego wkładu. - Jeśli istnieje i nie jest przypisane, skomentuj, że chcesz się tym zająć. Maintainer ci je przypisze. - Jeśli nie istnieje, utwórz nowe, korzystając z odpowiedniego szablonu na naszej [stronie issues](https://github.com/RooVetGit/Roo-Code/issues/new/choose): - Dla błędów: szablon "Bug Report" - Dla nowych funkcji: szablon "Detailed Feature Proposal". Poczekaj na zatwierdzenie przez maintainerów (szczególnie @hannesrudolph) przed rozpoczęciem implementacji. - **Uwaga**: Ogólne pomysły lub wstępne dyskusje o funkcjach mogą zacząć się w [GitHub Discussions](https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests). Gdy pomysł się sprecyzuje, należy utworzyć issue "Detailed Feature Proposal". - **Zgłaszanie i przypisywanie**: - Wyraźnie zaznacz chęć pracy nad issue, komentując je. - Poczekaj, aż maintainer oficjalnie ci je przypisze na GitHubie. Dzięki temu unikniemy dublowania pracy. - **Konsekwencje nieprzestrzegania**: - Pull Requesty (PR) bez powiązanego, zatwierdzonego i przypisanego issue mogą zostać zamknięte bez pełnej recenzji. Ta polityka zapewnia zgodność wkładów z celami projektu i szanuje czas wszystkich. To podejście pomaga nam śledzić pracę, upewnić się, że zmiany są pożądane, i skutecznie koordynować wysiłki. ### 3. Decydowanie, nad czym pracować - **Good First Issues**: Sprawdź sekcję "Issue [Unassigned]" w naszym [projekcie Roo Code Issues](https://github.com/orgs/RooVetGit/projects/1) na GitHubie. - **Dokumentacja**: Choć ten `CONTRIBUTING.md` to główny przewodnik dla wkładów kodowych, jeśli chcesz współtworzyć inną dokumentację (np. przewodniki użytkownika lub API), sprawdź [repozytorium Roo Code Docs](https://github.com/RooVetGit/Roo-Code-Docs) lub zapytaj na Discordzie. - **Proponowanie nowych funkcji**: 1. **Wstępny pomysł/dyskusja**: Ogólne lub początkowe pomysły omawiaj w [GitHub Discussions](https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests). 2. **Formalna propozycja**: Dla konkretnych, gotowych do rozważenia propozycji utwórz issue "Detailed Feature Proposal" z szablonu na naszej [stronie issues](https://github.com/RooVetGit/Roo-Code/issues/new/choose). To kluczowy element naszego **podejścia Issue-First**. ### 4. Zgłaszanie błędów lub problemów Jeśli znajdziesz błąd: 1. **Szukaj istniejących issues**: Sprawdź [GitHub Issues](https://github.com/RooVetGit/Roo-Code/issues), czy nie ma już zgłoszenia. 2. **Utwórz nowe issue**: Jeśli to unikalny problem, użyj szablonu "Bug Report" na naszej [stronie issues](https://github.com/RooVetGit/Roo-Code/issues/new/choose). > 🔐 **Luki bezpieczeństwa**: Jeśli odkryjesz lukę bezpieczeństwa, zgłoś ją prywatnie przez [GitHub Security Advisory Tool](https://github.com/RooVetGit/Roo-Code/security/advisories/new). Nie twórz publicznego issue dla luk bezpieczeństwa. ## III. Proces rozwoju i zgłaszania Postępuj według tych kroków, aby kodować i zgłaszać swój wkład. ### 1. Konfiguracja środowiska 1. **Fork & Clone**: - Zrób fork repozytorium na GitHubie. - Sklonuj swojego forka lokalnie: `git clone https://github.com/TWÓJ_UŻYTKOWNIK/Roo-Code.git` 2. **Zainstaluj zależności**: `npm run install:all` 3. **Uruchom Webview (Dev Mode)**: `npm run dev` (dla aplikacji Vite/React z HMR) 4. **Debuguj rozszerzenie**: Wciśnij `F5` w VS Code (lub **Run** → **Start Debugging**), aby otworzyć nowe okno Extension Development Host z Roo Code. Zmiany w webview (`webview-ui`) pojawią się natychmiast dzięki Hot Module Replacement. Zmiany w głównym rozszerzeniu (`src`) wymagają ponownego uruchomienia Extension Development Host. Możesz też zbudować i zainstalować paczkę `.vsix`: ```sh npm run build code --install-extension bin/roo-cline-.vsix ``` (Zamień `` na faktyczny numer wersji wygenerowanego pliku). ### 2. Wytyczne dotyczące pisania kodu - **Skoncentrowane PRy**: Jedna funkcja/poprawka na PR. - **Jakość kodu**: - Przejdź przez CI (lint, formatowanie) - Napraw ostrzeżenia lub błędy ESLint (`npm run lint`) - Odpowiadaj na feedback z narzędzi automatycznej recenzji kodu - Stosuj dobre praktyki TypeScript i dbaj o bezpieczeństwo typów - **Testowanie**: - Dodaj testy dla nowych funkcji - Uruchom `npm test`, by upewnić się, że wszystko przechodzi - Zaktualizuj istniejące testy, jeśli twoje zmiany je dotyczą - **Wiadomości commitów**: - Pisz jasne, opisowe wiadomości commitów - Odnoś się do odpowiednich issues przez `#numer-issue` (np. `Fixes #123`) - **Checklist przed zgłoszeniem PR**: - Zrebase'uj swoją gałąź na najnowszym `main` z upstream - Upewnij się, że kod się buduje (`npm run build`) - Wszystkie testy muszą przechodzić (`npm test`) - Usuń kod debugowania lub `console.log` ### 3. Zgłaszanie kodu: proces Pull Request (PR) #### Pull Requesty w wersji roboczej Używaj PRów w wersji roboczej dla pracy, która nie jest jeszcze gotowa do pełnej recenzji, ale dla której chcesz: - Uruchomić automatyczne sprawdzenia (CI) - Otrzymać wczesny feedback od maintainerów lub innych współtwórców - Zasygnalizować, że praca jest w toku Oznacz PR jako "Ready for Review" dopiero, gdy wszystkie sprawdzenia przejdą i uważasz, że spełnia kryteria "Wytycznych dotyczących pisania kodu" i "Opisu Pull Requesta". #### Opis Pull Requesta Opis PRa musi być kompletny i zgodny ze strukturą naszej [Pull Request Template](.github/pull_request_template.md). Kluczowe elementy: - Link do zatwierdzonego GitHub Issue, którego dotyczy - Jasny opis wprowadzonych zmian i ich celu - Szczegółowe kroki testowania zmian - Lista wszelkich breaking changes - **Dla zmian w UI: zrzuty ekranu lub wideo przed/po** - **Wskaż, czy PR wymaga aktualizacji dokumentacji użytkownika i które dokumenty/sekcje są dotknięte** #### Polityka Pull Request (PR) ##### Cel Utrzymanie czystego, skoncentrowanego i zarządzalnego backlogu PRów. ##### Podejście Issue-First - **Wymagane**: Przed rozpoczęciem pracy musi istnieć zatwierdzone i przypisane GitHub Issue ("Bug Report" lub "Detailed Feature Proposal"). - **Zatwierdzenie**: Issues, zwłaszcza dotyczące większych zmian, muszą być zatwierdzone przez maintainerów (szczególnie @hannesrudolph) _przed_ rozpoczęciem kodowania. - **Odniesienie**: PRy muszą wyraźnie odnosić się do tych zatwierdzonych issues w opisie. - **Konsekwencje**: Nieprzestrzeganie tego procesu może skutkować zamknięciem PRa bez pełnej recenzji. ##### Warunki dla otwartych PR - **Gotowe do merge**: Przechodzi wszystkie testy CI, jest zgodny z roadmapą (jeśli dotyczy), powiązany z zatwierdzonym i przypisanym Issue, ma jasną dokumentację/komentarze, zawiera zrzuty ekranu/wideo dla zmian w UI - **Do zamknięcia**: Błędy CI, poważne konflikty merge, brak zgodności z celami projektu lub długotrwała bezczynność (>30 dni bez aktualizacji po feedbacku) ##### Procedura 1. **Kwalifikacja i przypisanie Issue**: @hannesrudolph (lub inni maintainerzy) przeglądają i przypisują nowe i istniejące issues. 2. **Wstępna triage PRów (codziennie)**: Maintainerzy szybko przeglądają nowe PRy pod kątem pilności lub krytycznych problemów. 3. **Szczegółowa recenzja PRów (tygodniowo)**: Maintainerzy dokładnie oceniają PRy pod kątem gotowości, zgodności z zatwierdzonym Issue i ogólnej jakości. 4. **Szczegółowy feedback i iteracja**: Na podstawie recenzji maintainerzy udzielają feedbacku (Approve, Request Changes, Reject). Oczekuje się, że współtwórcy odpowiedzą i poprawią PR. 5. **Etap decyzji**: Zatwierdzone PRy są mergowane. PRy z nierozwiązywalnymi problemami lub niezgodne mogą być zamknięte z wyjaśnieniem. 6. **Follow-up**: Autorzy zamkniętych PRów mogą poprawić je według feedbacku i otworzyć nowe, jeśli problemy zostaną rozwiązane lub zmieni się kierunek projektu. ##### Odpowiedzialności - **Kwalifikacja Issue i przestrzeganie procesu (@hannesrudolph & maintainerzy)**: Zapewnienie, że wszystkie wkłady stosują podejście Issue-First. Wskazówki dla współtwórców. - **Maintainerzy (zespół deweloperski)**: Przegląd PRów, udzielanie feedbacku technicznego, podejmowanie decyzji o zatwierdzeniu/odrzuceniu, mergowanie PRów. - **Współtwórcy**: Powiązanie PRów z zatwierdzonym i przypisanym Issue, przestrzeganie wytycznych jakości, szybka reakcja na feedback. Ta polityka zapewnia przejrzystość i efektywną integrację. ## IV. Prawne ### Umowa współtwórcy Zgłaszając pull request, zgadzasz się, że twój wkład będzie licencjonowany na [licencji Apache 2.0](LICENSE) (lub aktualnej licencji projektu), tak jak cały projekt.