В этом году кроссплатформенный фреймворк для реверс инжиниринга Radare2 снова станет частью четырнадцатой ежегодной программы для молодых разработчиков Google Summer of Code.
Напомню, что в рамках данной инициативной программы ежегодно проводится отбор проектов с открытым исходным кодом, в которых могут принять участие студенты. Победителям выплачиваются денежные гранты, а проекты, в свою очередь, должны предложить будущим участникам различные задания по программированию.
Так как большая часть проекта Radare2 написана на языке C, разработчики ожидают от кандидатов знания этого языка программирования. При этом некоторые задания также потребуют знания Go (для создания платформы по взаимодействию), Rust (для radeco), а также Qt с C++ (для Cutter, ранее Iaito).
Чтобы принять участие в Google Summer of Code 2018 нужно сделать следующее:
- ознакомиться с правилами участия Google;
- взять одну из предложенных задачили предложить свою;
- составить черновик заявки, используя Google Docs и шаблон, и попросить одного из наставников проверить его;
- отправить заявку, используя интерфейс Google.
Помимо заявки для участия также потребуется отправить небольшой Pull Request для решения одной из микрозадач:
- Анализ
- Графы#6967
- Дизассемблеры и ассемблеры
- RAGG2#6949
- Рефакторинг
- Улучшение поддержки Unicode (UTF-8)
- Форматы файлов
- Отладка
- Разное
- Radeco
- Rune
- Cutter
В качестве альтернативы предлагается исправить одну из Github issues, соотносимую по сложности с микротасками.
Также разработчики опубликовали ряд рекомендаций по написанию заявки:
- Заявка не должна быть большой, достаточно пары страниц.
- Попробуйте разбить период участия в GSoC по задачам, а каждую задачу на подзадачи. Это не только поможет нам понять, насколько вы заинтересованы в выполнении задачи, но и поможет вам глубже оценить задачу перед началом выполнения и расставить приоритеты.
- Запишите, сколько времени в день/неделю вы планируете тратить на проект.
- Укажите свой часовой пояс, чтобы мы смогли подобрать для вас наставника с похожим часовым поясом для упрощения общения.
- Пожалуйста, отправьте свою заявку заранее, а не в последнюю минуту.
- Вы можете выбрать «запасную» задачу, чтобы в случае конфликта интересов (два студента выбрали одну задачу) нам было проще решить этот вопрос.
Все репозитории проекта располагаются на Github, а в качестве баг-трэкера используется Github issues. Тесты выделены в отдельный репозиторий и выполняются на Travis CI, AppVeyor и Jenkins. Также для поиска ошибок используется Coverity,а для различных демонстраций — сервер asciinema.
Помимо этого, были составлены несколько документов для тех, кто хочет стать одним из разработчиков проекта:
WWW
Более подробный план на лето представлен на официальной странице Radare2 Google Summer of Code: rada.re/gsoc. Официальный сайт проекта: rada.re.
Вопросы по задачам или использованию фреймворка также можно задавать на IRC-канале #radare в сети Freenode или Telegram-канале: https://t.me/radare (между каналами настроен транспорт).