|
| 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 < [email protected]> </code></pre> |
| 100 | + <p>For example:</p> |
| 101 | + <pre><code>Signed-off-by: Random J Developer < [email protected]> </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