Skip to content
This repository has been archived by the owner on Dec 4, 2024. It is now read-only.

Commit

Permalink
chore: Updating docs for .
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Jun 5, 2024
1 parent 58397f3 commit 391a6d6
Show file tree
Hide file tree
Showing 213 changed files with 301,797 additions and 0 deletions.
370 changes: 370 additions & 0 deletions CHANGELOG.html

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions CONTRIBUTING.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Contributing to the LaunchDarkly Client-Side SDK for .NET | LaunchDarkly Dotnet Client SDK </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Contributing to the LaunchDarkly Client-Side SDK for .NET | LaunchDarkly Dotnet Client SDK ">


<link rel="shortcut icon" href="favicon.ico">
<link rel="stylesheet" href="styles/docfx.vendor.min.css">
<link rel="stylesheet" href="styles/docfx.css">
<link rel="stylesheet" href="styles/main.css">
<meta property="docfx:navrel" content="toc.html">
<meta property="docfx:tocrel" content="toc.html">

<meta property="docfx:rel" content="">

</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>

<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>

<a class="navbar-brand" href="index.html">
<img id="logo" class="svg" src="logo.svg" alt="LaunchDarkly Dotnet Client SDK">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>

<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">

<div id="search-results">
<div class="search-list">Search Results for <span></span></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="article row grid">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="">
<h1 id="contributing-to-the-launchdarkly-client-side-sdk-for-net">Contributing to the LaunchDarkly Client-Side SDK for .NET</h1>

