Skip to content

Commit 6c84b9e

Browse files
authored
Add .devcontainer/devcontainer.json and document its usage (#559)
1 parent 06ac9a1 commit 6c84b9e

File tree

5 files changed

+278
-41
lines changed

5 files changed

+278
-41
lines changed

.devcontainer/devcontainer.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "Parallel Programming Course",
3+
"image": "ghcr.io/learning-process/ppc-ubuntu:latest",
4+
"customizations": {
5+
"vscode": {
6+
"extensions": [
7+
"ms-vscode.cpptools-extension-pack",
8+
"ms-vscode.cmake-tools",
9+
"ms-python.python"
10+
],
11+
"settings": {
12+
"cmake.configureOnOpen": true,
13+
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
14+
}
15+
}
16+
},
17+
"postCreateCommand": "python3 -m pip install -r requirements.txt"
18+
}

docs/locale/ru/LC_MESSAGES/user_guide/ci.po

Lines changed: 86 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ msgid ""
99
msgstr ""
1010
"Project-Id-Version: Parallel Programming Course \n"
1111
"Report-Msgid-Bugs-To: \n"
12-
"POT-Creation-Date: 2025-01-25 16:54+0100\n"
12+
"POT-Creation-Date: 2025-07-27 12:32+0200\n"
1313
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1414
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1515
"Language: ru\n"
@@ -19,7 +19,7 @@ msgstr ""
1919
"MIME-Version: 1.0\n"
2020
"Content-Type: text/plain; charset=utf-8\n"
2121
"Content-Transfer-Encoding: 8bit\n"
22-
"Generated-By: Babel 2.16.0\n"
22+
"Generated-By: Babel 2.17.0\n"
2323

2424
#: ../../user_guide/ci.rst:2
2525
msgid "Continuous Integration (CI)"
@@ -32,9 +32,11 @@ msgid ""
3232
"checkout, build ans testing stages. Each integration is verified by an "
3333
"automated build and automated tests."
3434
msgstr ""
35-
"Студенты должны пройти все проверки в конвейере CI, прежде чем"
36-
" начнется проверка работы студентами и преподавателями. Это включает в себя успешную проверку кода, "
37-
" а также стадии построения и тестирования. Каждая интеграция проверяется автоматизированной сборкой и автоматизированными тестами."
35+
"Студенты должны пройти все проверки в конвейере CI, прежде чем начнется "
36+
"проверка работы студентами и преподавателями. Это включает в себя "
37+
"успешную проверку кода, а также стадии построения и тестирования. Каждая"
38+
" интеграция проверяется автоматизированной сборкой и автоматизированными "
39+
"тестами."
3840

3941
#: ../../user_guide/ci.rst:9
4042
msgid "CI Pipeline"
@@ -47,3 +49,82 @@ msgstr "CI конвейер для данного проекта выражае
4749
#: ../../user_guide/ci.rst:13
4850
msgid "CI Pipeline Diagram"
4951
msgstr "Схема CI конвейера"
52+
53+
#: ../../user_guide/ci.rst:18
54+
msgid "Running ``scripts/run_tests.py``"
55+
msgstr ""
56+
57+
#: ../../user_guide/ci.rst:20
58+
msgid ""
59+
"Automated tests are executed through the ``scripts/run_tests.py`` helper."
60+
" The script requires several environment variables to be defined:"
61+
msgstr ""
62+
63+
#: ../../user_guide/ci.rst:23
64+
msgid "``PPC_NUM_THREADS``"
65+
msgstr ""
66+
67+
#: ../../user_guide/ci.rst:24
68+
msgid ""
69+
"Number of threads to use. The value is also exported as "
70+
"``OMP_NUM_THREADS``."
71+
msgstr ""
72+
73+
#: ../../user_guide/ci.rst:27
74+
msgid "``PPC_NUM_PROC``"
75+
msgstr ""
76+
77+
#: ../../user_guide/ci.rst:28
78+
msgid "Number of MPI processes to launch."
79+
msgstr ""
80+
81+
#: ../../user_guide/ci.rst:30
82+
msgid "``PPC_ASAN_RUN``"
83+
msgstr ""
84+
85+
#: ../../user_guide/ci.rst:31
86+
msgid ""
87+
"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs "
88+
"(optional, default ``0``)."
89+
msgstr ""
90+
91+
#: ../../user_guide/ci.rst:34
92+
msgid "``PPC_IGNORE_TEST_TIME_LIMIT``"
93+
msgstr ""
94+
95+
#: ../../user_guide/ci.rst:35
96+
msgid "Set to ``1`` to disable test time limits (optional, default ``0``)."
97+
msgstr ""
98+
99+
#: ../../user_guide/ci.rst:37
100+
msgid ""
101+
"The execution mode is selected with ``--running-type``. The most common "
102+
"modes are ``threads`` for shared-memory backends and ``processes`` for "
103+
"MPI based tests. ``performance`` mode runs performance benchmarks."
104+
msgstr ""
105+
106+
#: ../../user_guide/ci.rst:41
107+
msgid "Example usage:"
108+
msgstr ""
109+
110+
#: ../../user_guide/ci.rst:57
111+
msgid ""
112+
"Additional MPI arguments can be supplied with ``--additional-mpi-args`` "
113+
"when running in ``processes`` mode."
114+
msgstr ""
115+
116+
#: ../../user_guide/ci.rst:60
117+
msgid ""
118+
"The ``--counts`` option allows sequential execution of tests with several"
119+
" thread/process counts. When specified, the script will iterate over the"
120+
" provided values, updating ``PPC_NUM_THREADS`` or ``PPC_NUM_PROC`` "
121+
"accordingly before each run."
122+
msgstr ""
123+
124+
#: ../../user_guide/ci.rst:65
125+
msgid ""
126+
"Use ``--verbose`` to print every command executed by ``run_tests.py``. "
127+
"This can be helpful for debugging CI failures or verifying the exact "
128+
"arguments passed to the test binaries."
129+
msgstr ""
130+

