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