The final documentation can be built by calling `build.sh Docs`.
The final documentation can be built by calling `build.sh docs`.
However, for editing and previewing the docs on your local machine it is more
convenient to run `build.sh DocsWatch` in a separate console instead, which
@ -112,9 +101,7 @@ to the assembly info files automatically.
The build can then be launched by calling:
build.sh All release # full release build
build.sh NuGet release # if you only need NuGet packages
build.sh Zip release # if you only need Zip packages
./build.sh all
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.
@ -140,13 +127,30 @@ Extra Packages
--------------
In addition to the core package this repository also include extra packages
like the MKL provider and the data extensions. Most build targets are available for
like the data extensions. Most build targets are available for
these packages as well, with the following prefixes:
* `Mkl` for the MKL provider (`MklWin` or `MklLinux` if platform dependent)
* `Data` for the Data Extensions
Example: `build.sh MklWinNuget release`
Example: `build.sh DataBuild`
Intel MKL on Windows
--------------------
The build expects that either Intel Parallel Studio 2020 (with the Intel Compiler)
or Intel Math Kernel Library 2020 is installed. If you run into an error with `mkl_link_tool.exe`
you may need to patch a targets file, see [MKL 2020.1, VS2019 linking bug ](https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/851578).
The build can then be triggered by calling:
./build.sh MklWinBuild // build both 32 and 64 bit variants
./build.sh MklTest // run all tests with the MKL provider enforced
./build.sh MklWinAll // build and run tests
The build puts the binaries to `out/MKL/Windows/x64` (and `x86`), the NuGet package
to `out/MKL/NuGet` and a Zip archive to `out/MKL/Zip`. You can directly use the provider from
there by setting `Control.NativeProviderPath` to the full path pointing to `out/MKL/Windows/`;
this is also what the unit tests do when you run the `MklTest` build target.
Official Release Process (Maintainers only)
-------------------------------------------
@ -156,7 +160,7 @@ Official Release Process (Maintainers only)
* Build Release:
build.sh All release
build.sh all strongname
* Commit and push release notes and (auto-updated) assembly info files with new "Release: v1.2.3" commit
@ -165,12 +169,9 @@ Official Release Process (Maintainers only)
build.sh PublishDocs
build.sh PublishApi
build.sh PublishTag
build.sh PublishMirrors
build.sh PublishArchive
build.sh PublishNuGet
In theory there is also a `Publish` target to do this in one step, unfortunately
publishing to the NuGet gallery is quite unreliable.
* Consider a tweet via [@MathDotNet](https://twitter.com/MathDotNet)
* Update Wikipedia release version and date for the
[Math.NET Numerics](https://en.wikipedia.org/wiki/Math.NET_Numerics) and