Skip to content

PostHog/posthog-dotnet

Repository files navigation

PostHog DotNet Client SDK Build status

This repository contains a set of packages for interacting with the PostHog API in .NET applications. This README is for those who wish to contribute to these packages.

For documentation on the specific packages, see the README files in the respective package directories.

Packages

Package Version Description
PostHog.AspNetCore NuGet version (PostHog.AspNetCore) For use in ASP.NET Core projects.
PostHog NuGet version (PostHog) The core library. Over time, this will support client environments such as Unit, Xamarin, etc.

Warning

These packages are currently in a pre-release stage. We're making them available publicly to solicit feedback. While we always strive to maintain a high level of quality, use these packages at your own risk. There will be many breaking changes until we reach a stable release.

Platform

These packages currently target net9.0. Our goal is to port the PortHog package to netstandard2.1 at some point once we have a sample that requires it (for example, a Unity sample).

Building

To build the solution, run the following commands in the root of the repository:

$ dotnet restore
$ dotnet build

Samples

Sample projects are located in the samples directory.

To run the samples, you'll need to set your PostHog project API key. From the repository root you can run:

bin/user-secrets set PostHog:ProjectApiKey YOUR_API_KEY

The main ASP.NET Core sample app can be run with the following command:

$ bin/start

You can also run it from your favorite IDE or editor.

Testing

To run the tests, run the following command in the root of the repository:

$ dotnet test

PUBLISHING RELEASES

When it's time to cut a release, increment the version element at the top of Directory.Build.props according to the Semantic Versioning guidelines.

<Project>
    <PropertyGroup>
        <Version>0.0.1</Version>
        ...
    </PropertyGroup>
</Project>

Submit a pull request with the version change. Once the PR is merged, create a new tag for the release with the updated version number.

git tag v0.5.5
git push --tags

Now you can go to GitHub to Draft a new Release and click the button to "Auto-generate release notes". Edit the notes accordingly create the Release.

When you create the Release, the main.yml workflow builds and publishes the package to NuGet.

![IMPORTANT] When creating a release, it's important to create and publish it in one go. If you save a draft of the release and then later publish it, the workflow will not run. If you find yourself in that position, you can manually trigger the workflow run and select the tag to publish.