-
Notifications
You must be signed in to change notification settings - Fork 0
/
contributing.html
328 lines (299 loc) · 17.2 KB
/
contributing.html
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
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/assets/bootstrap/bootstrap.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap" rel="stylesheet" data-no-mirror>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.26.0/themes/prism.css">
<link href="/assets/css/theme.css" rel="stylesheet" />
<link href="/assets/css/styles.css" rel="stylesheet" />
<link href="/css/overrides.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<script src="https://kit.fontawesome.com/a1cad7ed9a.js" crossorigin="anonymous" data-no-mirror></script>
<script src="https://cdn.jsdelivr.net/npm/mermaid@8.4.8/dist/mermaid.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.1/dist/svg-pan-zoom.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.26.0/components/prism-core.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.26.0/plugins/autoloader/prism-autoloader.min.js" data-no-mirror></script>
<script src="https://cdn.jsdelivr.net/npm/quicklink@2.0.0/dist/quicklink.umd.js"></script>
<!-- Lunr search -->
<title>TestCentric - Contributing</title>
</head>
<body class="d-flex flex-column">
<div class="flex-grow-1 d-flex flex-column">
<div class="bg-nav">
<div class="container-xl py-3">
<div class="row">
<div class="offset-lg-2 col-12 col-lg-8 px-0">
<nav class="navbar navbar-expand-md navbar-light align-items-start">
<a class="navbar-brand" href="/">
<img id="logo" src="/img/NewTestCentricLogo.png" alt="TestCentric">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapse-topnav" aria-controls="collapse-topnav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="collapse-topnav" class="collapse navbar-collapse flex-wrap">
<ul class="navbar-nav mr-auto">
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="/testcentric-runner">TestCentric Runner</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/tc-lite">TC-Lite Framework</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contributing">Contributing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/blog">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/github">GitHub</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
</div>
<div class="flex-grow-1 d-flex flex-column">
<!-- Titlebar -->
<div id="titlebar" class="py-4">
<div class="container-xl">
<div class="row">
<div class="offset-lg-2 col-12 col-lg-8 px-3 px-lg-0 w-100 d-flex flex-wrap align-items-end">
<div class="flex-grow-1">
<div class="breadcrumbs d-flex flex-column flex-md-row text-break">
</div>
<div class="text-white m-0 text-break title">
Contributing
</div>
</div>
<div class="navbar navbar-expand-md navbar-dark p-0">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#left-sidebar" aria-controls="left-sidebar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
</div>
</div>
</div>
<!-- Under title -->
<div id="undertitle">
<div class="container-xl">
<div class="row">
<div class="col-md-3 col-lg-2">
</div>
<div class="col-md-9 col-lg-8 bg-white">
</div>
<div class="col-lg-2 d-none d-lg-block">
</div>
</div>
</div>
</div>
<!-- Body -->
<div class="flex-grow-1 d-flex flex-column">
<div class="container-xl flex-grow-1 d-flex flex-column">
<div class="row flex-grow-1 align-items-stretch">
<div id="content" class="offset-lg-2 col-12 col-lg-8 p-4 pt-md-0 bg-white">
<h1 id="how-to-contribute">How to contribute</h1>
<p>So you're thinking about contributing to TestCentric? Great! Maintaining and enhancing the TestCentric GUI is a big job, so <strong>the community's help is really appreciated.</strong></p>
<p>Helping out isn't just writing code, it also includes submitting issues, helping confirm issues, writing documentation, running tests and answering questions from other users.</p>
<h2 id="submitting-issues">Submitting Issues</h2>
<p>Requests for new features and bug reports keep the project moving forward.</p>
<h3 id="where-to-submit-an-issue">Where to submit an issue</h3>
<h4 id="testcentric-runner">TestCentric Runner:</h4>
<p>There are multiple packages, each with it's own issue tracker. When in doubt, use the <a href="https://github.com/TestCentric/testcentric-gui/issues">GUI tracker</a> for issues of appearance and the <a href="https://github.com/TestCentric/testcentric-engine/issues">TestEngine tracker</a> for Issues related to loading and running of tests. An engine-like issue, which only occurs when a specific runtime is targeted, may actually relate to the agent used: <a href="https://github.com/TestCentric/net462-pluggable-agent/issues">.NET 4.6.2</a> / <a href="https://github.com/TestCentric/net80-pluggable-agent/issues">.NET 8.0</a> / <a href="https://github.com/TestCentric/net70-pluggable-agent/issues">.NET 7.0</a> / <a href="https://github.com/TestCentric/net60-pluggable-agent/issues">.NET 6.0</a>, for example.</p>
<p>Once again, when in doubt use the issue tracker for the software where you encountered the issue but <strong>submit your issue</strong>! After investigating the problem, we will move your issue to a different tracker if necessary.</p>
<h4 id="tc-lite-framework">TC-Lite Framework:</h4>
<p>All issues should be submitted <a href="https://github.com/TestCentric/tc-lite/issues">here</a>.</p>
<h3 id="before-you-submit-an-issue">Before you submit an issue</h3>
<ul>
<li>Ensure you are running the latest version of the software, which may be a pre-release. Note that we are no longer fixing problems arising in version 1 of the TestCentric GUI.</li>
<li>Search the issue list to make sure your issue hasn't already been reported. Be sure to look at closed issues as well as open ones, in case there is an unreleased fix available in our repository.</li>
</ul>
<h3 id="submitting-a-good-issue">Submitting a good issue</h3>
<ul>
<li>Give the issue a short, clear title that describes the bug or feature request.</li>
<li>Include the versions of the software you are using.</li>
<li>Include steps to reproduce the issue</li>
<li>If possible, include a short code example that reproduces the issue.</li>
<li>Use <a href="https://guides.github.com/features/mastering-markdown/">markdown formatting</a> as appropriate to make the issue and code more readable.</li>
</ul>
<h2 id="confirming-bugs">Confirming Bugs</h2>
<p>Before we work on a bug report, we must confirm and be able to reproduce it. Confirming bugs takes up a great deal of the team's time, so making that job easier is very helpful.</p>
<p>Issues that need confirmation will have the <strong>Needs Confirmation</strong> label. As a user, you can help us by;</p>
<ul>
<li>Adding steps to reproduce the bug, if not provided in the original report.</li>
<li>Describing conditions in which the bug occurs or does not occur.</li>
<li>Creating failing unit tests to demonstrate the bug.</li>
<li>Testing issues created by others and adding a comment as feedback.</li>
</ul>
<h2 id="documentation">Documentation</h2>
<p>Great documentation is essential for any open source project and TestCentric is no exception. <a href="https://test-centric.org/">Our documentation</a> may sometimes lag behind the features that have been implemented or may benefit from better examples.</p>
<p>A great place to start is by going through the Release Notes on GitHub and ensuring that the documentation for new features is up to date.</p>
<h2 id="fixing-bugs-and-adding-features">Fixing Bugs and Adding Features</h2>
<p>We love pull requests! We prefer that new contributors start with small issues and let us know before contributing code so as to prevent duplication of work. To help new contributors get their feet wet, we have marked a number of issues with the <code>Easy Fix</code> label. These are great places to start.</p>
<p>It is also a good idea to add a comment to an issue that you are working on to let everyone know. We'll assign the issue to you so that it shows up under your name on GitHub. If you stop working on it, also please let us know.</p>
<p>Please read through the developer section of the documentation before contributing to understand our coding standards and contribution guidelines.</p>
<p>Once you are ready to have your work reviewed, create a Pull Request (PR) on GitHub. A team member will review it and may make suggestions for changes. Only team members (committers) are able to merge your work into TestCentric.</p>
<h2 id="license">License</h2>
<p>Our software is under the <a href="https://opensource.org/license/MIT">MIT license</a>. By contributing to TestCentric, you assert that:</p>
<ul>
<li>The contribution is your own original work.</li>
<li>You have the right to assign the copyright for the work.</li>
</ul>
</div>
<div class="col-lg-2 p-md-0 m-md-0 bg-body">
<div id="right-sidebar" class="sidebar px-0 px-md-3 pt-3">
<div class=" mb-3 sidebar-root">
<div class="sidebar-nav-item sidebar-header">On This Page</div>
<div class="sidebar-nav-children">
<div class="sidebar-nav-item"><a href="#how-to-contribute">How to contribute</a></div>
<div class="sidebar-nav-children">
<div class="sidebar-nav-item"><a href="#submitting-issues">Submitting Issues</a></div>
<div class="sidebar-nav-item"><a href="#confirming-bugs">Confirming Bugs</a></div>
<div class="sidebar-nav-item"><a href="#documentation">Documentation</a></div>
<div class="sidebar-nav-item"><a href="#fixing-bugs-and-adding-features">Fixing Bugs and Adding Features</a></div>
<div class="sidebar-nav-item"><a href="#license">License</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<div id="footer" class="p-3 text-white">
<div class="container-xl">
<div class="row">
<div class="offset-lg-2 col-12 col-lg-8">
<div class="pt-2 font-size-sm text-muted text-center">
Generated By <a class="text-muted" href="https://statiq.dev">Statiq</a>
</div>
</div>
</div>
</div>
</div>
<!-- Scripts -->
<script>
$(document).ready(function() {
quicklink.listen();
// Bootstrap tooltips
$('[data-toggle="tooltip"]').tooltip();
// Keeps the sidebars in view on wider viewports
let left = null;
let leftParent = null;
let right = null;
let rightParent = null;
function stickSidebars()
{
if (left == null) {
left = $('#left-sidebar');
right = $('#right-sidebar');
}
if (left.length) {
if (window.innerWidth >= 768) {
if (leftParent == null) {
leftParent = left.parent()[0];
}
if (leftParent) {
let leftRect = leftParent.getBoundingClientRect();
stickSidebar(left, leftRect);
}
} else {
left.css('position', 'relative');
if (left.css('bottom') != 0) {
left.css('bottom', '0');
}
}
}
if (right.length) {
if (window.innerWidth >= 768) {
if (rightParent == null) {
rightParent = right.parent()[0];
}
if (rightParent) {
let rightRect = rightParent.getBoundingClientRect();
stickSidebar(right, rightRect);
}
} else {
right.css('position', 'relative');
if (right.css('bottom') != 0) {
right.css('bottom', '0');
}
}
}
}
function stickSidebar(sidebar, rect) {
// Bottom
if (rect.bottom > window.innerHeight) {
sidebar.css('bottom', rect.bottom - window.innerHeight + "px");
} else {
sidebar.css('bottom', 0);
}
// Top
if (rect.top < 0) {
sidebar.css('position', 'sticky');
} else {
sidebar.css('position', 'absolute');
}
}
$(window).on("load", function() {
stickSidebars();
});
$(window).scroll(function() {
stickSidebars();
});
$(window).resize(function() {
stickSidebars();
})
// Mermaid diagrams
mermaid.initialize(
{
flowchart:
{
useMaxWidth: false
},
startOnLoad: false,
cloneCssStyles: false
});
mermaid.init(undefined, ".mermaid");
// Remove the max-width setting that Mermaid sets
var mermaidSvg = $('.mermaid svg');
mermaidSvg.addClass('img-fluid');
mermaidSvg.css('max-width', '');
// Make it scrollable
var target = document.querySelector(".mermaid svg");
if(target !== null)
{
var panZoom = window.panZoom = svgPanZoom(target, {
zoomEnabled: true,
controlIconsEnabled: true,
fit: true,
center: true,
maxZoom: 20,
zoomScaleSensitivity: 0.6
});
// Do the reset once right away to fit the diagram
panZoom.resize();
panZoom.fit();
panZoom.center();
$(window).resize(function(){
panZoom.resize();
panZoom.fit();
panZoom.center();
});
}
});
</script>
</body>
</html>