Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.
На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решен ие.
Для уверенных в себе, задача на неделю
pnpm умеет выполнять скрипты параллельно (и даже дает крутой UI для объединения вывода):
❯ pnpm test
> pnpm run --recursive --include-workspace-root /^test:/
Scope: all 2 workspace projects
. test:js$ eslint .
└─ Running...
. test:styles$ stylelint **/*.css **/*.svelte
└─ Done in 640ms
. test:types$ tsc --noEmit
└─ Done in 72ms
. test:audit$ pnpm audit --prod
│ No known vulnerabilities found
└─ Done in 3s1s
web test:run$ c8 pnpm unit
└─ Done in 3.6s
│ • • • • (4 / 4)
└─ Done in 3.1s
web test:check$ svelte-check
│ svelte-check found 0 errors and 0 warnings
└─ Done in 1.7s
Этот инструмент создавался в основном с прицелом на запуск одной и той же задачи в нескольких проектах монорепозитория (аргумент --recursive
). Однако, его можно использовать и в одном проекте (--parallel
), запуская задачи через регулярные выражения (/^test:/
).
Не работают две вещи:
--parallel
запрещено использовать.--parallel
не включает красивый UI, как на примере выше с --recursive
.Польза: строка в резюме с PR в популярный проект.
Создайте тестовый проект с несколькими скриптами, которые можно запускать параллельно:
{
"scripts": {
"test:a": "echo a",
"test:b": "echo b",
"test": "pnpm run --parallel /^test:/"
}
}
Форкните pnpm.
Создайте ветку.
Изучите CONTRIBUTING.md
, чтобы понять как запускать в консоли версию pnpm из репозитория.
Найдите проверки аргументов с --parallel
и уберите требование фильтра проектов для запуска вне монорепозитория.
Проверьте, что теперь pnpm test
в тестовом проекте работает, но печатает вывод, как в этом issue.
Найдите способ включить красивый UI --recursive
для --parallel
(подумайте, можно ли включать его какой-то опцией, чтобы не создавать breaking changes — может быть, такая опция уже есть, просто не работает).
Отправьте PR добавив cc @ai
и fixes #6692 & fixes 3076
в описание. Не забудьте также заполнить описание — подробно написать, что вы сделали.