Skip to content

Commit 25c44a1

Browse files
committed
README files improvements
Signed-off-by: zesk1999 <[email protected]>
1 parent 5daa540 commit 25c44a1

File tree

12 files changed

+193
-46
lines changed

12 files changed

+193
-46
lines changed

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
99
<a href="https://sustainml.readthedocs.io/en/latest">Docs</a>
1010
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
11-
<a href="https://sustainml.eu/index.php/news">News</a>
11+
<a href="https://sustainml.eu/showroom/news">News</a>
1212
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
1313
<a href="https://twitter.com/EProsima">Twitter</a>
1414
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
@@ -23,8 +23,8 @@
2323
<a href="https://github.com/eProsima/SustainML/releases"><img alt="Releases" src="https://img.shields.io/github/v/release/eProsima/SustainML?sort=semver"/></a>
2424
<a href="https://github.com/eProsima/SustainML-Library/actions/workflows/test.yml"><img alt="SustainML Ubuntu CI" src="https://github.com/eProsima/SustainML-Library/actions/workflows/test.yml/badge.svg"/></a>
2525
<a href="https://github.com/eProsima/SustainML/issues"><img alt="Issues" src="https://img.shields.io/github/issues/eProsima/SustainML.svg"/></a>
26-
<a href="https://github.com/eProsima/SustainML/network/memberss"><img alt="Forks" src="https://img.shields.io/github/forks/eProsima/SustainML.svg"/></a>
27-
<a href="https://github.com/eProsima/SustainML/stargazerss"><img alt="Stars" src="https://img.shields.io/github/stars/eProsima/SustainML.svg"/></a>
26+
<a href="https://github.com/eProsima/SustainML/network/members"><img alt="Forks" src="https://img.shields.io/github/forks/eProsima/SustainML.svg"/></a>
27+
<a href="https://github.com/eProsima/SustainML/stargazers"><img alt="Stars" src="https://img.shields.io/github/stars/eProsima/SustainML.svg"/></a>
2828
<a href="https://SustainML.readthedocs.io/en/latest/"><img alt="Documentation Status" src="https://readthedocs.org/projects/sustainml/badge/?version=latest&style=flat"/></a>
2929
</div>
3030

@@ -45,25 +45,26 @@ AI developers from all experience levels can make use of the framework through i
4545
### Project Architecture
4646

4747
The *SustainML Framework* is composed of different Software Modules, each one related to a specific task, which are specialized in solving the different parts of the machine learning problem architecture definition, starting from the user’s problem description.
48-
Each of the modules forms a Node.
49-
These steps are basically:
48+
Each of these modules forms a Node.
49+
The main processing steps are:
5050

5151
1. Encode the problem and constraints defined by the user
5252
2. Suggest a machine learning model
5353
3. Propose an optimized hardware for running the suggested model
54-
4. Warn about the estimated carbon footprint that would take training the model in the hardware
54+
4. Warn about the estimated carbon footprint of training the model on the proposed hardware
5555

56-
All the Nodes shall import its corresponding Python library, so that each Node can be abstracted from the DDS communications.
56+
All the Nodes shall import their corresponding Python library, so that each Node can be abstracted from the DDS communications.
5757

5858
### Library
5959

60-
This library repository contains all the modules definitions.
61-
The Framework uses the library API to deploy those different SustainML modules.
62-
The exchanged information between the modules is over DDS.
60+
This library repository contains all the modules definitions. This repository is not intended to be used or installed independently.
61+
It is consumed internally by the SustainML Framework.
62+
The Framework uses the library API to deploy different SustainML modules.
63+
Information exchanged between modules is transmitted over DDS.
6364

6465
### Framework
6566

66-
The Framework includes a *Graphical User Interface* (GUI) in which user interacts and introduces the ML problem definition.
67+
The Framework includes a *Graphical User Interface* (GUI) through which the user interacts with the framework and defines the ML problem.
6768
That GUI implements also the **Orchestrator** node, a key node that feeds the remaining modules with the information provided by the user, retrieves all the results, and display them to the user through this GUI.
6869

6970
This process can be iterative.

sustainml_cpp/README.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1-
# SustainML Node C++
1+
# SustainML C++ library (`sustainml_cpp`)
22

3-
> :warning: **TODO**
3+
This package contains the core C++ implementation of SustainML logic and the public C++ API used by other SustainML components.
4+
5+
The public C++ types are designed to avoid exposing Fast DDS types in public headers to keep the SWIG Python wrapper generation simple. Implementation types generated from IDL use the `Impl` suffix and are wrapped by public types.
6+
7+
## Scope
8+
9+
This package is primarily intended for SustainML developers and contributors. End users should follow the installation and deployment instructions in the SustainML Framework repository:
10+
11+
https://github.com/eProsima/SustainML-Framework
12+
13+
## Build
14+
15+
This package is a colcon package and is built automatically as part of the SustainML workspace.
16+
17+
For development and verification purposes, it can be built independently:
18+
19+
`colcon build --packages-select sustainml_cpp`

