Skip to content
Stephen Swensen edited this page Mar 29, 2016 · 2 revisions

Visual Studio and F#

Development is primarily done in VS 2013 using the Unquote.sln solution. But VS 2010 is also used for maintaining .NET 4.0 support using the Unquote.v10.sln solution.

We support three different framework targets (note: Silverlight 4 support was dropped as of Unquote 3.0.0) and utilize source file linking and compilation symbols

  • .NET 4.5
  • Solution: Unquote.sln
  • Project: Unquote.fsproj (contains all the actual source files)
  • Test Project: UnquoteTests.fsproj (contains all the actual test source files)
  • Compilation Symbol: n/a
  • PCL Profile 259
  • Solution: Unquote.sln
  • Project: Unquote.Profile259 (links to source files in the Unquote.fsproj directory)
  • Test Project: UnquoteTests.Profile259.fsproj (links to test source files in the UnquoteTests.fsproj directory)
  • Compilation Symbol: PORTABLE
  • .NET 4.0
  • Solution: Unquote.v10.sln
  • Project: Unquote.Net40 (links to source files in the Unquote.fsproj directory)
  • Test Project: UnquoteTests.Net40.fsproj (links to test source files in the UnquoteTests.fsproj directory)
  • Compilation Symbol: NET40

n.b. mono is also supported.

Tests

Tests are self-hosted and use xUnit.net. The UnquoteTests.fsproj and UnquoteTests.Profile359.fsproj tests can be run in VS 2013 using the xUnit.net visual studio runner (there is a NuGet dependencies which should auto-wire this into Visual Studio). The UnquoteTests.Net40.fsproj needs to be run by some other means such as the xUnit.net desktop runner. Tests can be run in mono using run-mono-tests.sh (it uses a MONO compilation symbol).

Verify

The verify projects typically contain failing tests that should be run in order to verify e.g. clean stack traces. Each verify project is meant to "verify" support for specific frameworks (like NUnit, Fuchu, xUnit.net, etc.).

Dependencies

Unquote itself has no non-framework dependencies. But the Unquote test and verify projects do have some dependencies (e.g. xunit.net) which are managed by NuGet.

Continuous Integration

We use AppVeyor for continuous integration: https://ci.appveyor.com/project/stephen-swensen/unquote

We currently build all projects and run all tests in Release mode.

CI zip artifacts are available: https://ci.appveyor.com/project/stephen-swensen/unquote/build/artifacts

CI NuGet feed is not yet available but planned: https://ci.appveyor.com/nuget/swensensoftware/unquote

Versioning

We use Semantic Versioning for public releases (i.e. major.minor.patch like 2.3.4)

Continuous integration builds use {v next}-ci.{build number} scheme (like 2.3.4-ci.25).

Assemblies use the revision number to track pre-release milestones. An odd revision number (like 2.3.4.1) indicates pre-release, while an even number is used for eventual public release (like 2.3.4.2).

Clone this wiki locally