Как искать интересные проекты на GitHub?
Изучаю программирование. Хотел бы почитать коды действующих проектов, понаблюдать за разработкой со стороны. Наверно самый популярный сейчас хостинг для проектов с открытым исходным кодом это GitHub. Но поиск на этом сайте крайне неудобен. Также существенный минус, что нет каталога проектов по категориям (как на sourceforge). В итоге сайт, хоть и хвастается показателем в 8,6М проектов, воспринимается как большая свалка. Где и как искать проекты? Интересуют небольшие разработки на языке Си, архитектуру которых можно осмыслить одному человеку и потренироваться в программировании на форке.
- Вопрос задан более трёх лет назад
- 28502 просмотра
Как искать альфу на Github
Для начала найдите основной репозиторий проекта. Для криптопроектов большинство потенциально значимых изменений, вероятно, будут происходить в разделе с контрактами.
Даже не разбираясь в коде, в contracts стоит обратить внимание на 3 вещи: (1) последняя активность на странице, (2) вкладка Issues и (3) вкладка Pull requests. Это позволит понять, происходило ли что-то с проектом за последнее время.
В данном случае, просматривая Pull requests, мы видим, что есть недавняя активность в ветке testnet, которая в настоящее время сливается с мастер-веткой. Вероятно, это означает скорый запуск.
Однако судя по коду, это просто обновления существующей архитектуры, а не запуск чего-то нового. Если вы не уверены, являются ли изменения качественно новыми, всегда можно задать вопросы в разделе для разработчиков в Discord проекта.
Теперь давайте рассмотрим пример запуска продукта на примере Dopex.
Судя по всему, все действия по запуску продуктов DPX попадают в раздел dopex-io/sdk. Если мы перейдем к Pull requests → Open, то увидим, над чем в настоящее время работает команда. Ниже приведены файлы, которые были изменены, что позволяет предположить названия запускающихся продуктов (Atlantic Puts, Long Perp Strategy).
Судя по коду, стратегия Long Perp является интеграцией Dopex и GMX, где они предложат «страховку для перпов» для деген-трейдеров GMX через путы Atlantic. Наш поиск позволяет предположить, что запуск этого продукта состоится довольно скоро. Если вы видите, что какая-либо ветка кода сливается с мастер-веткой, то запуск, скорее всего, не за горами.
Копание в ветках (Branches) — еще один способ найти хорошую информацию об изменениях проекта. Если вы посмотрите на github Sushiswap и отфильтруете по веткам, вы сможете найти код их кроссчейн-продукта sushixswap.
Можно заметить, что коммит слияния кода SushixSwap с мастер-контрактами Sushi датируется 11 июля, то есть это можно было заметить за две недели до публичного анонса.
Другой способ заглянуть под капот проектов — проверить активность отдельных разработчиков. Это можно использовать как для оценки общей активности, так и для того, чтобы собрать воедино все интересные обновления кода. Вы можете найти людей, работающих над проектом, во вкладке People:
Также можно просмотреть всех, кто публиковал пул-реквесты и коммиты в проекте:
На странице разработчика можно увидеть его недавнюю активность. Также Github предоставит вам своего рода тепловую карту активности за последний год:
Рекап и выводы
Когда у вас есть шорт-лист проектов для ресёрча, лучше всего работает связка Discord + Github. Если вы в курсе того, на каких обновлениях фокусируется сообщество и команда, это поможет вам определиться, что именно искать на Github. Большое количество активности в репозитории может говорить о том, что ожидаемое обновление находится в разработке. Также можно попытаться подтвердить это самостоятельно, просмотрев недавнюю активность отдельных разработчиков, различные ветки их Github, а также вкладки Issues и Pull requests.
Gagarin Crypto | Канал | Чат | Twitter
Хочу контрибьютить в опенсорс: с чего начать и как искать проекты на GitHub

