Skip to content

Commit 8b5306a

Browse files
committed
Update contributing and conventions files
1 parent dde50de commit 8b5306a

File tree

2 files changed

+80
-189
lines changed

2 files changed

+80
-189
lines changed

CONTRIBUTING.md

Lines changed: 73 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,47 @@
1-
# Contribution Guideline SDS SDK JS Aspect Model loader
1+
# Contribution Guideline ESMF SDK JS Aspect Model loader
22

3-
Thank you for your interest in contributing to the SDS SDK JS Aspect Model loader. Use this repository to contribute to
4-
the
5-
SDS SDK JS Aspect Model loader as easy and
6-
transparent as possible, whether it is:
3+
Thank you for your interest in contributing to the ESMF SDK SDK JS Aspect Model loader. Use this repository to
4+
contribute to
5+
the SDK as easy and transparent as possible, whether it is:
76

87
* Reporting a bug
98
* Submitting a fix
109
* Proposing new features
11-
* other
10+
* something else
1211

13-
## OMP SDS and Roles
14-
15-
The SDS SDK JS Aspect Model loader is developed in the context of the OMP SDS WG (Open Manufacturing Platform - Semantic
16-
Data
17-
Structuring - Working Group).
18-
More information about the OMP such as its goals or members is available under
19-
[open-manufacturing.org](https://open-manufacturing.org).
20-
The overall goal of the SDS WG within the OMP is to work on a Semantic Data Structuring Layer that addresses the needs
21-
to share, join, and reuse heterogeneous data of the manufacturing.
22-
The SDS SDK JS Aspect Model loader is based on the BAMM Aspect Meta Model and supports its use.
23-
24-
### Roles
25-
26-
The work on the SDS SDK JS Aspect Model loader is organized within the OMP SDS WG to which this document simply refers
27-
as "`working group`"
28-
in the following. The `working group` is currently meeting regularly and may decide on the acceptance of Pull Requests
29-
(`PR's`) and `Issues`. Before a release of the specification, the `working group` further needs to agree on a state of
30-
the SDS SDK JS Aspect Model loader as a release candidate.
31-
32-
Besides the `working group`, there is a group of people to which this document refers to as "`maintainers`".
33-
`Maintainers` manage this repository and therefore have write access and the right to assign labels to `Issues`
34-
and `PR's`.
35-
36-
The working group is led by a `Chair` who facilitates the `working group`'s meetings and organizes the work in the
37-
working group. The `Chair` is also a `maintainer` of this repository.
12+
The ESMF SDK is developed in the context of the [Eclipse Semantic Modeling
13+
Framework](https://projects.eclipse.org/projects/dt.esmf/). It is based on the Semantic Aspect Meta
14+
Model (SAMM) and supports its use.
3815

3916
# Contributing Source Code (using GitHub)
4017

41-
* We use this GitHub repository to track issues and feature requests, as well as discuss and manage all PR's related to
42-
this project.
43-
* Opening `Issues` and `PRs` in GitHub is the preferred way to interact with the community around the SDS SDK JS
44-
Aspect Model loader.
18+
* We use this GitHub repository to track issues and feature requests.
19+
* For general discussions of the ESMF, modeling questions etc. we use
20+
the [community forum](https://www.eclipse.org/forums/index.php/f/617/).
21+
* For discussions specific to development, the preferred way is
22+
the [developer mailing list](https://accounts.eclipse.org/mailing-list/esmf-dev).
4523

4624
## Branching
4725

4826
We follow
49-
the [Git branching guidance](https://docs.microsoft.com/en-us/azure/devops/repos/git/git-branching-guidance?view=azure-devops)
50-
.
27+
the [Git branching guidance](https://docs.microsoft.com/en-us/azure/devops/repos/git/git-branching-guidance?view=azure-devops).
5128

5229
More specifically the repository has the following branches:
5330

54-
name of branch | description
55-
------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
56-
`main` | Contains the latest state of the repository
57-
`v{version_number}-RC{rc_number}` | A state on which the working group agreed on as a release candidate but which is missing the approval by the OMP.
58-
`v{version_number}` | A release of the respective version which is approved by the working group and the OMP.
59-
`feature/#{issue_number}-{feature_name}` | Contains the development on a specific feature and is intended to be merged back into the `main` branch as soon as possible. Note, that it is recommended for contributors to create and develop feature branches in a personal fork and not the upstream repository.
60-
`bug/#{issue_number}-{bug_name}` | Contains the development of (usually smaller) changes in files of the repository that do not introduce new functionality but fix mistakes, errors or inconsistencies. These branches should be merged back into the `main`branch as soon as possible.
31+
name of branch | description
32+
-----------------------------------|------------------------------------------------------------------
33+
`main` | Contains the latest state of the repository
34+
`v{version_number}-RC{rc_number}` | A "release candidate": A version that freezes major features and
35+
36+
can be considered a pre-release of the next full release.
37+
`v{version_number}` | A full release of the respective version.
38+
`feature/#{issue_number}-{feature_name}` | Contains the development on a specific feature and is
39+
intended to be merged back into the `main` branch as soon as possible. Note, that it is recommended
40+
for contributors to create and develop feature branches in a personal fork and not the upstream
41+
repository.
42+
`bug/#{issue_number}-{bug_name}` | Contains the development of (usually smaller) changes in files of
43+
the repository that do not introduce new functionality but fix mistakes, errors or inconsistencies.
44+
These branches should be merged back into the `main`branch as soon as possible.
6145

6246
## Issues
6347

@@ -99,118 +83,43 @@ When opening a `PR` please consider the following topics:
9983
split up the work into multiple `feature branches`.
10084
* Commit changes often. A `PR` may contain one or more commits.
10185

102-
## Paperwork and DCO
86+
## Eclipse Development Process
10387

104-
The OMP is a [JDF project (Joint Developement Foundation)](https://www.jointdevelopment.org/) following the project and
105-
working group charters as defined in JDF charter template 4.0.1
88+
This Eclipse Foundation open project is governed by the Eclipse Foundation Development Process and
89+
operates under the terms of the Eclipse IP Policy.
10690

107-
For source code contribution the project charter requests for non-working group participants the following:
91+
* https://eclipse.org/projects/dev_process
92+
* https://www.eclipse.org/org/documents/Eclipse_IP_Policy.pdf
10893

109-
```
110-
Non-Working Group Participant Feedback and Participation. Upon the Approval of the Working Group Participants,
111-
the Working Group can request feedback from and/or allow Non-Working Group Participant participation in a Working Group,
112-
subject to each Non-Working Group Participant executing the Feedback Agreement set forth in Appendix B.
113-
```
94+
## Eclipse Contributor Agreement
11495

115-
``Appendix B`` with the placeholders set to:
96+
In order to be able to contribute to Eclipse Foundation projects you must electronically sign the
97+
Eclipse Contributor Agreement (ECA).
11698

117-
- [Project Name] = "OMP"
118-
- [Projects’s Source Code License] = "MPL 2.0"
119-
- [name of deliverable] = "SDS SDK JS Aspect Model loader"
99+
* http://www.eclipse.org/legal/ECA.php
120100

121-
states:
101+
The ECA provides the Eclipse Foundation with a permanent record that you agree that each of your
102+
contributions will comply with the commitments documented in the Developer Certificate of Origin
103+
(DCO). Having an ECA on file associated with the email address matching the "Author" field of your
104+
contribution's Git commits fulfills the DCO's requirement that you sign-off on your contributions.
105+
106+
For more information, please see the Eclipse Committer Handbook:
107+
https://www.eclipse.org/projects/handbook/#resources-commit
122108

123-
> ### OMP Feedback Agreement
124-
>**
125-
>
126-
>Feedback
127-
>
128-
>The OMP (“Project”) is developing the SDS SDK JS Aspect Model loader (the “Materials”). Project would like to receive
129-
> input,
130-
> suggestions and other feedback (“Feedback”) on the Materials. By signing below,
131-
> you (on behalf of yourself if you are an individual and your company if you are providing Feedback
132-
> on behalf of the company) grant the Project under all applicable intellectual property rights owned or controlled by
133-
> you or your company a non-exclusive, non-transferable, worldwide, perpetual, irrevocable, royalty-free license to use,
134-
> disclose, copy, publish, license, modify, sublicense or otherwise distribute and exploit Feedback you provide for
135-
> the purpose of developing and promoting the Materials and in connection with any product that implements and
136-
> complies with the Materials. You warrant to the best of your knowledge that you have rights to provide this Feedback,
137-
> and if you are providing Feedback on behalf of a company, you warrant that you have the rights to provide Feedback
138-
> on behalf of your company. You also acknowledge that the Project is not required to incorporate your Feedback into
139-
> any version of the Materials. You further agree that you and your company will not disclose it or distribute drafts of
140-
> the Project Materials to third parties. Unless the parties agree otherwise, this obligation of non-disclosure will
141-
> expire five (5) years from the date the material was disclosed to you.
142-
>
143-
>Source Code
144-
>
145-
>Any source code you provide to the Project is subject to the Developer Certificate of Origin version 1.1,
146-
> available at http://developercertificate.org/ and the MPL 2.0.
147-
148-
This means, before making a pull request or providing an issue please sign the OMP Feedback Agreement for the
149-
working group “Semantic Data Structuring”.
150-
151-
## Labeling
152-
153-
After new `Issues` or `PRs` are created, the `bug` and `task` label will be added automatically according to the chosen
154-
issue type.
155-
Later on the Chair or one of the maintainers may further assign a `label` to it according to this table:
156-
157-
Label Types | Description
158-
---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
159-
`to be discussed` | Involvement and Discussion in one of the `working group` meetings are needed.
160-
`request for information` | The `working group` or the `maintainers` are requesting further information from the creator of the `Issue` or `PR`. If for a pre-defined time no information is received, then the `Issue` or `PR` can be closed.
161-
`approved` | Has been discussed and approved in the `working group`.
162-
`not accepted` | Has been discussed in the `working group` with the decision to close this issue.
163-
164-
### PR or Issue Discussion and Decision
165-
166-
* You can provide comments to any `PR` or `Issue` via the comment function in GitHub
167-
* If no further involvement from the working group is required, a `maintainer` may merge a `PR`.
168-
This mostly applies to bug fixes and non-API-breaking changes.
169-
A `PR` for a bug fix has to reference an issue of type `Bug Report`.
170-
* The `maintainers` may assign the label `to be discussed` to a proposal when further involvement from
171-
the `working group` is required. This then triggers the following steps:
172-
1. The `Chair` of the `working group` puts the proposal up for discussion in one of the next `working group`
173-
meetings.
174-
2. The `working group` then uses Consensus Decision-Making with one of the outcomes listed below.
175-
3. The label `to be discussed` is removed.
176-
177-
| Decision | Next Steps |
178-
| ------ | ------- |
179-
|`Approved`| The `Issue` or the `PR` gets the label `approved`. In the case of a `PR`, the `maintainers` merge the respective `PR`. |
180-
| `Discussion`| The `Issue` or the `PR` get the label `request for information`.
181-
|`Close` | The `Issue` or the `PR` are closed and get the label `not accepted`. |
182-
183-
* If the `working group` or the `maintainers` feel that further information is required to explain a `PR` or an `Issue`,
184-
they may request this information through the comment section of the `PR` or `Issue` and assign the label
185-
`request for information`. The `maintainers` may close the issue if no answer is received after a pre-defined time.
186-
187-
Note, that merging a `PR` leads to the closing of the `Issue` if it is linked in the `PR`.
188-
189-
### Review Checklist
190-
191-
The following checklist can be seen as a basis for performing reviews on new `PRs`:
192-
193-
- [ ] brief and useful commit messages
194-
- [ ] code convention is followed
195-
- [ ] the contribution matches to the linked issue and the description of the PR
196-
- [ ] provide clear documentation of new features (if applicable)
197-
- [ ] outline added third party dependencies
198-
199-
### Commit Messages
200-
201-
Separate the subject from the body with a blank line because the subject line is shown in the Git history and should
202-
summarize the commit body.
203-
Use the body to explain what and why with less focus on the details of the how.
204-
This [blog post](https://chris.beams.io/posts/git-commit/#seven-rules) has more tips and details.
205-
Before you push your commits to a repository, you should squash your commits into one or more logical units of work,
206-
e.g.,
207-
you should organize a new feature in a single commit.
109+
## Commit Messages
110+
111+
Separate the subject from the body with a blank line because the subject line is shown in the Git
112+
history and should summarize the commit body. Use the body to explain what and why with less focus
113+
on the details of the how. This [blog post](https://chris.beams.io/posts/git-commit/#seven-rules)
114+
has more tips and details. Before you push your commits to a repository, you should squash your
115+
commits into one or more logical units of work, e.g., you should organize a new feature in a single
116+
commit.
208117

209118
## License Headers & Licensing
210119

211-
All files contributed require headers - this will ensure the license and copyright clearing at the end. Also, all
212-
contributions must have the same license as the source.
213-
The header should follow the following template:
120+
All files contributed require headers - this will ensure the license and copyright clearing at the
121+
end. Also, all contributions must have the same license as the source. The header should follow the
122+
following template:
214123

215124
```
216125
/*
@@ -228,43 +137,29 @@ The header should follow the following template:
228137
*/
229138
```
230139

231-
When using the template, one must replace "{NAME OF COMPANY X}" with the name of the involved companies and "{YEAR}"
232-
with the year of the contribution. For each involved company you need a new line starting with "Copyright" as outlined
233-
in the example.
140+
When using the template, one must replace "{NAME OF COMPANY X}" with the name of the involved
141+
companies and "{YEAR}" with the year of the contribution. For each involved company you need a new
142+
line starting with "Copyright" as outlined in the example.
234143

235-
The example is taken from a Typescript class file. If your file is of another type you may have to adapt the comment
236-
syntax
237-
accordingly.
144+
The example is taken from a Java source file. If your file is of another type you may have to adapt
145+
the comment syntax accordingly.
238146

239-
If you use third-party content (e.g., import / include ...), you are required to list each third-party content
240-
explicitly with its version number in the documentation and your pull-request comment.
241-
Please also check used third party material for license compatibility with the MPL-2.0.
147+
If you use third-party content (e.g., import / include ...), you are required to list each
148+
third-party content explicitly with its version number in the documentation and your pull-request
149+
comment. Please also check used third party material for license compatibility with the MPL-2.0.
242150
E.g. software licensed under GPL, AGPL or, a similar strong copy-left license cannot be approved.
243151

244152
# Code Conventions
245153

246-
The SDS SDK JS Aspect Model loader is written in the Typescript Programming Language. Please have a look into
247-
our [Code Conventions](CONVENTIONS.md).
248-
249-
# Release Process
250-
251-
The working group may decide that it reached a stable state for the contents of the repository.
252-
To settle an agreement on this and provide downstream users with a stable version of the BAMM SDS SDK JS Aspect Model
253-
loader,
254-
a release process can be triggered.
255-
256-
For such a release the `working group` must approve the current state of the `main` branch as agreement.
257-
A `maintainer` of the repository then forks the `main` branch into a new branch that follows the naming
258-
convention `v{version_number}-RC`. The organization team of the OMP is then asked to `review & approve`
259-
the `v{version_number}-RC` branch. If the organization agrees on the approval the OMP steering committee needs to be
260-
notified. After that notification, a `maintainer` triggers the release feature from GitHub based on the commit on
261-
which the `v{version_number}-RC` branch is based.
154+
The ESMF SDK SDK JS Aspect Model loader is written in Typescript. Please have a look into our [Code
155+
Conventions](CONVENTIONS.md).
262156

263157
## Versioning
264158

265-
We use Semantic Versioning to identify released versions of the SDS SDK JS Aspect Model loader. Semantic Versioning is
266-
documented
267-
[here](https://semver.org). It proposes to have a versioning number with the following elements:
159+
We use Semantic Versioning to identify released versions of the ESMF SDK SDK JS Aspect Model loader. Semantic Versioning
160+
is
161+
documented [here](https://semver.org). It proposes to have a versioning number with the following
162+
elements:
268163

269164
````
270165
Given a version number MAJOR.MINOR.PATCH, increment the:
@@ -280,9 +175,10 @@ the Patch version must be incremented if backward-compatible bugfixes are introd
280175

281176
### Breaking Changes
282177

283-
For the definition of a breaking change, we follow the definition as in the
284-
[Microsoft REST API Guidelines](https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#123-definition-of-a-breaking-change)
285-
which are licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0). This definition states:
178+
For the definition of a breaking change, we follow the definition as in the [Microsoft REST API
179+
Guidelines](https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#123-definition-of-a-breaking-change)
180+
which are licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0). This definition
181+
states:
286182

287183
````
288184
Changes to the contract of an API are considered a breaking change. Changes that impact the backwards compatibility

0 commit comments

Comments
 (0)