- 
                Notifications
    You must be signed in to change notification settings 
- Fork 150
[Config registry] Analyzers for ConfigurationBuilder, ConfigurationKeys, PlatformKeys #7575
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
d273ab2    to
    69d1378      
    Compare
  
    7186a16    to
    4b7bede      
    Compare
  
    0ac2639    to
    fa3c30d      
    Compare
  
    77649c3    to
    932c3c6      
    Compare
  
    
      
        
              This comment has been minimized.
        
        
      
    
  This comment has been minimized.
fa3c30d    to
    554b7d0      
    Compare
  
    932c3c6    to
    63f9685      
    Compare
  
    554b7d0    to
    dcd0751      
    Compare
  
    63f9685    to
    b9187b9      
    Compare
  
    dcd0751    to
    a70649e      
    Compare
  
    b9187b9    to
    7bae444      
    Compare
  
    a70649e    to
    c69d700      
    Compare
  
    7bae444    to
    9e24d0b      
    Compare
  
    c69d700    to
    afe38ff      
    Compare
  
    9e24d0b    to
    0dead4a      
    Compare
  
    98c0725    to
    e83c851      
    Compare
  
    0dead4a    to
    da3bfea      
    Compare
  
    e83c851    to
    a24c630      
    Compare
  
    da3bfea    to
    450ef3f      
    Compare
  
    a24c630    to
    f82f250      
    Compare
  
    450ef3f    to
    d8a7e8f      
    Compare
  
    | Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing the following branches/commits: Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times: 
 Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (74ms)  : 72, 75
     .   : milestone, 74,
    master - mean (74ms)  : 73, 76
     .   : milestone, 74,
    section Baseline
    This PR (7575) - mean (70ms)  : 68, 72
     .   : milestone, 70,
    master - mean (70ms)  : 68, 72
     .   : milestone, 70,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (1,076ms)  : 1022, 1131
     .   : milestone, 1076,
    master - mean (1,065ms)  : 1005, 1125
     .   : milestone, 1065,
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (110ms)  : 108, 112
     .   : milestone, 110,
    master - mean (109ms)  : 108, 111
     .   : milestone, 109,
    section Baseline
    This PR (7575) - mean (108ms)  : 105, 112
     .   : milestone, 108,
    master - mean (109ms)  : 106, 111
     .   : milestone, 109,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (759ms)  : 729, 789
     .   : milestone, 759,
    master - mean (754ms)  : 733, 775
     .   : milestone, 754,
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (97ms)  : 95, 99
     .   : milestone, 97,
    master - mean (97ms)  : 95, 100
     .   : milestone, 97,
    section Baseline
    This PR (7575) - mean (96ms)  : 94, 99
     .   : milestone, 96,
    master - mean (97ms)  : 94, 100
     .   : milestone, 97,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (727ms)  : 686, 767
     .   : milestone, 727,
    master - mean (722ms)  : 676, 767
     .   : milestone, 722,
gantt
    title Execution time (ms) FakeDbCommand (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (96ms)  : 94, 98
     .   : milestone, 96,
    master - mean (98ms)  : 95, 100
     .   : milestone, 98,
    section Baseline
    This PR (7575) - mean (96ms)  : 92, 99
     .   : milestone, 96,
    master - mean (98ms)  : 90, 105
     .   : milestone, 98,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (674ms)  : 657, 691
     .   : milestone, 674,
    master - mean (673ms)  : 656, 691
     .   : milestone, 673,
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (197ms)  : 194, 201
     .   : milestone, 197,
    master - mean (199ms)  : 193, 205
     .   : milestone, 199,
    section Baseline
    This PR (7575) - mean (193ms)  : 189, 197
     .   : milestone, 193,
    master - mean (195ms)  : 191, 199
     .   : milestone, 195,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (1,192ms)  : 1119, 1265
     .   : milestone, 1192,
    master - mean (1,183ms)  : 1104, 1262
     .   : milestone, 1183,
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (278ms)  : 271, 286
     .   : milestone, 278,
    master - mean (279ms)  : 273, 286
     .   : milestone, 279,
    section Baseline
    This PR (7575) - mean (276ms)  : 272, 281
     .   : milestone, 276,
    master - mean (279ms)  : 267, 292
     .   : milestone, 279,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (955ms)  : 912, 998
     .   : milestone, 955,
    master - mean (948ms)  : 900, 996
     .   : milestone, 948,
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (273ms)  : 266, 280
     .   : milestone, 273,
    master - mean (274ms)  : 266, 281
     .   : milestone, 274,
    section Baseline
    This PR (7575) - mean (270ms)  : 266, 274
     .   : milestone, 270,
    master - mean (270ms)  : 267, 274
     .   : milestone, 270,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (940ms)  : 892, 989
     .   : milestone, 940,
    master - mean (943ms)  : 883, 1003
     .   : milestone, 943,
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (7575) - mean (274ms)  : 265, 283
     .   : milestone, 274,
    master - mean (271ms)  : 266, 277
     .   : milestone, 271,
    section Baseline
    This PR (7575) - mean (272ms)  : 265, 278
     .   : milestone, 272,
    master - mean (271ms)  : 264, 279
     .   : milestone, 271,
    section CallTarget+Inlining+NGEN
    This PR (7575) - mean (869ms)  : 838, 901
     .   : milestone, 869,
    master - mean (866ms)  : 838, 894
     .   : milestone, 866,
 | 
add supported configurations file and ci step
…gurationsKeys.cs later
…keys or platform keys
25076db    to
    23518f6      
    Compare
  
    
As part of Config inversion third step, this is part of stack:
Add gitlab step and json configuration file > #7548
Cleanup config keys constants, check them against local json file > #7556
Aliases handling via source generator > #7565
Analyzers to guard platform and configurationbuilder > #7575
Summary of changes
ConfigurationBuilderWithKeys/Ormethods only use constants fromPlatformKeysorConfigurationKeysPlatformKeysAnalyzer: Validates usage of platform keysConfigKeysNoPreprocessorDirsAnalyzer: Prevents preprocessor directives in configuration keysReason for change
PlatformKeysorConfigurationKeys)Implementation details
WithKeys/Ormethod callsTest coverage
PlatformKeys/ConfigurationKeysOther details