WIP Start implementing feature flags for toy feature#12790
WIP Start implementing feature flags for toy feature#12790mjkkirschner wants to merge 8 commits intoDynamoDS:masterfrom
Conversation
instantiate feature flags manager in core test message box in view add feature flags man project with config file update compiler unsafe to v 5
wrap startup in try catch unsub logger handler add prod key use shared key add try catch and logging around LD api methods
| </PropertyGroup> | ||
|
|
||
| <ItemGroup> | ||
| <PackageReference Include="LaunchDarkly.ClientSdk" Version="2.0.1" /> |
There was a problem hiding this comment.
are we OK with bringing in a bunch of extra dependencies to the dynamo build ?
(I know we tried to avoid this in the past)
There was a problem hiding this comment.
I'm not sure, do you think it's worth exploring wrapping up the launch darkly client in a separate process the same way we do for the markdown2htmlCLI tool? This would isolate the dependencies from DynamoCore / the host process.
Performance might be a bit worse, but flags shouldn't be getting evaluated very frequently anyway.
There was a problem hiding this comment.
From my point of view, LD in a separate process would make sense only if extra dll dependencies are deal breaker.
Some of the extra dependencies will be brought in by the move to dotnet6 anyway.
I did also see a more lightweight REST API client https://www.nuget.org/packages/LaunchDarkly.Api/
Not sure if this would a better alternative ...The API does look more difficult to use ...
|
I believe that api is a non starter in our case as it requires full sdk keys that must remain secret - ie it’s for a custom automation tool, not a client process - but I will double check.
IMO we can start by referencing the ld client to keep things straight forward and then move to out of process if we run into conflicts in the future. It’s not clear how well features like local storage will work wrapped in another process- we might need to contend with other gotchas like that for conflicts that don’t exist.
… On Apr 11, 2022, at 9:43 PM, pinzart90 ***@***.***> wrote:
@pinzart90 commented on this pull request.
In src/DynamoFeatureFlags/DynamoFeatureFlags.csproj:
> @@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(SolutionDir)Config/CS_SDK.props" />
+ </ImportGroup>
+ <PropertyGroup>
+ <TargetFramework>netstandard2.0</TargetFramework>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="LaunchDarkly.ClientSdk" Version="2.0.1" />
From my point of view, LD in a separate process would make sense only if extra dll dependencies are deal breaker.
Some of the extra dependencies will be brought in by the move to dotnet6 anyway.
I did also see a more lightweight REST API client https://www.nuget.org/packages/LaunchDarkly.Api/
Not sure if this would a better alternative ...The API does look more difficult to use ...
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.
|
| object output = default(T); | ||
| switch (default(T)) | ||
| { | ||
| case bool _: |
There was a problem hiding this comment.
Are we testing for type here? If so, can we also use typeof as in:
switch (typeof(T))
{
case typeof(bool):
...
}

Purpose
This PR onboards Dynamo onto launch darkly, it controls a popup at startup. The feature flag is enabled for debug builds, and disabled for production (release) builds.
PR does the following:
updates compiler unsafe to avoid conflict at build time... latest changes revert this as LD is resolving the same version with Tibi's suggestion.CheckFeatureFlag<T>method.New Binaries:
Microsoft.Bcl.AsyncInterfaces.dllSystem.Text.Encodings.Web.dllSystem.Text.Json.dllSystem.Threading.Tasks.Extensions.dllSystem.ValueTuple.dllpackage refs for the DynamoFeatureFlags Project:
TODO:
Declarations
Check these if you believe they are true
*.resxfilesRelease Notes
Add initial feature flags controls in Dynamo.
Reviewers
(FILL ME IN) Reviewer 1 (If possible, assign the Reviewer for the PR)
(FILL ME IN, optional) Any additional notes to reviewers or testers.
FYIs
(FILL ME IN, Optional) Names of anyone else you wish to be notified of