Вклад в открытый исходный код 101
Предыстория ⏮
Меня как наставника в ADPList часто спрашивают о моем вкладе в открытый исходный код в качестве коммиттера Apache и о том, как начать работу с Github.
Назначение коммиттером Apache ( apache/mxnet#19512 ) было одним из моих самых больших достижений в мире кодирования и технологий. Я хочу поделиться опытом, полученным в результате общения с сообществом разработчиков открытого исходного кода. Это побудило меня стать наставником начинающих специалистов по программному обеспечению и студентов университетов, занимающихся компьютерными науками. Эта статья — попытка ответить на вопрос —
Что бы я сделал сегодня в ноябре 2022 года, если бы начал свое путешествие в области открытого исходного кода?
♀ Что значит с открытым исходным кодом?
Github — это детище вселенной с открытым исходным кодом, популяризировавшее понятие репозиториев, запросов на включение и контроля версий. Открытый исходный код — это, по сути, дезократизация доступа к исходному коду. Речь идет о сносе стен, оклеенных соглашениями о неразглашении [NDA] и ограничительными авторскими правами и товарными знаками ™️. Это не означает, что открытый исходный код не имеет лицензий или авторских прав. Речь идет о предоставлении свободы публичного обмена знаниями и информацией с обеспечением надлежащего цитирования и ссылок. В этом смысле открытый исходный код — отличный уравнитель. Люди со всего мира могут свободно читать, комментировать, писать и выражатьо программном обеспечении, разрабатываемом в мире открытого исходного кода. Именно эта свобода самовыражения, фундаментальное право человека, применительно к миру программного обеспечения и технологий проявляется в форме «открытого исходного кода».
♂️Что влечет за собой вклад в открытый исходный код?
Хорошо, теперь, когда мы находимся на одной странице, что касается термина «открытый исходный код». Какие действия связаны с вкладом ОС?
На мой взгляд, следующие наборы действий подпадают под вклад ОС
- Создавайте проблемы, ошибки и задавайте вопросы
- Поднимите запросы функций [через задачи, jira или программное обеспечение для отслеживания проектов]
- Придумывайте и делайте предложения
- Комментируйте и участвуйте в обсуждениях
- Отвечать на вопросы
- Исправить ошибки
- Проверяйте код, разработанный другими участниками сообщества.
- Добавьте тесты, улучшите инфраструктуру тестирования/CI/CD
- Написать новый код функции
- Посещайте виртуальные/личные мероприятия
- Евангелизируйте библиотеку/продукт/услугу
- Активно общайтесь в обсуждениях/чатах/списках разработчиков
- Голосуйте и участвуйте в процессе выпуска [библиотеки/продукта/фреймворка/сервиса]
С чего начать?
Я бы выбрал 1 из следующих 2 маршрутов
- Известный проект известных организаций с открытым исходным кодом
- Проекты, о которых я больше всего знаю
Найдите знакомые проекты, поддерживаемые известными организациями с открытым исходным кодом .

- Основы программного обеспечения Apache — hadoop, hive, hbase, mxnet, cassandra
- The Document Foundation — пакет LibreOffice [Open office]
- GNOME Foundation — известная среда рабочего стола GNOME
- Linux Foundation — известная операционной системой на базе UNIX.
- Mozilla Foundation — известен своим браузером
Простой способ оказать существенное влияние на сообщество разработчиков — это когда у вас уже есть некоторая встроенная ментальная модель базового продукта/фреймворка/услуги. Я бы направил свою энергию на вышеупомянутые вклады с открытым исходным кодом, используя знания и контекст, который я создал до сих пор как разработчик.
Это может означать разные проекты для разных разработчиков, очевидно, в зависимости от программного стека, к которому они больше всего привыкли.
Я перечислю общие проекты с открытым исходным кодом на основе языков:

10 лучших проектов Javascript от Technical Geek
- Реагировать через Facebook/Meta
- Tensorflow.js от TF [изначально от Google]
- Node.js
- Angular.js
- jQuery
- Менеджер пакетов узла [npm]
- Vue.js
- Ember.js
- Метеор.js
- полимер
- Tensorflow — глубокое обучение
- matplotlib — визуализация данных
- Фласк — веб-разработка
- Django от Django Software Foundation
- PyTorch — изначально Facebook/Meta
- MXNet от Apache Software Foundation
- Ansible — инструмент развертывания, эксплуатации и оркестровки
- Запросы — HTTP-библиотека от Python Software Foundation.
- Scikit-learn — машинное обучение на питоне
- Pandas — наука о данных/анализ данных
- OpenJDK
- RXJava
- Apache Pinot — хранилище данных OLAP
- Hazelcast — распределенная платформа для вычислений и хранения
- Формат Google Java — стиль Google Java
- jOOQ — SQL для Java
- Весенний ботинок
- Glide — кэширование и генерация изображений для Android
- Guava — основные библиотеки Java от Google.
- mockito — макет, тестовая среда
- поиск в Google по ключевым словам «10 лучших проектов с открытым исходным кодом» и «язык»
- Поиск на Github —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java