diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 3451283..8dfe765 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -1,19 +1,3 @@ -# ------------------------------------------------------------------------------ -# -# -# This code was generated. -# -# - To turn off auto-generation set: -# -# [GitHubActions (AutoGenerate = false)] -# -# - To trigger manual generation invoke: -# -# nuke --generate-configuration GitHubActions_continuous --host GitHubActions -# -# -# ------------------------------------------------------------------------------ - name: continuous on: @@ -25,8 +9,8 @@ on: - main jobs: - ubuntu-latest: - name: ubuntu-latest + build: + name: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -38,15 +22,22 @@ jobs: dotnet-version: | 9.0.x 10.0.x - - name: 'Cache: .nuke/temp, ~/.nuget/packages' + - name: 'Cache: ~/.nuget/packages' uses: actions/cache@v4 with: - path: | - .nuke/temp - ~/.nuget/packages - key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} - - name: 'Run: Compile, Pack' - run: ./build.cmd Compile Pack + path: ~/.nuget/packages + key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} + restore-keys: ${{ runner.os }}-nuget- + - name: Restore + run: dotnet restore MudBlazor.ThemeManager.slnx + - name: Verify formatting + run: | + dotnet format whitespace MudBlazor.ThemeManager.slnx --verify-no-changes + dotnet format style MudBlazor.ThemeManager.slnx --verify-no-changes + - name: Build + run: dotnet build MudBlazor.ThemeManager.slnx --configuration Release --no-restore + - name: Pack + run: dotnet pack MudBlazor.ThemeManager.slnx --configuration Release --no-build --output artifacts/packages - name: 'Publish: packages' uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61a4e43..b8f0d5b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,19 +1,3 @@ -# ------------------------------------------------------------------------------ -# -# -# This code was generated. -# -# - To turn off auto-generation set: -# -# [GitHubActions (AutoGenerate = false)] -# -# - To trigger manual generation invoke: -# -# nuke --generate-configuration GitHubActions_release --host GitHubActions -# -# -# ------------------------------------------------------------------------------ - name: release on: @@ -22,9 +6,12 @@ on: - '\d+\.\d+\.\d+' jobs: - ubuntu-latest: - name: ubuntu-latest + release: + name: release runs-on: ubuntu-latest + permissions: + contents: read + packages: write steps: - uses: actions/checkout@v4 with: @@ -35,18 +22,23 @@ jobs: dotnet-version: | 9.0.x 10.0.x - - name: 'Cache: .nuke/temp, ~/.nuget/packages' + - name: 'Cache: ~/.nuget/packages' uses: actions/cache@v4 with: - path: | - .nuke/temp - ~/.nuget/packages - key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} - - name: 'Run: Push, PushGithubNuget' - run: ./build.cmd Push PushGithubNuget + path: ~/.nuget/packages + key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} + restore-keys: ${{ runner.os }}-nuget- + - name: Pack + run: dotnet pack MudBlazor.ThemeManager.slnx --configuration Release --output artifacts/packages + - name: 'Push: nuget.org' + env: + NUGET_KEY: ${{ secrets.NUGET_KEY }} + run: dotnet nuget push "artifacts/packages/*.nupkg" --source https://api.nuget.org/v3/index.json --api-key "$NUGET_KEY" --skip-duplicate + - name: 'Push: GitHub Packages' env: - NugetKey: ${{ secrets.NUGET_KEY }} - GithubToken: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NUGET_SOURCE: https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json + run: dotnet nuget push "artifacts/packages/*.nupkg" --source "$NUGET_SOURCE" --api-key "$GITHUB_TOKEN" --skip-duplicate - name: 'Publish: packages' uses: actions/upload-artifact@v4 with: diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json deleted file mode 100644 index 3decf31..0000000 --- a/.nuke/build.schema.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "definitions": { - "Host": { - "type": "string", - "enum": [ - "AppVeyor", - "AzurePipelines", - "Bamboo", - "Bitbucket", - "Bitrise", - "GitHubActions", - "GitLab", - "Jenkins", - "Rider", - "SpaceAutomation", - "TeamCity", - "Terminal", - "TravisCI", - "VisualStudio", - "VSCode" - ] - }, - "ExecutableTarget": { - "type": "string", - "enum": [ - "Clean", - "Compile", - "Pack", - "Push", - "PushGithubNuget", - "Restore", - "VerifyFormat" - ] - }, - "Verbosity": { - "type": "string", - "description": "", - "enum": [ - "Verbose", - "Normal", - "Minimal", - "Quiet" - ] - }, - "NukeBuild": { - "properties": { - "Continue": { - "type": "boolean", - "description": "Indicates to continue a previously failed build attempt" - }, - "Help": { - "type": "boolean", - "description": "Shows the help text for this build assembly" - }, - "Host": { - "description": "Host for execution. Default is 'automatic'", - "$ref": "#/definitions/Host" - }, - "NoLogo": { - "type": "boolean", - "description": "Disables displaying the NUKE logo" - }, - "Partition": { - "type": "string", - "description": "Partition to use on CI" - }, - "Plan": { - "type": "boolean", - "description": "Shows the execution plan (HTML)" - }, - "Profile": { - "type": "array", - "description": "Defines the profiles to load", - "items": { - "type": "string" - } - }, - "Root": { - "type": "string", - "description": "Root directory during build execution" - }, - "Skip": { - "type": "array", - "description": "List of targets to be skipped. Empty list skips all dependencies", - "items": { - "$ref": "#/definitions/ExecutableTarget" - } - }, - "Target": { - "type": "array", - "description": "List of targets to be invoked. Default is '{default_target}'", - "items": { - "$ref": "#/definitions/ExecutableTarget" - } - }, - "Verbosity": { - "description": "Logging verbosity during build execution. Default is 'Normal'", - "$ref": "#/definitions/Verbosity" - } - } - } - }, - "allOf": [ - { - "properties": { - "Configuration": { - "type": "string", - "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", - "enum": [ - "Debug", - "Release" - ] - }, - "GithubToken": { - "type": "string", - "default": "Secrets must be entered via 'nuke :secrets [profile]'" - }, - "NugetApiUrl": { - "type": "string" - }, - "NugetKey": { - "type": "string", - "default": "Secrets must be entered via 'nuke :secrets [profile]'" - }, - "Solution": { - "type": "string", - "description": "Path to a solution file that is automatically loaded" - } - } - }, - { - "$ref": "#/definitions/NukeBuild" - } - ] -} diff --git a/.nuke/parameters.json b/.nuke/parameters.json deleted file mode 100644 index 072926c..0000000 --- a/.nuke/parameters.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "./build.schema.json", - "Solution": "MudBlazor.ThemeManager.slnx" -} diff --git a/MudBlazor.ThemeManager.slnx b/MudBlazor.ThemeManager.slnx index 31673e0..6311af6 100644 --- a/MudBlazor.ThemeManager.slnx +++ b/MudBlazor.ThemeManager.slnx @@ -1,5 +1,4 @@ - diff --git a/build.cmd b/build.cmd deleted file mode 100755 index b08cc59..0000000 --- a/build.cmd +++ /dev/null @@ -1,7 +0,0 @@ -:; set -eo pipefail -:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) -:; ${SCRIPT_DIR}/build.sh "$@" -:; exit $? - -@ECHO OFF -powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %* diff --git a/build.ps1 b/build.ps1 deleted file mode 100644 index 4634dc0..0000000 --- a/build.ps1 +++ /dev/null @@ -1,74 +0,0 @@ -[CmdletBinding()] -Param( - [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] - [string[]]$BuildArguments -) - -Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)" - -Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 } -$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent - -########################################################################### -# CONFIGURATION -########################################################################### - -$BuildProjectFile = "$PSScriptRoot\build\_build.csproj" -$TempDirectory = "$PSScriptRoot\\.nuke\temp" - -$DotNetGlobalFile = "$PSScriptRoot\\global.json" -$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" -$DotNetChannel = "STS" - -$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 -$env:DOTNET_NOLOGO = 1 - -########################################################################### -# EXECUTION -########################################################################### - -function ExecSafe([scriptblock] $cmd) { - & $cmd - if ($LASTEXITCODE) { exit $LASTEXITCODE } -} - -# If dotnet CLI is installed globally and it matches requested version, use for execution -if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and ` - $(dotnet --version) -and $LASTEXITCODE -eq 0) { - $env:DOTNET_EXE = (Get-Command "dotnet").Path -} -else { - # Download install script - $DotNetInstallFile = "$TempDirectory\dotnet-install.ps1" - New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 - (New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile) - - # If global.json exists, load expected version - if (Test-Path $DotNetGlobalFile) { - $DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) - if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { - $DotNetVersion = $DotNetGlobal.sdk.version - } - } - - # Install by channel or version - $DotNetDirectory = "$TempDirectory\dotnet-win" - if (!(Test-Path variable:DotNetVersion)) { - ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } - } else { - ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } - } - $env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" - $env:PATH = "$DotNetDirectory;$env:PATH" -} - -Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)" - -if (Test-Path env:NUKE_ENTERPRISE_TOKEN) { - & $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null - & $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null -} - -ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } -ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } diff --git a/build.sh b/build.sh deleted file mode 100755 index fdff0c6..0000000 --- a/build.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -bash --version 2>&1 | head -n 1 - -set -eo pipefail -SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) - -########################################################################### -# CONFIGURATION -########################################################################### - -BUILD_PROJECT_FILE="$SCRIPT_DIR/build/_build.csproj" -TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" - -DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json" -DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh" -DOTNET_CHANNEL="STS" - -export DOTNET_CLI_TELEMETRY_OPTOUT=1 -export DOTNET_NOLOGO=1 - -########################################################################### -# EXECUTION -########################################################################### - -function FirstJsonValue { - perl -nle 'print $1 if m{"'"$1"'": "([^"]+)",?}' <<< "${@:2}" -} - -# If dotnet CLI is installed globally and it matches requested version, use for execution -if [ -x "$(command -v dotnet)" ] && dotnet --version &>/dev/null; then - export DOTNET_EXE="$(command -v dotnet)" -else - # Download install script - DOTNET_INSTALL_FILE="$TEMP_DIRECTORY/dotnet-install.sh" - mkdir -p "$TEMP_DIRECTORY" - curl -Lsfo "$DOTNET_INSTALL_FILE" "$DOTNET_INSTALL_URL" - chmod +x "$DOTNET_INSTALL_FILE" - - # If global.json exists, load expected version - if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then - DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")") - if [[ "$DOTNET_VERSION" == "" ]]; then - unset DOTNET_VERSION - fi - fi - - # Install by channel or version - DOTNET_DIRECTORY="$TEMP_DIRECTORY/dotnet-unix" - if [[ -z ${DOTNET_VERSION+x} ]]; then - "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --channel "$DOTNET_CHANNEL" --no-path - else - "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path - fi - export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet" - export PATH="$DOTNET_DIRECTORY:$PATH" -fi - -echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)" - -if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "$NUKE_ENTERPRISE_TOKEN" != "" ]]; then - "$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true - "$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true -fi - -"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet -"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@" diff --git a/build/.editorconfig b/build/.editorconfig deleted file mode 100644 index 31e43dc..0000000 --- a/build/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -[*.cs] -dotnet_style_qualification_for_field = false:warning -dotnet_style_qualification_for_property = false:warning -dotnet_style_qualification_for_method = false:warning -dotnet_style_qualification_for_event = false:warning -dotnet_style_require_accessibility_modifiers = never:warning - -csharp_style_expression_bodied_methods = true:silent -csharp_style_expression_bodied_properties = true:warning -csharp_style_expression_bodied_indexers = true:warning -csharp_style_expression_bodied_accessors = true:warning diff --git a/build/Build.cs b/build/Build.cs deleted file mode 100644 index 1a228a1..0000000 --- a/build/Build.cs +++ /dev/null @@ -1,171 +0,0 @@ -using System; -using System.Linq; -using Nuke.Common; -using Nuke.Common.CI; -using Nuke.Common.CI.GitHubActions; -using Nuke.Common.Execution; -using Nuke.Common.Git; -using Nuke.Common.IO; -using Nuke.Common.ProjectModel; -using Nuke.Common.Tooling; -using Nuke.Common.Tools.DotNet; -using Nuke.Common.Utilities.Collections; -using Serilog; -using static Nuke.Common.EnvironmentInfo; -using static Nuke.Common.IO.PathConstruction; -using static Nuke.Common.Tools.DotNet.DotNetTasks; - -[GitHubActions( - "continuous", - GitHubActionsImage.UbuntuLatest, - FetchDepth = 0, - OnPushBranches = ["main"], - OnPullRequestBranches = ["main"], - PublishArtifacts = true, - InvokedTargets = [nameof(Compile), nameof(Pack)])] -[GitHubActions( - "release", - GitHubActionsImage.UbuntuLatest, - FetchDepth = 0, - OnPushTags = [@"\d+\.\d+\.\d+"], - PublishArtifacts = true, - InvokedTargets = [nameof(Push), nameof(PushGithubNuget)], - ImportSecrets = [nameof(NugetKey), nameof(GithubToken)])] -class Build : NukeBuild -{ - /// Support plugins are available for: - /// - JetBrains ReSharper https://nuke.build/resharper - /// - JetBrains Rider https://nuke.build/rider - /// - Microsoft VisualStudio https://nuke.build/visualstudio - /// - Microsoft VSCode https://nuke.build/vscode - - public static int Main() => Execute(x => x.Compile); - - [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] - readonly Configuration Configuration = Configuration.Release; - - [Parameter] readonly string NugetApiUrl = "https://api.nuget.org/v3/index.json"; //default - [Parameter][Secret] readonly string NugetKey; - [Parameter][Secret] readonly string GithubToken; - - bool RunFormatAnalyzers => false; - - bool IsTag => GitHubActions.Instance?.Ref?.StartsWith("refs/tags/") ?? false; - - [Solution] readonly Solution Solution; - [GitRepository] readonly GitRepository GitRepository; - - AbsolutePath SourceDirectory => RootDirectory / "src"; - AbsolutePath TestsDirectory => RootDirectory / "tests"; - AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts"; - AbsolutePath PackagesDirectory => ArtifactsDirectory / "packages"; - - Target Clean => _ => _ - .Before(Restore) - .Executes(() => - { - SourceDirectory.GlobDirectories("*/bin", "*/obj").DeleteDirectories(); - TestsDirectory.GlobDirectories("*/bin", "*/obj").DeleteDirectories(); - ArtifactsDirectory.CreateOrCleanDirectory(); - }); - - Target Restore => _ => _ - .Executes(() => - { - DotNetRestore(s => s - .SetProjectFile(Solution)); - }); - - Target VerifyFormat => _ => _ - .After(Restore) - .Description("Verify code formatting for the solution.") - .Executes(() => - { - DotNet($"format whitespace {Solution.Path} --verify-no-changes "); - - DotNet($"format style {Solution.Path} --verify-no-changes "); - - if (RunFormatAnalyzers) - { - DotNet($"format analyzers {Solution.Path} --verify-no-changes "); - } - }); - - Target Compile => _ => _ - .DependsOn(Restore, VerifyFormat) - .Executes(() => - { - DotNetBuild(s => s - .SetProjectFile(Solution) - .SetConfiguration(Configuration) - .EnableNoRestore()); - }); - - Target Pack => _ => _ - .After(Compile) - .Produces(PackagesDirectory / "*.nupkg") - .Produces(PackagesDirectory / "*.snupkg") - .Requires(() => Configuration.Equals(Configuration.Release)) - .Executes(() => - { - DotNetPack(_ => _ - .Apply(PackSettings)); - - ReportSummary(_ => _ - .AddPair("Packages", PackagesDirectory.GlobFiles("*.nupkg").Count.ToString())); - }); - - Target Push => _ => _ - .DependsOn(Pack) - .OnlyWhenStatic(() => IsTag && IsServerBuild) - .Requires(() => NugetKey) - .Requires(() => Configuration.Equals(Configuration.Release)) - .Executes(() => - { - Log.Information("Running push to packages directory."); - - Assert.True(!string.IsNullOrEmpty(NugetKey)); - - PackagesDirectory.GlobFiles("*.nupkg") - .ForEach(x => - { - x.NotNull(); - DotNetNuGetPush(s => s - .SetTargetPath(x) - .SetSource(NugetApiUrl) - .SetApiKey(NugetKey) - .EnableSkipDuplicate() - ); - }); - }); - - Target PushGithubNuget => _ => _ - .DependsOn(Pack) - .OnlyWhenStatic(() => IsTag && IsServerBuild) - .Requires(() => GithubToken) - .Requires(() => Configuration.Equals(Configuration.Release)) - .Executes(() => - { - Log.Information("Running push to packages directory."); - - Assert.True(!string.IsNullOrEmpty(GithubToken)); - - PackagesDirectory.GlobFiles("*.nupkg") - .ForEach(x => - { - x.NotNull(); - DotNetNuGetPush(s => s - .SetTargetPath(x) - .SetSource($"https://nuget.pkg.github.com/{GitHubActions.Instance.RepositoryOwner}/index.json") - .SetApiKey(GithubToken) - .EnableSkipDuplicate() - ); - }); - }); - - Configure PackSettings => _ => _ - .SetProject(Solution) - .SetConfiguration(Configuration) - .SetNoBuild(SucceededTargets.Contains(Compile)) - .SetOutputDirectory(PackagesDirectory); -} diff --git a/build/Configuration.cs b/build/Configuration.cs deleted file mode 100644 index 9c08b1a..0000000 --- a/build/Configuration.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.ComponentModel; -using System.Linq; -using Nuke.Common.Tooling; - -[TypeConverter(typeof(TypeConverter))] -public class Configuration : Enumeration -{ - public static Configuration Debug = new Configuration { Value = nameof(Debug) }; - public static Configuration Release = new Configuration { Value = nameof(Release) }; - - public static implicit operator string(Configuration configuration) - { - return configuration.Value; - } -} diff --git a/build/Directory.Build.props b/build/Directory.Build.props deleted file mode 100644 index e147d63..0000000 --- a/build/Directory.Build.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/build/Directory.Build.targets b/build/Directory.Build.targets deleted file mode 100644 index 2532609..0000000 --- a/build/Directory.Build.targets +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/build/_build.csproj b/build/_build.csproj deleted file mode 100644 index 99fb31c..0000000 --- a/build/_build.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - Exe - net10.0 - - CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006 - .. - .. - 1 - false - - - - - - - diff --git a/build/_build.csproj.DotSettings b/build/_build.csproj.DotSettings deleted file mode 100644 index c815d36..0000000 --- a/build/_build.csproj.DotSettings +++ /dev/null @@ -1,31 +0,0 @@ - - DO_NOT_SHOW - DO_NOT_SHOW - DO_NOT_SHOW - DO_NOT_SHOW - DO_NOT_SHOW - Implicit - Implicit - ExpressionBody - 0 - NEXT_LINE - True - False - 120 - IF_OWNER_IS_SINGLE_LINE - WRAP_IF_LONG - False - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy> - True - True - True - True - True - True - True - True - True - True