Хотите поработать над AlloyTools? Вот инструкции, которые помогут вам начать. Они, вероятно, не идеальны, пожалуйста, сообщите нам, если что-то кажется неправильным или неполным.
При сообщении о проблемах на GitHub, пожалуйста, укажите версию Alloy, которую вы используете (посмотрите в окне «О программе» или из командной строки укажите -v
), а также версию Java (java -version
) и сведения о вашей ОС.
Для сборки AlloyTools нужна только Java. Мы используем Java 8.
Мы используем Gradle для сборки, и в репозитории есть gradlew
, который получает нужную версию Gradle.
./gradlew build
— собирает и тестирует проекты.
Мы используем Travis CI и в репозитории есть файл .travis.yml
для сборки на Travis CI.
Мы используем треугольный рабочий процесс git. Это означает, что никто, даже сопровождающие Alloy, не может напрямую отправлять изменения в основной репозиторий AlloyTools. Все вклады поступают через запросы на вытягивание. Поэтому каждому участнику потребуется создать форк основного репозитория Alloy на GitHub. Все вклады вносятся в виде коммитов в ваш форк. Затем вы отправляете запрос на вытягивание, чтобы их рассмотрели для слияния с основным репозиторием Alloy.
После создания форка основного репозитория Alloy на GitHub вы можете клонировать основной репозиторий в свою систему:
git clone https://github.com/AlloyTools/org.alloytools.alloy.git
Это клонирует основной репозиторий на локальный диск и устанавливает удалённый источник в Git. Далее вы настроите вторую сторону треугольника на свой форк репозитория.
cd org.alloytools.alloy
git remote add fork git@github.com:github-user/org.alloytools.alloy.git
Обязательно замените URL на SSH-адрес вашего форка репозитория на GitHub. Затем мы настраиваем локальный репозиторий для отправки ваших коммитов на форк репозиторий.
git config remote.pushdefault fork
Теперь вы будете получать данные из origin
, основного репозитория, и отправлять их в fork
, свой форк репозитория. Для этого требуется как минимум Git 1.8.4. Также рекомендуется настроить
git config push.default simple
если вы ещё не используете Git 2.0, где это значение по умолчанию.
Наконец, третья сторона треугольника — это запросы на вытягивание из вашего форка в основной репозиторий.
Убедитесь, что вы настроили Travis CI для своего форка репозитория для тестирования ваших коммитов при отправке их на ваш форк репозиторий. Travis CI также будет создавать любые отправленные вами запросы на вытягивание.
Мы всегда рады получать запросы на вытягивание и делаем всё возможное, чтобы обработать их как можно быстрее. Не уверены, стоит ли отправлять этот запрос? Сделайте это! Мы будем признательны.
Если ваш запрос на вытягивание не принят с первой попытки, не расстраивайтесь! Если есть проблема с реализацией, надеемся, вы получили отзыв о том, что нужно улучшить.
Мы очень стараемся поддерживать Alloy компактным и сфокусированным. Мы не хотим, чтобы он делал всё для всех. Это значит, что мы можем решить не включать новую функцию. Однако может быть способ реализовать эту функцию поверх Alloy.
Любое существенное улучшение должно быть задокументировано как проблема GitHub до того, как кто-либо начнёт над ним работать.
Пожалуйста, уделите время тому, чтобы проверить, не существует ли уже проблемы, документирующей ваш отчёт об ошибке или предложение по улучшению. Если она есть, никогда не помешает добавить быстрое «+1» или «У меня тоже есть эта проблема». Это поможет расставить приоритеты наиболее распространённых проблем и запросов.
Создайте форк репозитория и внесите изменения в свой форк в функциональной ветке:
Если это функциональная ветка, создайте проблему улучшения, чтобы объявить о своих намерениях, и назовите её XXX-что-то, где XXX — номер проблемы.
Отправьте модульные тесты для ваших изменений. Мы используем junit, и в большинстве проектов уже есть несколько тестовых случаев.
Посмотрите на существующие тесты для вдохновения. Запустите полную сборку, включая все тесты в вашей ветке, прежде чем отправлять запрос на вытягивание. Здесь очень помогает настройка Travis CI для вашего форка репозитория.
Пишите чистый код. Универсально отформатированный код способствует простоте написания, чтения и обслуживания. Мы используем Eclipse, и во всех проектах есть настройки Eclipse, которые правильно форматируют код. Убедитесь, что вы избегаете ненужных изменений пробелов, которые усложняют различия и делают просмотр запросов на вытягивание гораздо более трудоёмким.
Описания запросов на вытягивание должны быть как можно более чёткими и включать ссылку на все проблемы, которые они решают.
Запросы на вытягивание не должны содержать коммиты от других пользователей или веток.
Сообщения коммитов должны начинаться с краткого резюме (максимум 50 символов), написанного в повелительном наклонении, за которым следует необязательный, более подробный пояснительный текст, отделённый от резюме пустой строкой.
[визуальный] Исправить ошибку положения в визуализаторе
Положение узлов в трассировке различается, эта ошибка сохраняет один и тот же узел на одном и том же месте.
В ваш запрос на вытягивание могут быть добавлены комментарии по обзору кода. Обсудите, затем внесите предложенные изменения и отправьте дополнительные коммиты в свою функциональную ветку. Обязательно оставьте комментарий после отправки. Новые коммиты автоматически появятся в запросе на вытягивание, но рецензенты не будут уведомлены, если вы не прокомментируете.
Прежде чем запрос на вытягивание будет объединён, убедитесь, что вы объединяете свои коммиты в логические единицы работы с помощью git rebase -i и git push -f. После каждого коммита набор тестов должен проходить. Включайте изменения документации в тот же коммит, чтобы при отмене были удалены все следы функции или исправления.
Коммиты, исправляющие или закрывающие проблему, должны включать ссылку типа «Закрывает #XXX» или «Исправляет #XXX», которая автоматически закроет проблему при объединении.
Подпись — это простая строка в конце сообщения коммита, которая подтверждает, что вы его написали или иным образом имеете право передать его в качестве патча с открытым исходным кодом. Правила довольно просты: если вы можете подтвердить нижеизложенное (с developercertificate.org):
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
тогда вы просто добавляете строку в конец сообщения git commit:
Signed-off-by: Joe Smith joe.smith@email.com
используя своё настоящее имя. Извините, никаких псевдонимов или анонимных вкладов.
Многие инструменты пользовательского интерфейса Git имеют...
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )