From e124122cd5a6ddee8bc30d79ea6164f8318ee4f0 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Sun, 27 Jul 2014 16:19:03 +0200 Subject: [PATCH] Build: disable target dependencies but enable tests in AppVeyor; update readme --- README.md | 37 ++++++++++++-------------------- appveyor.yml | 3 ++- build.fsx | 60 +++++++++++++++++++++++++++++++++++++++++----------- 3 files changed, 63 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 2087c1f4..04cc536d 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,16 @@ Math.NET Numerics is an opensource **numerical library for .Net, Silverlight and Math.NET Numerics is the numerical foundation of the Math.NET initiative, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, statistics, interpolation, integration, regression, curve fitting, integral transforms (FFT) and more. -In addition to the core .NET package (which is written entirely in C#), Numerics specifically supports F# 3.0 and 3.1 with idiomatic extension modules and maintains mathematical data structures like BigRational that originated in the F# PowerPack. If a performance boost is needed, the managed-code provider backing its linear algebra routines and decompositions can be exchanged with wrappers for optimized native implementations such as Intel MKL. +In addition to the core .NET package (which is written entirely in C#), Numerics specifically supports F# with idiomatic extension modules and maintains mathematical data structures like BigRational that originated in the F# PowerPack. If a performance boost is needed, the managed-code provider backing its linear algebra routines and decompositions can be exchanged with wrappers for optimized native implementations such as Intel MKL. -Supports Mono and .NET 4.0 and 3.5 on Linux, Mac and Windows, the portable build (PCL) also Windows 8, Silverlight 5, Windows Phone/SL 8, Windows Phone 8.1, and Xamarin Android/iOS. +Math.NET Numerics is covered under the terms of the [MIT/X11](LICENSE.md) license. You may therefore link to it and use it in both opensource and proprietary software projects. We accept contributions! -Math.NET Numerics is covered under the terms of the [MIT/X11](LICENSE.md) license. You may therefore link to it and use it in both opensource and proprietary software projects. +**[Release Notes & Changes](RELEASENOTES.md)** -Maintained by [Christoph Rüegg](http://christoph.ruegg.name/) but brought to you by all our awesome [contributors](CONTRIBUTORS.md) of Math.NET Numerics and its predecessors [dnAnalytics](http://dnanalytics.codeplex.com/) and [Math.NET Iridium](http://www.mathdotnet.com/Iridium.aspx). We accept contributions! +![Math.NET Numerics Version](http://img.shields.io/nuget/v/MathNet.Numerics.svg?style=flat) Math.NET Numerics +![Native Providers Version](http://img.shields.io/nuget/v/MathNet.Numerics.MKL.Win-x64.svg?style=flat) Native Providers +![Data Extensions Version](http://img.shields.io/nuget/v/MathNet.Numerics.Data.Text.svg?style=flat) Data Extensions -**[Release Notes & Changes](RELEASENOTES.md)** Installation Instructions ------------------------- @@ -40,6 +41,7 @@ Supported Platforms: - PCL Portable Profiles 47 and 344: Windows 8, Silverlight 5, Windows Phone/SL 8, Windows Phone 8.1. - Xamarin: Android, iOS + Building Math.NET Numerics -------------------------- @@ -91,27 +93,14 @@ If you do not want to use the official binaries, or if you like to modify, debug 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 `msbuild` directly. + Quick Links ----------- * [**Project Website**](http://numerics.mathdotnet.com) * [Source Code](http://github.com/mathnet/mathnet-numerics) -* [Downloads](http://mathnetnumerics.codeplex.com/releases) -* [Documentation](http://numerics.mathdotnet.com/docs/) -* [API Reference](http://numerics.mathdotnet.com/api/) -* [Discussions](http://mathnetnumerics.codeplex.com/discussions) -* [Work Items and Bug Tracker](http://github.com/mathnet/mathnet-numerics/issues) -* [Ideas & Feedback](http://feedback.mathdotnet.com/forums/2060-math-net-numerics) - -Feeds: - -* [Blog Feed](http://christoph.ruegg.name/blog/categories/math-net-numerics/atom.xml) -* [Activity Feed](http://feeds.mathdotnet.com/MathNetNumericsActivity) - -Math.NET Numerics on other sites: - -* [Twitter @MathDotNet](http://twitter.com/MathDotNet) -* [Google+](https://plus.google.com/112484567926928665204) -* [Ohloh](https://www.ohloh.net/p/mathnet) -* [Stack Overflow](http://stackoverflow.com/questions/tagged/mathdotnet) -* [Wikipedia](http://en.wikipedia.org/wiki/Math.NET_Numerics) +* [NuGet Packages](https://www.nuget.org/profiles/mathnet/) | [Downloads](http://mathnetnumerics.codeplex.com/releases) +* [Documentation](http://numerics.mathdotnet.com/docs/) | [API Reference](http://numerics.mathdotnet.com/api/) +* [Issues & Bugs](http://github.com/mathnet/mathnet-numerics/issues) | [Ideas](http://feedback.mathdotnet.com/forums/2060-math-net-numerics) +* [Discussions](http://mathnetnumerics.codeplex.com/discussions) | [Stack Overflow](http://stackoverflow.com/questions/tagged/mathdotnet) | [Chat](https://gitter.im/mathnet/mathnet-numerics) | [Twitter](http://twitter.com/MathDotNet) | [Google+](https://plus.google.com/112484567926928665204) +* [Wikipedia](http://en.wikipedia.org/wiki/Math.NET_Numerics) | [OpenHUB](https://www.ohloh.net/p/mathnet) diff --git a/appveyor.yml b/appveyor.yml index 00f028b7..c2113ff5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,7 @@ os: Windows Server 2012 R2 build_script: - build.cmd Build -test: off +test_script: + - build.cmd Test quick deploy: off shallow_clone: true diff --git a/build.fsx b/build.fsx index 6662749c..1f43c1d8 100644 --- a/build.fsx +++ b/build.fsx @@ -312,7 +312,6 @@ let test target = OutputFile = "TestResults.xml" } |> quick) target Target "Test" (fun _ -> test !! "out/test/**/*UnitTests*.dll") -"Build" ==> "Test" Target "Native32Test" (fun _ -> ActivateFinalTarget "CloseTestRunner" @@ -339,11 +338,10 @@ FinalTarget "CloseTestRunner" (fun _ -> ProcessHelper.killProcess "nunit-agent-x86.exe" ) -"Native32Build" ==> "Native32Test" ==> "NativeTest" -"Native64Build" ==> "Native64Test" ==> "NativeTest" +"Native32Test" ==> "NativeTest" +"Native64Test" ==> "NativeTest" Target "DataTest" (fun _ -> test !! "out/Data/test/**/*UnitTests*.dll") -"DataBuild" ==> "DataTest" // -------------------------------------------------------------------------------------- @@ -401,17 +399,15 @@ Target "Zip" (fun _ -> coreBundle |> zip "out/packages/Zip" "out/lib" (fun f -> f.Contains("MathNet.Numerics.")) if hasBuildParam "signed" || hasBuildParam "release" then coreSignedBundle |> zip "out/packages/Zip" "out/lib-signed" (fun f -> f.Contains("MathNet.Numerics."))) -"Build" ==> "Zip" Target "NativeZip" (fun _ -> CleanDir "out/MKL/packages/Zip" nativeBundle |> zip "out/MKL/packages/Zip" "out/MKL" (fun f -> f.Contains("MathNet.Numerics.MKL.") || f.Contains("libiomp5md.dll"))) -"NativeBuild" ==> "NativeZip" Target "DataZip" (fun _ -> CleanDir "out/Data/packages/Zip" dataBundle |> zip "out/Data/packages/Zip" "out/Data/lib" (fun f -> f.Contains("MathNet.Numerics.Data."))) -"DataBuild" ==> "DataZip" + // NUGET @@ -461,17 +457,14 @@ Target "NuGet" (fun _ -> nugetPack coreSignedBundle "out/packages/NuGet" if hasBuildParam "all" || hasBuildParam "release" then nugetPack coreBundle "out/packages/NuGet") -"Build" ==> "NuGet" Target "NativeNuGet" (fun _ -> CleanDir "out/MKL/packages/NuGet" nugetPackExtension nativeBundle "out/MKL/packages/NuGet") -"NativeBuild" ==> "NativeNuGet" Target "DataNuGet" (fun _ -> CleanDir "out/Data/packages/NuGet" nugetPackExtension dataBundle "out/Data/packages/NuGet") -"DataBuild" ==> "DataNuGet" // -------------------------------------------------------------------------------------- @@ -490,7 +483,7 @@ Target "DocsDev" (fun _ -> executeFSIWithArgs "docs/tools" "build-docs.fsx" [] [] |> ignore ) -"Build" ==> "CleanDocs" ==> "Docs" +"CleanDocs" ==> "Docs" "Start" =?> ("CleanDocs", not (hasBuildParam "incremental")) @@ -510,7 +503,7 @@ Target "Api" (fun _ -> TimeOut = TimeSpan.FromMinutes 10. OutputPath = "out/api/" })) -"Build" ==> "CleanApi" ==> "Api" +"CleanApi" ==> "Api" // -------------------------------------------------------------------------------------- @@ -592,6 +585,49 @@ Target "DataPublish" DoNothing "DataPublishNuGet" ==> "DataPublish" +// -------------------------------------------------------------------------------------- +// ENVIRONMENT DEPENDENCIES +// -------------------------------------------------------------------------------------- + +match buildServer with + +| AppVeyor -> + trace "AppVeyor Continuous Integration Build" + // In AppVeyor we let its engine managed task dependencies + // an let it call into this script multiple times, incrementally. + + // build --> test: do not enforce + // build --> package: do not enforce + // build --> docs: do not enforce + () + +| _ -> + trace "Normal Build" + // In normal builds we need to set up proper dependencies between + // the targets so FAKE can build up and order the full work-flow properly + + // build --> test + "Build" ==> "Test" + "Native32Build" ==> "Native32Test" + "Native64Build" ==> "Native64Test" + "DataBuild" ==> "DataTest" + + // build --> package + "Build" ==> "Zip" + "NativeBuild" ==> "NativeZip" + "DataBuild" ==> "DataZip" + "Build" ==> "NuGet" + "NativeBuild" ==> "NativeNuGet" + "DataBuild" ==> "DataNuGet" + + // build --> docs + "Build" ==> "CleanDocs" + "Build" ==> "Docs" + "Build" ==> "CleanApi" + "Build" ==> "Api" + () + + // -------------------------------------------------------------------------------------- // Default Targets // --------------------------------------------------------------------------------------