tree 707b0281d78ab62351d5f389a6dbea1ee777d455
parent 1eddb1df3a7fed0837a9bf52bd97f5f50b45000f
author Paul Irwin <paulirwin@gmail.com> 1758607599 -0600
committer GitHub <noreply@github.com> 1758607599 +0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJo0jjvCRC1aQ7uu5UhlAAAKUUQAFQSb5Qpxfs97lRcDnIMYaKQ
 S1qIsRbsjpPV7IILWfzEvaJhNCNBGnoqntwExrfPxXNeER+VgJUVyZHzPv4XNgcG
 PYVui/rAt3KdtMckT75E4C4gwFpsVmaddOFraIV10jpaXmx9vy8v+4b9f8ovS5Ho
 pM8pw4vD8eSf7KgiNc9fK9hQzM8uASXge0xXWlroQeAmyvA2H7PCbfbIBljY9q0I
 UlKGj2ZN+CvgMXyu81ZWjS6NiUfyJASKBcVPH0UJYfGUJfoeTCHBsuUijochADk3
 aCGHmTnemrq8+7g8QtpswGSQQrwYehCCEUfTOAUeqyXxZZEleAN6sqXyJuUju6U4
 VEFFxE5Eic8EGcBqU4pFzTigHugLkjRn9WYneIIHslJHG1qRpYhLl65/UaHnjld7
 RUXc4fKUR68ZpSJiIVheWF7ARShRUgmG3Ru+PtzXCoLcszVxidhxake7sO6V8JGp
 M+Uh3U4ZpSmrTbBRYy2PtHdbbKpuq7ILxtOIBaKZd0L6F4xDW7t7tKXMq+B0uGgh
 KM9TzbG7TI4HmCuH2Bzdlljv/evkFWvWXVVFEA4gr8DDH7OYeyczDbTKEtXKMSpZ
 S2V1/0jDW2Gk2m7bMqy/M8NqKaNZWUfS7iYi9kCc+rWPii+CxFbJJL5GEJ6ZHNMG
 qjXWj2XGLRI/N6yPWQWY
 =kqHC
 -----END PGP SIGNATURE-----
 

Update project for initial Apache release (#1)

* Upgrade NuGet packages, add Sample project and enable debugging, remove VSIX, fix unit tests and analyser warnings

* Add remaining samples

* Add github action file

* Fix comment generation in Resources.Designer.cs, remove from source control

* Rename unit test project

* Add more detail to analyzer titles

* Rename GitHub workflow file

* Change GitHub Actions triggers

* Add strong name key signing

* Add README and Diagnostic IDs reservations file

* Fix NuGet pack output path and settings

* Added Dirctory.Build.props, Directory.Build.targets. and Directory.Packages.props files to share common settings and enable Central Package Management.

* Added version.json file for Nerdbank.GitVersioning

* Added Lucene.Net.CodeAnalysis.Dev.Package project to provide centralized packaging for analyzers, code fixes, and the sample project

* Added Lucene.Net.CodeAnalysis.Dev.Vsix project for Visual Studio live debugging

* Renamed Helpers namespace to Utility

* Migrated DiagnosticDescriptor declarations to their own Descriptors class

* SWEEP: Converted all tests to use Microsoft.CodeAnalysis.Analyzer.Testing

* Lucene.Net.CodeAnalysis.Dev.sln: Added Solution Items folder

* Lucene.Net.CodeAnalysis.Dev.sln: Added .github, docs, and eng folders as .folderproj (NoTargets) projects that allow the IDE to edit the underlying file structure

* Moved Lucene.Net.snk file to the eng directory

* Lucene.Net.CodeAnalysis.Dev.sln: Added Directory.Build.targets and Directory.Build.props files to src and tests folders

* Added GitHub workflows for build/release automation

* docs: Added building-and-testing, make-release, and visual-studio-debugging documentation

* Added Powershell script to run the Release Audit Tool

* rat.ps1: Changed RAT version to 0.13, since that is what we know works

* SWEEP: Ran the Apache Release Audit Tool to add missing license headers

* docs/make-release.md: Added section for Release Audit Tool

* Added .editorconfig and .gitattributes for most often hand-edited files

* Added Lucene.Net.CodeAnalysis.Dev.CodeFixes project and Lucene.Net.CodeAnalysis.Dev.CodeFixes.Tests

* Lucene.Net.CodeAnalysis.Dev.CodeFixes: Fixed CodeFixResources.resx code generation so it is not a committed file

* LuceneDev1001_FloatingPointFormattingCSCodeFixProvider: Dynamically build title based off of localized resource and actual code element.

* LuceneDev1001_FloatingPointFormattingCSCodeFixProvider: Refactored to make use of shared TryGetJ2NTypeAndMember() method to reduce duplicated code.

* Lucene.Net.CodeAnalysis.Dev.CodeFixes.csproj: Removed unnecessary PackageReference on Microsoft.CodeAnalysis.CSharp

* tests/Directory.Build.targets: Set IsPublishable=true if IsTestProject is true

* Lucene.Net.CodeAnalysis.Dev.Tests.csproj: Enabled nullable reference type support

* Lucene.Net.CodeAnalysis.Dev.Utilty.Descriptors: Use static fields instead of properties for DiagnosticDescriptors or the AnalyzerReleases release management analyzers do not recognize the diagnositic ids as being implemented.

* Lucene.Net.CodeAnalysis.Dev: Cleaned up usings

* Lucene.Net.CodeAnalysis.Dev: Removed AnalyzerReleases from AdditionalFiles, as it is only necessary if these are needed within one of our analyzers

* SWEEP: Moved all analyzers, code fixes, and analyzer/code fix tests into organizational LuceneDev1xxx folders.

* SWEEP: Added Apache 2.0 license headers to all .props, .targets, and .*proj files

* SWEEP: Added Apache 2.0 license headers to all .yml and .ps1 files

* SWEEP: Added Apache 2.0 license headers to all .md files (except AnalyzerReleases which require a specific format to be parsed)

* eng/nuget.props: Added LICENSE.txt and NOTICE.txt to the NuGet package.

* eng/nuget.props: Resolved conflict - cannot specify PackageLicenseExpression and PackageLicenseFile at the same time. Removed the PackageLicenseFile property, but kept the automation to pack the file into the NuGet package.

* Lucene.Net.CodeAnalysis.Dev.sln: Added .editorconfig and .gitattributes files to Solution Items

* Added Git commit hook to insert the current NuGetPackageVersion into a placeholder token {{vnext}} in the AnalyzerReleases.Shipped.md file, only if preceeded by "## Release ".

* docs/make-release.md: Simplified release procedure and included step to update AnalyzerReleases documents.

* version.json: Updated version.json to enforce 3-component release branch numbers.

* docs/make-release: Added workflow for release build outcomes. Also corrected release branching info to show branches with 3 version components.

* docs/make-release.md: Added info about deciding between major, minor, patch, and prerelease when choosing a version number.

* release-build-outcomes.md: Updated Mermaid markup to reflect the same state as the release-build-outcomes.svg file.

* Markdown-Formatting.Tests.ps1: Removed stray assert

* .github/workflows/ci.yml: Removed x86 tests and SDK setup

* docs/make-release.md: Corrected slash in release branch notes

* docs/make-release.md: Added info about how to check the version of the current commit

* nuget.props: Converted to nuget.targets and added target to set <PackageReleaseNotes> after Nerdbank.GitVersioning injects the PackageVersion into the pipeline.

* renovate.json: Disabled dependency dashboard issue and enabled fork processing for Forking Renovate

* .github/workflows/renovate-dependencies.yml: deleted, since we will be using Forking Renovate and we probably won't be able to run this workflow, anyway.

* Lucene.Net.CodeAnalysis.Dev.Package.csproj: Removed conditions for CodeFixes project and fixed paths to include (future) code fix resource files in the package if we ever localize it.

* Lucene.Net.CodeAnalysis.Dev.Vsix/source.extension.vsixmanifest: Changed Publisher attribute to Apache Software Foundation

---------

Co-authored-by: Shad Storhaug <shad@shadstorhaug.com>