Contributing

TypeScript є відкритим програмним забезпеченням і знаходиться на GitHub. Kоманда розробників вітає внесок спільноти.

Налаштування

Супер легко:

git clone https://github.com/Microsoft/TypeScript.git
cd TypeScript
npm install -g jake
npm install

Налаштування репозиторію (fork)

В першу чергу, вам потрібно налаштувати вихідний репозиторій Microsoft/TypeScript як віддалений upstream, далі необхідно налаштувати влсний репозиторій (fork) як origin. Для цього натиснить кнопку fork на GitHub:

git remote rm origin
git remote rm upstream
git remote add upstream https://github.com/Microsoft/TypeScript.git
git remote add origin https://github.com/basarat/TypeScript.git

Додатково, мені подобається працювати з гілками, такими як 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