You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We welcome anyone who would be interested in contributing to `MLSysOps framework`.
9
11
As a first step, please take a look at the following document.
10
12
The current document provides a high level overview of `MLSysOps framework`'s code structure, along with a few guidelines regarding contributions to the project.
@@ -21,15 +23,9 @@ The current document provides a high level overview of `MLSysOps framework`'s co
21
23
22
24
## Code organization
23
25
24
-
Urunc is written in Go and we structure the code and other files as follows:
26
+
The MLSysOps framework is structured as follows:
25
27
26
-
-`/`: The root directory contains the Makefile to build `MLSysOps framework`, along with other non-code files, such as the licence, readme and more.
27
-
-`/docs`: This directory contains all the documentation related to `MLSysOps framework`, such as the installation guide, timestamping and more.
28
-
-`/cmd`: This directory contains handlers for the various command line options of `MLSysOps framework` and the implementation of containerd-shim.
29
-
-`/internal/metrics`: This directory contains the implementation of the metrics logger, which is used for the internal measuring of `MLSysOps framework`'s setup steps.
30
-
-`/pkg`: This directory contains the majority of the code for `MLSysOps framework`. In particular, the subdirectory `/pkg/network/` contains network related code as expected, while the `/pkg/unikontainers/` subdirectory contains the main logic of `MLSysOps framework`, along with the VMM/unikernel related logic.
31
-
32
-
Therefore, we expect any new documentation related files to be placed under `/docs` and any changes or new files in code to be either in the `/cmd/` or `/pkg/` directory.
28
+
TBC
33
29
34
30
## How to contribute
35
31
@@ -59,8 +55,8 @@ In that context, when opening a new issue regarding a bug, we kindly ask you to:
59
55
60
56
1. A short description of the bug.
61
57
2. The respective logs both from the output and containerd.
62
-
3.Urunc's version (either the commit's hash or the version).
63
-
4. The CPU architecture, VMM and the Unikernel framework used.
58
+
3.Framework's version manifest (either the commit hash or the version manifest file).
59
+
4. The execution environment (CPU architecture, VMM etc.).
64
60
5. Any particular steps to reproduce the issue.
65
61
- Keep an eye on the issue for possible questions from the maintainers.
66
62
@@ -71,10 +67,10 @@ An explanation of the issue
71
67
72
68
## System info
73
69
74
-
- Urunc version:
70
+
- Version:
75
71
- Arch:
76
72
- VMM:
77
-
- Unikernel:
73
+
- ...
78
74
79
75
## Steps to reproduce
80
76
A list of steps that can reproduce the issue.
@@ -117,7 +113,7 @@ In particular, we perform the following workflows tests:
117
113
- Linting of the commit message. Please check the [git commit message style](#git-commit-messages) below for more info.
118
114
- Spell check, since `MLSysOps framework` repository contains its documentation too.
119
115
- License check
120
-
- Code linting for Go.
116
+
- Code linting.
121
117
- Building artifacts for amd64 and aarch64.
122
118
- Unit tests
123
119
- End-to-end tests
@@ -126,7 +122,7 @@ For a better control over the tests and workflows that run in a PR, we define
126
122
three labels which can be used:
127
123
128
124
-`ok-to-test`: Runs a full CI workflow, meaning all lint tests (commit
129
-
message, spellcheck, license), Go's linting, building for x86 and aarch64,
125
+
message, spellcheck, license), Code linting, building for x86 and aarch64,
130
126
unit tests and at last end-to-end tests.
131
127
-`skip-build`: Skips the building workflows along with unit and end-to end tests
132
128
running all the linting tests. This is useful when
@@ -160,23 +156,32 @@ Please follow the below guidelines for your commit messages:
160
156
-*style*: Changes that do not affect the meaning of the code (white-space,
161
157
formatting, missing semi-colons, etc)
162
158
-*refactor*: A code change that neither fixes a bug nor adds a feature
163
-
-*perf*: A code change that improves performance
159
+
-*`perf`*: A code change that improves performance
164
160
-*test*: Adding missing tests
165
161
-*build*: Changes that affect the build system or external dependencies
166
-
(example scopes: gulp, broccoli, npm)
162
+
(example scopes: gulp, broccoli, `npm`)
167
163
-*ci*: Changes to our CI configuration files and scripts (example scopes:
168
-
Travis, Circle, BrowserStack, SauceLabs)
164
+
`Travis`, `Circle`, `BrowserStack`, `SauceLabs`)
169
165
-*chore*: Other changes that don't modify src or test files
170
166
-*revert*: Reverts a previous commit
171
167
- In case the PR is associated with an issue, please refer to it, using the git trailer `Fixes: #Nr_issue`
172
168
- Always sign-off your commit message
173
169
174
-
### Golang code styde
170
+
Since the MLSysOps framework comprises code written in various programming
171
+
languages we use the following styles for each:
172
+
173
+
### Golang code style
175
174
176
-
We follow gofmt's rules on formatting GO code. Therefore, we ask all
175
+
We follow `gofmt`'s rules on formatting GO code. Therefore, we ask all
177
176
contributors to do the same. Go provides the `gofmt` tool, which can be used
Let's verify that the new snapshotter is properly configured:
142
-
143
-
```bash
144
-
$ sudo ctr plugin ls | grep devmapper
145
-
io.containerd.snapshotter.v1 devmapper linux/amd64 ok
146
-
```
147
-
148
-
### Install nerdctl
149
-
150
-
After installing [containerd](https://github.com/containerd/containerd) a nifty tool like [nerdctl](https://github.com/containerd/nerdctl/) is useful to get a realistic experience.
0 commit comments