Skip to content

Latest commit

 

History

History
76 lines (66 loc) · 2.84 KB

BUILDING.md

File metadata and controls

76 lines (66 loc) · 2.84 KB

Building log4net

Log4net provides support for the following targets

  • net462
  • netstandard2.0

TL;DR (Windows):

  • install Visual Studio Build Tools (at least VS2019)
  • install nodejs (at least v16)
  • install dotnet (v8+) and the .NET SDK (current latest)
  • in the project folder:
    • npm i
    • npm run build

TL;DR (Docker):

  • install docker (if you haven't already)
  • in logging/log4net run
    • docker build -t log4net-builder .
    • docker run -it log4net-builder
      • this will
        • install all dependencies in the container
        • build src/log4net.sln
    • inside the container run
      • dotnet test /logging-log4net/src/log4net.sln

TL;DR (!Windows):

  • install the dotnet SDK - v8 or better
  • install Mono (you're going to need it to target certain versions of .NET)
  • install nodejs 16+
    • in the project folder:
    • npm i
    • export DOTNET_CORE=1 npm run build
      • we force using dotnet on non-windows targets for now. At some point, this should become automatic

The full story

Options:

  • build locally. Suggested environment:
    • Pre-requisites:
      • Visual Studio 2019 Build Tools
        • include desktop targets at least
        • include dotnet core targets or download and install the latest dotnet sdk (you will need at least v8)
    • Binaries can be built with a Visual Studio or Rider installation
    • Binaries, packages and a release zip can be built via commandline
      • Ensure that you have a reasonably modern NodeJS installed (at least version 8+)
        • npm ci
        • npm run build
        • optionally npm test to run all tests
        • optionally npm run release to generate release artifacts
  • build locally (CLI edition)
    • install nodejs (at least v16)
    • npm i
    • npm run build
  • build via docker for windows, using the build-with-docker-for-windows.bat script
  • build via the vs2019 Windows AppVeyor image. There is an appveyor.yml file included which (should) build if you set up AppVeyer to track your fork. AppVeyer is free for open-source projects. (TODO: should have a link to the official AppVeyor build)

Updating the site

Log4Net uses Maven to build the site. Source artifacts can be found under src/site. Building the site can be accomplished with npm run build-site. You should have maven installed:

  • Windows: get it from Scoop
  • OSX: get it from Homebrew
  • Linux: use your package manager

The site will be generated in target/site, and can be viewed locally. Updates should be pushed to the asf-staging branch of https://github.com/apache/logging-log4net-site

Once the site has been pushed to the asf-staging branch, it can be viewed at http://logging.staged.apache.org/log4net