Skip to content

Commit 672f648

Browse files
committed
Documentation updated for the new release.
1 parent fd17f7a commit 672f648

14 files changed

+193
-183
lines changed

README.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,25 +46,27 @@ Development Environments for embedded software development.
4646
Contributors and early adopters are welcome!
4747
</p>
4848

49-
## Concept
50-
A Development Environment is a set of tools used for a development project (e.g. build system,
51-
debugger, toolchain, etc.). The tools are separately packed into container images, which are stored
52-
in registries.
49+
## The Concept in a Nutshell
50+
A set of software tools used for a specific development project is called a Development Environment.
51+
These tools for example can be the build system, debugger, test framework, etc...
5352

54-
Each Development Environment has a descriptor. A descriptor indicates which tools are
55-
required in the project and the place their container images are stored. All descriptors are stored
56-
in the Development Environment Catalogs. The users can browse these catalogs, and list the available
57-
environments and their statuses.
58-
A Development Environment can be installed from its catalog by a simple dem command, which means
59-
that the required tool images get downloaded from the registries.
53+
The idea is to pack the tools separately into container images, which are then can be stored in
54+
registries.
6055

61-
The registries, the catalogs, and the development infrastructure form a Development Platform.
56+
Each Development Environment has a descriptor. A descriptor, like a blueprint, indicates which tools
57+
are required in the project, and the place their container images are stored.
6258

63-
The purpose of DEM is the easy management of this platform. The users can install available
64-
Development Environments or freely create their own from the tool images available in the registries
65-
or locally.
59+
![Dev Env descriptor](/docs/wp-content/dev_env_descriptor.png)
6660

67-
![platform](docs/wp-content/platform.png)
61+
The descriptors can be stored in the Development Environment Catalogs. The users can browse these
62+
catalogs, and download a copy of the Development Environment descriptor to their local catalog.
63+
64+
![Catalogs](/docs/wp-content/dem_catalogs.png)
65+
66+
The users can install a Development Environments from their local catalog or freely create their own
67+
based on the tools available in the registries or on their local system.
68+
69+
![Dev Env installation](/docs/wp-content/dev_env_installation.png)
6870

6971
## Key features
7072

@@ -145,11 +147,10 @@ Now you have the Dev Env descriptor in your local catalog, but you might want to
145147
- Change the tool image for a given tool.
146148
- Set the host where the image should be placed.
147149

148-
You can edit it the Dev Env with:
150+
You can edit it with:
149151

150152
dem modify DEV_ENV_NAME
151153

152-
153154
Finally, if you are ready to use it, you can initialize it with:
154155

155156
dem install DEV_ENV_NAME

