Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: "nuget"
directory: "/"
schedule:
interval: "weekly"
day: "wednesday"
open-pull-requests-limit: 25
groups:
dotnet:
patterns:
- "*"
26 changes: 26 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Build
on:
workflow_dispatch:
push:
branches:
- main
- beta
- release/*
tags:
- v*
paths-ignore:
- 'docs/**'
- 'README.md'
- 'mkdocs.yml'
- 'requirements.txt'
permissions: write-all
jobs:
build:
uses: LayeredCraft/devops-templates/.github/workflows/package-build.yaml@v7.5
with:
hasTests: true
dotnet-version: |
8.0.x
9.0.x
10.0.x
secrets: inherit
78 changes: 78 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Deploy Documentation

on:
push:
branches: [ main ]
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/docs.yml'
pull_request:
branches: [ main ]
types: [ opened, synchronize, reopened, ready_for_review ]
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/docs.yml'

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Cache dependencies
uses: actions/cache@v4
with:
key: mkdocs-material-${{ hashFiles('requirements.txt') }}
path: ~/.cache/pip
restore-keys: |
mkdocs-material-

- name: Install dependencies
run: |
pip install mkdocs-material
pip install mkdocs-minify-plugin

- name: Setup Pages
id: pages
uses: actions/configure-pages@v4

- name: Build documentation
run: |
mkdocs build --clean

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: site

deploy:
if: github.ref == 'refs/heads/main'
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
26 changes: 26 additions & 0 deletions .github/workflows/pr-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: PR Build

on:
pull_request:
types: [ opened, synchronize, reopened, ready_for_review ]
branches: [ "main" ]

concurrency:
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: true

permissions: write-all
jobs:
build:
if: github.event.pull_request.draft == false
uses: LayeredCraft/devops-templates/.github/workflows/pr-build.yaml@v7.5
with:
solution: LayeredCraft.OptimizedEnums.slnx
hasTests: true
useMtpRunner: true
dotnetVersion: |
8.0.x
9.0.x
10.0.x
runCdk: false
secrets: inherit
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -416,3 +416,25 @@ FodyWeavers.xsd
*.msix
*.msm
*.msp

.idea

.config

# Local scripts (not for source control)
scripts/

# macOS
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

*.received.*

**/*.DotSettings.user
/.claude/do_not_commit/
/nupkg/
37 changes: 37 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<Project>
<PropertyGroup>
<VersionPrefix>1.0.0</VersionPrefix>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryUrl>https://github.com/layeredcraft/optimized-enums</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<Authors>Nick Cipollina</Authors>
<PackageProjectUrl>https://github.com/layeredcraft/optimized-enums</PackageProjectUrl>
<PackageIcon>icon.png</PackageIcon>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup>
<DebugType>embedded</DebugType>
<NoPackageAnalysis>true</NoPackageAnalysis>
<LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
</PropertyGroup>
<PropertyGroup>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\icon.png" Pack="true" PackagePath="" Visible="False" />
<None Include="..\..\README.md" Pack="true" PackagePath="" Visible="False" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
29 changes: 29 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<NoWarn>$(NoWarn);NU1507</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AutoFixture" Version="4.18.1" />
<PackageVersion Include="AutoFixture.Xunit3" Version="4.19.0" />
<PackageVersion Include="AwesomeAssertions" Version="9.4.0" />
<PackageVersion Include="Basic.Reference.Assemblies.Net80" Version="1.8.4" />
<PackageVersion Include="Basic.Reference.Assemblies.Net90" Version="1.8.4" />
<PackageVersion Include="Basic.Reference.Assemblies.Net100" Version="1.8.4" />
<PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
<PackageVersion Include="Meziantou.Polyfill" Version="1.0.105" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.CodeAnalysis" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.201" />
<PackageVersion Include="Scriban" Version="7.0.6" />
<PackageVersion Include="Verify.SourceGenerators" Version="2.5.0" />
<PackageVersion Include="Verify.XunitV3" Version="31.13.5" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
</ItemGroup>
</Project>
60 changes: 60 additions & 0 deletions LayeredCraft.OptimizedEnums.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<Solution>
<Folder Name="/docs/">
<File Path="docs\changelog.md" />
<File Path="docs\contributing.md" />
<File Path="docs\index.md" />
<File Path="mkdocs.yml" />
<File Path="requirements.txt" />
</Folder>
<Folder Name="/docs/advanced/">
<File Path="docs\advanced\aot-trimming.md" />
<File Path="docs\advanced\diagnostics.md" />
<File Path="docs\advanced\performance.md" />
</Folder>
<Folder Name="/docs/api-reference/">
<File Path="docs\api-reference\base-class.md" />
<File Path="docs\api-reference\generated-members.md" />
</Folder>
<Folder Name="/docs/assets/">
<File Path="docs\assets\icon.png" />
</Folder>
<Folder Name="/docs/assets/css/">
<File Path="docs\assets\css\extra.css" />
</Folder>
<Folder Name="/docs/core-concepts/">
<File Path="docs\core-concepts\how-it-works.md" />
<File Path="docs\core-concepts\inheritance-model.md" />
<File Path="docs\core-concepts\source-generators.md" />
</Folder>
<Folder Name="/docs/getting-started/">
<File Path="docs\getting-started\installation.md" />
<File Path="docs\getting-started\quick-start.md" />
</Folder>
<Folder Name="/docs/usage/">
<File Path="docs\usage\defining-enums.md" />
<File Path="docs\usage\lookups.md" />
<File Path="docs\usage\string-values.md" />
</Folder>
<Folder Name="/git/">
<File Path=".gitignore" />
<File Path=".github\dependabot.yml" />
<File Path=".github\workflows\build.yaml" />
<File Path=".github\workflows\docs.yml" />
<File Path=".github\workflows\pr-build.yaml" />
</Folder>
<Folder Name="/Solution Items/">
<File Path="Directory.Build.props" />
<File Path="Directory.Packages.props" />
<File Path="global.json" />
<File Path="README.md" />
</Folder>
<Folder Name="/src/">
<Project Path="src/LayeredCraft.OptimizedEnums/LayeredCraft.OptimizedEnums.csproj" />
<Project Path="src/LayeredCraft.OptimizedEnums.Generator/LayeredCraft.OptimizedEnums.Generator.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/LayeredCraft.OptimizedEnums.Tests/LayeredCraft.OptimizedEnums.Tests.csproj" />
<Project Path="tests/LayeredCraft.OptimizedEnums.Generator.Tests/LayeredCraft.OptimizedEnums.Generator.Tests.csproj" />
<Project Path="tests/LayeredCraft.OptimizedEnums.Benchmarks/LayeredCraft.OptimizedEnums.Benchmarks.csproj" />
</Folder>
</Solution>
Loading
Loading