<p>LaunchDarkly has published an <a href="https://docs.launchdarkly.com/docs/sdk-contributors-guide">SDK contributor's guide</a> that provides a detailed explanation of how our SDKs work. See below for additional information on how to contribute to this SDK.</p>
<h2 id="submitting-bug-reports-and-feature-requests">Submitting bug reports and feature requests</h2>
<p>The LaunchDarkly SDK team monitors the <a href="https://github.com/launchdarkly/dotnet-client-sdk/issues">issue tracker</a> in the SDK repository. Bug reports and feature requests specific to this SDK should be filed in this issue tracker. The SDK team will respond to all newly filed issues within two business days.</p>
<h2 id="submitting-pull-requests">Submitting pull requests</h2>
<p>We encourage pull requests and other contributions from the community. Before submitting pull requests, ensure that all temporary or unintended code is removed. Don't worry about adding reviewers to the pull request; the LaunchDarkly SDK team will add themselves. The SDK team will acknowledge all pull requests within two business days.</p>
<h2 id="build-instructions">Build instructions</h2>
<h3 id="prerequisites">Prerequisites</h3>
<p>The .NET Standard target requires only the .NET Core 2.1 SDK or higher. The iOS, Android, MacCatalys, and Windows targets require Net 7.0 or later.</p>
<h3 id="building">Building</h3>
<p>To build the SDK (for all target platforms) without running any tests:</p>
<pre><code>msbuild /restore src/LaunchDarkly.ClientSdk/LaunchDarkly.ClientSdk.csproj
</code></pre>
<p>Currently this command can only be run on MacOS, because that is the only platform that allows building for all of the targets (.NET Standard, Android, and iOS).</p>
<p>To build the SDK for only one of the supported platforms, add <code>/p:TargetFramework=X</code> where <code>X</code> is one of the items in the <code>&lt;TargetFrameworks&gt;</code> list of <code>LaunchDarkly.XamarinSdk.csproj</code>: <code>netstandard2.0</code> for .NET Standard 2.0, <code>MonoAndroid81</code> for Android 8.1, etc.:</p>
<pre><code>msbuild /restore /p:TargetFramework=netstandard2.0 src/LaunchDarkly.ClientSdk/LaunchDarkly.ClientSdk.csproj
</code></pre>
<p>Note that the main project, <code>src/LaunchDarkly.ClientSdk</code>, contains source files that are built for all platforms (ending in just <code>.cs</code>, or <code>.shared.cs</code>), and also a smaller amount of code that is conditionally compiled for platform-specific functionality. The latter is all in the <code>PlatformSpecific</code> folder. We use <code>#ifdef</code> directives only for small sections that differ slightly between platform versions; otherwise the conditional compilation is done according to filename suffix (<code>.android.cs</code>, etc.) based on rules in the <code>.csproj</code> file.</p>
<h3 id="testing">Testing</h3>
<p>The .NET Standard unit tests cover all of the non-platform-specific functionality, as well as behavior specific to .NET Standard (e.g. caching flags in the filesystem). They can be run with only the basic Xamarin framework installed, via the <code>dotnet</code> tool:</p>
<pre><code>msbuild /p:TargetFramework=netstandard2.0 src/LaunchDarkly.ClientSdk
dotnet test tests/LaunchDarkly.ClientSdk.Tests/LaunchDarkly.ClientSdk.Tests.csproj
</code></pre>
<p>The equivalent test suites in Android or iOS must be run in an Android or iOS emulator. The projects <code>tests/LaunchDarkly.ClientSdk.Android.Tests</code> and <code>tests/LaunchDarkly.ClientSdk.iOS.Tests</code> consist of applications based on the <code>xunit.runner.devices</code> tool, which show the test results visually in the emulator and also write the results to the emulator's system log. The actual unit test code is just the same tests from the main <code>tests/LaunchDarkly.ClientSdk.Tests</code> project, but running them in this way exercises the mobile-specific behavior for those platforms (e.g. caching flags in user preferences).</p>
<p>You can run the mobile test projects from Visual Studio (the iOS tests require MacOS); there is also a somewhat complicated process for running them from the command line, which is what the CI build does (see <code>.circleci/config.yml</code>).</p>
<p>Note that the mobile unit tests currently do not cover background-mode behavior or connectivity detection.</p>
<p>To run the SDK contract test suite, in Linux or MacOS (see <a href="contract-tests/README.html"><code>contract-tests/README.md</code></a>):</p>
<pre><code class="lang-bash">make contract-tests
</code></pre>
<h3 id="packagingreleasing">Packaging/releasing</h3>
<p>Releases are done through LaunchDarkly's standard project releaser tool. The scripts in <code>.ldrelease</code> implement most of this process, because unlike our other .NET projects which can be built with the .NET 5 SDK in a Linux container, this one currently must be built on a MacOS host in CircleCI. Do not modify these scripts unless you are very sure what you're doing.</p>
<p>If you need to do a manual package build for any reason, you can do it (on MacOS) using the same command shown above under &quot;Building&quot;, but adding the option <code>/t:pack</code>. However, this will not include Authenticode signing; therefore, please do not publish a GA release of the package from a manual build. If it's absolutely necessary to do so, consult with the SDK team to find out how to access the code-signing certificate.</p>
<h3 id="building-a-temporary-package">Building a temporary package</h3>
<p>If you need to build a <code>.nupkg</code> for testing another application (in cases where linking directly to this project is not an option), run <code>./scripts/build-test-package.sh</code>. This will create a package with a unique version string in <code>./test-packages</code>. You can then set your other project to use <code>test-packages</code> as a NuGet package source.</p>

</article>
</div>

<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/launchdarkly/dotnet-client-sdk/blob/5.2.1/CONTRIBUTING.md/#L1" class="contribution-link">Edit this page</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<h5>In this article</h5>
<div></div>
</nav>
</div>
</div>
</div>
</div>

<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>

<span>Generated by <strong>DocFX</strong></span>
</div>
</div>
</footer>
</div>

<script type="text/javascript" src="styles/docfx.vendor.min.js"></script>
<script type="text/javascript" src="styles/docfx.js"></script>
<script type="text/javascript" src="styles/main.js"></script>
</body>
</html>
Loading

0 comments on commit 391a6d6

Please sign in to comment.