Split distbuild task into two parts

This commit is contained in:
Fedor Korotkiy 2020-04-09 12:55:04 +03:00
parent e7eb367383
commit 515a3bc4ce
10 changed files with 34 additions and 13 deletions

View file

@ -1,3 +1,17 @@
- group: [HW] Distbuild blocks
start: 09-04-2020 18:00
deadline: 30-04-2020 23:59
tasks:
- task: disttest
score: 0
- group: Distbuild blocks
start: 09-04-2020 18:00
deadline: 23-04-2020 23:59
tasks:
- task: distbuild
score: 300
- group: Concurrency with shared memory - group: Concurrency with shared memory
start: 26-03-2020 18:00 start: 26-03-2020 18:00
deadline: 05-04-2020 23:59 deadline: 05-04-2020 23:59

View file

@ -85,17 +85,17 @@ type Job struct {
Рекомендуемый порядок выполнения: Рекомендуемый порядок выполнения:
- [`distbuild/pkg/build`](./distbuild/pkg/build) - определение графа сборки. В этом пакете ничего писать не нужно, - [`distbuild/pkg/build`](./pkg/build) - определение графа сборки. В этом пакете ничего писать не нужно,
нужно ознакомиться с существующим кодом. нужно ознакомиться с существующим кодом.
- [`distbuild/pkg/tarstream`](./distbuild/pkg/tarstream) - передача директории через сокет. - [`distbuild/pkg/tarstream`](./pkg/tarstream) - передача директории через сокет.
- [`distbuild/pkg/api`](./distbuild/pkg/api) - протокол общения между компонентами. - [`distbuild/pkg/api`](./pkg/api) - протокол общения между компонентами.
- [`distbuild/pkg/artifact`](./distbuild/pkg/artifact) - кеш артефактов и протокол передачи артефактов между воркерами. - [`distbuild/pkg/artifact`](./pkg/artifact) - кеш артефактов и протокол передачи артефактов между воркерами.
- [`distbuild/pkg/filecache`](./distbuild/pkg/filecache) - кеш файлов и протокол передачи файлов между компонентами. - [`distbuild/pkg/filecache`](./pkg/filecache) - кеш файлов и протокол передачи файлов между компонентами.
- [`distbuild/pkg/scheduler`](./distbuild/pkg/filecache) - планировщик с эвристикой локальности. - [`distbuild/pkg/scheduler`](./pkg/scheduler) - планировщик с эвристикой локальности.
После того, как все кубики будут готовы, нужно будет соединить их вместе, реализовав `distbuild/pkg/worker`, После того, как все кубики будут готовы, нужно будет соединить их вместе, реализовав `distbuild/pkg/worker`,
`distbuild/pkg/client` и `distbuild/pkg/coordinator`. Код в этих пакетах нужно отлаживать на `distbuild/pkg/client` и `distbuild/pkg/dist`. Код в этих пакетах нужно отлаживать на
интеграционных тестах в [`distbuild/disttest`](./distbuild/disttest). интеграционных тестах в [`distbuild/disttest`](../disttest).
Код тестов в этом задании менять нельзя. Это значит, что вы не можете менять интерфейсы в тех местах, где Код тестов в этом задании менять нельзя. Это значит, что вы не можете менять интерфейсы в тех местах, где
код покрыт тестами. код покрыт тестами.
@ -132,7 +132,14 @@ prime@bee ~/C/shad-go> find distbuild -iname '*.go' | grep -v test | grep -v moc
# Критерии оценки # Критерии оценки
Решение должно проходить все тесты, так же как в обычной задаче. После успешной попытки, в таблице gdoc Решение должно проходить все тесты, так же как в обычной задаче.
будет стоять 0. После этого, проверяющие должны будут просмотреть решение и заменить оценку в таблице на 1.
Это будет значить, что задача засчитана. Code Review не будет, проверка нужна только чтобы удостовериться что Задача разбита на две части:
посылка честно проходит все тесты. Отдельный Merge Request создавать не нужно. - `distbuild` проверяет решение всех "кубиков". Эта задача расчитывается как обычная семинарская.
- `disttest` проверяет интеграционные тесты. Эта задача оценивается как домашка. После успешной попытки, в таблице gdoc
будет стоять 0. После этого, проверяющие должны будут просмотреть решение и заменить оценку в таблице на 1.
Это будет значить, что домашнее задание засчитано. Code Review не будет, проверка нужна только чтобы удостовериться что
посылка честно проходит все тесты. Отдельный Merge Request создавать не нужно.
Чтобы запустить проверку внутри `disttest`, сделайте коммит добавляющий незначащий перенос строки в какой-нибудь файл
из этой директории.

View file

@ -16,4 +16,4 @@
Все тесты останавливают окружение отменяя корневой контекст. Если ваш код где-то неправильно обрабатывает Все тесты останавливают окружение отменяя корневой контекст. Если ваш код где-то неправильно обрабатывает
отмену контекста, то тест может зависать на остановке. Вы можете отладить такое зависание, подключившись отмену контекста, то тест может зависать на остановке. Вы можете отладить такое зависание, подключившись
к зависшему тесту в дебагере, или послав SIGQUIT зависшему процессу. к зависшему тесту в дебагере, или послав SIGQUIT зависшему процессу.