From c6e7a4b411014e6443631d251d7ccdca36fa9a36 Mon Sep 17 00:00:00 2001
From: Reuben Bond <203839+ReubenBond@users.noreply.github.com>
Date: Thu, 23 Jan 2025 14:35:20 -0800
Subject: [PATCH] Reference analyzers & code generator from all packages
(#9294)
---
.github/workflows/ci.yml | 44 +++++++++----------
Directory.Build.targets | 4 +-
playground/Directory.Build.props | 2 +
src/Orleans.CodeGenerator/CodeGenerator.cs | 1 +
.../FieldIdAssignmentHelper.cs | 1 +
.../Model/GenerateFieldIds.cs | 19 ++++++++
.../Orleans.CodeGenerator.csproj | 3 --
.../OrleansSourceGenerator.cs | 1 +
src/Orleans.Sdk/Orleans.Sdk.csproj | 3 +-
.../Orleans.Serialization.csproj | 1 -
test/Directory.Build.props | 2 +
11 files changed, 51 insertions(+), 30 deletions(-)
create mode 100644 src/Orleans.CodeGenerator/Model/GenerateFieldIds.cs
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a676e0188f..ad1c0de771 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -26,9 +26,9 @@ jobs:
8.0.x
- name: Build
run: dotnet build
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
- name: build_output
+ name: build_log_${{ matrix.os }}
retention-days: 1
path: |
**/*.binlog
@@ -61,9 +61,9 @@ jobs:
ORLEANSREDISCONNECTIONSTRING: "localhost:6379,ssl=False,abortConnect=False"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -88,9 +88,9 @@ jobs:
CASSANDRAVERSION: ${{ matrix.dbversion }}
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}_${{ matrix.dbversion }}
retention-days: 1
path: |
**/TestResults/*
@@ -128,9 +128,9 @@ jobs:
ORLEANSPOSTGRESCONNECTIONSTRING: "Server=127.0.0.1;Port=5432;Pooling=false;User Id=postgres;Password=postgres;SSL Mode=Disable"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -163,9 +163,9 @@ jobs:
ORLEANSMYSQLCONNECTIONSTRING: "Server=127.0.0.1;Port=3306;UId=root;Pwd=mariadb;"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -200,9 +200,9 @@ jobs:
ORLEANSMSSQLCONNECTIONSTRING: "Server=127.0.0.1,1433;User Id=SA;Password=yourWeak(!)Password;"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -239,9 +239,9 @@ jobs:
ORLEANSDATACONNECTIONSTRING: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -285,9 +285,9 @@ jobs:
ORLEANSCOSMOSDBACCOUNTKEY: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -321,9 +321,9 @@ jobs:
ORLEANSCONSULCONNECTIONSTRING: "http://localhost:8500"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -354,9 +354,9 @@ jobs:
ORLEANSZOOKEEPERCONNECTIONSTRING: "localhost:2181"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
@@ -395,9 +395,9 @@ jobs:
ORLEANSDYNAMODBSECRETKEY: "pass"
- name: Archive Test Results
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: test_output
+ name: test_output_${{ github.job }}
retention-days: 1
path: |
**/TestResults/*
diff --git a/Directory.Build.targets b/Directory.Build.targets
index ae3717a1c7..e3d689d3da 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -10,16 +10,16 @@
diff --git a/playground/Directory.Build.props b/playground/Directory.Build.props
index 115ec93287..087f4c7fce 100644
--- a/playground/Directory.Build.props
+++ b/playground/Directory.Build.props
@@ -7,6 +7,8 @@
false
+ false
+ false
false
true
enable
diff --git a/src/Orleans.CodeGenerator/CodeGenerator.cs b/src/Orleans.CodeGenerator/CodeGenerator.cs
index 8ba5fdcff2..d8f9df06b4 100644
--- a/src/Orleans.CodeGenerator/CodeGenerator.cs
+++ b/src/Orleans.CodeGenerator/CodeGenerator.cs
@@ -9,6 +9,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Orleans.CodeGenerator.Diagnostics;
using Orleans.CodeGenerator.Hashing;
+using Orleans.CodeGenerator.Model;
using Orleans.CodeGenerator.SyntaxGeneration;
using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory;
using static Orleans.CodeGenerator.SyntaxGeneration.SymbolExtensions;
diff --git a/src/Orleans.CodeGenerator/FieldIdAssignmentHelper.cs b/src/Orleans.CodeGenerator/FieldIdAssignmentHelper.cs
index 9bd95ba4e0..03d6a262b4 100644
--- a/src/Orleans.CodeGenerator/FieldIdAssignmentHelper.cs
+++ b/src/Orleans.CodeGenerator/FieldIdAssignmentHelper.cs
@@ -8,6 +8,7 @@
using System.Text;
using Microsoft.CodeAnalysis;
using Orleans.CodeGenerator.Hashing;
+using Orleans.CodeGenerator.Model;
using Orleans.CodeGenerator.SyntaxGeneration;
namespace Orleans.CodeGenerator;
diff --git a/src/Orleans.CodeGenerator/Model/GenerateFieldIds.cs b/src/Orleans.CodeGenerator/Model/GenerateFieldIds.cs
new file mode 100644
index 0000000000..ef66f9f0e6
--- /dev/null
+++ b/src/Orleans.CodeGenerator/Model/GenerateFieldIds.cs
@@ -0,0 +1,19 @@
+namespace Orleans.CodeGenerator.Model;
+
+///
+/// This enum provides options for controlling the field id generation logic.
+///
+public enum GenerateFieldIds
+{
+ ///
+ /// Only members explicitly annotated with a field id will be serialized. This is the default.
+ ///
+ None,
+ ///
+ /// Field ids will be automatically assigned to eligible public properties. To qualify, a property must have an accessible getter, and either an accessible setter or a corresponding constructor parameter.
+ ///
+ ///
+ /// The presence of an explicit field id annotation on any member of a type will automatically disable automatic field id generation for that type.
+ ///
+ PublicProperties
+}
diff --git a/src/Orleans.CodeGenerator/Orleans.CodeGenerator.csproj b/src/Orleans.CodeGenerator/Orleans.CodeGenerator.csproj
index aab3e00487..fea58530d0 100644
--- a/src/Orleans.CodeGenerator/Orleans.CodeGenerator.csproj
+++ b/src/Orleans.CodeGenerator/Orleans.CodeGenerator.csproj
@@ -52,9 +52,6 @@
True
Resources.resx
-
- Model\GenerateFieldIds.cs
-
diff --git a/src/Orleans.CodeGenerator/OrleansSourceGenerator.cs b/src/Orleans.CodeGenerator/OrleansSourceGenerator.cs
index 992e75573d..a584f1b967 100644
--- a/src/Orleans.CodeGenerator/OrleansSourceGenerator.cs
+++ b/src/Orleans.CodeGenerator/OrleansSourceGenerator.cs
@@ -6,6 +6,7 @@
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Text;
using Orleans.CodeGenerator.Diagnostics;
+using Orleans.CodeGenerator.Model;
#pragma warning disable RS1035 // Do not use APIs banned for analyzers
namespace Orleans.CodeGenerator
diff --git a/src/Orleans.Sdk/Orleans.Sdk.csproj b/src/Orleans.Sdk/Orleans.Sdk.csproj
index ffe139dac2..09e40f1bbc 100644
--- a/src/Orleans.Sdk/Orleans.Sdk.csproj
+++ b/src/Orleans.Sdk/Orleans.Sdk.csproj
@@ -10,6 +10,7 @@
false
false
MSB3277
+ true
@@ -32,7 +33,5 @@
-
-
diff --git a/src/Orleans.Serialization/Orleans.Serialization.csproj b/src/Orleans.Serialization/Orleans.Serialization.csproj
index b96c1805ec..0324b54783 100644
--- a/src/Orleans.Serialization/Orleans.Serialization.csproj
+++ b/src/Orleans.Serialization/Orleans.Serialization.csproj
@@ -26,7 +26,6 @@
-
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index c2b7dedb73..1c9de31807 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -7,6 +7,8 @@
false
+ false
+ false
false
$(NoWarn);FS2003;1591
true