Skip to content

reprort - Gregory Shchelokaev - #18

Open
GRIGAeo wants to merge 11 commits into
gsvgit:mainfrom
GRIGAeo:main
Open

reprort - Gregory Shchelokaev#18
GRIGAeo wants to merge 11 commits into
gsvgit:mainfrom
GRIGAeo:main

Conversation

@GRIGAeo

@GRIGAeo GRIGAeo commented Jun 11, 2026

Copy link
Copy Markdown

Add report. Проект UCFS: Доработка репозитория


% Буквально парой предложений ввести в контекст, обязательно сформулировать цель работы. Если работа делается где-то глубоко внутри проекта, на введение можно потратить больше места, чтобы подвести читателя от сути проекта в целом к тому, что конкретно вам надо было сделать. Только без воды, никакого "в современном мире"!
% Работа выполняется в компании \dots в рамках проекта по \dots. \textbf{Целью работы является} \dots
Работа выполняется в рамках проекта UCFS\footnote{Ссылка на UCFS: \url{https://github.com/FormalLanguageConstrainedPathQuerying/UCFS}}. UCFS "--- это инструмент для решения задач анализа графов с дополнительными ограничениями на пути, заданными контекстно-свободной грамматикой какого-либо языка. Целью работы является обеспечение проекта соответствующей инфраструктурой (CI, публикация пакетов, контроль тестового покрытия).

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UCFS "--- --- странная конструкция. Если Вы про неразрывный пробел, то это UCFS~---

% Это пояснение актуальности. Тут обязательно надо обрисовать полезность вашей работы для конечного пользователя (и заодно как-то описать, кто такой ваш конечный пользователь --- может, это соседняя команда). Даже если вы делаете работу "глубоко внутри", выясните у консультанта, чем это людям поможет. И опишите, кто выступал в роли "заказчика" вашей работы, т.е. кто и зачем предложил задачу. Можно без конкретных имён, но названия организаций вполне желательны.
% Результаты работы необходимы для \dots, для конечных пользователей продукта это полезно тем-то, в выполнении работы заинтересованы те-то.

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

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

разработчики данной реализации инструмента --- наверное, просто разработчики данного инструмента

% Раздел пишется в свободной форме, с минимумом технических подробностей (можно приводить ссылки на более подробные документы).

% Тут надо кратко описать идею решения, спозиционировать его относительно предыдущих наработок\footnote{Если на них надо сослаться, то в подстраничной сноске, URL: \url{http://example.com} (дата обращения: не забываем указывать).} и существующих аналогов (тоже предельно кратко), по возможности обосновать принятые решения.
Основной идеей решения поставленных задач является создание соответствующих конфигурационных файлов (настройка CI/CD), изменение существующих файлов сборки отдельных модулей проекта для создания корректных отчётов о тестовом покрытии, добавление отдельного модуля, отвечающего за публикацию jar-файлов на GitHub Packages.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это не идея, просто решение уже. Пишите проще и конкретнее.

Основной идеей решения поставленных задач является создание соответствующих конфигурационных файлов (настройка CI/CD), изменение существующих файлов сборки отдельных модулей проекта для создания корректных отчётов о тестовом покрытии, добавление отдельного модуля, отвечающего за публикацию jar-файлов на GitHub Packages.
% Вот это важно, опишите кратко, что использовали

Для выполнения поставленных задач код соответствующих программ был написан на языке программирования Kotlin Script и языке сериализации данных YAML.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Каких программ? Выше у Вас только про конфиги, практически. Аккуратнее. Может даже подробнее.


Контроль тестового покрытия:
\begin{itemize}
\item ./gradlew solver:jacocoTestCoverageVerification generator:jacocoTestCoverageVerification -- BUILD SUCCESSFUL

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это что за заклинание? Текст должен быть текстом. Хоть и с техническими подробностями.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут, кстати, тоже с тире беда.

Контроль тестового покрытия:
\begin{itemize}
\item ./gradlew solver:jacocoTestCoverageVerification generator:jacocoTestCoverageVerification -- BUILD SUCCESSFUL
\item прогон воркфлоу через act pull\_request -- Job succeeded, все 5 шагов выполнены, включая сводную таблицу покрытия

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"прогон воркфлоу" --- попахивает разговорной речью. Не надо так в отчётах.


Публикация jar-файлов:
\begin{itemize}
\item ./gradlew :publisher:publishToMavenLocal -- jar содержит 125 классов solver+generator, POM -- 6 ссылок на внешние зависимости проекта

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тоже пачка каких-то заклинаний. Ещё и тире не совсем правильные.

\item ./gradlew :publisher:publish --dry-run -- BUILD SUCCESSFUL
\end{itemize}

Воспроизведение:

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Воспроизведение чего?

\item \texttt{./bin/act release -W .github/workflows/ci-publishing-jar-files.yaml} --- эмулирует CI-воркфлоу публикации в Docker-контейнере
\end{itemize}

Вывод: все компоненты CI/CD корректно настроены и проверены -- тесты запускаются, покрытие контролируется, публикация в GitHub Packages работает.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. А что мешает провреить прям на гитхаб, пусть и в своём форке?
  2. тире.

% ниже списком перечисляете то, что выносится как результат практики.

\begin{itemize}
\item Для модуля solver характерны такие показатели тестового покрытия:

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Таблицы, рисунки и всякое такое интегрируюбся через ссылку. У таблицы \label, в тексте "что-то там происходит в таблице~\ref{...}"

@gsvgit gsvgit left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почитайте, пожалуйста, прдложенные вам всем материалы по оформлению и вёрстке. Ну или у коллег спросите про типичные ошибки.

@WoWaster

Copy link
Copy Markdown
Collaborator

Очень советую всё-таки научиться решать конфликты. Идея: удалить - слить - вернуть — ооочень плохая и за такое на работе Вам дадут по рукам.

@gsvgit

gsvgit commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Очень советую всё-таки научиться решать конфликты. Идея: удалить - слить - вернуть — ооочень плохая и за такое на работе Вам дадут по рукам.

Мне что-то подсказывает, что у большинства проблемы с линейностью истории (да, я включил это требование). А тут как бы надо немного больше повозиться, чтобы привести существующую историю в порядок.

Но да, этому стоит научиться.


\section{Постановка задачи}

% Буквально парой предложений ввести в контекст, обязательно сформулировать цель работы. Если работа делается где-то глубоко внутри проекта, на введение можно потратить больше места, чтобы подвести читателя от сути проекта в целом к тому, что конкретно вам надо было сделать. Только без воды, никакого "в современном мире"!

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А зачем тут эти комментирии?

Для выполнения поставленных задач соответствующие части данного проекта были написаны на языке программирования Kotlin Script и языке сериализации данных YAML.
Реализация решения осуществлялась с использованием таких программных продуктов, как платформа непрерывной интеграции GitHub Actions, система сборки проектов Gradle, инструмент контроля тестового покрытия JaCoCo (Java Code Coverage).

\section{Апробация}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это вряд ли можно назвать апробацией.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошо. Тогда как вы смотрите на то, чтобы в моём отчёте переименовать данный раздел на "Верификация". В шаблоне были только "Апробация" и "Эксперименты", ни тем ни другим проделанная работа не является, поэтому я пришёл к выводу, что стоит дать этому разделу другоме название.


Проверка выполненных настроек CI/CD, а также контроля тестового покрытия и публикации пакетов проводилась локально и на GitHub Actions в форке~--- \url{https://github.com/GRIGAeo/UCFS} (дата обращения: \DTMdate{2026-06-14}).

Для проверки корректности контроля тестового покрытия из корня проекта были запущены следующие команды:

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Точка.

\item ./gradlew :publisher:publishToMavenLocal~--- в результате получается jar-файл, содержащий все скомпилированные файлы исходного кода без внешних библиотек, и POM-файл с указанием ссылок на все 6 зависимостей проекта.
\end{itemize}

Для проверки корректности публикации пакетов в очередной раз использовалась платформа GitHub Actions в данном форке \url{https://github.com/GRIGAeo/UCFS} (дата обращения: \DTMdate{2026-06-14}). Далее будут представлены варианты завершения workflow \foreignquote{english}{Publish package to GitHub Packages}, который запускается только при выходе новых версий проекта:

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Точка.

\centering
\begin{tabular}{|l|c|c|}
\hline
Показатель & Покрытие & Порог \\

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исходя из чего попроги устанавливались?

@GRIGAeo
GRIGAeo force-pushed the main branch 2 times, most recently from 7d169a1 to 4cab886 Compare June 15, 2026 13:10
Для выполнения поставленных задач соответствующие части данного проекта были написаны на языке программирования Kotlin Script и языке сериализации данных YAML.
Реализация решения осуществлялась с использованием таких программных продуктов, как платформа непрерывной интеграции GitHub Actions, система сборки проектов Gradle, инструмент контроля тестового покрытия JaCoCo (Java Code Coverage).

\section{Верификация}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Скорее, эксперименты?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants