Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Инструкция по сдаче заданий

В рамках курса вам будут предложены домашние задания и практики. Сдача происходит с помощью Merge Request в GitLab.

Для работы с заданиями вам необходимо аутентифицироваться на https://gitlab.ct.itmo.ru через вашу учётную запись ITMO ID. В процессе нужно будет подтвердить почту — следуйте инструкциям.

После этого вам также необходимо настроить взаимодействие с репозиториями через SSH-ключи по инструкции от GitLab. В дальнейшем ВСЕ ссылки на репозитории, в частности для клонирования, должны быть в формате SSH.

Создание репозитория с заданием

  • К каждому заданию будет приложена инвайт-ссылка для создания репозитория в GitLab, после перехода по ней у вас создастся приватный репозиторий со стартовым кодом, тестами и конфигурациями. Склонируйте его и выполняйте задания в ветке solution.
  • Вместе с репозиторием автоматически создаётся Merge Request из ветки solution в ветку master.

Подтягивание новых тестов и других изменений

Иногда нам приходится править какие-то проблемы в конфигурациях или добавлять новые тесты. В этом случае изменения автоматически подтянутся в master ветку вашего репозитория на GitLab. При наличии конфликтов с веткой solution вы должны самостоятельно их разрешить.

Сдача

Для сдачи решения необходимо сделать следующее:

  • Сделайте коммит(-ы) с вашим решением.
  • Перенесите решение в ветку solution, если не делали сразу всё в ней.
  • Запушьте solution на удалённый репозиторий.
  • Откройте автоматически созданный Merge Request (MR) и удостоверьтесь, что тесты в тестирующей системе прошли (в MR появится зелёная галочка, также можно посмотреть подробности, нажав по ней).
  • Важно: Проверьте, что в MR нет конфликтов с веткой master. При необходимости предпримите действия для их разрешения (например, git rebase).
  • Пришлите с помощью формы заявку на проверку с ссылкой на этот MR.
  • В случае первой сдачи (или если все ваши сдачи были проверены на /) выберите режим сдача, иначе — правки.
  • Дождитесь проверки. Исправьте замечания и, если они есть, повторите процесс.

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

Процесс проверки

  • В процессе проверки преподаватель будет оставлять комментарии в вашем MR. Комментарии — это замечания, которые нужно исправлять.
  • Некоторые комментарии могут быть помечены [note], их исправление необязательно — чаще всего это предложения альтернативных решений, иногда выходящих за рамки курса.
  • Закрывать (“resolve”) треды с комментариями может только преподаватель.
  • На каждый оставленный комментарий нужно ответить: либо кратко написать, как поправили, либо, если вы считаете, что замечание некорректно и вам не нужно ничего исправлять, обосновать это в ответе.
  • В простейших случаях, когда комментарий однозначно указывает, как решить проблему — может быть достаточно ответить “fixed”. Это не относится к случаям, когда у проверяющих возникли к вашему коду вопросы (на них нужно ответить) или вам указали на проблему, которую можно адресовать множеством способов (хочется знать, каким путём пошли вы).
  • Задание считается полностью выполненным, только если не осталось ни одного неисправленного комментария кроме [note].
  • Не стоит посылать заявку на проверку правок до того, как вы ответили на все комментарии (и исправили замечания).
  • Любые коммиты, сделанные после посылки формы и до её проверки, делаются на ваш страх и риск, так как могут произойти уже после того, как преподаватель начал проверку.
  • MR ни в какой момент не будет замёрджен, это нормально.

Коммиты

При создании коммитов необходимо придерживаться следующих правил (их несоблюдение считается ошибкой оформления и может быть оценено на /):

  • Следите, чтобы в коммиты попадали только файлы с решением (при необходимости можете дополнять .gitignore), а файлы с тестами не изменились.
  • При внесении правок разбивайте изменения на отдельные коммиты, в соответствии с замечаниями (или группами тесно связанных замечаний), а не объединяйте все в одну “кучу”.
  • В частности, массовые переименования и рефакторинги должны быть вынесены в отдельные от осмысленных изменений коммиты.
  • По сообщению коммита должно быть понятно, что было изменено.
  • Не форсируется, но рекомендуется придерживаться какой-нибудь конвенции именования коммитов, например: https://cbea.ms/git-commit/.