Skip to content

Commit 9f5575f

Browse files
feat: add open source contribution guide (#9)
Perform several actions to add contributor handbook to project, including: * Add contributor handbook page * Add handbook graphics to images folder * Add header class to stylesheet * Add SAS standard contribution documents to repository * Update README to reflect accepting contributions * Update database with upstream changes * Add home page module with link to handbook Signed-off-by: Bryan Behrenshausen <[email protected]>
1 parent 1e4ca7c commit 9f5575f

File tree

10 files changed

+379
-33
lines changed

10 files changed

+379
-33
lines changed

CONTRIBUTING.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Contributing
2+
3+
<!-- Use this text if your project is not accepting contributions. -->
4+
5+
Maintainers are not currently accepting patches and contributions to this project.
6+
7+
<!-- Use this text if your project is accepting contributions. -->
8+
9+
Maintainers are accepting patches and contributions to this project.
10+
11+
Please note the following contribution guidelines.
12+
13+
## Contributor License Agreement
14+
15+
Contributions to this project must be accompanied by a signed [Contributor Agreement](ContributorAgreement.txt).
16+
You (or your employer) retain the copyright to your contribution, this simply gives us permission to use and redistribute your contributions as part of the project.
17+
18+
## Update documentation
19+
20+
Project documentation is stored in the `website` directory.
21+
This project welcomes pull requests sugggesting updates to this documentation.
22+
See the documentation [README](./website/README.md) for details.
23+
24+
## Code reviews
25+
26+
All submissions, including submissions by project members, require review.
27+
We use GitHub pull requests for this purpose.
28+
Consult [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more information on using pull requests.

ContributorAgreement.txt

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
Contributor Agreement
2+
3+
Version 1.1
4+
5+
Contributions to this software are accepted only when they are
6+
properly accompanied by a Contributor Agreement. The Contributor
7+
Agreement for this software is the Developer's Certificate of Origin
8+
1.1 (DCO) as provided with and required for accepting contributions
9+
to the Linux kernel.
10+
11+
In each contribution proposed to be included in this software, the
12+
developer must include a "sign-off" that denotes consent to the
13+
terms of the Developer's Certificate of Origin. The sign-off is
14+
a line of text in the description that accompanies the change,
15+
certifying that you have the right to provide the contribution
16+
to be included. For changes provided in source code control (for
17+
example, via a Git pull request) the sign-off must be included in
18+
the commit message in source code control. For changes provided
19+
in email or issue tracking, the sign-off must be included in the
20+
email or the issue, and the sign-off will be incorporated into the
21+
permanent commit message if the contribution is accepted into the
22+
official source code.
23+
24+
If you can certify the below:
25+
26+
Developer's Certificate of Origin 1.1
27+
28+
By making a contribution to this project, I certify that:
29+
30+
(a) The contribution was created in whole or in part by me and I
31+
have the right to submit it under the open source license
32+
indicated in the file; or
33+
34+
(b) The contribution is based upon previous work that, to the best
35+
of my knowledge, is covered under an appropriate open source
36+
license and I have the right under that license to submit that
37+
work with modifications, whether created in whole or in part
38+
by me, under the same open source license (unless I am
39+
permitted to submit under a different license), as indicated
40+
in the file; or
41+
42+
(c) The contribution was provided directly to me by some other
43+
person who certified (a), (b) or (c) and I have not modified
44+
it.
45+
46+
(d) I understand and agree that this project and the contribution
47+
are public and that a record of the contribution (including all
48+
personal information I submit with it, including my sign-off) is
49+
maintained indefinitely and may be redistributed consistent with
50+
this project or the open source license(s) involved.
51+
52+
then you just add a line saying
53+
54+
Signed-off-by: Random J Developer <[email protected]>
55+
56+
using your real name (sorry, no pseudonyms or anonymous contributions.)

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ This project is written entirely in HTML, CSS, and Javascript.
88
Installation is therefore a matter of copying files to a webserver.
99

1010
## Contributing
11-
Maintainers are not currently accepting patches and contributions to this project.
11+
Maintainers are accepting patches and contributions to this project.
12+
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on contirbuting to this project.
1213

1314
## License
1415
Except for the the contents of the `/images` folder, this project is licensed under the Apache 2.0 License.

contributor-handbook.html

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>SAS Open Source Contributor Handbook</title>
6+
<meta name="description" content="A guide to contributing to SAS's open source projects.">
7+
<meta name="author" content="SAS Institute, Inc.">
8+
<meta name="viewport" content="width=device-width, initial-scale=1">
9+
<link rel="icon" type="image/png" href="images/s-mark.png">
10+
<link rel="stylesheet" href="css/normalize.css">
11+
<link rel="stylesheet" href="css/sassoftware.css">
12+
<link rel="preload" href="https://www.sas.com/includes/fonts/sas/Anova-Regular.woff2" as="font" type="font/woff2" crossorigin/>
13+
<link rel="preload" href="https://www.sas.com/includes/fonts/sas/Anova-Bold.woff2" as="font" type="font/woff2" crossorigin/>
14+
<link rel="preload" href="https://www.sas.com/includes/fonts/sas/Anova-Light.woff2" as="font" type="font/woff2" crossorigin/>
15+
</head>
16+
17+
<!-- Primary page layout -->
18+
19+
<body>
20+
21+
<!-- Banded section -->
22+
23+
<div class="header">
24+
<h1>SAS Open Source Contributor Handbook</h1>
25+
<p>Contributing to <a href="https://sassoftware.github.io/" title="sassoftware.github.io">open source projects from SAS Institute Inc.</a></p>
26+
</div>
27+
28+
<!-- Body section -->
29+
30+
<div class="grid-container halves">
31+
<div>
32+
<img src="images/sas-screens.png">
33+
</div>
34+
<div>
35+
<h2>Welcome, contributors</h2>
36+
<hr>
37+
<p class="u-embiggen">SAS is the founder and future of analytics.</p>
38+
<p class="u-embiggen">When you contribute to SAS's open source projects, you'll build tools that help people make better decisions, faster.</p>
39+
</div>
40+
</div>
41+
42+
<!-- Banded section -->
43+
44+
<div class="divider">
45+
<div>
46+
<img class="u-img-divider" src="images/standard-section-divider.png">
47+
</div>
48+
</div>
49+
50+
<!-- Body section -->
51+
52+
<div class="grid-container halves">
53+
<div>
54+
<h2>Where to start</h2>
55+
<p><a href="https://github.com/sassoftware" title="github.com/sassoftware">SAS Software on GitHub</a> is home to more than 200 open source projects from SAS. Find open projects, plugins, examples, and other resources for extending and integrating SAS's powerful tools with open source languages and frameworks.</p>
56+
<a class="button button-classic" href="https://sassoftware.github.io">Browse projects</a>
57+
</div>
58+
<div>
59+
<img class="u-half-width" src="images/icon-location.png">
60+
</div>
61+
</div>
62+
63+
<!-- Banded section -->
64+
65+
<div class="divider">
66+
<div>
67+
<img class="u-img-divider" src="images/standard-section-divider.png">
68+
</div>
69+
</div>
70+
71+
<!-- Body section -->
72+
73+
<div class="grid-container halves">
74+
<div>
75+
<img class="u-half-width" src="images/icon-guidelines.png">
76+
</div>
77+
<div>
78+
<h2>Read the guidelines</h2>
79+
<p>If a SAS open source project is accepting contributions, the project repository will contain a <span style="font-family:monospace;">CONTRIBUTING.md</span> file. Read that file carefully. It will contain important instructions for contributing to the project. It might also offer details about the project's development and code review processes.</p>
80+
<p>When you understand (and follow) these guidelines, you'll increase the likelihood that project maintainers will accept your contributions.</p>
81+
</div>
82+
</div>
83+
84+
<!-- Banded section -->
85+
86+
<div class="divider">
87+
<div>
88+
<img class="u-img-divider" src="images/standard-section-divider.png">
89+
</div>
90+
</div>
91+
92+
<!-- Body section -->
93+
94+
<div class="grid-container halves">
95+
<div>
96+
<h2>Sign your work</h2>
97+
<p>Everyone contributing to SAS projects must sign <a href="https://github.com/sassoftware/.github/blob/main/ContributorAgreement.txt" tite="ContributoAgreement.txt">SAS's standard contributor agreement</a>, which is built on the <a href="https://developercertificate.org/" title="Developer Certificate of Origin"> Developer Certificate of Origin</a>.
98+
<p>To comply with the agreement and attest to your right to offer your contribution to a SAS project, simply add the following line to your commits:</p>
99+
<pre><code>Signed-off-by: Firstname Lastname &lt;[email protected]&gt;</code></pre>
100+
<p>For example:</p>
101+
<pre><code>Signed-off-by: Random J Developer &lt;[email protected]&gt;</code></pre>
102+
<p>You can add this line to your commits with this command:</p>
103+
<pre><code>git commit -s</code></pre>
104+
<p>SAS uses the <a href="https://github.com/apps/dco" title="DCO app">DCO app</a> to scan all commits in incoming pull requests and confirm this sign-off. The app will alert you if your commits aren't properly signed-off. It will also offer instructions for remediating the issue and providing proper sign-off. SAS project maintainers won't merge your commit unless you've added proper sign-off.</p>
105+
</div>
106+
<div class="boxed">
107+
<h3>SAS Contributor Agreement</h3>
108+
<p class="u-monospace">Version 1.1</p>
109+
<p class="u-monospace">Contributions to this software are accepted only when they are properly accompanied by a Contributor Agreement. The Contributor Agreement for this software is the Developer's Certificate of Origin 1.1 (DCO) as provided with and required for accepting contributions to the Linux kernel.</p>
110+
<p class="u-monospace">In each contribution proposed to be included in this software, the developer must include a "sign-off" that denotes consent to the terms of the Developer's Certificate of Origin. The sign-off is a line of text in the description that accompanies the change, certifying that you have the right to provide the contribution to be included. For changes provided in source code control (for example, via a Git pull request) the sign-off must be included in the commit message in source code control. For changes provided in email or issue tracking, the sign-off must be included in the email or the issue, and the sign-off will be incorporated into the permanent commit message if the contribution is accepted into the official source code.</p>
111+
<a class="button" href="https://raw.githubusercontent.com/sassoftware/.github/refs/heads/main/ContributorAgreement.txt" tite="ContributoAgreement.txt">Read the full agreement</a>
112+
</div>
113+
</div>
114+
115+
<!-- Banded section -->
116+
117+
<div class="divider">
118+
<div>
119+
<img class="u-img-divider" src="images/standard-section-divider.png">
120+
</div>
121+
</div>
122+
123+
<!-- Body section -->
124+
125+
<div class="grid-container thirds">
126+
<div>
127+
<h2>Submit for review</h2>
128+
<hr>
129+
<p class="u-embiggen">Each of SAS's open source projects has its own team of maintainers at SAS. Each one therefore has its own set of code conventions and review process, too.</p>
130+
</div>
131+
<div>
132+
<h3>What to expect</h3>
133+
<p>A project's <span style="font-family:monospace;">CONTRIBUTING.md</span> file will detail the project's code review processes. All contributions require review from SAS project maintainers. They may run unit tests, development tests, integrations tests, and security scans using internal SAS infrastructure. In this case, they may not merge a contribution directly from GitHub; instead, they'll work with submissions internally first, vetting them to ensure they meet SAS standards.</p>
134+
</div>
135+
<div>
136+
<h3>Our promise</h3>
137+
<p>We’ll always do our best to work with contributors in public issues and pull requests; however, to ensure our code meets our internal compliance standards, we may need to incorporate your submission into a solution we push ourselves. And we work to ensure all contributors receive appropriate recognition for their contributions—at the very least, by acknowledging contributors in our release notes.</p>
138+
</div>
139+
</div>
140+
141+
<!-- Banded section -->
142+
143+
<div class="divider">
144+
<div>
145+
<img class="u-img-divider" src="images/standard-section-divider.png">
146+
</div>
147+
</div>
148+
149+
<!-- Body section -->
150+
151+
<div class="grid-container halves">
152+
<div>
153+
<h2>Let's get started</h2>
154+
<p>Browse the <a href="https://github.com/sassoftware" title="SAS Software organization on GitHub">SAS Software organization on GitHub</a>.</p>
155+
</div>
156+
</div>
157+
<div class="grid-container thirds">
158+
<div id="just-launched">
159+
<h4>Just launched</h4>
160+
</div>
161+
<div id="recently-updated">
162+
<h4>Recently updated</h4>
163+
</div>
164+
<div id="most-forked">
165+
<h4>Most forked</h4>
166+
</div>
167+
</div>
168+
169+
<script type="text/javascript" src="js/data.js"></script>
170+
<script type="text/javascript">
171+
function renderRepos(arr, tag, count) {
172+
const list = document.getElementById(tag);
173+
function makeElem(arrItem, arrIndex) {
174+
let p = document.createElement('p');
175+
let name = arrItem['name'];
176+
let description = arrItem['description'];
177+
178+
/*<p><a href="PROJECT_URL" title="PROJECT_NAME">PROJECT_NAME</a><br />PROJECT_DESCRPTION</p>*/
179+
180+
p.innerHTML = `<p><a href="https://github.com/sassoftware/${name}" title="${name}">${name}</a><br />${description}</p>`;
181+
console.log(arrItem);
182+
return p;
183+
}
184+
let i = 0;
185+
arr.forEach((item, index) => {
186+
if (i < count){
187+
try {
188+
const listElement = makeElem(item, index);
189+
list.append(listElement);
190+
console.log("*");
191+
} catch (Error) {
192+
console.log(Error);
193+
}}
194+
i += 1;
195+
});
196+
}
197+
198+
data.sort(function(a,b){
199+
if ( a['created_at'] < b['created_at'] )
200+
{
201+
return 1;
202+
}
203+
return -1;
204+
});
205+
renderRepos(data, "just-launched", 4);
206+
207+
data.sort(function(a,b){
208+
if ( a['pushed_at'] < b['pushed_at'] )
209+
{
210+
return 1;
211+
}
212+
return -1;
213+
});
214+
renderRepos(data, "recently-updated", 4);
215+
216+
data.sort(function(a,b){
217+
if ( a['forks_count'] < b['forks_count'] )
218+
{
219+
return 1;
220+
}
221+
return -1;
222+
});
223+
renderRepos(data, "most-forked", 4);
224+
225+
</script>
226+
227+
<!-- Footer section -->
228+
229+
<div class="footer">
230+
<p>©2024 <a href="https://www.sas.com/" title="sas.com">SAS Institute Inc.</a> All Rights Reserved.</p>
231+
<ul>
232+
<li><a href="https://github.com/sassoftware/sassoftware.github.io" title="sasssoftware.github.io">Site Code</a></li>
233+
<li><a href="https://github.com/sassoftware" title="github.com/sassoftware">SAS on GitHub</a></li>
234+
<li><a href="https://www.sas.com/en_us/company-information/why-sas.html" title="sas.com">About SAS</a></li>
235+
</ul>
236+
</div>
237+
238+
<!-- Document end-->
239+
</body>
240+
</html>

0 commit comments

Comments
 (0)