docs/locale/ru/LC_MESSAGES/user_guide/environment.po

Lines changed: 121 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ msgid ""
99
msgstr ""
1010
"Project-Id-Version: Parallel Programming Course \n"
1111
"Report-Msgid-Bugs-To: \n"
12-
"POT-Creation-Date: 2025-05-19 16:44+0200\n"
12+
"POT-Creation-Date: 2025-07-27 12:55+0200\n"
1313
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1414
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1515
"Language: ru\n"
@@ -19,61 +19,159 @@ msgstr ""
1919
"MIME-Version: 1.0\n"
2020
"Content-Type: text/plain; charset=utf-8\n"
2121
"Content-Transfer-Encoding: 8bit\n"
22-
"Generated-By: Babel 2.16.0\n"
22+
"Generated-By: Babel 2.17.0\n"
2323

2424
#: ../../user_guide/environment.rst:2
2525
msgid "Set Up Your Environment"
2626
msgstr "Настройка окружения"
2727

2828
#: ../../user_guide/environment.rst:5
29+
msgid "Development Container (Recommended)"
30+
msgstr "Контейнер разработки (Рекомендуется)"
31+
32+
#: ../../user_guide/environment.rst:6
33+
msgid ""
34+
"The easiest way to set up your development environment is using the "
35+
"provided ``.devcontainer`` configuration with VS Code and Docker."
36+
msgstr ""
37+
"Самый простой способ настроить среду разработки - использовать "
38+
"предоставленную конфигурацию ``.devcontainer`` с VS Code и Docker."
39+
40+
#: ../../user_guide/environment.rst:8
41+
msgid "**Prerequisites:**"
42+
msgstr "**Требования:**"
43+
44+
#: ../../user_guide/environment.rst:10
45+
msgid "`Visual Studio Code <https://code.visualstudio.com/>`_"
46+
msgstr "`Visual Studio Code <https://code.visualstudio.com/>`_"
47+
48+
#: ../../user_guide/environment.rst:11
49+
msgid "`Docker Desktop <https://www.docker.com/products/docker-desktop/>`_"
50+
msgstr "`Docker Desktop <https://www.docker.com/products/docker-desktop/>`_"
51+
52+
#: ../../user_guide/environment.rst:12
53+
msgid ""
54+
"`Dev Containers extension "
55+
"<https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote"
56+
".remote-containers>`_"
57+
msgstr ""
58+
"`Расширение Dev Containers "
59+
"<https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote"
60+
".remote-containers>`_"
61+
62+
#: ../../user_guide/environment.rst:14
63+
msgid "**Setup:**"
64+
msgstr "**Настройка:**"
65+
66+
#: ../../user_guide/environment.rst:16
67+
msgid "Clone the repository and open it in VS Code"
68+
msgstr "Клонируйте репозиторий и откройте его в VS Code"
69+
70+
#: ../../user_guide/environment.rst:17
71+
msgid ""
72+
"When prompted, click \"Reopen in Container\" or use Command Palette: "
73+
"``Dev Containers: Reopen in Container``"
74+
msgstr ""
75+
"При появлении запроса нажмите \"Reopen in Container\" или используйте "
76+
"палитру команд: ``Dev Containers: Reopen in Container``"
77+
78+
#: ../../user_guide/environment.rst:18
79+
msgid ""
80+
"VS Code will automatically build the container with all dependencies pre-"
81+
"installed"
82+
msgstr ""
83+
"VS Code автоматически соберет контейнер со всеми предустановленными "
84+
"зависимостями"
85+
86+
#: ../../user_guide/environment.rst:19
87+
msgid "The container includes:"
88+
msgstr "Контейнер включает:"
89+
90+
#: ../../user_guide/environment.rst:21
91+
msgid "Ubuntu environment with gcc-14, CMake, MPI, OpenMP"
92+
msgstr "Окружение Ubuntu с gcc-14, CMake, MPI, OpenMP"
93+
94+
#: ../../user_guide/environment.rst:22
95+
msgid "Pre-configured C++ and Python development tools"
96+
msgstr "Предварительно настроенные инструменты разработки C++ и Python"
97+
98+
#: ../../user_guide/environment.rst:23
99+
msgid "All project dependencies ready to use"
100+
msgstr "Все зависимости проекта готовы к использованию"
101+
102+
#: ../../user_guide/environment.rst:25
103+
msgid ""
104+
"This provides a consistent development environment across all platforms "
105+
"without manual dependency installation."
106+
msgstr ""
107+
"Это обеспечивает единообразную среду разработки на всех платформах без "
108+
"ручной установки зависимостей."
109+
110+
#: ../../user_guide/environment.rst:28
111+
msgid "Manual Setup"
112+
msgstr "Ручная настройка"
113+
114+
#: ../../user_guide/environment.rst:30
115+
msgid ""
116+
"If you prefer manual setup or cannot use containers, follow the "
117+
"instructions below."
118+
msgstr ""
119+
"Если вы предпочитаете ручную настройку или не можете использовать "
120+
"контейнеры, следуйте инструкциям ниже."
121+
122+
#: ../../user_guide/environment.rst:33
29123
msgid "Build prerequisites"
30124
msgstr "Требования к сборке"
31125

