Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 12c86ce

Browse files
authored
Merge pull request #2 from NSO-developer/update-readme-for-gitlab-etc
Update README with regards to GitLab etc
2 parents 938f65f + 62f022d commit 12c86ce

File tree

1 file changed

+139
-61
lines changed

1 file changed

+139
-61
lines changed

README.md

Lines changed: 139 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,128 @@
1-
# The NSO Developer space on GitHub
2-
3-
We have created a public organization on GitHub to ensure we have one common place to share code for all of us working with NSO.
4-
5-
Since the NSO Developer is a public GitHub everyone can fork and read the uploaded code.
6-
By using a pull request everyone can also contribute to existing projects.
7-
8-
If you want to contribute with a new project, please read the instructions below.
1+
# The NSO Developer space on GitLab & GitHub
2+
3+
NSO-Developer is a public space available on GitLab and GitHub where all of us
4+
working with NSO can publish and share code. Anyone is free to read and use the
5+
code or fork a project and continue development. Contributions are made simple
6+
through Merge/Pull requests and make it possible for anyone to contribute back.
7+
8+
## GitLab vs GitHub
9+
The NSO-Developer space is available both on GitLab and GitHub with the goal to
10+
mirror all projects between the two. Having repos available in both places makes
11+
it possible for users to access code where most convenient for the user.
12+
13+
- If you want to clone a repository, you can grab it from GitLab or GitHub
14+
- If you want to start a new repository you are encouraged to create it on
15+
GitLab. The repo can be continuously mirrored from GitLab to GitHub.
16+
- If you are the owner of an existing repository on GitHub, talk to an
17+
administrator to have it moved to GitLab and mirrored back to GitHub. Moving
18+
to GitLab enables CI functionality.
19+
20+
GitLab and GitHub have virtually the same set of basic functions, like issue
21+
tracking or pull/merge requests for code review. NSO-Developer originally
22+
started on GitHub, which is why the majority of repositories currently have
23+
their home on GitHub. However, GitLab offers the possibility to use the
24+
integrated CI system, thus providing a standardized CI configuration format, yet
25+
setup a custom CI runner (the actual machine running CI jobs). A clear advantage
26+
that in turn makes it possible to run NSO, netsims as well as virtual routers in
27+
CI. The CI system of GitLab together with how it is leveraged in the [NSO in
28+
Docker project](https://gitlab.com/nso-developer/nso-docker/) is why GitLab is
29+
now the preferred location. We encourage anyone starting a new repository to
30+
create it on GitLab. We still keep it available on GitHub by mirroring the
31+
project, making it easy to consume for users.
932

1033
## Licenses
11-
All material on the NSO Developer sapce on GitHub is under the [Apache 2.0 license](https://github.com/NSO-developer/NSO-developer/blob/master/LICENSE).
12-
The license is used to ensure a balance between open contribution and allowing you to use the software as you like to.
34+
All material on the NSO-Developer space is under the [Apache 2.0
35+
license](https://github.com/NSO-developer/NSO-developer/blob/master/LICENSE).
36+
The license is used to ensure a balance between open contribution and allowing
37+
anyone to freely use the software without hindrance.
38+
39+
It is important that you, as a contributor, understand the ramifications of the
40+
license and agree to it. Sometimes the copyright holder isn't the contributor,
41+
such as when the contributor is doing work on behalf of a company.
1342

14-
The license tells you what rights you have that are provided by the copyright holder. It is important that the contributor fully understands what rights they are
15-
licensing and agrees to them. Sometimes the copyright holder isn't the contributor, such as when the contributor is doing work on behalf of a company.
43+
To ensure that the criteria in the license are met, there is a need for a
44+
Developer Certificate of Origin (DCO) sign-off on all contributions.
1645

17-
To ensure that the criteria in the license are met, there is a need for a Developer Certificate of Origin (DCO) sign-off on all contribution.
1846
More information about that can be found below.
1947

20-
## Contributing a Project on the NSO Developer GitHub
48+
## Contributing a Project on the NSO Developer
2149
Getting Started
22-
1. Create an account on github.com
23-
1. Create your own private repository on github.com
24-
1. Make sure your project fulfills all the criteria listed below (under “Requirements on your project”).
25-
1. Send an email to the NSO Developer librarians with a link to your repository ([email protected]).
26-
1. You will be added as an outside collaborator to a new repository on the [NSO Developer GitHub](https://github.com/NSO-developer) and will be asked to contribute your code there.
50+
1. Create an account on gitlab.com
51+
1. Create your own private repository on gitlab.com
52+
1. Make sure your project fulfills all the criteria listed below (under
53+
“Requirements on your project”).
54+
1. Send an email to the NSO Developer librarians ([email protected]) with
55+
a link to your repository.
56+
1. You will be added as an outside collaborator to a new repository on the [NSO
57+
Developer GitHub](https://github.com/NSO-developer) and will be asked to
58+
contribute your code there.
2759

2860
[Read more about the implications here](https://help.github.com/enterprise/2.6/user/articles/about-repository-transfers/).
2961

30-
That’s it! When the move is done, your repository is now part of the NSO developer. Keep hacking on your project,
31-
you will still have owner privileges, and as such you can decide to give others write access for example.
62+
That’s it! When the move is done, your repository is now part of the NSO
63+
developer space. Keep hacking on your project, you will still have owner
64+
privileges, and as such you can decide to give others write access for example.
3265

33-
Users of your repository can use Issues to report bugs and suggest new features, and Pull Requests to contribute code.
66+
Users of your repository can use **Issues** to report bugs and suggest new features,
67+
and **Merge Requests** to contribute code.
3468

35-
When/if you do not have time to keep your project up to date (fix issues, accept pull requests etc) - please say so. Write a line in the README.md, as well as an email to [email protected] - we will try to help you find a new maintainer of the code, or retire it from the library if it appears abandoned for a long time.
69+
When/if you do not have time to keep your project up to date (fix issues, accept
70+
merge/pull requests etc) - please say so. Write a line in the README, as well as
71+
an email to [email protected] - we will try to help you find a new
72+
maintainer of the code, or retire it from the library if it appears abandoned
73+
for a long time.
3674

3775
## Expectations
3876
When using packages from the library you can expect:
3977

40-
* The code you find provided “as is” and when you use it you get to keep it. If it breaks you get to keep all the pieces.
41-
* If you extend a project or fix bugs, please contribute back in the form of pull requests.
42-
* When contributing you can expect:
43-
* The code you contribute is made available to everyone in source form “as is”.
44-
* Your code might be used to: teach others about NSO, build new products, provide a starting point for customer projects.
45-
* At the very minimum your contribution should have a title and a short README.md explaining what it does, see full list of requirements here
46-
* You are not required to support your contributed code, but please consider pull requests and try to answer questions in the project wiki
47-
* Only contribute code for which you own the IPR
48-
* Do not include explicit references to customers (be it customer names, network configuration / templates, or otherwise)
78+
- The code you find provided “as is” and when you use it you get to keep it. If
79+
it breaks you get to keep all the pieces.
80+
- If you extend a project or fix bugs, please contribute back in the form of
81+
merge/pull requests.
82+
83+
When contributing you can expect:
84+
- The code you contribute is made available to everyone in source form “as is”.
85+
- Your code might be used to: teach others about NSO, build new products,
86+
provide a starting point for customer projects.
87+
- At the very minimum your contribution should have a title and a short
88+
README.md explaining what it does, see full list of requirements here
89+
- You are not required to support your contributed code, but please consider
90+
merge/pull requests and try to respond to issues and feedback
91+
- Only contribute code for which you own the IPR
92+
- Do not include explicit references to customers (be it customer names, network
93+
configuration / templates, or otherwise)
4994

5095
## Requirements on your project
51-
Before your project can be accepted as a repository of the NSO Developer it needs to fulfill the following criteria.
96+
Before your project can be accepted as a repository of the NSO Developer it
97+
needs to fulfill the following criteria.
5298

5399
### Developer Certificate of Origin
54100
#### Signed-off
55-
When using the NSO-develop-hub every commit needs to be signed-off (git commit –s) by the contributor that he or she has the right to submit it.
56-
The “-s” flag adds a line with the text 'Signed-off-by' followed by the same email address as the contributor. E.g.
101+
For code published on NSO-developer, every commit needs to be signed-off (git
102+
commit –s) by the contributor that he or she has the right to submit it.
103+
104+
The “-s” flag adds a line with the text 'Signed-off-by' followed by the same
105+
email address as the contributor. E.g.
57106

58107
```
59108
My commit message
60109
61110
Signed-off-by Aron Aronsson <[email protected]>
62111
```
63112

64-
It is important that the git config user.name and user.email is configured correctly.
113+
It is important that the git config user.name and user.email is configured
114+
correctly.
65115

66116
[user]
67117
name = Aron Aronsson
68118
69119

70120
#### What is signed-off
71-
In short you are signing off that you have the right to submit the code to the developer hub, and that you understand that it will be public. The full text can found at [developercertificate.org](www.developercertificate.org) and also here:
121+
In short you are signing off that you have the right to submit the code to the
122+
NSO-Developer space, and that you understand that it will be public. The full
123+
text can found at [developercertificate.org](www.developercertificate.org) and
124+
below:
125+
72126
```
73127
Developer Certificate of Origin
74128
Version 1.1
@@ -108,43 +162,67 @@ By making a contribution to this project, I certify that:
108162
maintained indefinitely and may be redistributed consistent with
109163
this project or the open source license(s) involved.
110164
```
111-
#### Signing pull requests
112-
When creating a pull request every commit in that pull request will be checked for DCO, if you haven’t signed all commits the checks will fail and the pull request will be denied.
113165

114-
Therefore it is a good idea to sign all commits before doing the pull request.
115166

116167
### It should be NSO related
117-
Sure, it could be a cool YANG plugin too - but it should at least be relevant to NSO development.
168+
Sure, it could be a cool YANG plugin too - but it should at least be relevant to
169+
NSO development.
118170

119171
### Naming
120-
Choose a name. A good name. A catchy name, a nerdy name, a happy name - you decide. This is especially important if your contribution is a tool or a reusable library. In that case it doesn’t even have to be descriptive. Better YxT than “YANG Extension Tool”. Don’t pick “generic-tool”, “misc-template”…
172+
Choose a name. A good name. A catchy name, a nerdy name, a happy name - you
173+
decide. This is especially important if your contribution is a tool or a
174+
reusable library. In that case it doesn’t even have to be descriptive. Better
175+
YxT than “YANG Extension Tool”. Don’t pick “generic-tool”, “misc-template”…
176+
177+
If your contribution is more of a demo or example, then a more descriptive name
178+
could be in order, perhaps even pre- or postfixed with demo or example. For
179+
example: l3-vpn-demo or example-stacked-service.
121180

122-
If your contribution is more of a demo or example, then a more descriptive name could be in order, perhaps even pre- or postfixed with demo or example. For example: l3-vpn-demo or example-stacked-service.
181+
### Repository Description
182+
Be sure to set the description of the repository. While the name might be
183+
catchy, do try to use the description to describe what the package does.
184+
185+
Is it just an example? Or a reusable library ready for use? Is it an NSO package
186+
or a peripheral utility? What does it do? How does it help someone else?
123187

124188
### README.md
125189
Add a README.md. Your README must include:
126-
* Brief explanation of what your project does
127-
* List dependencies (build and runtime, for example compilers, libraries, operating system)
128-
* Instructions on how to build it
129-
* If your project contains any copies of code derived from open source you need to explicitly list which projects.
190+
* Brief explanation of what your project does
191+
* List dependencies (build and runtime, for example compilers, libraries,
192+
operating system)
193+
* Instructions on how to build it
194+
* If your project contains any copies of code derived from open source you need
195+
to explicitly list which projects.
130196

131197
### LICENSE
132-
Add a LICENSE file so that the license is kept with the repository, we suggest using Apache 2.0 license. This makes it clear for anyone how the code can be used, modified and distributed.
198+
Add a LICENSE file so that the license is kept with the repository, we suggest
199+
using Apache 2.0 license. This makes it clear for anyone how the code can be
200+
used, modified and distributed.
133201

134202
### It must be open
135-
The whole point of the NSO Developer space is to share code to the NSO ecosystem, as such we don’t want to make it “private”. However, that means that anyone can access the NSO Developer repositories, which requires us to approve the open access and ensure that no private information is included.
203+
The whole point of the NSO Developer space is to share code to the NSO
204+
ecosystem, as such we don’t want to make it “private”. However, that means that
205+
anyone can access the NSO Developer repositories, which requires us to approve
206+
the open access and ensure that no private information is included.
136207

137-
The information in the README.md file will be displayed on the Cisco NSO DevNet site.
208+
The information in the README.md file will be displayed on the Cisco NSO DevNet
209+
site.
138210

139211
### Recommendations
140-
* Add test cases, and instructions on how to run them. Why not use Lux to automate your tests? NSO uses it!
141-
142-
* Packaging make one repository for every stand-alone project. But don’t make a lot of small repositories of things that actually belong together, it just makes the space cluttered and it will be harder to find your project.
143-
144-
* Naming convention for YANG modules. For a demo or example the module name and namespace does not matter that much (you can use example.com/... as namespace). But if your project is a re-usable piece, then consider using the URL of the project the namespace (as in: github.com/NSO-developer/PACKAGE-NAME/MODULE-NAME)
145-
146-
* If you actually make some kind of releases, consider tagging the releases and use a “CHANGES” file / “Release Notes” document
147-
148-
## Link to GitHub
149-
150-
[NSO-Developer](https://github.com/nso-developer)
212+
- Add test cases, and instructions on how to run them. Why not use Lux to
213+
automate your tests? NSO uses it!
214+
- Packaging make one repository for every stand-alone project. But don’t make a
215+
lot of small repositories of things that actually belong together, it just
216+
makes the space cluttered and it will be harder to find your project.
217+
- Naming convention for YANG modules. For a demo or example the module name and
218+
namespace does not matter that much (you can use example.com/... as
219+
namespace). But if your project is a re-usable piece, then consider using the
220+
URL of the project the namespace (as in:
221+
github.com/NSO-developer/PACKAGE-NAME/MODULE-NAME)
222+
- If you actually make some kind of releases, consider tagging the releases and
223+
use a “CHANGES” file / “Release Notes” document
224+
225+
## Link to GitLab & GitHub
226+
227+
- [NSO-Developer on GitLab](https://gitlab.com/nso-developer)
228+
- [NSO-Developer on GitHub](https://github.com/nso-developer)

0 commit comments

Comments
 (0)