Contributing
TypeScript є відкритим програмним забезпеченням і знаходиться на GitHub. Kоманда розробників вітає внесок спільноти.
Налаштування
Супер легко:
Налаштування репозиторію (fork)
В першу чергу, вам потрібно налаштувати вихідний репозиторій Microsoft/TypeScript як віддалений upstream
, далі необхідно налаштувати влсний репозиторій (fork) як origin
. Для цього натиснить кнопку fork на GitHub:
Додатково, мені подобається працювати з гілками, такими як bas/
, щоб вони відображалися більш чисто в списку гілок.
Запуск тестів
У файлі JakeFile є багато опцій для тестування
та збирання
. Ви можете запустити всі
тести за допомогою команди jake runtests
.
Базові лінії
Базові лінії використовуються для управління змінами у очікуваному виведенні (output) компілятора TypeScript. Базові лінії знаходяться у папці tests/baselines
.
Основні базові лінії (очікуване виведення):
tests/baselines/reference
Згенеровані базові лінії (у поточному запуску тестів):
tests/baselines/local
(ця папка включена до .gitignore)
Якщо є будь-які відмінності між цими папками, тести будуть неуспішними. Ви можете порівняти ці дві папки за допомогою інструментів, таких як BeyondCompare або KDiff3.
Якщо ви вважаєте, що зміни в згенерованих файлах є дійсними, то прийміть базові лінії за допомогою команди jake baseline-accept
. Зміни в базових лініях reference
тепер відображатимуться як git diff, який ви можете зафіксувати.
Зверніть увагу, що якщо ви не запускаєте всі тести, то використовуйте команду
jake baseline-accept[soft]
, яка лише скопіює нові файли, а не видалить всю папкуreference
.
Категорії тестів
Існують різні категорії для різних сценаріїв та навіть різні інфраструктури для тестування. Ось кілька з них, які пояснюються:
Тести компілятора
Ці тести переконуються, що компіляція файлу:
генерує очікувані помилки
генерує очікуваний JavaScript-код
ідентифікує типи, як очікуються
ідентифікує символи, як очікуються
Ці очікування перевіряються за допомогою інфраструктури базових значень.
Створення тесту компілятора
Тест можна створити, додавши новий файл yourtest.ts
до папки tests/cases/compiler
. Як тільки ви це зробите і запустите тести, ви повинні отримати помилку базових значень. Прийміть ці базові значення (щоб вони відображалися в Git) і налаштуйте їх такими, якими ви очікуєте, щоб вони проходили.
Запустіть всі ці тести ізольовано за допомогою jake runtests tests=compiler
, або за дпомогою вашого нового файлу jake runtests tests=compiler/yourtest
Часто я використовую команду jake runtests tests=compiler/yourtest || jake baseline-accept[soft]
, щоб отримати різницю в git
.
Відлагодження тестів
Команда jake runtests-browser tests=theNameOfYourTest
та відлагодження в браузері, як правило, працюють досить добре.
Більше
Посилання на статтю автора Remo : https://dev.to/remojansen/learn-how-to-contribute-to-the-typescript-compiler-on-github-through-a-real-world-example-4df0 🌹
Last updated