Skip to content

Refresh NuGet package icons and consolidate Directory.Build.props#9813

Merged
rstaib merged 14 commits into
mainfrom
rst/nuget-icons
Jun 2, 2026
Merged

Refresh NuGet package icons and consolidate Directory.Build.props#9813
rstaib merged 14 commits into
mainfrom
rst/nuget-icons

Conversation

@rstaib

@rstaib rstaib commented Jun 1, 2026

Copy link
Copy Markdown
Member

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.props hierarchy so that shared packaging metadata lives in one place, with each product only overriding what is specific to it.

Icons

  • Replaced the legacy *-signet.png icons with new, smaller *-icon.png variants:
    • hotchocolate-icon.png, fusion-icon.png, greendonut-icon.png, nitro-icon.png, strawberryshake-icon.png
    • Added icons for products that previously had none: cookiecrumble-icon.png, mocha-icon.png
  • Removed the old signet assets (greendonut-signet.png, hotchocolate-signet.png, nitro-signet.png, strawberryshake-signet.png).
  • Every product project now references its *-icon.png via PackageIcon.

Build / packaging consolidation

  • src/Directory.Build.props now holds all shared packaging metadata (authors, company, copyright, license, project/repository URLs, release notes, symbols).
  • The icon <None> include is now driven by $(PackageIcon) with a single conditional item group, instead of hard-coding each signet path:
    <ItemGroup Condition="'$(PackageIcon)' != ''">
      <None Include="$(MSBuildThisFileDirectory)..\website\static\resources\$(PackageIcon)" Pack="true" PackagePath="$(PackageIcon)" Visible="false" />
      <None Include="$(MSBuildThisFileDirectory)..\LICEN*" Pack="true" PackagePath="" Visible="false" />
    </ItemGroup>
  • Each product's Directory.Build.props now declares only its own Product, PackageIcon, and PackageTags:
    • Hot Chocolate, Fusion, Green Donut, Nitro, Strawberry Shake
    • New props files for Cookie Crumble and Mocha
  • HotChocolate.Templates.csproj was aligned with the shared metadata (same authors/copyright/license/repo properties, new icon, LICENSE packed in).

Metadata updates

  • Copyright unified to "Copyright © 2018 - present ChilliCream Inc." across props files, templates, and the root LICENSE.

Redirects (backward compatibility)

  • nginx configs (website/config/conf.d/default.conf and website-next/nginx/conf.d/redirects.conf) now permanent-redirect old *-signet.png / *-signet.svg resource URLs to the new *-icon.png URLs.
  • Fixed a pre-existing typo: react-rsatareact-rasta.

Notes for reviewers

  • Icon and LICENSE paths are resolved with $(MSBuildThisFileDirectory) so they work regardless of where a project sits in the tree (this was the path-resolution concern raised by Copilot).
  • Packages without an icon (e.g. internal/test packages) are handled by the '$(PackageIcon)' != '' condition rather than failing the pack.

@glen-84 glen-84 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 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. 🙂
  2. 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.

@rstaib

rstaib commented Jun 2, 2026

Copy link
Copy Markdown
Member Author
  1. 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. 🙂
  2. 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.

  1. Because of templates.
  2. Yeah, saw that. Should be fixed now.

Comment thread Directory.Build.props Outdated
Comment thread LICENSE Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.png across products and added redirects from old URLs.
  • Introduced a root Directory.Build.props for shared package metadata and icon/license packing; slimmed and chained existing Directory.Build.props files.
  • 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.

Comment thread templates/server/HotChocolate.Template.Server.csproj Outdated
Comment thread templates/server/HotChocolate.Template.Server.csproj Outdated
Comment thread templates/gateway/HotChocolate.Template.Gateway.csproj Outdated
Comment thread templates/gateway/HotChocolate.Template.Gateway.csproj Outdated
Comment thread templates/azure-function/HotChocolate.Template.AzureFunctions.csproj Outdated
Comment thread src/Mocha/src/Mocha.Analyzers/Mocha.Analyzers.csproj Outdated
Comment thread src/Mocha/src/Mocha.Abstractions/Mocha.Abstractions.csproj Outdated
Comment thread website/config/conf.d/default.conf
Comment thread website-next/nginx/conf.d/redirects.conf

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 under src/, but LICENSE is 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 Include paths are currently relative to the templates/ directory ($(MSBuildThisFileDirectory)), but both website/static/resources and LICENSE are located at the repository root. As written, dotnet pack will not include the icon/license files, and packing can fail because PackageIcon won't exist inside the nupkg.

Comment thread src/Directory.Build.props
Comment thread src/Directory.Build.props
Comment thread src/CookieCrumble/src/CookieCrumble.Xunit3/CookieCrumble.Xunit3.csproj Outdated
Comment thread src/CookieCrumble/src/CookieCrumble.Xunit/CookieCrumble.Xunit.csproj Outdated
Comment thread src/Mocha/src/Mocha.Hosting/Mocha.Hosting.csproj Outdated
Comment thread src/Mocha/src/Mocha.EntityFrameworkCore/Mocha.EntityFrameworkCore.csproj Outdated
Comment thread src/Mocha/src/Mocha.Analyzers/Mocha.Analyzers.csproj Outdated
Comment thread src/Mocha/src/Mocha.Abstractions/Mocha.Abstractions.csproj Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 26 changed files in this pull request and generated 3 comments.

Comment thread website/config/conf.d/default.conf Outdated
Comment thread src/Directory.Build.props
Comment on lines 23 to 27
<PropertyGroup>
<Product>Hot Chocolate</Product>
<Authors>ChilliCream authors and contributors</Authors>
<Company>ChilliCream Inc.</Company>
<Copyright>Copyright &#169; 2021 ChilliCream Inc.</Copyright>
<Copyright>Copyright &#169; 2018 - present ChilliCream Inc.</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Comment thread templates/HotChocolate.Templates.csproj
@rstaib rstaib merged commit 1673458 into main Jun 2, 2026
141 of 142 checks passed
@rstaib rstaib deleted the rst/nuget-icons branch June 2, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants