From 515a3bc4ce17f12df0796d8cd5f22cab59556f9d Mon Sep 17 00:00:00 2001 From: Fedor Korotkiy Date: Thu, 9 Apr 2020 12:55:04 +0300 Subject: [PATCH] Split distbuild task into two parts --- .deadlines.yml | 14 +++++++++ distbuild/README.md | 31 ++++++++++++------- {distbuild/disttest => disttest}/.gitignore | 0 {distbuild/disttest => disttest}/README.md | 2 +- {distbuild/disttest => disttest}/fixture.go | 0 {distbuild/disttest => disttest}/recorder.go | 0 .../single_worker_test.go | 0 .../testdata/TestSourceFiles/a.txt | 0 .../testdata/TestSourceFiles/b/c.txt | 0 .../three_workers_test.go | 0 10 files changed, 34 insertions(+), 13 deletions(-) rename {distbuild/disttest => disttest}/.gitignore (100%) rename {distbuild/disttest => disttest}/README.md (97%) rename {distbuild/disttest => disttest}/fixture.go (100%) rename {distbuild/disttest => disttest}/recorder.go (100%) rename {distbuild/disttest => disttest}/single_worker_test.go (100%) rename {distbuild/disttest => disttest}/testdata/TestSourceFiles/a.txt (100%) rename {distbuild/disttest => disttest}/testdata/TestSourceFiles/b/c.txt (100%) rename {distbuild/disttest => disttest}/three_workers_test.go (100%) diff --git a/.deadlines.yml b/.deadlines.yml index ebb1554..3f6e02a 100644 --- a/.deadlines.yml +++ b/.deadlines.yml @@ -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 diff --git a/distbuild/README.md b/distbuild/README.md index d5f6582..dbca566 100644 --- a/distbuild/README.md +++ b/distbuild/README.md @@ -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`, сделайте коммит добавляющий незначащий перенос строки в какой-нибудь файл +из этой директории. diff --git a/distbuild/disttest/.gitignore b/disttest/.gitignore similarity index 100% rename from distbuild/disttest/.gitignore rename to disttest/.gitignore diff --git a/distbuild/disttest/README.md b/disttest/README.md similarity index 97% rename from distbuild/disttest/README.md rename to disttest/README.md index bae2874..5e54685 100644 --- a/distbuild/disttest/README.md +++ b/disttest/README.md @@ -16,4 +16,4 @@ Все тесты останавливают окружение отменяя корневой контекст. Если ваш код где-то неправильно обрабатывает отмену контекста, то тест может зависать на остановке. Вы можете отладить такое зависание, подключившись -к зависшему тесту в дебагере, или послав SIGQUIT зависшему процессу. \ No newline at end of file +к зависшему тесту в дебагере, или послав SIGQUIT зависшему процессу. diff --git a/distbuild/disttest/fixture.go b/disttest/fixture.go similarity index 100% rename from distbuild/disttest/fixture.go rename to disttest/fixture.go diff --git a/distbuild/disttest/recorder.go b/disttest/recorder.go similarity index 100% rename from distbuild/disttest/recorder.go rename to disttest/recorder.go diff --git a/distbuild/disttest/single_worker_test.go b/disttest/single_worker_test.go similarity index 100% rename from distbuild/disttest/single_worker_test.go rename to disttest/single_worker_test.go diff --git a/distbuild/disttest/testdata/TestSourceFiles/a.txt b/disttest/testdata/TestSourceFiles/a.txt similarity index 100% rename from distbuild/disttest/testdata/TestSourceFiles/a.txt rename to disttest/testdata/TestSourceFiles/a.txt diff --git a/distbuild/disttest/testdata/TestSourceFiles/b/c.txt b/disttest/testdata/TestSourceFiles/b/c.txt similarity index 100% rename from distbuild/disttest/testdata/TestSourceFiles/b/c.txt rename to disttest/testdata/TestSourceFiles/b/c.txt diff --git a/distbuild/disttest/three_workers_test.go b/disttest/three_workers_test.go similarity index 100% rename from distbuild/disttest/three_workers_test.go rename to disttest/three_workers_test.go