Refresh NuGet package icons and consolidate Directory.Build.props#9813
Conversation
glen-84
left a comment
There was a problem hiding this comment.
- Why move it out of
src/Directory.Build.props, which is already imported by most/all projects, and is the closest common root? We have a lot of files in the repository root already. 🙂 - You seem to have removed the TargetFrameworks and other configuration (f.e. Roslynator) from
src/Directory.Build.props.
I would suggest reverting to the src/Directory.Build.props configuration, and making the icon changes there.
|
There was a problem hiding this comment.
Pull request overview
This pull request refreshes the NuGet package icon assets and centralizes shared NuGet/MSBuild packaging metadata into a new repository-root Directory.Build.props, with nginx redirects updated to keep old icon URLs working.
Changes:
- Replaced
*-signet.*icon usage with*-icon.pngacross products and added redirects from old URLs. - Introduced a root
Directory.Build.propsfor shared package metadata and icon/license packing; slimmed and chained existingDirectory.Build.propsfiles. - Added/updated per-product props (e.g., CookieCrumble, Mocha, Nitro, Fusion) and updated impacted project files.
Reviewed changes
Copilot reviewed 39 out of 50 changed files in this pull request and generated 30 comments.
Show a summary per file
| File | Description |
|---|---|
| website/config/conf.d/default.conf | Updates nginx rewrites from old signet URLs to new icon assets and adds /resources redirects. |
| website-next/nginx/conf.d/redirects.conf | Updates website-next rewrite rules to redirect legacy icon URLs to new icon assets. |
| templates/server/HotChocolate.Template.Server.csproj | Adds repo props import and sets template project PackageIcon. |
| templates/HotChocolate.Templates.csproj | Updates template package metadata and relies on shared icon packing via props. |
| templates/gateway/HotChocolate.Template.Gateway.csproj | Adds repo props import and sets template project PackageIcon. |
| templates/azure-function/HotChocolate.Template.AzureFunctions.csproj | Adds repo props import and sets template project PackageIcon. |
| src/StrawberryShake/Directory.Build.props | Switches StrawberryShake package icon to strawberryshake-icon.png. |
| src/Nitro/Directory.Build.props | Sets Nitro product metadata and switches to nitro-icon.png. |
| src/Mocha/src/Mocha/Mocha.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Utilities/Mocha.Utilities.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Transport.RabbitMQ/Mocha.Transport.RabbitMQ.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Transport.Postgres/Mocha.Transport.Postgres.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Transport.InMemory/Mocha.Transport.InMemory.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Threading/Mocha.Threading.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Outbox/Mocha.Outbox.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Mediator/Mocha.Mediator.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Mediator.Abstractions/Mocha.Mediator.Abstractions.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Inbox/Mocha.Inbox.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Hosting/Mocha.Hosting.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.EntityFrameworkCore/Mocha.EntityFrameworkCore.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.EntityFrameworkCore.Postgres/Mocha.EntityFrameworkCore.Postgres.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Analyzers/Mocha.Analyzers.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Mocha.Abstractions/Mocha.Abstractions.csproj | Imports shared build props (per Mocha chain). |
| src/Mocha/src/Directory.Build.props | Adds an intermediate props file for Mocha src/ subtree that imports the repo chain. |
| src/Mocha/Directory.Build.props | Adds Mocha product-level packaging props (product name, icon, tags). |
| src/HotChocolate/Fusion/Directory.Build.props | Sets Fusion package icon to fusion-icon.png. |
| src/HotChocolate/Directory.Build.props | Sets Hot Chocolate product name consistently and switches to hotchocolate-icon.png. |
| src/GreenDonut/src/Directory.Build.props | Cleans up import-only props file for GreenDonut src/ subtree. |
| src/GreenDonut/Directory.Build.props | Sets Green Donut product name and switches to greendonut-icon.png. |
| src/Directory.Build.props | Imports the new root props and keeps Hot Chocolate-specific build settings under src/. |
| src/CookieCrumble/src/CookieCrumble.Xunit3/CookieCrumble.Xunit3.csproj | Imports shared build props (CookieCrumble chain). |
| src/CookieCrumble/src/CookieCrumble.Xunit/CookieCrumble.Xunit.csproj | Imports shared build props (CookieCrumble chain). |
| src/CookieCrumble/src/CookieCrumble.HotChocolate/CookieCrumble.HotChocolate.csproj | Imports shared build props (CookieCrumble chain). |
| src/CookieCrumble/src/CookieCrumble.HotChocolate.Language/CookieCrumble.HotChocolate.Language.csproj | Imports shared build props (CookieCrumble chain). |
| src/CookieCrumble/src/CookieCrumble.Fusion/CookieCrumble.Fusion.csproj | Imports shared build props (CookieCrumble chain). |
| src/CookieCrumble/src/CookieCrumble.Analyzers/CookieCrumble.Analyzers.csproj | Imports shared build props (CookieCrumble chain). |
| src/CookieCrumble/Directory.Build.props | Adds CookieCrumble product-level packaging props (product name, icon, tags). |
| LICENSE | Updates copyright year range text. |
| Directory.Build.props | Adds repository-root shared package metadata and shared icon/license packing rules. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 36 out of 47 changed files in this pull request and generated 23 comments.
Comments suppressed due to low confidence (2)
src/Directory.Build.props:59
$(MSBuildThisFileDirectory)LICEN*looks for the license file undersrc/, butLICENSEis located at the repository root. This means the license won't be packed into produced NuGet packages.
<ItemGroup Condition="'$(Configuration)' == 'debug'">
<PackageReference Include="Roslynator.Analyzers">
templates/HotChocolate.Templates.csproj:48
- These
None Includepaths are currently relative to thetemplates/directory ($(MSBuildThisFileDirectory)), but bothwebsite/static/resourcesandLICENSEare located at the repository root. As written,dotnet packwill not include the icon/license files, and packing can fail becausePackageIconwon't exist inside the nupkg.
| <PropertyGroup> | ||
| <Product>Hot Chocolate</Product> | ||
| <Authors>ChilliCream authors and contributors</Authors> | ||
| <Company>ChilliCream Inc.</Company> | ||
| <Copyright>Copyright © 2021 ChilliCream Inc.</Copyright> | ||
| <Copyright>Copyright © 2018 - present ChilliCream Inc.</Copyright> | ||
| <PackageLicenseExpression>MIT</PackageLicenseExpression> |
Refresh NuGet package icons and consolidate build/packaging metadata
Summary
This PR refreshes the NuGet package icons across all ChilliCream products and cleans up the
Directory.Build.propshierarchy so that shared packaging metadata lives in one place, with each product only overriding what is specific to it.Icons
*-signet.pngicons with new, smaller*-icon.pngvariants:hotchocolate-icon.png,fusion-icon.png,greendonut-icon.png,nitro-icon.png,strawberryshake-icon.pngcookiecrumble-icon.png,mocha-icon.pnggreendonut-signet.png,hotchocolate-signet.png,nitro-signet.png,strawberryshake-signet.png).*-icon.pngviaPackageIcon.Build / packaging consolidation
src/Directory.Build.propsnow holds all shared packaging metadata (authors, company, copyright, license, project/repository URLs, release notes, symbols).<None>include is now driven by$(PackageIcon)with a single conditional item group, instead of hard-coding each signet path:Directory.Build.propsnow declares only its ownProduct,PackageIcon, andPackageTags:HotChocolate.Templates.csprojwas aligned with the shared metadata (same authors/copyright/license/repo properties, new icon, LICENSE packed in).Metadata updates
LICENSE.Redirects (backward compatibility)
website/config/conf.d/default.confandwebsite-next/nginx/conf.d/redirects.conf) nowpermanent-redirect old*-signet.png/*-signet.svgresource URLs to the new*-icon.pngURLs.react-rsata→react-rasta.Notes for reviewers
$(MSBuildThisFileDirectory)so they work regardless of where a project sits in the tree (this was the path-resolution concern raised by Copilot).'$(PackageIcon)' != ''condition rather than failing the pack.