1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/diancloud-ghost

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING.md 26 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 09:28 4a53cd5

Добро пожаловать в руководство по внесению вклада в Ghost!

Итак, вы хотите помочь нам? Это замечательно! Мы составили несколько рекомендаций, которые помогут вам быстро и легко начать работу. Если вам нужна помощь во внесении вклада, посетите IRC-канал #ghost на freenode. Спасибо, что заглянули!

Быстрые ссылки:

TL;DR

Если вам нужна помощь с Ghost или у вас есть вопросы, пожалуйста, используйте форум, (документация находится здесь). Если вы сообщаете об ошибке, обязательно включите как можно больше информации, чтобы мы могли её исправить! Если у вас есть код, который вы хотите отправить в виде запроса на включение, пожалуйста, объедините коммиты, используйте этот формат сообщений о коммите и проверьте, проходит ли он тесты, запустив grunt validate. Спасибо за помощь в улучшении Ghost.

Содержание руководства

Существует множество способов принять участие, этот документ охватывает:

Сообщение о проблеме

Если вы хотите сообщить о проблеме, потому что думаете, что нашли проблему в Ghost, или вы хотели бы сделать запрос на новую функцию в кодовой базе, или по любой другой причине… пожалуйста, сначала прочитайте это.

Трекер проблем GitHub является предпочтительным каналом для сообщений об ошибках, запросов на новые функции, запросов на изменение и отправки запросов на включение, но, пожалуйста, соблюдайте следующие ограничения:

  • Пожалуйста, ищите существующие проблемы. Помогите нам свести к минимуму дублирование проблем, проверив, не сообщил ли кто-нибудь уже о вашей проблеме или запросил вашу идею.

  • Пожалуйста, не используйте трекер проблем для личных запросов поддержки (используйте форум или IRC — #ghost на freenode).

  • Пожалуйста, не отвлекайте или не троллите проблемы. Поддерживайте обсуждение по теме и уважайте мнения других.

Отчёты об ошибках

Ошибка — это очевидная проблема, вызванная кодом в репозитории. Хорошие отчёты об ошибках чрезвычайно полезны — спасибо!

Рекомендации для отчётов об ошибках:

  1. Используйте поиск по проблемам GitHub — проверьте, не была ли проблема уже сообщена.

  2. Проверьте, была ли проблема исправлена — попробуйте воспроизвести её, используя последнюю версию master, или найдите закрытые проблемы в текущем этапе.

  3. Изолируйте проблему — в идеале создайте уменьшенный тестовый случай и живой пример.

  4. Включите скринкаст, если это уместно - Ваша проблема связана с дизайном или функцией интерфейса или ошибкой? Самая полезная вещь в мире — это если мы можем увидеть, о чём вы говорите. Используйте LICEcap, чтобы быстро и легко записать короткий скринкаст (24 кадра в секунду) и сохранить его в виде анимированного gif! Вставьте его непосредственно в свой вопрос на GitHub. Капоу.

  5. Включите как можно больше информации! Используйте шаблон отчёта об ошибке ниже или нажмите здесь, чтобы создать сообщение об ошибке. Ссылка](https://github.com/TryGhost/Ghost/issues/new?title=Bug%3A&body=%23%23%23%20Issue%20Summary%0A%0A%23%23%23%20Steps%20to%20Reproduce%0A%0A1.%20This%20is%20the%20first%20step%0A%0AThis%20is%20a%20bug%20because...%0A%0A%23%23%23%20Technical%20details%0A%0A*%20Ghost%20Version%3A%20master%20-%20latest%20commit%3A%20INSERT%20COMMIT%20REF%0A*%20Client%20OS%3A%20%0A*%20Server%20OS%3A%20%0A*%20Node%20Version%3A%20%0A*%20Browser%3A%20%0A*%20Database%3A) — это шаблон для создания отчёта об ошибке с помощью автоматической генерации шаблона.

Хороший отчёт об ошибке должен содержать всю необходимую информацию, чтобы другие разработчики могли воспроизвести проблему и исправить её. Убедитесь, что вы включили детали вашей среды.

Вот реальный пример отличного отчёта об ошибке.

Шаблон примера (нажмите, чтобы использовать):

Краткий и описательный пример отчёта об ошибке

### Issue Summary

Краткое описание проблемы и среды браузера/ОС, в которой она возникает. Если возможно, включите шаги, необходимые для воспроизведения ошибки.

### Steps to Reproduce

1. Это первый шаг.
2. Это второй шаг.
3. Дальнейшие шаги и т. д.

Любая другая информация, которую вы хотите сообщить и которая имеет отношение к сообщаемой проблеме. В частности, почему вы считаете, что это ошибка? Что должно произойти вместо этого?

### Технические детали:

* Версия Ghost: master (последний коммит: a761de2079dca4df49567b1bddac492f25033985).
* Клиентская ОС: Mac OS X 10.10.1.
* Серверная ОС: CentOS 6.4.
* Версия Node: 0.10.16.
* Браузер: Chrome 39.0.2171.71.
* База данных: SQLite / MySQL / postgres.

### Запросы на добавление функций

Если у вас есть отличная идея, мы хотим услышать о ней. Наш список пожеланий пользователей существует для того, чтобы мы могли узнать больше о том, что наше сообщество хочет, чтобы мы создали.

Пожалуйста, используйте своё усмотрение, чтобы решить, относится ли запрос на добавление функции к списку пожеланий, или он лучше подходит для GitHub-проблемы.

Прежде чем сделать предложение, вот несколько полезных советов о том, что следует учитывать:

  1. Посетите дорожную карту, список пожеланий и используйте поиск GitHub, чтобы увидеть, запрашивалась ли уже эта функция.

  2. Ознакомьтесь с Что входит в ядро Ghost? — здесь объясняется, какие критерии определяют соответствие проекта его целям и задачам.

  3. Быстро подумайте, является ли ваша функция для административного интерфейса, вывода блога, тем или приложений — или она влияет на несколько областей? Это может помочь при описании вашей идеи.

  4. Помните, что именно вы должны убедительно обосновать преимущества новой функции перед лидерами проекта. Пожалуйста, предоставьте как можно больше деталей и контекста, это означает объяснение варианта использования и почему он, вероятно, будет распространённым. Самый сильный голос в пользу любого запроса на функцию — это неоспоримая поддержка нашего списка пожеланий пользователей.

### Запросы на изменение

Запросы на изменения охватывают как архитектурные, так и функциональные изменения в работе Ghost. Если у вас есть идея для новой или другой зависимости, рефакторинга или улучшения функции и т.д., пожалуйста, убедитесь, что:

  1. Используйте поиск GitHub и проверьте, не опередил ли вас кто-нибудь другой.

  2. Потратьте немного времени, чтобы подумать о наилучшем способе обоснования и объяснения того, что вы думаете, поскольку именно вы должны убедить лидеров проекта в том, что изменение стоит того. Вот некоторые вопросы, которые следует рассмотреть:

    • Действительно ли это одна идея или их много?
    • Какую проблему вы решаете?
    • Почему то, что вы предлагаете, лучше того, что уже есть? Отправка Pull Requests

Pull requests — это замечательно. Если вы хотите отправить PR по вопросу, для которого нет открытой задачи, пожалуйста, тщательно подумайте о том, чтобы создать задачу, которую ваш PR может закрыть, особенно если вы исправляете ошибку. Это повысит вероятность того, что для вашего PR будет доступно достаточно информации, чтобы его можно было должным образом протестировать и объединить. Чтобы убедиться, что ваш PR будет принят как можно быстрее, уделите минуту проверке рекомендаций по:

Нужна помощь?

Если вам не совсем понятно, как отправлять / обновлять / делать Pull Requests, ознакомьтесь с нашим подробным руководством по Git Workflow для Ghost или посетите IRC-канал #ghost на freenode.org, и мы вам поможем.

Тестирование и обеспечение качества

Никогда не недооценивайте, насколько полезно обеспечение качества. Если вы хотите принять участие в работе над кодовой базой и не знаете, с чего начать, проверка и тестирование pull request — одно из самых полезных дел, которые вы можете сделать.

Если вы хотите заняться тестированием Ghost, на вики есть набор документации по обеспечению качества.

По сути, проверьте последнюю основную версию, опробуйте её и, если найдёте что-то странное, следуйте рекомендациям по отчётам об ошибках и сообщите нам!

Проверка pull request

В блоге разработчиков есть подробные инструкции по настройке среды, которая позволит вам проверять pull requests с помощью этой простой команды: pr #1234.

Документация

Пользовательскую документацию Ghost можно найти на support.ghost.org. Если у вас есть отзывы или вы хотели бы написать пользовательскую документацию, сообщите нам об этом по электронной почте [support@ghost.org].

Разработческую документацию Ghost можно найти на docs.ghost.org. Эти документы написаны и размещены на readme.io, который имеет функцию предлагаемых правок, через которую вы можете отправлять обновления. Если вы хотели бы участвовать больше, чем просто вносить поправки, напишите [support@ghost.org] и дайте нам знать :)