32-
#: ../../user_guide/environment.rst:6
126+
#: ../../user_guide/environment.rst:34
33127
msgid ""
34128
"**Windows**: Download and install CMake from https://cmake.org/download "
35129
"(select the Windows installer) or install using Chocolatey:"
36-
msgstr "**Windows**: Загрузите и установите CMake с https://cmake.org/download (выберите установщик для Windows) или установите с помощью Chocolatey:"
130+
msgstr ""
131+
"**Windows**: Загрузите и установите CMake с https://cmake.org/download "
132+
"(выберите установщик для Windows) или установите с помощью Chocolatey:"
37133

38-
#: ../../user_guide/environment.rst:12
134+
#: ../../user_guide/environment.rst:40
39135
msgid "**Linux (Ubuntu/Debian)**: Install using package manager:"
40136
msgstr "**Linux (Ubuntu/Debian)**: Установите с помощью менеджера пакетов:"
41137

42-
#: ../../user_guide/environment.rst:19
138+
#: ../../user_guide/environment.rst:47
43139
msgid "**macOS**: Install using Homebrew:"
44140
msgstr "**macOS**: Установите с помощью Homebrew:"
45141

46-
#: ../../user_guide/environment.rst:27
142+
#: ../../user_guide/environment.rst:55
47143
msgid "Code Style Analysis"
48144
msgstr "Анализ стиля кодирования"
49145

50-
#: ../../user_guide/environment.rst:28
146+
#: ../../user_guide/environment.rst:56
51147
msgid ""
52148
"Please follow the `Google C++ Style Guide "
53149
"<https://google.github.io/styleguide/cppguide.html>`_."
54150
msgstr ""
55151
"Пожалуйста пройдите по ссылке для изучения стиля кодирования - `Google "
56152
"C++ Style Guide <https://google.github.io/styleguide/cppguide.html>`_."
57153

