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
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+43-31Lines changed: 43 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,9 +14,9 @@ See the License for the specific language governing permissions and
14
14
limitations under the License.
15
15
-->
16
16
17
-
# Contributing to the DAPHNE System
17
+
# Contributing to DAPHNE
18
18
19
-
*Thank you* for your interest in contributing to the DAPHNE system.
19
+
*Thank you* for your interest in contributing to DAPHNE.
20
20
Our goal is to build an **open and inclusive community of developers** around the system.
21
21
Thus, **contributions are highly welcome**, both from *within the DAPHNE project consortium* and from *external researchers/developers*.
22
22
@@ -25,6 +25,7 @@ In the following, you find some rough **guidelines on contributing**, which will
25
25
## Ways of Contributing
26
26
27
27
There are **various ways of contributing** including (but not limited to):
28
+
28
29
- actual implementation
29
30
- writing test cases
30
31
- writing documentation
@@ -36,7 +37,7 @@ That way, discussions are made *accessible and transparent* to everyone interest
36
37
This is important to *involve people* and to *avoid repetition* in case multiple people have the same question/comment or encounter the same problem.
37
38
So feel free to create an issue to start a discussion on a particular topic (including these contribution guidelines) or to report a bug or other problem.
38
39
39
-
## Issue tracking
40
+
## Issue Tracking
40
41
41
42
All open/ongoing/completed **work is tracked as issues** on GitHub.
42
43
These could be anything from precisely defined small tasks to requests for complex components.
@@ -65,31 +66,41 @@ That is, please try your best to make a good-quality contribution and we will he
65
66
**The procedure is roughly as follows:**
66
67
67
68
1.**Get assigned to the issue** to let others know you are going to work on it and to avoid duplicate work. Please leave a comment on the issue stating that you are going to work on it. After that, a collaborator will formally assign you.
69
+
68
70
2.**Fork the repository** on GitHub and **clone your fork** (see [GitHub docs](https://docs.github.com/en/get-started/quickstart/fork-a-repo)).
69
-
We recommend cloning by `git clone --recursive https://github.com/<USERNAME>/daphne.git` (note the `--recursive`), as specified in [Getting Started](/doc/GettingStarted.md).
70
-
71
-
*You may skip this step and reuse your existing fork if you have contributed before. Simply update your fork with the recent changes from the original DAPHNE repository (see [GitHub docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)).*
71
+
<!-- TODO with containers, we don't recommend that anymore -->
72
+
We recommend cloning by `git clone --recursive https://github.com/<USERNAME>/daphne.git` (note the `--recursive`), as specified in [Getting Started](/doc/GettingStarted.md).
73
+
74
+
*You may skip this step and reuse your existing fork if you have contributed before. Simply update your fork with the recent changes from the original DAPHNE repository (see [GitHub docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)).*
75
+
72
76
3.**Create your own local branch**: `git checkout -b BRANCH_NAME`.
73
-
`BRANCH_NAME` should clearly indicate what the branch is about; the recommended pattern is `123-some-short-title` (where `123` is the issue number).
77
+
`BRANCH_NAME` should clearly indicate what the branch is about; the recommended pattern is `123-some-short-title` (where `123` is the issue number).
78
+
74
79
4.**Add as many commits as you like** to your branch, and `git push` them to your fork.
75
-
Use `git push --set-upstream origin BRANCH_NAME` when you push the first time.
76
-
5. If you work longer on your contribution, make sure to **get the most recent changes from the upstream** (original DAPHNE system repository) from time to time (see [GitHub docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)).
80
+
Use `git push --set-upstream origin BRANCH_NAME` when you push the first time.
81
+
82
+
5. If you work longer on your contribution, make sure to **get the most recent changes from the upstream** (original DAPHNE repository) from time to time (see [GitHub docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)).
83
+
77
84
6. Once you feel ready (for integration or for discussion/feedback), **create a pull request** on GitHub (see [GitHub docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)).
78
-
Normally, you'll want to ask for integration into `base:main`, the repo's default branch.
79
-
Please choose an expressive title and provide a short description of your changes.
80
-
Feel free to mark your pull request "WIP: " or "Draft: " in the title.
81
-
Note that you can add more commits to your pull request after you created it.
82
-
Ideally, the changes in the PR contain only the changes you made for that PR,
83
-
e.g, by rebasing your branch on top of the target branch. This makes it easier for others to
84
-
review your PR.
85
+
Normally, you'll want to ask for integration into `base:main`, the repo's default branch.
86
+
Please choose an expressive title and provide a short description of your changes.
87
+
Feel free to mark your pull request "WIP: " or "Draft: " in the title.
88
+
Note that you can add more commits to your pull request after you created it.
89
+
Ideally, the changes in the PR contain only the changes you made for that PR,
90
+
e.g, by rebasing your branch on top of the target branch. This makes it easier for others to
91
+
review your PR.
92
+
<!-- TODO link to reviewing guidelines -->
93
+
85
94
7.[Resolve any open conflicts](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts) to the target branch of the PR.
95
+
86
96
8. You **receive feedback** on your proposed contribution.
87
-
You may be asked to apply certain changes, or we might apply straightforward adjustments ourselves before the integration.
97
+
You may be asked to apply certain changes, or we might apply straightforward adjustments ourselves before the integration.
98
+
88
99
9. If it looks good (potentially after some help), **your contribution becomes a part of DAPHNE**.
We appreciate *continued commitment* to the DAPHNE system.
103
+
We appreciate *continued commitment* to DAPHNE.
93
104
Thus, **frequent contributors can become collaborators** on GitHub.
94
105
Currently, this requires **at least three non-trivial contributions** to the system.
95
106
Collaborators have *direct write access* to all branches of the repository, including the main branch.
@@ -99,25 +110,26 @@ Collaborators do not need to create a fork, and do not need to go through pull r
99
110
At the same time, this freedom comes with certain responsibilities, which are roughly sketched here:
100
111
101
112
1. Please **follow some simple guidelines when changing the code**:
102
-
- Feel free to directly push to the main branch, but *be mindful of what you commit*, since it will affect everyone.
103
-
As a guideline, commits fundamentally changing how certain things work should be announced and discussed first, whereas small changes or changes local to "your" component are not critical.
104
-
- But **never force push to the main branch**, since it can lead to severe inconsistencies in the Git history.
105
-
- Even *collaborators may still use pull requests* (just like new contributors) to suggest larger changes.
106
-
This is also suitable whenever you feel unsure about a change or want to get feedback first.
113
+
- Feel free to directly push to the main branch, but *be mindful of what you commit*, since it will affect everyone.
114
+
As a guideline, commits fundamentally changing how certain things work should be announced and discussed first, whereas small changes or changes local to "your" component are not critical.
115
+
- But **never force push to the main branch**, since it can lead to severe inconsistencies in the Git history.
116
+
- Even *collaborators may still use pull requests* (just like new contributors) to suggest larger changes.
117
+
This is also suitable whenever you feel unsure about a change or want to get feedback first.
107
118
2. Please **engage in the [handling of pull requests](/doc/development/HandlingPRs.md)**; especially those affecting the components you are working on.
108
-
This includes:
109
-
- reading the code others suggest for integration
110
-
- trying if it works
111
-
- providing constructive and *actionable* feedback on improving the contribution prior to the integration
112
-
- actually merging a pull request in
113
-
114
-
Balancing the handling of pull requests is important to *keep the development process scalable*.
119
+
This includes:
120
+
121
+
- reading the code others suggest for integration
122
+
- trying if it works
123
+
- providing constructive and *actionable* feedback on improving the contribution prior to the integration
124
+
- actually merging a pull request in
125
+
126
+
Balancing the handling of pull requests is important to *keep the development process scalable*.
115
127
116
128
117
129
### Code Style
118
130
119
131
Before contributing, please make sure to run `clang-format` on your C++ (.h and
120
-
.cpp) files. The codebase is currently formatted with `clang-format` version
132
+
.cpp) files. The code base is currently formatted with `clang-format` version
121
133
`18.1.3`. This is the default `clang-format` version when installing via `apt`
122
134
on Ubuntu 24.04, and can easily be installed via `python -mpip install clang-format==18.1.3`
Copy file name to clipboardExpand all lines: doc/BinaryFormat.md
+22-22Lines changed: 22 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ limitations under the License.
17
17
# Binary Data Format
18
18
19
19
DAPHNE defines its own binary representation for the serialization of in-memory data objects (matrices/frames).
20
-
This representation is intended to be used by default whenever we need to transfer or persistently store these in-memory objects, e.g., for
20
+
This representation is intended to be used by default whenever we need to transfer or persistently store these in-memory objects, e.g., for:
21
21
22
22
- the data transfer in the distributed runtime
23
23
- a custom binary file format
@@ -32,7 +32,7 @@ At the moment, we focus on the case of a single block per data object.
32
32
33
33
## Binary Representation of a Whole Data Object
34
34
35
-
The binary representation of a data object (matrix/frame) starts with a header containing general and datatype-specific information.
35
+
The binary representation of a data object (matrix/frame) starts with a header containing general and data-type-specific information.
36
36
The data object is partitioned into rectangular blocks (in the extreme case, this can mean a single block).
37
37
All blocks are represented individually (see binary representation of a single block below) and stored along with their position in the data object.
38
38
@@ -76,7 +76,7 @@ We currently support the following **value types**:
76
76
| 9 |`float`|
77
77
| 10 |`double`|
78
78
79
-
Depending on the data type, there are more information in the header:
79
+
Depending on the data type, there is more information in the header:
80
80
81
81
*For `DenseMatrix` and `CSRMatrix`*:
82
82
@@ -108,8 +108,8 @@ size[B] 1 1 8 8 1 1 2 len[0]
108
108
The body consists of a sequence of:
109
109
110
110
- a pair of
111
-
- row index `rx` (uint64)
112
-
- column index `cx` (uint64)
111
+
- row index `rx` (uint64)
112
+
- column index `cx` (uint64)
113
113
- a binary block representation
114
114
115
115
For the special case of a single block, this looks as follows:
@@ -128,7 +128,7 @@ size[B]
128
128
A single data block is a rectangular partition of a data object.
129
129
In the extreme case, a single block can span the entire data object in both dimensions (one block per data object).
130
130
131
-
General block header
131
+
General block header:
132
132
133
133
- number of rows `#r` (uint32)
134
134
- number of columns `#c` (uint32)
@@ -143,7 +143,7 @@ addr[B] 0 3 4 7 8 8 9 *
143
143
size[B] 4 4 1 *
144
144
```
145
145
146
-
## Block types
146
+
## Block Types
147
147
148
148
We define different block types to allow for a space-efficient representation depending on the data.
149
149
When serializing a data object, the block types are not required to match the in-memory representation (e.g., the blocks of a `DenseMatrix` could use the *sparse* binary representation).
@@ -161,7 +161,7 @@ Most block types store their value type as part of the block type-specific infor
161
161
Note that the value type used for the binary representation is not required to match the value type of the in-memory object (e.g., `DenseMatrix<uint64_t>` may be represented as a *dense* block with value type `uint8_t`, if the value range permits).
162
162
Furthermore, each block may be represented using its individual value type.
163
163
164
-
### Empty block
164
+
### Empty Block
165
165
166
166
This block type is used to represent blocks that contain only zeros of the respective value type very space-efficiently.
0 commit comments