docs/basics.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
title: The Basics
3+
---
4+
5+
In this chapter we will cover the basic concepts of the Development Environment Manager (DEM).
6+
7+
## What is a Development Environment?
8+
A set of software tools used for a specific development project is called a **Development
9+
Environment**. These tools for example can be the build system, debugger, test framework, etc...
10+
11+
## A Container Image
12+
To put it simply, a container image is a set of software components alongside its dependencies,
13+
which can be run in a container.
14+
15+
## A Tool Container Image
16+
The idea is to build the tools from a Development Environment into their own respective images, so
17+
they can run isolatedly.
18+
19+
## Development Environment Descriptor
20+
Each Development Environment has a descriptor. A descriptor, like a blueprint, indicates which tools
21+
are required in the project, and the place their container images are stored.
22+
23+
![Dev Env descriptor](wp-content/dev_env_descriptor.png)
24+
25+
## Container Engine
26+
The container engine is responsible for running the container images. The DEM uses the Docker
27+
Container Engine to run the tool images.
28+
29+
## Registry and Repository
30+
A registry serves as a storage for the tool images, where they can be kept without occupying space on
31+
the developer's computer. This storage enables convenient sharing of images with others, ensuring
32+
uniform tool usage among all collaborators on the same project.
33+
When an image is uploaded to a registry, it initiates the creation of a repository. This repository
34+
is responsible for keeping track of the various versions of the image.
35+
36+
!!! Note
37+
38+
An image **repository** stores the different versions of the same image.
39+
An image **registry** is a collection of image repositories.
40+
41+
The DEM also uses registries in the background to store the tool images. To list the currently
42+
available registries use the `dem list-reg` command. The `dem add-reg` and `dem del-reg` commands
43+
can be used to add or delete registries.
44+
45+
!!! Note
46+
47+
The DEM supports the [Docker Hub](https://docs.docker.com/docker-hub/) and
48+
[Docker Registry](https://docs.docker.com/registry/)
49+
50+
If you'd like to request support for other registry types, please create a
51+
[new descussion](https://github.com/axem-solutions/dem/discussions/categories/regsitry).
52+
53+
## Development Environment Catalogs
54+
A catalog is a collection of Development Environment descriptors.
55+
The DEM can handle multiple catalogs. To list the currently available ones use the `dem list-cat`
56+
command. The `dem add-cat` and `dem del-cat` commands can be used to add or delete catalogs.
57+
58+
!!! Note
59+
60+
axem has its own catalog, which is available by default.
61+
62+
The users can browse these catalogs, and download a copy of the Development Environment descriptor
63+
to their local catalog.
64+
65+
![Catalogs](wp-content/dem_catalogs.png)
66+
67+
## Development Platform
68+
The registries, the catalogs, and the whole development infrastructure are part of the Development
69+
Platform.

docs/commands.md

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Arguments:
3838

3939
## **`dem create DEV_ENV_NAME`**
4040

41-
Create a new Development Environment.
41+
Create a new Development Environment descriptor and save it to the local descriptor storage (catalog).
4242

4343
Running this command will open up an interactive UI on the command line. Follow the steps below to
4444
configure the new Environment.
@@ -55,6 +55,8 @@ Select the required tool image and press :material-keyboard-return:.
5555

5656
![image select](wp-content/image_select.png)
5757

58+
:info: After creation, the Development Environment can be installed with the `install` command.
59+
5860
Arguments:
5961

6062
`DEV_ENV_NAME` Name of the Development Environment to create. [required]
@@ -65,11 +67,12 @@ Arguments:
6567

6668
Clone a Development Environment descriptor from the catalogs.
6769

68-
Only the Development Environment descriptor gets cloned, the required tool images are not pulled. To
69-
pull the required tool images, use the `install` command.
70+
Only the Development Environment descriptor will be cloned, the required tool images won't be pulled.
7071
If a Development Environment with the same name has been already available on the host PC, the user
7172
will be asked if they want to overwrite it or not.
7273

74+
:info: After cloning, the Development Environment can be installed with the `install` command.
75+
7376
Arguments:
7477

7578
`DEV_ENV_NAME` Name of the Development Environment, whose descriptor to clone. [required]
@@ -139,10 +142,10 @@ Arguments:
139142

140143
## **`dem install DEV_ENV_NAME`**
141144

142-
Install the selected Development Environment. DEM pull all the required containerized tools (which
145+
Install the selected Development Environment. DEM pulls all the required containerized tools (which
143146
are not yet available on the host PC) from the registry and install the Development Environment
144147
locally. If the same Development Environment is already installed, but the installation is not
145-
complete, the missing tool images are obtained from the registry.
148+
complete, the missing tool images get obtained from the registry.
146149

147150
Arguments:
148151

@@ -152,9 +155,9 @@ Arguments:
152155

153156
## **`dem uninstall DEV_ENV_NAME`**
154157

155-
Uninstall the selected Development Environment. Set installed flag to False if it was True. Dem checks whether a tool image is
156-
required or not by any of the remaining installed local Development Environments. In case the tool image is
157-
not required anymore, the dem delete it.
158+
Uninstall the selected Development Environment. Sets the installed flag to False. DEM checks whether
159+
a tool image is required or not by any of the remaining installed local Development Environments. In
160+
case the tool image is not required anymore, the DEM tries to delete it.
158161

159162
Arguments:
160163

@@ -169,7 +172,7 @@ Assign a Development Environment to a project.
169172
If the project already has a Development Environment assigned, the user will be asked if they want to
170173
overwrite it or not.
171174

172-
Projects that have a Development Environment assigned can initialized with the `init` command.
175+
Projects that have a Development Environment assigned, can be initialized with the `init` command.
173176

174177
Arguments:
175178

@@ -184,6 +187,9 @@ working directory will be used.
184187

185188
Initialize a project with the assigned Development Environment.
186189

190+
:info: After the initialization, the Development Environment can be installed with the `install`
191+
command.
192+
187193
Arguments:
188194

189195
`PROJECT_PATH` Path of the project to initialize. If not set, the current working directory will be
@@ -252,6 +258,8 @@ Imports a Development Environment.
252258
The file to import only contains the Development Environment descriptor. For a successful import
253259
the DEM needs access to all the registries where the required images are stored.
254260

261+
:info: After the import, the Development Environment can be installed with the `install` command.
262+
255263
Arguments:
256264

257265
`PATH_TO_DEV_ENV` Path of the JSON file to import. Can be an absolute path or a relative path to the
@@ -347,30 +355,6 @@ List the available hosts from the config file.
347355

348356
---
349357

350-
## **`dem install DEV_ENV_NAME`**
351-
352-
Install the selected Development Environment. Set installed flag to True. Dem checks which tool image is
353-
required by the selected local Development Environments and in case the tool image is
354-
not installed, the dem installs it.
355-
356-
Arguments:
357-
358-
`DEV_ENV_NAME` Name of the Development Environment to install. [required]
359-
360-
---
361-
362-
## **`dem uninstall DEV_ENV_NAME`**
363-
364-
Uninstall the selected Development Environment. Set installed flag to False if it was True. Dem checks whether a tool image is
365-
required or not by any of the remaining installed local Development Environments. In case the tool image is
366-
not required anymore, the dem delete it.
367-
368-
Arguments:
369-
370-
`DEV_ENV_NAME` Name of the Development Environment to uninstall. [required]
371-
372-
---
373-
374358
## **`dem del-host NAME`**
375359

376360
Delete a host from the config file.

docs/design.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: Design
2+
title: Design (for DEM developers)
33
---
44

55
## Architectural Overview
66

7-
This chapter contains the technical documentation for the design.
7+
This chapter contains the technical documentation of the design.
88

99
The Development Environment Manager (DEM) provides an abstraction layer for the Development
1010
Platform, which encompasses a collection of available resources, such as registries, catalogs,

docs/development_environments.md

Lines changed: 0 additions & 109 deletions
This file was deleted.

0 commit comments

Comments
 (0)