sustainml_cpp/utils/instructions/README.md

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
11
# Regenerate types instructions
22

3-
The design of the SustainML CPP library follows a structure where the public types exposed does not contain any Fast DDS types in public includes.
3+
The design of the SustainML CPP library follows a structure where the public types exposed do not contain any Fast DDS types in public includes.
44
In that way, exposing Fast DDS complex types is avoided, which makes SWIG python wrapper generation way more simple.
5-
To reach that, the public types contain implementation types, which are the originally generated by Fast DDS Gen with the idl (see that all idl elements have the `Impl` suffix).
6-
The next steps needs to be followed to do so while trying to regenerate SustainML types:
5+
To reach that, the public types contain implementation types, which are originally generated by Fast DDS Gen with the idl (see that all idl elements have the `Impl` suffix).
6+
The next steps need to be followed to do so while trying to regenerate SustainML types:
77

8-
1. Update .idl file
9-
1. Regenerate types with utils script
8+
## Prerequisites
9+
10+
- A working SustainML workspace
11+
- `fastddsgen` available in the system `PATH`
12+
- Bash shell environment
13+
14+
## Regenerating types
15+
1. Update the corresponding .idl file
16+
1. Regenerate the implementation types using the provided utility script:
1017

1118
`cd sustainml_cpp/utils/scripts && bash update_types.sh`
1219

13-
1. Manually introduce the `sustainml_cpp/src/cpp/types/typesImpl.hpp` changes in `sustainml_cpp/include/sustainml_cpp/types/types.hpp`, and applying these changes:
14-
1. Copy the complete class `ClassNameImpl` in the _types.hpp_ file
15-
1. Rename it as `ClassName` (remove `Impl` suffix), as well as all its usage in its methods and comments.
16-
1. Remove all code from the methods, leaving only their definitions.
17-
1. Introduce the following line right after the _public_ declaration:
20+
1. Manually introduce the `sustainml_cpp/src/cpp/types/typesImpl.hpp` changes in `sustainml_cpp/include/sustainml_cpp/types/types.hpp`, and Apply the following steps:
21+
22+
**a)** Copy the complete class `ClassNameImpl` in the _types.hpp_ file.
23+
24+
**b)** Rename it as `ClassName` (remove the `Impl` suffix), including all references in method declarations and comments.
25+
26+
**c)** Remove all method implementations, keeping only method declarations.
27+
28+
**d)** Introduce the following line right after the _public_ declaration:
1829

1930
`using impl_type = ClassNameImpl;`
2031

21-
1. Include at the end of the _public_ declarations the following _impl_ retrieve methods:
32+
**e)** Include at the end of the _public_ declarations the following _impl_ retrieve methods:
2233

2334

2435
```cpp
@@ -29,26 +40,29 @@ The next steps needs to be followed to do so while trying to regenerate SustainM
2940
ClassNameImpl* get_impl();
3041

3142
/*!
32-
* @brief This function retrives the implementation type info
43+
* @brief This function retrieves the implementation type info
3344
* @return Reference to the typeid
3445
*/
3546
static const std::type_info& impl_typeinfo();
3647
```
3748

38-
1. Substitute _private_ declaration with the variables, for a _protected_ declaration as the following:
49+
**f)** Substitute the _private_ section with the following _protected_ section:
3950

4051
```cpp
4152
protected:
4253

4354
ClassNameImpl* impl_;
4455
friend class ClassNameImpl;
4556
```
46-
1. Please review the existing classes in the library and ensure that the new one follows the same style.
57+
**g)** Ensure the resulting class follows the same structure and style as the existing public types.
58+
59+
1. Manually introduce the `sustainml_cpp/src/cpp/types/typesImpl.hpp` changes in `sustainml_cpp/src/cpp/types/types.cpp`, and apply the following steps:
60+
61+
**a)** Copy the complete class `ClassNameImpl` in the _types.cpp_ file
4762

48-
1. Manually introduce the `sustainml_cpp/src/cpp/types/typesImpl.hpp` changes in `sustainml_cpp/src/cpp/types/types.cpp`, and applying these changes:
49-
1. Copy the complete class `ClassNameImpl` in the _types.cpp_ file
50-
1. Rename it as `ClassName` (remove `Impl` suffix), as well as all its usage in its methods and comments.
51-
1. Make all methods to call the corresponding `ClassNameImpl` method. That applies also to operators, constructor and destructor. The following snippet is an example, but for any other case, please review the already implemented classes to mimic:
63+
**b)** Rename it as `ClassName` (remove `Impl` suffix), including all references.
64+
65+
**c)** Make all methods call the corresponding `ClassNameImpl` method. That also applies to operators, constructor and destructor. The following snippet is an example. For any other case, please review the already implemented classes to mimic:
5266