58-
#: ../../user_guide/environment.rst:30
154+
#: ../../user_guide/environment.rst:58
59155
msgid ""
60156
"Code style is checked using the `clang-format "
61157
"<https://clang.llvm.org/docs/ClangFormat.html>`_ tool."
62-
msgstr "Проверка стиля кода выполняется с помощью инструмента `clang-format <https://clang.llvm.org/docs/ClangFormat.html>`_."
158+
msgstr ""
159+
"Проверка стиля кода выполняется с помощью инструмента `clang-format "
160+
"<https://clang.llvm.org/docs/ClangFormat.html>`_."
63161

64-
#: ../../user_guide/environment.rst:33
162+
#: ../../user_guide/environment.rst:61
65163
msgid "Parallel Programming Technologies"
66164
msgstr "Технологии параллельного программирования"
67165

68-
#: ../../user_guide/environment.rst:36
166+
#: ../../user_guide/environment.rst:64
69167
msgid "``MPI``"
70168
msgstr "``MPI``"
71169

72-
#: ../../user_guide/environment.rst:37
170+
#: ../../user_guide/environment.rst:65
73171
msgid "**Windows (MSVC)**:"
74172
msgstr "**Windows (MSVC)**:"
75173

76-
#: ../../user_guide/environment.rst:39
174+
#: ../../user_guide/environment.rst:67
77175
msgid ""
78176
"`Installers link <https://www.microsoft.com/en-"
79177
"us/download/details.aspx?id=105289>`_. You have to install "
@@ -83,20 +181,19 @@ msgstr ""
83181
"us/download/details.aspx?id=105289>`_. Вы должны установить 2 файла - "
84182
"``msmpisdk.msi`` и ``msmpisetup.exe``."
85183

86-
#: ../../user_guide/environment.rst:41
87-
#: ../../user_guide/environment.rst:57
184+
#: ../../user_guide/environment.rst:69 ../../user_guide/environment.rst:85
88185
msgid "**Linux (gcc and clang)**:"
89186
msgstr "**Linux (gcc and clang)**:"
90187

91-
#: ../../user_guide/environment.rst:47
188+
#: ../../user_guide/environment.rst:75
92189
msgid "**MacOS (apple clang)**:"
93190
msgstr "**MacOS (apple clang)**:"
94191

95-
#: ../../user_guide/environment.rst:54
192+
#: ../../user_guide/environment.rst:82
96193
msgid "``OpenMP``"
97194
msgstr "``OpenMP``"
98195

99-
#: ../../user_guide/environment.rst:55
196+
#: ../../user_guide/environment.rst:83
100197
msgid ""
101198
"``OpenMP`` is included in ``gcc`` and ``msvc``, but some components "
102199
"should be installed additionally:"
@@ -105,15 +202,15 @@ msgstr ""
105202
"``msvc``, но ряд компонент все равно должны быть установлены "
106203
"дополнительно:"
107204

108-
#: ../../user_guide/environment.rst:63
205+
#: ../../user_guide/environment.rst:91
109206
msgid "**MacOS (llvm)**:"
110207
msgstr "**MacOS (llvm)**:"
111208

112-
#: ../../user_guide/environment.rst:71
209+
#: ../../user_guide/environment.rst:99
113210
msgid "``TBB``"
114211
msgstr "``TBB``"
115212

116-
#: ../../user_guide/environment.rst:72
213+
#: ../../user_guide/environment.rst:100
117214
msgid ""
118215
"**Windows (MSVC)**, **Linux (gcc and clang)**, **MacOS (apple clang)**: "
119216
"Build as 3rdparty in the current project."
@@ -122,10 +219,10 @@ msgstr ""
122219
"Данная библиотека строится как внешняя в составе текущего проекта и не "
123220
"требует дополнительных операций."
124221

125-
#: ../../user_guide/environment.rst:76
222+
#: ../../user_guide/environment.rst:104
126223
msgid "``std::thread``"
127224
msgstr "``std::thread``"
128225

129-
#: ../../user_guide/environment.rst:77
226+
#: ../../user_guide/environment.rst:105
130227
msgid "``std::thread`` is included in STL libraries."
131228
msgstr "``std::thread`` включена в состав STL библиотек."

0 commit comments

Comments
 (0)