If you do not want to use the official binaries, or if you like to modify, debug or contribute, you can compile locally either using Visual Studio or manually with the build scripts.
We clearly separate dependency management from the IDE, you should therefore
restore.sh once after every git checkout in order to restore
the dependencies exactly as defined. Otherwise Visual Studio and other IDEs
may fail to compile or provide correct IntelliSense.
Tests can be run with the usual integrated NUnit test runners or ReSharper.
Instead of a compatible IDE you can also build the solutions directly with
msbuild, or on Mono with
xbuild. You may need to run
restore.sh before, once after every git checkout in order to restore the dependencies.
1: 2: 3:
The fully automated build including unit tests, documentation and api reference, NuGet and Zip packages is using FAKE.
FAKE itself is not included in the repository but it will download and bootstrap
itself automatically when build.cmd is run the first time. Note that this step
is not required when using Visual Studio or
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
While only maintainers can make official releases published on NuGet and referred to from the website, you can use the same tools to make your own releases for your own purposes.
Versioning is controlled by the release notes. Before building a new version,
first add a new release header and change notes on top of the
document in the root directory. The fake builds pick this up and propagate it
to the assembly info files automatically.
The build can then be launched by calling:
1: 2: 3:
The build script will print the current version as part of the the header banner, which is also included in the release notes document in the build artifacts. Example:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
The artifacts are then ready in the
RELEASENOTES.mdfile with relevant changes, attributed by contributor (if external). Set date.
git shortlog -sn)
build.sh All release
- Commit and push release notes and (auto-updated) assembly info files with new "Release: v1.2.3" commit
1: 2: 3: 4: 5:
build.sh PublishDocs build.sh PublishApi build.sh PublishTag build.sh PublishMirrors build.sh PublishNuGet
In theory there is also a
Publishtarget to do this in one step, unfortunately publishing to the NuGet gallery is quite unreliable.
- Create new Codeplex and GitHub release, attach Zip files (to be automated)
Copy artifacts to release archive (to be automated)
Consider a tweet via @MathDotNet
Consider a post to the Google+ site