Разработчица Вики Коблински поделилась в блоге рекомендациями, как начать участвовать в проектах с открытым исходным кодом. Не все решаются начать делать это, например, из-за лени или потому что большинство крупных опенсорс-проектов имеют крутые кривые обучаемости и попросту могут оттолкнуть новичка.
Потужний курс від laba: Управління ІТ-командами.
Максимізуйте продуктивність вашої ІТ-команди.
Основная цель открытого исходного кода — создать доступное и ценное программное обеспечение (ПО), с которым сможет работать каждый. Разработчики могут найти множество личных выгод от участия в подобных проектах. Например, отточить технические навыки, развить навыки межличностного общения и попрактиковаться в предоставлении и получении обратной связи.
Изучите культуру опенсорс-проектов
Вы решили, что хотите стать участником такого проекта, но не уверены, что у вас достаточно знаний. Вики Коблински заметила, что у успешных проектов с открытым исходным кодом — самые дружелюбные сопровождающие и сообщества. Они полны энтузиазма и активно привлекают новичков. Часто такие сообщества активны в Twitter, Slack, Discord или на другой платформе, к которой может присоединиться любой желающий и напрямую поговорить с сопровождающими проекта.
Многие крупные сообщества с открытым исходным кодом имеют собственные принципы и правила, одно из главных среди них — «не быть придурком». В целом же новичков в проект принимают очень радушно.
Найдите подходящую площадку
Один из лучших способов найти подходящий проект — посмотреть на ПО с открытым исходным кодом, которое вы уже используете. Отличными кандидатами могут быть инструменты, пакеты, фреймворки или языки, с которыми вы регулярно работаете. Чтобы узнать, является ли проект открытым, важно:
Експертний курс від laba: Стратегічний маркетинг.
Розвивайте бізнес з глибоким пониманням ринку.
- Проверить его лицензию;
- Убедиться, что проект активно поддерживается;
- Узнать, закрываются ли в нем пул-реквесты;
- Дают ли сопровождающие обратную связь.
Если так ничего подходящего не нашлось, используйте для поиска GitHub. Автор рекомендует начать контрибьютить, опираясь на знакомые языки и фреймворки — иначе будет сложно освоить кодовую базу. Если вы уже знакомы с лучшими практиками и типовой компоновкой фреймворка, будет гораздо легче приступить к работе.
У GitHub хорошие возможности для поиска проектов с открытым исходным кодом, которые нуждаются в новых участниках. Выполняя поиск по тегам и фильтруя по языкам, которые вам лучше всего известны, можно быстро найти проекты, которым нужна помощь. Вот некоторые теги для поиска:
Практичний курс від laba: Директор з продажу.
Створюйте та розвивайте успішний відділ продажів.
Внесите первый вклад
Как только в активном проекте, в котором вы себя комфортно чувствуете, появится проблема, которую вы можете решить, самое время начать контрибьютить. Для начала надо запросить тикет. Плохая идея — решать проблему, не сообщая о своих намерениях сопровождающим проекта. Когда вы возьмете тикет, все будут знать, что над конкретной проблемой кто-то уже работает.
Начинайте с малого. Берите простые тикеты, которые имеют наименьший вклад и изменения кода. Это не только позволит постепенно познакомиться с кодовой базой, но и укрепит вашу уверенность, прежде чем вы возьметесь за более сложные задачи.
После того, как выбрали тикет, исследуйте ситуацию, прежде чем отправить свой первый пул-реквест. Вики Коблински советует прочитать документацию, код и обсуждения, связанные с тикетом, чтобы лучше понять, как справиться с проблемой. Если ничего не получается, обратитесь к сообществу и попросите совета, разъяснений или наставничества.
Как только будете уверены, что решили проблему, отправляйте пул-реквест. Найдите в проекте файл «CONTRIBUTORS.md». В нем содержится инструкция о том, как правильно отправлять пул-реквест, также на GitHub есть чек-лист с рекомендациями. Обязательно сделайте обратную ссылку на исходный тикет. Сопровождающий может запросить изменения или обсудить их перед тем, как пул-реквест будет принят, — это нормально.
Как только пул-реквест пройдет проверку сопровождающего, ваши изменения будут внесены в проект.
Ефективний курс від robotdreams: Blockchain-розробник.
Революційні рішення в технологіях.
Вот и все! Можете считать себя контрибьютором в опенсорс.
Как принять участие в работе Open Source проектов на GitHub. Краткое руководство для начинающих