5367
```cpp
5468
ClassName& ClassName::operator =(
@@ -76,7 +90,7 @@ The next steps needs to be followed to do so while trying to regenerate SustainM
7690
}
7791
```
7892

79-
1. At the very end of each class, implement the _impl_ retrieve methods included in the _types.h_ file:
93+
**d)** At the very end of each class, implement the _impl_ retrieve methods included in the _types.hpp_ file:
8094

8195
```cpp
8296
ClassNameImpl* ClassName::get_impl()
@@ -89,3 +103,6 @@ The next steps needs to be followed to do so while trying to regenerate SustainM
89103
return typeid(ClassNameImpl);
90104
}
91105
```
106+
1. Build the C++ library to verify the changes:
107+
108+
`colcon build --packages-select sustainml_cpp`

sustainml_docs/README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,23 @@
1-
TODO
1+
# SustainML documentation (`sustainml_docs`)
2+
3+
This package contains the documentation sources for the SustainML project.
4+
It is used to build the project documentation published on ReadTheDocs.
5+
6+
The documentation describes the SustainML Framework architecture, components, and usage.
7+
8+
## Scope
9+
10+
This package is intended for SustainML developers and contributors maintaining the project documentation.
11+
12+
End users should refer to the published documentation or the SustainML Framework repository:
13+
14+
https://github.com/eProsima/SustainML-Framework
15+
https://sustainml.readthedocs.io/en/latest/
16+
17+
## Build
18+
19+
This package is a colcon package and is built automatically as part of the SustainML workspace.
20+
21+
For development and verification purposes, it can be built independently:
22+
23+
`colcon build --packages-select sustainml_docs`

sustainml_modules/README.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1-
# SustainML Modules
1+
# SustainML modules (`sustainml_modules`)
22

3-
> :warning: **TODO**
3+
This package contains the SustainML Python modules that implement the framework pipeline nodes.
4+
5+
These modules use the SustainML Python API (`sustainml_py`) and are executed as part of the SustainML Framework deployment.
6+
7+
## Scope
8+
9+
This package is intended for SustainML developers and contributors working on the framework modules.
10+
11+
End users should follow the installation and deployment instructions in the SustainML Framework repository:
12+
13+
https://github.com/eProsima/SustainML-Framework
14+
15+
## Build
16+
17+
This package is a colcon package and is built automatically as part of the SustainML workspace.
18+
19+
For development and verification purposes, it can be built independently:
20+
21+
`colcon build --packages-select sustainml_modules`
Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
# SustainML WP4 Front-end Node
1+
# SustainML – Work Package 4 (WP4)
22

3-
> :warning: **TODO**
3+
This directory contains the implementation of **Work Package 4 (WP4)** components of the SustainML project.
4+
5+
WP4 provides the **frontend functionality** of the SustainML Framework. It includes a web-based interface that allows users to:
6+
7+
- Collecting user input that defines the ML problem and constraints
8+
- Uploading datasets and inspecting basic dataset properties
9+
- Assisting the user in selecting problem definition parameters
10+
- Forwarding user input to the backend and displaying execution status and results
11+
12+
The frontend is implemented as a Python module and exposed through a lightweight web application.
13+
14+
## Scope
15+
16+
WP4 components are integrated into the SustainML Framework through the `sustainml_modules` package and are **not intended to be used as standalone applications**.
17+
18+
This code is primarily intended for SustainML developers and contributors working on the user interaction and frontend aspects of the framework.
19+
20+
End users should follow the installation and deployment instructions in the SustainML Framework repository:
21+
22+
https://github.com/eProsima/SustainML-Framework
Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1-
# SustainML WP5 Backend Node
1+
# SustainML – Work Package 5 (WP5)
22

3-
> :warning: **TODO**
3+
This directory contains the implementation of **Work Package 5 (WP5)** components of the SustainML project.
4+
5+
WP5 provides the **backend and orchestration functionality** of the SustainML Framework. It is responsible for:
6+
7+
- Receiving user input from the frontend
8+
- Running the Orchestrator node and coordinating task execution
9+
- Providing execution status and collecting results produced by the framework
10+
11+
WP5 acts as the central coordination layer between the frontend and the remaining SustainML components.
12+
13+
## Scope
14+
15+
WP5 components are integrated into the SustainML Framework through the `sustainml_modules` package and are **not intended to be used as standalone services**.
16+
17+
This code is intended for SustainML developers and contributors working on framework orchestration and backend logic.
18+
19+
End users should follow the installation and deployment instructions in the SustainML Framework repository:
20+
21+
https://github.com/eProsima/SustainML-Framework

0 commit comments

Comments
 (0)