Перевод

Полную документацию по переводам можно найти по адресу http://docs.ghost.org/translations.

Работа над Ghost Core

Хотите настроить работу над Ghost? ЗАМЕЧАТЕЛЬНО! Образ Ghost-Vagrant — это очень простой способ получить готовую среду для сотрудничества, но если вы предпочитаете устанавливать Ghost локально, вот как это сделать...

Что вам понадобится:

— Node версии 0.10.x и npm; — phantomjs 1.9.x и casperjs 1.1.x (инструкции) для запуска тестов.

Инструкции по установке / настройке

  1. Проверьте, есть ли у вас необходимые требования, перечисленные выше!

  2. git clone https://github.com/TryGhost/Ghost.git — клонируйте репозиторий git.

  3. cd Ghost — перейдите в папку проекта.

  4. npm install -g grunt-cli — чтобы можно было запускать команды grunt (см. советы разработчика для получения дополнительной информации о Grunt).

  5. npm install — вам нужны все зависимости, поэтому не используйте флаг --production, упомянутый в руководствах по установке для пользователей.

    • Если установка завершается с ошибками, связанными с «node-gyp rebuild» или «SQLite3», следуйте инструкциям по установке SQLite3 ниже этого списка.
    • Обычно, если вы находитесь в vagrant и установили гостевые плагины и обновили их, этого не произойдёт.
  6. grunt init — обновляет зависимости bower, копирует ресурсы и компилирует шаблоны Handlebars.

  7. Если собираетесь работать в продакшене... Режим работы, также необходимо запустить grunt prod

  8. npm start — запускает Ghost, или grunt dev запустит его в режиме наблюдения.

