Skip to content

Commit 9636de2

Browse files
committed
Several improvements
Added some links, fixed some typos etc.
1 parent 6e4bc45 commit 9636de2

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

02-Use_the_Tools_Available.md

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Source control is an absolute necessity for any software development project. If
1010
* [Bitbucket](https://bitbucket.org/) - allows for unlimited private repositories with up to 5 collaborators, for free.
1111
* [SourceForge](http://sourceforge.net/) - open source hosting only.
1212
* [GitLab](https://gitlab.com/), Subversion, BitKeeper, many many others... The above are the most popular free services.
13-
* [Visual Studio Online](https://visualstudio.com)(http://www.visualstudio.com/what-is-visual-studio-online-vs) - allows for unlimited public repositories, must pay for private repository. Repositories can be git or TFVC. Additionally: Issue tracking, project planning (multiple Agile templates, such as SCRUM), integrated hosted builds, integration of all this into Microsoft Visual Studio. Windows only.
13+
* [Visual Studio Online](https://visualstudio.com) (http://www.visualstudio.com/what-is-visual-studio-online-vs) - allows for unlimited public repositories, must pay for private repository. Repositories can be git or TFVC. Additionally: Issue tracking, project planning (multiple Agile templates, such as SCRUM), integrated hosted builds, integration of all this into Microsoft Visual Studio. Windows only.
1414

1515
## Build Tool
1616

@@ -24,7 +24,7 @@ Use an industry standard widely accepted build tool. This prevents you from rein
2424
* [FASTBuild](http://www.fastbuild.org/)
2525
* [Ninja](https://martine.github.io/ninja/) - can greatly improve the incremental build time of your larger projects. Can be used as a target for CMake.
2626
* [Bazel](http://bazel.io/) - Note: MacOS and Linux only.
27-
* [gyp](https://chromium.googlesource.com/external/gyp/) Google's build tool for chromium.
27+
* [gyp](https://chromium.googlesource.com/external/gyp/) - Google's build tool for chromium.
2828

2929
Remember, it's not just a build tool, it's also a programming language. Try to maintain good clean build scripts and follow the recommended practices for the tool you are using.
3030

@@ -40,7 +40,7 @@ Continuous Integration (CI) tools automatically build the source code as changes
4040
* free for public repositories on GitHub
4141
* [AppVeyor](http://www.appveyor.com/)
4242
* supports Windows, MSVC and MinGW
43-
* free for public repositoris on GitHub
43+
* free for public repositories on GitHub
4444
* [Hudson CI](http://hudson-ci.org/) / [Jenkins CI](https://jenkins-ci.org/)
4545
* Java Application Server is required
4646
* supports Windows, OS X, and Linux
@@ -51,7 +51,7 @@ Continuous Integration (CI) tools automatically build the source code as changes
5151
* simple ad-hoc continuous integration that posts results to GitHub
5252
* supports Windows, OS X, and Linux
5353
* used by [ChaiScript](http://chaiscript.com/ChaiScript-BuildResults/full_dashboard.html)
54-
* [Visual Studio Online](https://visualstudio.com)(http://www.visualstudio.com/what-is-visual-studio-online-vs)
54+
* [Visual Studio Online](https://visualstudio.com) (http://www.visualstudio.com/what-is-visual-studio-online-vs)
5555
* Tightly integrated with the source repositories from Visual Studio Online
5656
* Uses MSBuild (Visual Studio's build engine), which is available on Windows, OS X and Linux
5757
* Provides hosted build agents and also allows for user-provided build agents
@@ -60,7 +60,7 @@ Continuous Integration (CI) tools automatically build the source code as changes
6060

6161
If you have an open source, publicly-hosted project on GitHub:
6262

63-
* go enable travis-ci and AppVeyor integration right now. We'll wait for you to come back. For a simple example of how to enable it for your C++ CMake-based application, see here: https://github.com/ChaiScript/ChaiScript/blob/master/.travis.yml
63+
* go enable Travis Ci and AppVeyor integration right now. We'll wait for you to come back. For a simple example of how to enable it for your C++ CMake-based application, see here: https://github.com/ChaiScript/ChaiScript/blob/master/.travis.yml
6464
* enable one of the coverage tools listed below (Codecov or Coveralls)
6565
* enable [Coverity Scan](https://scan.coverity.com)
6666

@@ -120,10 +120,10 @@ The best bet is the static analyzer that you can run as part of your automated b
120120

121121
### Coverity Scan
122122

123-
Coverity has a free (for open source) static analysis toolkit that can work on every commit in integration with [Travis CI](http://travis-ci.org) and [AppVeyor](http://www.appveyor.com/).
123+
[Coverity](https://scan.coverity.com/) has a free (for open source) static analysis toolkit that can work on every commit in integration with [Travis CI](http://travis-ci.org) and [AppVeyor](http://www.appveyor.com/).
124124

125125
### Cppcheck
126-
Cppcheck is free and open source. It strives for 0 false positives and does a good job at it. Therefore all warnings should be enabled: `--enable=all`
126+
[Cppcheck](http://cppcheck.sourceforge.net/) is free and open source. It strives for 0 false positives and does a good job at it. Therefore all warnings should be enabled: `--enable=all`
127127

128128
### Clang's Static Analyzer
129129

@@ -143,9 +143,7 @@ Qt Creator can plug into the clang static analyzer, but *only* on the *commercia
143143

144144
### Metrix++
145145

146-
http://metrixplusplus.sourceforge.net/
147-
148-
While not necessarily a static analyzer, Metrix++ can identify and report on the most complex sections of your code. Reducing complex code helps you and the compiler understand it better and optimize it better.
146+
While not necessarily a static analyzer, [Metrix++](http://metrixplusplus.sourceforge.net/) can identify and report on the most complex sections of your code. Reducing complex code helps you and the compiler understand it better and optimize it better.
149147

150148
## Runtime Checkers
151149

@@ -154,10 +152,10 @@ While not necessarily a static analyzer, Metrix++ can identify and report on the
154152
A coverage analysis tool shall be run when tests are executed to make sure the entire application is being tested. Unfortunately, coverage analysis requires that compiler optimizations be disabled. This can result in significantly longer test execution times.
155153

156154
* [Codecov](https://codecov.io/)
157-
* integrates with Travis CI and Appveyor
155+
* integrates with Travis CI and AppVeyor
158156
* free for open source projects
159157
* [Coveralls](https://coveralls.io/)
160-
* integrates with Travis CI and Appveyor
158+
* integrates with Travis CI and AppVeyor
161159
* free for open source projects
162160
* [LCOV](http://ltp.sourceforge.net/coverage/lcov.php)
163161
* very configurable
@@ -166,11 +164,11 @@ A coverage analysis tool shall be run when tests are executed to make sure the e
166164

167165
### Valgrind
168166

169-
Runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. It is supported on various Unix platforms.
167+
[Valgrind](http://www.valgrind.org/) is a runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. It is supported on various Unix platforms.
170168

171169
### Dr Memory
172170

173-
Similar to valgrind. http://www.drmemory.org
171+
Similar to Valgrind. http://www.drmemory.org
174172

175173
### GCC / Clang Sanitizers
176174

@@ -184,7 +182,7 @@ These tools provide many of the same features as Valgrind, but built into the co
184182

185183
If you project accepts user defined input, considering running a fuzzy input tester.
186184

187-
Both of these tools use coverage reporting to find new code executation paths and try to breed novel inputs for your code. They can find crashes, hangs, and inputs you didn't know were considered valid.
185+
Both of these tools use coverage reporting to find new code execution paths and try to breed novel inputs for your code. They can find crashes, hangs, and inputs you didn't know were considered valid.
188186

189187
* [american fuzzy lop](http://lcamtuf.coredump.cx/afl/)
190188
* [LibFuzzer](http://llvm.org/docs/LibFuzzer.html)

0 commit comments

Comments
 (0)