-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcontributor-handbook.html
More file actions
executable file
·266 lines (233 loc) · 11 KB
/
Copy pathcontributor-handbook.html
File metadata and controls
executable file
·266 lines (233 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>SAS Open Source Contributor Handbook</title>
<meta name="description" content="A guide to contributing to SAS's open source projects.">
<meta name="author" content="SAS Institute, Inc.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="images/s-mark.png">
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/sassoftware.css">
<link rel="preload" href="https://www.sas.com/includes/fonts/sas/Anova-Regular.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="preload" href="https://www.sas.com/includes/fonts/sas/Anova-Bold.woff2" as="font" type="font/woff2" crossorigin/>
<link rel="preload" href="https://www.sas.com/includes/fonts/sas/Anova-Light.woff2" as="font" type="font/woff2" crossorigin/>
</head>
<!-- Primary page layout -->
<body>
<!-- Body section -->
<div class="grid-container halves" style="margin-top:8rem;">
<div>
<img class="u-img-hero u-three-quarter-width" src="images/sas-colors.png">
</div>
<div>
<h1>SAS Open Source Contributor Handbook</h1>
<p>Contributing to <a href="https://sassoftware.github.io/" title="sassoftware.github.io">open source projects from SAS Institute Inc.</a></p>
</div>
</div>
<!-- Banded section -->
<div class="divider">
<div>
<img class="u-img-divider" src="images/standard-section-divider.png">
</div>
</div>
<!-- Body section -->
<div class="grid-container halves">
<div>
<h2>Welcome, contributors</h2>
<hr>
<p class="u-embiggen">SAS is the founder and future of analytics.</p>
<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>
<p class="u-embiggen">Just follow these steps to get started.</p>
</div>
<div>
<img class="u-hiding" src="images/sas-screens.png">
</div>
</div>
<!-- Banded section -->
<div class="divider">
<div>
<img class="u-img-divider" src="images/standard-section-divider.png">
</div>
</div>
<!-- Body section -->
<div class="grid-container halves">
<div>
<h2>Step 1: Find a project</h2>
<p><a href="https://github.com/sassoftware" title="github.com/sassoftware">SAS Software on GitHub</a> is home to more than 150 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>
<a class="button button-classic" href="https://sassoftware.github.io">Browse projects</a>
<a class="button button-clear" href="https://github.com/orgs/sassoftware/repositories">Search projects →</a>
</div>
<div class="u-hiding shapes">
<div class="shape circle-transparent"></div>
<div class="shape blade-reverse"></div>
<div class="shape semicircle-down-dark"></div>
</div>
<div class="u-hiding shapes">
<div class="shape blade"></div>
<div class="shape quartercircle-right-light"></div>
<div class="shape circle-dark"></div>
</div>
<div>
<h2>Step 2: Read the guidelines</h2>
<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>
<p>When you understand (and follow) these guidelines, you'll increase the likelihood that project maintainers will accept your contributions.</p>
<a class="button" href="https://github.com/sassoftware/sas-code-examples/blob/main/CONTRIBUTING.md" title="Contributing to sas-code-examples">See example</a>
</div>
</div>
<!-- Banded section -->
<div class="divider">
<div>
<img class="u-img-divider" src="images/standard-section-divider.png">
</div>
</div>
<!-- Body section -->
<div class="grid-container halves">
<div>
<h2>Our contributor agreement</h2>
<p>Everyone contributing to SAS projects must sign <a href="https://raw.githubusercontent.com/sassoftware/.github/refs/heads/main/ContributorAgreement.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>. Complying with the agreement does not alter your right to use your contributions for any other purpose.</p>
<div class="shapes u-align-center" style="padding-top:8rem; padding-bottom:7rem;">
<div class="shape circle"></div>
<div class="shape quartercircle-left"></div>
<div class="shape quartercircle-right"></div>
</div>
</div>
<div class="boxed">
<h3>SAS Contributor Agreement</h3>
<p class="u-monospace">Version 1.2</p>
<p class="u-monospace">To contribute to this project, you must (1) attest to your right to offer your contribution and (2) clearly indicate whether you used artificial intelligence tools to develop your contribution.</p>
<a class="button" href="https://raw.githubusercontent.com/sassoftware/.github/refs/heads/main/ContributorAgreement.txt" tite="ContributorAgreement.txt">Read the full agreement</a>
</div>
<div>
<h2>Step 3: Sign your work</h2>
<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>
<pre><code>Signed-off-by: Firstname Lastname <user@domain></code></pre>
<p>For example:</p>
<pre><code>Signed-off-by: Random J. Developer <random@developer.example.org></code></pre>
<p>You can add this line to your commits with this command:</p>
<pre><code>git commit -s</code></pre>
<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>
</div>
<div>
<h2>Step 4: Credit your assistants</h2>
<p>We also ask that you indicate when your contribution contains code an AI assistant helped you generate.</p>
<p>If a coding assistant generated your entire contribution, please add the following additional line to your committ message:</p>
<pre><code>Generated-by: Assistant Name</code></pre>
<p>For example:</p>
<pre><code>Generated-by: Claude Code</code></pre>
<p>If you collaborated with a coding assistant to create your contribution, add the following line to your commit message:</p>
<pre><code>Assisted-by: Assistant Name</code></pre>
<p>For example:</p>
<pre><code>Assisted-by: GitHub Copilot</code></pre>
<p>By including these notes in your contirbutions, you're helping SAS advance <a href="https://www.sas.com/en_us/company-information/innovation/responsible-innovation.html" title="responsible innovation">responsible innovation</a>.</p>
</div>
</div>
<!-- Banded section -->
<div class="divider">
<div>
<img class="u-img-divider" src="images/standard-section-divider.png">
</div>
</div>
<!-- Body section -->
<div class="grid-container halves">
<div>
<h2>Step 5: Submit for review</h2>
<p>The time has come. Submit your pull request so we can take a look.</p>
<h4>What to expect</h4>
<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>
</div>
<div class="inverted inverted-blue">
<h3>Find a maintainer</h3>
<p>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>
<p>Need help? Just ask.</p>
<p><a class="button button-inverted" href="https://github.com/orgs/sassoftware/people" title="Find a maintainer">Find a maintainer</a></p>
</div>
</div>
<!-- Banded section -->
<div class="band carded-band">
<div>
<h2>Our promise</h2>
<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>
</div>
</div>
<!-- Body section -->
<div class="grid-container halves">
<div>
<h2>Let's get started</h2>
<p>Browse the <a href="https://github.com/sassoftware" title="SAS Software organization on GitHub">SAS Software organization on GitHub</a>.</p>
</div>
</div>
<div class="grid-container thirds">
<div id="just-launched">
<h4>Just launched</h4>
</div>
<div id="recently-updated">
<h4>Recently updated</h4>
</div>
<div id="most-forked">
<h4>Most forked</h4>
</div>
</div>
<script type="text/javascript" src="js/data.js"></script>
<script type="text/javascript">
function renderRepos(arr, tag, count) {
const list = document.getElementById(tag);
function makeElem(arrItem, arrIndex) {
let p = document.createElement('p');
let name = arrItem['name'];
let description = arrItem['description'];
/*<p><a href="PROJECT_URL" title="PROJECT_NAME">PROJECT_NAME</a><br />PROJECT_DESCRPTION</p>*/
p.innerHTML = `<p><a href="https://github.com/sassoftware/${name}" title="${name}">${name}</a><br />${description}</p>`;
console.log(arrItem);
return p;
}
let i = 0;
arr.forEach((item, index) => {
if (i < count){
try {
const listElement = makeElem(item, index);
list.append(listElement);
console.log("*");
} catch (Error) {
console.log(Error);
}}
i += 1;
});
}
data.sort(function(a,b){
if ( a['created_at'] < b['created_at'] )
{
return 1;
}
return -1;
});
renderRepos(data, "just-launched", 4);
data.sort(function(a,b){
if ( a['pushed_at'] < b['pushed_at'] )
{
return 1;
}
return -1;
});
renderRepos(data, "recently-updated", 4);
data.sort(function(a,b){
if ( a['forks_count'] < b['forks_count'] )
{
return 1;
}
return -1;
});
renderRepos(data, "most-forked", 4);
</script>
<!-- Footer section -->
<div class="footer">
<p>©2026 <a href="https://www.sas.com/" title="sas.com">SAS Institute Inc.</a> All Rights Reserved.</p>
<ul>
<li><a href="https://github.com/sassoftware/sassoftware.github.io" title="sasssoftware.github.io">Site Code</a></li>
<li><a href="https://github.com/sassoftware" title="github.com/sassoftware">SAS on GitHub</a></li>
<li><a href="https://www.sas.com/en_us/company-information/why-sas.html" title="sas.com">About SAS</a></li>
</ul>
</div>
<!-- Document end-->
</body>
</html>