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
start: 26-03-2020 18:00
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/api`](./distbuild/pkg/api) - протокол общения между компонентами.
- [`distbuild/pkg/artifact`](./distbuild/pkg/artifact) - кеш артефактов и протокол передачи артефактов между воркерами.
- [`distbuild/pkg/filecache`](./distbuild/pkg/filecache) - кеш файлов и протокол передачи файлов между компонентами.
- [`distbuild/pkg/scheduler`](./distbuild/pkg/filecache) - планировщик с эвристикой локальности.
- [`distbuild/pkg/tarstream`](./pkg/tarstream) - передача директории через сокет.
- [`distbuild/pkg/api`](./pkg/api) - протокол общения между компонентами.
- [`distbuild/pkg/artifact`](./pkg/artifact) - кеш артефактов и протокол передачи артефактов между воркерами.
- [`distbuild/pkg/filecache`](./pkg/filecache) - кеш файлов и протокол передачи файлов между компонентами.
- [`distbuild/pkg/scheduler`](./pkg/scheduler) - планировщик с эвристикой локальности.
После того, как все кубики будут готовы, нужно будет соединить их вместе, реализовав `distbuild/pkg/worker`,
`distbuild/pkg/client` и `distbuild/pkg/coordinator`. Код в этих пакетах нужно отлаживать на
интеграционных тестах в [`distbuild/disttest`](./distbuild/disttest).
`distbuild/pkg/client` и `distbuild/pkg/dist`. Код в этих пакетах нужно отлаживать на
интеграционных тестах в [`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`, сделайте коммит добавляющий незначащий перенос строки в какой-нибудь файл
из этой директории.