Правила сдачи лабораторных работ для студентов курса “Основы Программирования” кафедры ИУ5 МГТУ им. Н.Э. Баумана.
Перед тем, как приступать к непосредственому выполнению новой лабораторной работы, подготовьте репозиторий. Для этого убедитесь, что в вашем репозитории существует специальная ветка для конкретной лабораторной работы:
git branch
Данная команда выведет список всех веток в вашем текущем репозитории. Все ветки с лабораторными работами именуются как lab_номер-лабораторной-работы. Если ветка с соответствующей лабораторной работой отсутствует, то подкачайте изменения из основного репозитория с лабами (в лабораторной работе 0.2 отмечен меткой upstream):
git pull upstream
или
git pull upstream имя-ветки
Переключитесь на эту ветку:
git checkout имя-ветки
Свяжите эту ветку вашего локального репозитория с вашим удаленным репозиторием на github.com (с меткой origin):
git push --set-upstream origin имя-ветки
Сделать это надо ровно один раз.
После этого можете приступать к выполнению задания лабораторной работы.
Если необходимо переключиться между разными ветками для выполнения другой лабораторной работы, то перед переходом на другую ветку убедитесь, что вы либо закоммитили текущие изменения, либо положили их в stash. После этого переключитесь на ветку с другой лабораторной работой следующей командой:
git checkout название-ветки
Перед тем, как сдать лабораторную работу, необходимо провести несколько локальных проверок и залить вашу работу в репозиторий на github.com.
Для этого, во-первых, убедитесь, что ваш проект собирается без ошибок. При этом на вход компилятору должны быть поданы следующие флаги:
-Wall -Werror -Wextra -Wpedantic
Данные флаги должны быть либо проставлены через соответствующее указание в системе сборки CMake, либо вручную во время компиляции, например:
g++ -std=c++20 -Wall -Werror -Wextra -Wpedantic файлы-с-исходным-кодом -o название-приложения
Во-вторых, тщательно проверьте логику работу вашего приложения. Убедитесь, что вручную протестировали все возможные кейсы и случаи, которые могут возникнуть при использовании приложения.
В-третьих, запустите приложение clang-format:
clang-format --dry-run -Werror файлы-с-исходным-кодом
Проверьте, что приложение ничего не вывело в консоль. Убедитесь, что clang-format завершился без ошибки, запустив следующую команду:
echo $?
Данная команда выведет в консоль код, который вернуло последнее запущенное в данной консоли приложение. Если выводится 0, то приложение завершилось без ошибок. Если любое другое число, то что-то пошло не так.
Наконец, в-четвертых, запустите статический анализатор clang-tidy через CMake или вручную в консоли:
clang-tidy файлы-с-исходным-кодом
Опять же проверьте вывод и снова запустите команду, выводящую в консоль код, который вернуло последнее запущенное в данной консоли приложение:
echo $?
Убедитесь, что в вашем репозитории нет лишних файлов (или не добавляйте их в индекс перед коммитом). В удаленном репозитории (на github.com) не должно быть различных исполняемых, текстовых файлов, настроек IDE, артефактов сборки и т.п. При необходимости дополняйте файл .gitignore.
Допустимые файлы:
Закоммитьте изменения и запушьте их в соответствующую ветку в свой удаленный репозиторий на github.com. Дождитесь, пока запустятся и завершатся все автоматические проверки (компиляция, clang-format, clang-tidy), и отобразится либо красный крестик, либо зеленая галочка:
После этого можете продемонстрировать лабораторную работу преподавателю.
После успешной демонстрации и защиты лабораторной работы необходимо сделать и распечатать отчет.
Содержание отчета:
Когда делаете скриншоты работы приложения, измените цвет консоли на светлый (желательно белый), а цвет шрифта на темный (желательно черный). Это позволит улучшить читаемость скриншотов и сэкономит чернила при печати.