Skip to content

Repository Structure

Matthew Erbs edited this page May 14, 2018 · 6 revisions

The Serilog Organisation generally uses the following structure for the projects regardless of function (sinks, enrichers etc.)

Projects are named via the following conventions:

  • Sinks - Serilog.Sinks.xx
  • Enrichers - Serilog.Enricher.xx

Code Structure

Folders

  • src - Location of the source files
  • test - Location of testing resources. XUnit is the current testing framework.
  • assets - Location of shared resources such as .snk, package logos.

Builds

Serilog projects use AppVeyor for builds, with Travis used for cross platform builds.

build.ps1

  • A PowerShell build script is included in all projects that allows execution locally & on the AppVeyor build system.
  • Version of the library is set via the VersionPrefix with the suffix derived via branch, build number and git commit hash. See example.

.appveyor.yml

AppVeyor build definitions are entirely configured via the .yml file. Key areas of the AppVeyor setup include:

  • Release configurations are used for builds
  • Artifacts are named Serilog.xxx.xxx.nupkg (See example with dev packages suffixed with -dev-{build number}
  • Releases are deployed to NuGet on master & dev branch merges
  • Releases are deployed to GitHub on master branch merges
  • Builds are executed under there Serilog Build account.

.travis.yml

build.sh

  • Script executes builds and tests for relevant TFMs.