Skip to content

Latest commit

 

History

History
81 lines (53 loc) · 4.78 KB

README.md

File metadata and controls

81 lines (53 loc) · 4.78 KB

Event Store

About

This is the repository for the open source version of Event Store, which now includes the clustering implementation for high availability. Further information on commercial support and options such as LDAP authentication can be found on the Event Store website at https://geteventstore.com.

Development is on the “dev” branch (and feature branches). Please make any pull requests to the “dev” branch.

Building from Source

Event Store is written in a mixture of C#, C++ and JavaScript. It can run either on Mono or .NET, however because it contains platform specific code (including hosting the V8 JavaScript engine) it must be built for the platform on which you intend to run it.

Binaries are available from https://geteventstore.com/downloads, however if you want to build it from source instructions for Windows and Linux are below.

Debug Builds on Windows / .NET

Prerequisites

  • .NET Framework 4.0+
  • Windows platform SDK with compilers (v7.1) or Visual C++ installed
  • Git on PATH

Building Event Store

If you have previously built from source it’s possible you have V8 checked out via Git instead of Subversion. If this is the case you should use the clean-all target noted below before building again.

From a command prompt
Command Description
build.cmd Runs the Event Store build
build.cmd clean-all Cleans the repository
Optional parameters (Specified using -ParameterName value)
Argument Values
-Platform x64 (default) or x86
-Configuration debug or release (default)
-Version Semantic version number to give to the release.
Defaults to 0.0.0.0 which should be used for
all non-released builds.
-SpecificVisualStudioVersion 2010, 2012, 2013 or Windows7.1SDK.
Defaults to whichever version is installed. This
only needs to be overriden if you have multiple
versions installed.
-ForceNetwork true if you want to force the script to get
dependencies even if Windows thinks there’s
no network connection (otherwise we don’t try to
avoid sometimes lengthy delays).
-Defines Any additional defines you want to pass to
the compiler. Should be enclosed in single quotes.

Building Event Store from Visual Studio

If you want to build from Visual Studio it’s necessary to first build from the command line in order to build js1.dll which incorporates V8. When this is available in the src\EventStore\Libs\ directory it is possible to build the src\EventStore\EventStore.sln solution from within Visual Studio.

When building through Visual Studio there are PowerShell scripts which run as pre- and post-build tasks on the EventStore.Common project, which set the informational version attribute of the EventStore.Common.dll assembly to the current commit hash on each build and then revert it.

Unfortunately Visual Studio runs these scripts in 32-bit PowerShell. Since it’s most likely that you’re running 64-bit PowerShell under normal circumstances the execution policy of 32-bit PowerShell will probably prohibit running scripts.

There is a batch file in the root of the repository named RunMeElevatedFirst.cmd which will set the execution policy for 32-bit PowerShell if you run it as Administrator. Obviously you may want to audit what the script does before executing it on your machine!

Debug Builds on Linux (Ubuntu 12.04) or MacOS X / Mono

Prerequisites

  • Git on PATH
  • 64 bit Mono version 3.2.3 (minimum version, preferably later) development packages on PATH, and registered with pkg-config by way of setting $PKG_CONFIG_PATH to /path/to/mono/lib/pkgconfig, such that the exit codes of both which xbuild and pkg-config --cflags monosgen-2 are 0.
  • SVN on PATH
  • GCC installed

Note that if you are using the Xamarin packages on OS X you will have a 32 bit build of Mono. This is OK for development, but not for any serious workload, and is completely untested and unsupported. If Mono is installed in this manner, $PKG_CONFIG_PATH will likely need to include /Library/Frameworks/Mono.framework/Libraries/pkgconfig/.

Building Event Store

./build.sh <target> <version> <platform> <configuration>
Arguments Values
target quick, incremental or full
version Semantic version number to give to the release.
platform x64 (default) or x86
configuration debug or release (default)