Если что-то пойдёт не так, пожалуйста, ознакомьтесь с советами по устранению неполадок ниже (https://github.com/TryGhost/Ghost/blob/master/CONTRIBUTING.md#troubleshooting--faq).

Ищем, над чем поработать

Если вы заинтересованы в том, чтобы внести свой вклад в Ghost и не знаете, с чего начать, вот несколько советов:

  • Метка «новичок» (beginner) указывает на проблемы, которые должны быть подходящими для новичков в кодовой базе Ghost.
  • Метка «требуется помощь» (help wanted) выделяет проблемы, которым нужен куратор.
  • На странице вики-страницы дорожной карты (https://github.com/TryGhost/Ghost/wiki/Roadmap#github-backlogs) есть подробности о том, как мы используем этапы для определения приоритетности проблем.

Если у вас всё ещё есть трудности, присоединяйтесь к нам в канале #ghost в IRC и сообщите нам, что вас интересует!

Советы разработчикам

Во время разработки вы можете воспользоваться набором инструментов Grunt (https://github.com/TryGhost/Ghost/wiki/Grunt-Toolkit), чтобы автоматически компилировать ресурсы, такие как шаблоны Handlebars, Sass и скрипты Ember. Некоторые полезные команды включают:

  • grunt dev: следить за изменениями и автоматически перестраивать ресурсы;
  • grunt prod: создавать ресурсы для производственной среды;
  • grunt validate: запускать набор тестов и линтинг.

Адреса для разработки:

Обновление с последними изменениями

Извлечение последних изменений из master часто требует больше, чем просто pull, вам также может потребоваться выполнить одно или несколько из следующих действий:

  • npm install: получить новые зависимости;
  • grunt init: получит зависимости Bower и перекомпилирует шаблоны Handlebars для администратора;
  • удалить content/data/*.db: удалить базу данных и позволить Ghost воссоздать фикстуры.

Ключевые ветки и теги

  • master — это актуальная ветка разработки. Вся работа над следующим выпуском ведётся здесь. Не используйте эту ветку для рабочего сайта.
  • stable содержит последнюю версию Ghost. Эту ветку можно использовать в производстве.
  • gh-pages содержит The Ghost Guide — нашу документацию для разработчиков.

Набор инструментов Grunt

Ghost активно использует Grunt для автоматизации полезных задач, таких как создание ресурсов, тестирование, живая перезагрузка/наблюдение и т. д.

Документы Grunt Toolkit (https://github.com/TryGhost/Ghost/wiki/Grunt-Toolkit) стоит прочитать любому потенциальному участнику.

Устранение неполадок / FAQ

Я получаю сообщение «ОШИБКА: не удалось найти представление «индекс»

Похоже, у вас нет нашей темы по умолчанию — Casper, ваша папка content/themes/casper, вероятно, пуста. При клонировании из GitHub обязательно используйте SSH и запустите git submodule update --init.

Ghost ничего не делает — я вижу пустой экран

Похоже, вы, возможно, не запустили правильную команду grunt для создания ресурсов. Вам может понадобиться запустить grunt init, а если вы используете рабочий режим, то и grunt prod.

Я получаю ошибки node-gyp или SQLite3 не устанавливается должным образом во время npm install

Ghost зависит от SQLite3, который требует собственного двоичного файла. Они предоставляются для большинства основных платформ, но если вы используете более необычный *nix-вкус, вам может потребоваться следовать инструкциям по установке бинарных файлов node-sqlite3 (https://github.com/developmentseed/node-sqlite3/wiki/Binaries).

Лицензионное соглашение участника

Предоставляя свой код Ghost, вы предоставляете Фонду Ghost неисключительную, безотзывную, всемирную, бесплатную лицензию без роялти, сублицензируемую, передаваемую по всем вашим соответствующим правам интеллектуальной собственности (включая авторские права, патенты и любые другие права) на использование, копирование, подготовку производных работ, распространение и публичное исполнение и демонстрацию Вкладов на любых условиях лицензирования, включая, помимо прочего: (а) лицензии с открытым исходным кодом, такие как лицензия MIT; и (б) двоичные, проприетарные или коммерческие лицензии. За исключением...

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/diancloud-ghost.git
git@api.gitlife.ru:oschina-mirror/diancloud-ghost.git
oschina-mirror
diancloud-ghost
diancloud-ghost
master