If a service use a generic type like bond.Box<T> with a collection type
argument as a parameter/return type, the generated code was missing an
import of System.Collections.Generic. This has been fixed.
An example, demonstrating how to use bond.Box to wrap scalar service
arguments has been added. This also serves to test the fixed codegen.
A helper method Bond.Box.Create() has been added to enable creation of
Bond.Box<T> instances via type deduction.
Fixes https://github.com/Microsoft/bond/issues/623
Use Newtonsoft's JSON.NET BigInteger support -- when available -- to
handle the full range of uint64 values in the SimpleJson protocol (.NET
4.5 or greater, .NET Standard 1.6 or greater).
* Only load git submodules when they are needed.
* Remove redundant .NET Core build.
* Start slowest configurations first to reduce overall turn-around time.
Closes https://github.com/Microsoft/bond/pull/457
We were only building the core C# compat test before. Now, we build the
Comm and gRPC variants as well.
We don't always need all of these C# compat tests--depending on what
part of C++ we're building--but they're pretty fast to build, so build
them all.
The previous approach only installed yasm for entries in the matrix that
explicitly opted-in, which resulted in duplicate state. Now, it figures
out whether yasm is needed by looking for the BOND_ENABLE_GRPC CMake
flag.
Replace BOND_CORE_ONLY with BOND_ENABLE_COMM and BOND_ENABLE_GRPC in cmake
scripts and configs for AppVeyor and Travis. Both BOND_ENABLE_COMM and
BOND_ENABLE_GRPC are set to TRUE by default.
* gbc can now generate proxies and service stubs for gRPC
* The assembly Bond.Grpc.dll contains glue code
* Documentation updated
* Bond Comm deprecation notice added
Closes https://github.com/Microsoft/bond/pull/386
* Use precompiled pandoc for building documentation
Instead of building pandoc from source, we now just use Chocolately to
install a precompiled version of pandoc. This speeds up documentation
builds and prevents random breakage due to Hackage package changes.
NB: The Chocolately Pandoc 1.19.2.1 package is currently broken. It
appears to have a pre-release Pandoc 2.0 executable that doesn't
understand all the command line flags that 1.x does (e.g., --smart).
Fixes https://github.com/Microsoft/bond/issues/341
* Match Window's default path building order
- Use AppVeyor pre-installed Boost
- Run C++ unit tests
- Fail if Boost unit test framework is not found
- Pin lifted-base version while upstream Pandoc packages resolve the conflict
* The tests are not yet working with AppVeyor, but they are passing
locally.
* Fields configuration fails to run.
* Some Epoxy tests are not completely stable.
CMake uses the `FOLDER` property to group the generated Visual Studio
projects into solution folders.
Removed bond_ and documentation_ prefix from project names. The prefixes
were intended to group projects by name which is no longer necessary.
With the faster Appveyor build VMs we don't need to customize the build
so much to finish it within time limit. We can now use more declarative
build matrix instead of custom build script.
We used to run all C# tests only when we could restore cabal sandbox
from the cache and avoid building all Haskell dependencies. The new
Appveyor VMs are much faster and this is no longer necessary.
- Remove the `os` property to move to the new, faster build environment.
- Use the `check` target for C++ build to run C++ and gbc tests.
- Update boost to version 1.58.
AppVeyor:
1. Work around memory limitations in Haskell build
2. Run subset of C# test matrix if the sandbox wasn't in cache
Travis CI
1. Change project type to C++
2. Install Mono manually in Linux
3. Use Clang as C++ compiler
4. cabal install happy