ELEC60015-HLP-CW/docs/contributing.html

117 lines
5.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Contributing
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="description" content="Schematic editor and Simulator"/>
<meta name="author" content="tomcl"/>
<script src="https://code.jquery.com/jquery-1.8.0.js"></script>
<script src="https://code.jquery.com/ui/1.8.23/jquery-ui.js"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/js/bootstrap.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css" rel="stylesheet"/>
<link type="text/css" rel="stylesheet" href="https://tomcl.github.io/issie//content/style.css" />
<script type="text/javascript" src="https://tomcl.github.io/issie//content/tips.js"></script>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="masthead">
<ul class="nav nav-pills pull-right">
<li><a href="http://fsharp.org">fsharp.org</a></li>
</ul>
<h3 class="muted"><a href="https://tomcl.github.io/issie//index.html">issie</a></h3>
</div>
<hr />
<div class="row">
<div class="span9" id="main">
<h1><a name="Contributing" class="anchor" href="#Contributing">Contributing</a></h1>
<h2><a name="Branching" class="anchor" href="#Branching">Branching</a></h2>
<ul>
<li>Create a feature branch in git.</li>
<li>Fork and clone locally.</li>
</ul>
<h2><a name="Style-Guidelines" class="anchor" href="#Style-Guidelines">Style Guidelines</a></h2>
<ul>
<li>Follow <a href="https://docs.microsoft.com/en-us/dotnet/fsharp/style-guide/formatting">F# Coding Guidelines</a>.</li>
<li>Take into consideration <a href="https://github.com/fsprojects/FSharpLint">FSharpLint</a> output.</li>
<li><a href="https://github.com/fsprojects/fantomas">Fantomas</a> should be run to ensure formatting is consistent.</li>
</ul>
<h2><a name="Testing" class="anchor" href="#Testing">Testing</a></h2>
<p>Testing is done in the tests libraries using <a href="https://github.com/haf/expecto">Expecto</a> which is able to load in any
testing framework you may need, but is strongly encouraged to keep things consistent and use Expecto tests and <a href="https://github.com/fscheck/FsCheck">FsCheck</a>
for any property-based testing.</p>
<ul>
<li>Add test cases where needed.</li>
<li>Tests are run as part of the build process, please ensure they pass.</li>
<li>Note that pure F# should be tested - GUI cannot easily be tested.</li>
</ul>
<h2><a name="Documentation" class="anchor" href="#Documentation">Documentation</a></h2>
<p>Documentation is built dynamically from F# script files and markdown files using <a href="https://github.com/fsprojects/FSharp.Formatting">FSharp.Formatting</a>.
The Reference documentation is dynamically generated, and descriptions specified by using <code>///</code> rather than <code>//</code> for comments, see the Formatting documentation
for more information.</p>
<ul>
<li>Add documentation as necessary, pages can be modified and created in the <code>./docsrc</code> directory.</li>
<li>Documentation is built during the build process.</li>
<li>Consider adding examples if adding new features.</li>
<li><a href="https://daringfireball.net/projects/markdown/syntax">Markdown Syntax</a></li>
</ul>
<h2><a name="Building" class="anchor" href="#Building">Building</a></h2>
<ul>
<li>Build the solution with Visual Studio, <code>build.cmd</code> or <code>build.sh</code>.</li>
<li>All binaries will be in <code>./bin</code> after being built.</li>
<li>
When you're ready to commit the code use `build.cmd/sh -t "Release". This will clean up directories, stage,
and build everything for release. Once you've confirmed it looks good, commit to your branch and make your PR.
</li>
<li>Please note in order to build the Linux images you must have <code>Docker</code> installed.</li>
</ul>
<h2><a name="Releasing" class="anchor" href="#Releasing">Releasing</a></h2>
<ul>
<li>
Create the distributables via the <code>Dist</code> build task, then create the delta and sig files with the <code>CreateDiffs</code> task. Upload all of the files
related to the new version to the release.
</li>
</ul>
<div class="row">
<div class="span1"></div>
<div class="span6">
<img src="img/fake.png" alt="Build process"/>
</div>
</div>
<h2><a name="Merging" class="anchor" href="#Merging">Merging</a></h2>
<ul>
<li>Send a pull request and have it reviewed.</li>
</ul>
</div>
<div class="span3">
<ul class="nav nav-list" id="menu" style="margin-top: 20px;">
<li class="nav-header">issie</li>
<li class="divider"></li>
<li><a href="https://github.com/tomcl/ISSIE">Source Code</a></li>
<li><a href="https://tomcl.github.io/issie//release-notes.html">Release Notes</a></li>
<li><a href="https://tomcl.github.io/issie//contributing.html">Contributing</a></li>
<li class="nav-header">Documentation</li>
<li><a href="https://tomcl.github.io/issie//index.html">Introduction</a></li>
<li class="divider"></li>
<li><a href="https://tomcl.github.io/issie//community.html">Community</a></li>
<li class="nav-header">Reference</li>
<li><a href="https://tomcl.github.io/issie//reference/index.html">API Reference</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>