На GitHub размещены миллионы Open Source проектов, но для начинающих разработчиков бывает достаточно сложно поначалу разобраться в принципах их работы, а также в интерфейсе сайта. Это краткое руководство поможет участвовать в проектах с открытым кодом, которые размещаются на GitHub.
Адаптированный перевод статьи The beginner’s guide to contributing to a GitHub project . Здесь приведены только общие рекомендации по работе с Open Source из визуального интерфейса GitHub. Обязательно ознакомьтесь с README выбранного вами проекта для уточнения деталей.
Шаг 0: Выберите проект
На эту тему очень много статей. Мы будем считать, что вы уже выбрали проект и решились на свой первый шаг. Для примера используется работа над реальным PR в проект Хекслет Sicp .
Шаг 1: Создайте рабочую копию на своем компьютере
Прежде всего, вам нужен локальный форк проекта, поэтому нажмите кнопку «Fork» в GitHub.

Это создаст копию репозитория в вашем аккаунте на GitHub. При переходе в вашу копию проекта вы увидите, откуда он был форкнут:

Теперь вам нужна локальная копия, найдите «SSH clone URL» — справа, вверху.

Используйте эту ссылку для клонирования проекта на ваш компьютер с помощью терминала. Если вы не знаете, как им пользоваться — на Хекслете есть большой курс по базовым командам в командной строке.
$ git clone git@github.com:AABur/hexlet-sicp.git
Результат будет выглядеть примерно так:

Перейдите в директорию нового проекта:
$ cd hexlet-sicp
Теперь необходимо установить связь локальной копии с оригинальным проектом, чтобы вы могли получать изменения основного проекта и вносить их в свою локальную копию. Сначала перейдите по ссылке в оригинальный репозиторий — она помечена как «forked from» в верхней части страницы GitHub. Это вернет вас на главную страницу проекта на GitHub, где вы сможете найти «SSH clone URL» и использовать его для создания новой связи, которую мы назовем upstream.
$ git remote add upstream git@github.com:Hexlet/hexlet-sicp.git
Теперь ваша локальная копия проекта связана с двумя репозиториями на GitHub:
- origin, который указывает на ваш форк проекта на GitHub. Вы можете читать его, и писать в этот репозиторий.
- upstream, который указывает на GitHub-репозиторий основного проекта. Этот репозиторий можно только читать.
Шаг 2: Заставьте его работать на вашей машине
Теперь, когда у вас есть исходный код, запустите его на своем компьютере. Надеюсь, в файле README или INSTALL этих проектов будет документация, как это сделать.
Если у вас все работает, но документация неясна, то улучшение этого раздела должно стать вашим первым PR в проекте. Это одновременно и самый простой и полезный способ войти в проект!
Шаг 3: Сделайте что-нибудь полезное
Это самый приятный этап — внести свой вклад в проект. Начните лучше c исправления ошибки, которая вас раздражает. Либо найдите подходящую в трекере проблем проекта — « Issues ». Если вы не уверенны, с чего начать, многие проекты используют ярлык «good first issue» (или его разновидность), чтобы указать, что эту проблему может решить даже новичок в проекте.
Теперь, когда вы выбрали проблему, воспроизведите ее на своей локальной версии проекта. Как только вы воспроизвели проблему, изучите код, чтобы понять, где она возникла. Как только вы нашли проблему в коде, можно переходить к ее устранению.
Ветвление
Важное правило — размещать каждую часть разработки в отдельной ветке. Изучите, какая модель ветвления используется в проекте. Если в документации бранч-стратегия не описана, посмотрите, как называются уже существующие ветки. Вы можете назвать свою ветку как угодно, но важно, чтобы она была осмысленной. Названия веток типа «feature», «bugfix», «hotfix», «update» с указанием на то, что меняется — это лучший вариант.
В нашем примере мы исправляем README.md, поэтому мы создадим ветку readme-update:
$ git checkout main $ git pull upstream main && git push origin main $ git checkout -b readme-update
В первую очередь мы убеждаемся, что находимся на _ main_-ветке. Затем команда git pull синхронизирует нашу локальную копию с основной веткой проекта, а команда git push синхронизирует ее с нашим форкнутым проектом на GitHub. Наконец, мы создаем новую ветку readme-update.
Теперь вы можете заняться устранением проблемы.
Если в проекте есть тесты, запустите их, чтобы убедиться, что вы ничего не сломали. Вы также можете добавить новый тест, чтобы показать, что ваше изменение устраняет первоначальную проблему.
Убедитесь, что вы исправляете только то, над чем работаете. Не поддавайтесь искушению исправить другие вещи, которые вы видите по пути, включая проблемы форматирования, так как ваш PR, скорее всего, будет отклонен.
Убедитесь, что вы коммитите логичными блоками. Каждый коммит должен быть обоснованным. Прочитайте статью Как правильно составлять описания коммитов и почему это важно.
Шаг 4: Создайте Pull Request
Чтобы создать PR, вам нужно отправить ветку в ваш форк на GitHub, а затем нажать несколько кнопок на GitHub.
Чтобы отправить новую ветку:
$ git push -u origin readme-update
В результате будет создана ветка в вашем проекте на GitHub. Флаг -u связывает эту ветку с удаленной, так что в будущем вы сможете просто набрать git push origin в терминале.
Вернитесь в браузер и перейдите к вашему форку проекта (в нашем примере это будет выглядеть вот так , и вы увидите, что ваша новая ветка появилась в верхней части с удобной кнопкой «Compare & pull request»:

Нажмите эту кнопку!
Если вы видите выделенную надпись, как показано ниже:

Нажмите на ссылку, которая приведет вас к файлу CONTRIBUTING проекта, и прочитайте его! Он содержит ценную информацию, как работать с кодовой базой проекта, и поможет вам добиться одобрения вашего вклада.
На этой странице убедитесь, что «base repository» и «base» указывает на правильный репозиторий и ветку. Затем дайте хорошее, краткое название вашему запросу и объясните, почему вы его создали в поле описания. Добавьте соответствующие номера проблем, если они у вас есть.
Ниже в примере выполнена работа с веткой Master, но вам для работы с Хекслетом нужно работать с веткой main.

Если вы прокрутите страницу немного вниз, вы увидите diff с вашими изменениями. Дважды проверьте, что он содержит то, что вы ожидаете.
Как только вы будете уверены, нажмите кнопку «Create pull request» и все — готово.
Шаг 5: Проверка разработчиками проекта
Чтобы ваши изменения были приняты в проект, разработчики должны проанализировать вашу работу. После этого они либо запросят изменения, либо объединят ее с основной веткой (либо отклонят их).

Как участвовать в Open Source проектах Хекслета: На Хекслете есть множество Open Source проектов разной сложности — нам всегда нужна помощь разработчиков для развития этих сервисов.
Итоги
Главные этапы работы в Open Source:
- Форкни проект и склонируй его на свой компьютер.
- Установи связь с основным репозиторием проекта (upstream remote) и синхронизируй с ним локальную копию.
- Создавай локальный бранч для каждого логического блока работы.
- Внеси изменения, создавай хорошие описания коммитов и читай файл CONTRIBUTING, если он есть.
- Синхронизируй изменения со свом форком (origin remote).
- Создай Pull Request на GitHub.
- Отвечай на все замечания, полученные в ходе код-ревью.
Дополнение от переводчика
Оригинальная статья была написана в 2015 году. С тех пор вышла GitHub cli, и в git появились новые команды. Теперь эти шаги можно сделать ещё проще.
- gh repo fork Hexlet/hexlet-sicp
- git switch -c readme-update
- Тут делаем полезные изменения
- git push -u origin readme-update
- gh pr create —title «update README.md» —body «Slightly updated Russian README»
- Тут ревью кода и успешное принятие вашего PR