From 56ee6f0afc0ebc29dc04899a418ad69ff8fe1fa9 Mon Sep 17 00:00:00 2001 From: Howard van Rooijen Date: Sun, 10 Dec 2023 20:52:12 +0000 Subject: [PATCH] More 2023 / .NET 8.0 updates --- .github/workflows/build.yml | 4 +- README.md | 84 +++++++++++++++++++++++++++++++++++-- build.ps1 | 3 +- examples/z3-problems.dib | 8 +++- imm.yaml | 3 +- 5 files changed, 90 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5b52c35..312bba0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,11 +44,11 @@ jobs: needs: prepareConfig uses: endjin/Endjin.RecommendedPractices.GitHubActions/.github/workflows/scripted-build-pipeline.yml@main with: - netSdkVersion: '6.0.x' + netSdkVersion: '8.x' # workflow_dispatch inputs are always strings, the type property is just for the UI forcePublish: ${{ github.event.inputs.forcePublish == 'true' }} skipCleanup: ${{ github.event.inputs.skipCleanup == 'true' }} publishPhaseEnv: ${{ needs.prepareConfig.outputs.RESOLVED_ENV_VARS }} secrets: compilePhaseAzureCredentials: ${{ secrets.ENDJIN_PROD_ACR_READER_CREDENTIALS }} - publishPhaseSecrets: ${{ needs.prepareConfig.outputs.RESOLVED_SECRETS }} + publishPhaseSecrets: ${{ needs.prepareConfig.outputs.RESOLVED_SECRETS }} \ No newline at end of file diff --git a/README.md b/README.md index 5340779..36e9514 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Z3.Linq -.NET 6.0 LINQ bindings for the [Z3 theorem prover](https://github.com/Z3Prover/z3) from [Microsoft Research](https://www.microsoft.com/en-us/research/). +.NET 8.0 LINQ bindings for the [Z3 theorem prover](https://github.com/Z3Prover/z3) from [Microsoft Research](https://www.microsoft.com/en-us/research/). Based on the proof of concept by [Bart De Smet](https://github.com/bartdesmet) which was curated into [Z3.LinqBinding](https://github.com/RicardoNiepel/Z3.LinqBinding) by [Ricardo Niepel](https://github.com/RicardoNiepel). @@ -137,7 +137,7 @@ using (var ctx = new Z3Context()) You can install the [Z3.Linq NuGet Package](https://www.nuget.org/packages/Z3.Linq/). -### For .NET Interactive +### For Polyglot Notebooks Add the package: ``` @@ -192,7 +192,83 @@ All PRs are welcome. 2020: [Karel Frajtak](https://github.com/kfrajtak) adds [support for fractions](https://github.com/kfrajtak/Z3.LinqBinding). -2021: [Howard van Rooijen](https://github.com/HowardvanRooijen) and [Ian Griffiths](https://github.com/idg10) ([endjin](https://github.com/endjin)) upgrade the project to `.NET 6.0`, added `Optimize` support via LINQ's `OrderBy`, [ValueTuple](https://docs.microsoft.com/en-us/dotnet/api/system.valuetuple?view=net-6.0) support, demonstrate using `record` types, and fix nullability issues. They upgraded the solution to use [Z3 NuGet package](https://www.nuget.org/packages/Microsoft.Z3.x64/), merged in features from [Jean-Sylvain Boige](https://github.com/jsboige) and [Karel Frajtak](https://github.com/kfrajtak) forks, created archives of Bart's original blog posts and talks. They republished the project as [Z3.Linq](https://github.com/endjin/Z3.Linq), created a new [.NET Interactive Notebook](https://github.com/dotnet/interactive) of [samples](examples/z3-problems.dib), and published a NuGet package [Z3.Linq](https://www.nuget.org/packages/Z3.Linq/). -[![OpenChain](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/66efac1a-662c-40cf-b4ec-8b34c29e9fd7?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/66efac1a-662c-40cf-b4ec-8b34c29e9fd7?cache=false) +2021: [Howard van Rooijen](https://github.com/HowardvanRooijen) and [Ian Griffiths](https://github.com/idg10) ([endjin](https://github.com/endjin)) upgrade the project to `.NET 6.0`, added `Optimize` support via LINQ's `OrderBy`, [ValueTuple](https://docs.microsoft.com/en-us/dotnet/api/system.valuetuple?view=net-6.0) support, demonstrate using `record` types, and fix nullability issues. They upgraded the solution to use [Z3 NuGet package](https://www.nuget.org/packages/Microsoft.Z3.x64/), merged in features from [Jean-Sylvain Boige](https://github.com/jsboige) and [Karel Frajtak](https://github.com/kfrajtak) forks, created archives of Bart's original blog posts and talks. They republished the project as [Z3.Linq](https://github.com/endjin/Z3.Linq), created a new [Polyglot Notebook](https://github.com/dotnet/interactive) of [samples](examples/z3-problems.dib), and published a NuGet package [Z3.Linq](https://www.nuget.org/packages/Z3.Linq/). +2023: Whit Waldo upgrades the project to .NET 8.0 +## Project Sponsor + +This project is sponsored by [endjin](https://endjin.com), a UK based Technology Consultancy which specializes in Data, AI, DevOps & Cloud, and is a [.NET Foundation Corporate Sponsor](https://dotnetfoundation.org/membership/corporate-sponsorship). + +> We help small teams achieve big things. + +We produce two free weekly newsletters: + + - [Azure Weekly](https://azureweekly.info) for all things about the Microsoft Azure Platform + - [Power BI Weekly](https://powerbiweekly.info) for all things Power BI, Microsoft Fabric, and Azure Synapse Analytics + +Keep up with everything that's going on at endjin via our [blog](https://endjin.com/blog), follow us on [Twitter](https://twitter.com/endjin), [YouTube](https://www.youtube.com/c/endjin) or [LinkedIn](https://www.linkedin.com/company/endjin). + +We have become the maintainers of a number of popular .NET Open Source Projects: + +- [Reactive Extensions for .NET](https://github.com/dotnet/reactive) +- [Reaqtor](https://github.com/reaqtive) +- [Argotic Syndication Framework](https://github.com/argotic-syndication-framework/) + +And we have over 50 Open Source projects of our own, spread across the following GitHub Orgs: + +- [endjin](https://github.com/endjin/) +- [Corvus](https://github.com/corvus-dotnet) +- [Menes](https://github.com/menes-dotnet) +- [Marain](https://github.com/marain-dotnet) +- [AIS.NET](https://github.com/ais-dotnet) + +And the DevOps tooling we have created for managing all these projects is available on the [PowerShell Gallery](https://www.powershellgallery.com/profiles/endjin). + +For more information about our products and services, or for commercial support of this project, please [contact us](https://endjin.com/contact-us). + +## Code of conduct + +This project has adopted a code of conduct adapted from the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. This code of conduct has been [adopted by many other projects](http://contributor-covenant.org/adopters/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [hello@endjin.com](mailto:hello@endjin.com) with any additional questions or comments. + +## IP Maturity Model (IMM) + +The [IP Maturity Model](https://github.com/endjin/Endjin.Ip.Maturity.Matrix) is endjin's IP quality assessment framework, which we've developed over a number of years when doing due diligence assessments of 3rd party systems. We've codified the approach into a [configurable set of rules](https://github.com/endjin/Endjin.Ip.Maturity.Matrix.RuleDefinitions), which are committed into the [root of a repo](imm.yaml), and a [Azure Function HttpTrigger](https://github.com/endjin/Endjin.Ip.Maturity.Matrix/tree/main/Solutions/Endjin.Ip.Maturity.Matrix.Host) HTTP endpoint which can evaluate the ruleset, and render an svg badge for display in repo's `readme.md`. + +## IP Maturity Model Scores + +[![Shared Engineering Standards](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/74e29f9b-6dca-4161-8fdd-b468a1eb185d?nocache=true)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/74e29f9b-6dca-4161-8fdd-b468a1eb185d?cache=false) + +[![Coding Standards](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/f6f6490f-9493-4dc3-a674-15584fa951d8?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/f6f6490f-9493-4dc3-a674-15584fa951d8?cache=false) + +[![Executable Specifications](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/bb49fb94-6ab5-40c3-a6da-dfd2e9bc4b00?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/bb49fb94-6ab5-40c3-a6da-dfd2e9bc4b00?cache=false) + +[![Code Coverage](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/0449cadc-0078-4094-b019-520d75cc6cbb?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/0449cadc-0078-4094-b019-520d75cc6cbb?cache=false) + +[![Benchmarks](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/64ed80dc-d354-45a9-9a56-c32437306afa?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/64ed80dc-d354-45a9-9a56-c32437306afa?cache=false) + +[![Reference Documentation](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/2a7fc206-d578-41b0-85f6-a28b6b0fec5f?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/2a7fc206-d578-41b0-85f6-a28b6b0fec5f?cache=false) + +[![Design & Implementation Documentation](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/f026d5a2-ce1a-4e04-af15-5a35792b164b?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/f026d5a2-ce1a-4e04-af15-5a35792b164b?cache=false) + +[![How-to Documentation](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/145f2e3d-bb05-4ced-989b-7fb218fc6705?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/145f2e3d-bb05-4ced-989b-7fb218fc6705?cache=false) + +[![Date of Last IP Review](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/da4ed776-0365-4d8a-a297-c4e91a14d646?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/da4ed776-0365-4d8a-a297-c4e91a14d646?cache=false) + +[![Framework Version](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/6c0402b3-f0e3-4bd7-83fe-04bb6dca7924?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/6c0402b3-f0e3-4bd7-83fe-04bb6dca7924?cache=false) + +[![Associated Work Items](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/79b8ff50-7378-4f29-b07c-bcd80746bfd4?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/79b8ff50-7378-4f29-b07c-bcd80746bfd4?cache=false) + +[![Source Code Availability](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/30e1b40b-b27d-4631-b38d-3172426593ca?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/30e1b40b-b27d-4631-b38d-3172426593ca?cache=false) + +[![License](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/d96b5bdc-62c7-47b6-bcc4-de31127c08b7?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/d96b5bdc-62c7-47b6-bcc4-de31127c08b7?cache=false) + +[![Production Use](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/87ee2c3e-b17a-4939-b969-2c9c034d05d7?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/87ee2c3e-b17a-4939-b969-2c9c034d05d7?cache=false) + +[![Insights](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/71a02488-2dc9-4d25-94fa-8c2346169f8b?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/71a02488-2dc9-4d25-94fa-8c2346169f8b?cache=false) + +[![Packaging](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/547fd9f5-9caf-449f-82d9-4fba9e7ce13a?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/547fd9f5-9caf-449f-82d9-4fba9e7ce13a?cache=false) + +[![Deployment](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/edea4593-d2dd-485b-bc1b-aaaf18f098f9?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/edea4593-d2dd-485b-bc1b-aaaf18f098f9?cache=false) + +[![OpenChain](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/66efac1a-662c-40cf-b4ec-8b34c29e9fd7?cache=false)](https://imm.endjin.com/api/imm/github/endjin/Z3.Linq/rule/66efac1a-662c-40cf-b4ec-8b34c29e9fd7?cache=false) \ No newline at end of file diff --git a/build.ps1 b/build.ps1 index e8b04b2..9c20d11 100644 --- a/build.ps1 +++ b/build.ps1 @@ -174,5 +174,4 @@ task PrePackage {} task PostPackage {} task PrePublish {} task PostPublish {} -task RunLast {} - +task RunLast {} \ No newline at end of file diff --git a/examples/z3-problems.dib b/examples/z3-problems.dib index 9b816bd..828a12e 100644 --- a/examples/z3-problems.dib +++ b/examples/z3-problems.dib @@ -1,11 +1,15 @@ +#!meta + +{"kernelInfo":{"defaultKernelName":"csharp","items":[{"aliases":[],"name":"csharp"}]}} + #!markdown If you want to run this locally, you need to build the solution in Debug mode and then reference the binaries: #!csharp -#r "..\solutions\Z3.Linq\bin\Debug\net6.0\Z3.Linq.dll" -#r "..\solutions\Z3.Linq.Examples\bin\Debug\net6.0\Z3.Linq.Examples.dll" +#r "..\solutions\Z3.Linq\bin\Debug\net8.0\Z3.Linq.dll" +#r "..\solutions\Z3.Linq.Examples\bin\Debug\net8.0\Z3.Linq.Examples.dll" #r "nuget:Microsoft.Z3,*-*" #r "nuget:MiaPlaza.ExpressionUtils,*-*" diff --git a/imm.yaml b/imm.yaml index f7f9851..82f4a43 100644 --- a/imm.yaml +++ b/imm.yaml @@ -86,5 +86,4 @@ Id: 66efac1a-662c-40cf-b4ec-8b34c29e9fd7 Measures: - Score: 1 - Description: SBOM Available - + Description: SBOM Available \ No newline at end of file