Добро пожаловать в dev.to codebase. Мы так рады, что у вас есть. С вашей помощью мы можем построить DEV, чтобы быть более стабильным и лучше обслуживать наше сообщество.
Содержание статьи
Что такое dev.to ?
dev.to (или просто DEV) — это платформа, на которой разработчики программного обеспечения пишут статьи, участвуют в обсуждениях и создают свои профессиональные профили. Мы ценим поддерживающий и конструктивный диалог в поисках отличного кода и карьерного роста для всех членов. Экосистема охватывает от начинающих до продвинутых разработчиков, и все желающие могут найти свое место в нашем сообществе.
Содержание
Вклад
Мы ожидаем, что вкладчики будут соблюдать наш базовый кодекс поведения. Все разговоры и обсуждения по GitHub (вопросы, запросы на тяну) и через dev.to должны быть уважительными и безжалостными.
Где внести вклад
Если у вас есть сомнения, обратитесь к основному члену команды! Вы можете упомянуть нас в каких-либо проблемах или спросить о потоке автора DEV. Любая проблема с хорошей темой первого выпуска
как правило, является хорошим местом для начала.
Рефакторинг код, например. улучшение кода без изменения поведения — это область, которая, вероятно, может быть сделана на основе интуиции и может не требовать объединения большого количества сообщений.
Исправление ошибок также может не требовать много общения, но тем лучше. Удостоверьтесь в исправлениях ошибок с достаточными испытаниями. Ошибки — это магниты для других ошибок. Напиши тесты рядом с ошибками!
Особенности здания — это область, которая потребует наибольшего количества сообщений и / или переговоров. Каждая функция субъективна и открыта для обсуждения. Дорожная карта продукта должна быть хорошим руководством для последующего изучения. Как всегда, когда вы сомневаетесь, спросите!
Как внести свой вклад
- Вилка проекта & клонировать локально. Следуйте первоначальной настройке здесь.
- Создайте ветвь, назвав ее либо особенностью, либо ошибкой:
git checkout -b feature / that-new-feature
илиошибка / исправление-это-ошибка
- Код и внести изменения. Бонусные баллы, если вы пишете сообщение о хорошей фиксации:
git commit -m 'Добавить функцию'
- Нажмите на ветку:
git push изначальный особенность / эта новая функция
- Создайте запрос на растяжение для вашего филиала
?
Руководящий документ
Создать вопрос
Никто не идеален. Что-то не работает? или может быть сделано лучше? Сообщите нам, создав проблему.
PS: четкий и подробный вопрос получает много любви, все, что вам нужно сделать, это следовать шаблону вопроса!
Чистый код с испытаниями
Некоторые существующие коды могут быть плохо написаны или непроверены, поэтому мы должны провести более тщательный анализ. Мы тестируем rspec, сообщите нам, если у вас есть какие-либо вопросы по этому поводу!
Создать запрос на растяжение
- Постарайтесь, чтобы запросы на растяжение были небольшими; запрос на тягу должен стараться изо всех сил решить только одну проблему.
- Убедитесь, что все тесты проходят и добавляют дополнительные тесты для кода, который вы отправляете.
- Документируйте свои аргументы в пользу изменений. Объясните, почему вы написали код так, как вы это делали; код должен объяснить, что он делает.
- Если существует проблема, связанная с запросом на pull, ссылайтесь на нее, добавив что-то вроде
Ссылки / Закрытия / Исправления / Разрешения № 305
где 305 — номер проблемы. Подробнее здесь - Если вы следуете шаблону запроса на вытягивание, вы не ошибетесь.
Обратите внимание: все коммиты в запросе на тягу будут раздавлены при объединении, но когда ваш PR будет одобрен и пройдет наш CI, он будет жить на производстве!
Как получить помощь
Независимо от того, застряли ли вы в реализации функций, при первой установке, или просто хотите сказать нам, что что-то может быть сделано лучше, посмотрите наш поток OSS или создайте проблему. Вы также можете указать любого ключевого члена команды в проблеме, и мы ответим как можно скорее.
? Справка / обсуждение OSS ?
Суть
Мы все люди пытаемся работать вместе, чтобы улучшить сообщество. Всегда будьте добры и цените необходимость компромиссов.
Codebase
Стек
Мы работаем на бэкэнде Rails с главным ванильным JavaScript на передней панели, а некоторые Preact посыпаются. Одна из наших целей — переместить в основном Preact для нашего интерфейса.
Дополнительные технологии и услуги перечислены в наших документах.
Инженерные стандарты
Руководство по стилю
Этот проект следует за Руководством по стилю Ruby Style, которое использует Rubocop вместе с Rubocop-Rspec в качестве анализатора кода. Если у вас есть Rubocop, установленный с вашим текстовым редактором, вы должны быть в рабочем состоянии.
Для Javascript мы следуем Руководству по стилю JS Airbnb, используя ESLint и красивее. Если у вас установлен ESLint с вашим текстовым редактором, вы должны быть в рабочем состоянии.
Husky hooks
Когда совершаются коммиты, крюк preitmit git проходит через хриплый и строчный. ESLint, красивее и Rubocop будут работать на вашем коде до его совершения. Если есть ошибки перебора, которые не могут быть автоматически исправлены, коммит не произойдет. Вам нужно будет исправить проблему вручную, а затем попытаться зафиксировать ее снова.
Примечание: если вы уже установили пакет хаски хотя бы один раз (используется для сценария precommit npm), вам нужно будет запустить пряжу --force
или npm install --no- кэш
. По какой-то причине пост-установочный скрипт хаски не запускается, когда пакет вытаскивается из нити или кэш-памяти npm. Это не хаки, а скорее проблема с кешированным пакетом.
Начало работы
Предпосылки
Эти предпосылки предполагают, что вы используете macOS. Если вы используете другую ОС, вы должны установить эти предварительные требования, специфичные для вашей ОС.
- Ruby: мы рекомендуем использовать rbenv для установки версии Ruby, указанной на значке.
- Bundler:
комплект установки gem
- Форман:
мастер установки драгоценных камней
- Пряжа: используйте
пряжу для заваривания
для установки пряжи. Он также установит узел, если у вас его еще нет. - PostgreSQL: самый простой способ начать с этого — использовать Postgres.app.
Установка
-
git clone git@github.com: thepracticaldev / dev.to.git
-
комплект комплект
-
бен / нить
- Настройте переменные среды / секреты
- Run
bin / setup
Запуск приложения
В основном мы используем Rails-приложение, в котором используется несколько Webpack. В большинстве случаев просто работает сервер bin / rails
. Если вы работаете с Webpack, вам необходимо запустить следующее:
- Запуск
bin / startup
чтобы запустить сервер, Webpack и наш бегунdelayed_job
.bin / startup
запускаетстартовый мастер -f Procfile.dev
под капотом. -
alias start = "bin / startup"
делает это еще быстрее.? - Если вы используете
pry
для отладки в Rails, обратите внимание, что вместе с мастеромpry
работает, но это не как чистый, какbin / rails server
.
Ниже приведены некоторые синглтонные команды, которые могут вам понадобиться, обычно на отдельной вкладке / вкладке вашей оболочки.
- Запуск сервера задания (при использовании
bin / rails server
) — это в основном для уведомлений и писем:bin / rails jobs: work
- Устранение вакансий (в случае, если вы не хотите ждать отставания в работе):
bin / rails jobs: clear
Текущие исправления: необходимо разработать потенциальные проблемы с внешними службами.
Предлагаемый рабочий процесс
Мы используем Spring и уже включены в проект.
- Используйте предустановленные булавки для автоматического запуска Spring, то есть
bin / rails server
bin / rspec spec / models /
bin / rake db: мигрировать
. - Если Spring не набирает новые изменения, используйте
пружинный стоп
. Например, Spring всегда следует перезапускать, если есть изменение в ключе среды. - Проверить состояние пружины, когда с пружинным статусом
Предостережение: bin / rspec
не имеет весны, потому что это влияет на результат Симпсова. Вместо этого используйте bin / spring rspec
.
Дополнительные документы
Ознакомьтесь с нашей страницей посвященных документов, чтобы получить дополнительную техническую документацию.
Карта продуктов
Наша новая дорожная карта продукта находится здесь. Многие заметки должны быть преобразованы в проблемы, но это должно обеспечить обзор функций, над которыми мы планируем работать, а также возможности, которые мы рассматриваем.
Члены основной команды будут перемещать вопросы вдоль проектной панели по мере их продвижения.
- Идеи и запросы: возможности для обсуждения.
- Потребности Владельцы: функции, нуждающиеся в владельце.
- Committed: функции, которые мы обязуемся строить — бесплатно для авторов, чтобы работать, но, пожалуйста, свяжитесь с владельцем заранее.
- Выполняется (на ранней стадии): началась работа над функцией.
- Выполняется (на поздней стадии): функция близится к завершению.
Основная команда
Лицензия
DEV лицензируется в соответствии с GNU Affero General Public License 3 (AGPL-3). Пожалуйста, просмотрите файл LICENSE в нашем репозитории для полного текста.
Как и многие проекты с открытым исходным кодом, мы требуем, чтобы участники предоставили нам Лицензионное соглашение для участников (CLA). Предоставляя код проекту DEV, вы предоставляете нам право использовать этот код в соответствии с условиями CLA.
Наша версия CLA была адаптирована из лицензионного соглашения Microsoft Contributor, которое они щедро предоставили общедоступному домену в Creative Commons CC0 1.0 Universal.
Любые вопросы, пожалуйста, обратитесь к нашей лицензии FAQ doc или по электронной почте yo@dev.to
❤️