Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 36 additions & 0 deletions .claude/hooks/session-start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash
# Installs the .NET 10 SDK so dotnet build/restore/test work in this session.
# Idempotent: re-running is cheap once the SDK is already on disk.
set -euo pipefail

# Only run in the Claude Code on the web remote container.
if [ "${CLAUDE_CODE_REMOTE:-}" != "true" ]; then
exit 0
fi

DOTNET_ROOT="${DOTNET_ROOT:-$HOME/.dotnet}"
INSTALL_SCRIPT="$HOME/.dotnet-install.sh"
# Channel "10.0" tracks the latest .NET 10 SDK, which Umbraco 18 requires.
CHANNEL="10.0"

mkdir -p "$DOTNET_ROOT"

if [ ! -x "$DOTNET_ROOT/dotnet" ]; then
if [ ! -f "$INSTALL_SCRIPT" ]; then
curl -fsSL https://dot.net/v1/dotnet-install.sh -o "$INSTALL_SCRIPT"
chmod +x "$INSTALL_SCRIPT"
fi
"$INSTALL_SCRIPT" --channel "$CHANNEL" --install-dir "$DOTNET_ROOT" --no-path
fi

# Persist DOTNET_ROOT and PATH for the rest of the session.
if [ -n "${CLAUDE_ENV_FILE:-}" ]; then
{
echo "export DOTNET_ROOT=\"$DOTNET_ROOT\""
echo "export PATH=\"$DOTNET_ROOT:\$PATH\""
echo "export DOTNET_CLI_TELEMETRY_OPTOUT=1"
echo "export DOTNET_NOLOGO=1"
} >> "$CLAUDE_ENV_FILE"
fi

"$DOTNET_ROOT/dotnet" --version >&2
14 changes: 14 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/session-start.sh"
}
]
}
]
}
}
172 changes: 0 additions & 172 deletions .github/clean-blocklist-workaround.md

This file was deleted.

10 changes: 0 additions & 10 deletions .github/clean-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,16 +98,6 @@ Documentation related to GitHub Actions workflows and automation:

---

## Technical References

Technical documentation for specific issues and workarounds:

### BlockList Label Workaround

- **[BlockList Label Workaround](clean-blocklist-workaround.md)** - Documentation for the temporary workaround for Umbraco BlockList label export issue (#20801)

---

## Additional Resources

### External Resources
Expand Down
26 changes: 12 additions & 14 deletions .github/general-contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,18 @@ This means:
The uSync configuration files are located in:
```
template/Clean.Blog/uSync/
├── v16/ # Umbraco 16 configuration
├── v17/ # Umbraco 17 configuration
│ ├── Content/ # Content nodes
│ ├── ContentTypes/ # Document Types
│ ├── DataTypes/ # Data Type definitions
│ ├── Dictionary/ # Dictionary items for translations
│ ├── Languages/ # Language configurations
│ ├── Media/ # Media items
│ ├── MediaTypes/ # Media Type definitions
│ ├── MemberTypes/ # Member Type definitions
│ ├── RelationTypes/ # Relation Type definitions
│ ├── Templates/ # Razor templates
│ └── usync.config # uSync version metadata
└── v17-backup/ # Backup configuration
└── v18/ # Umbraco 18 configuration
├── Content/ # Content nodes
├── ContentTypes/ # Document Types
├── DataTypes/ # Data Type definitions
├── Dictionary/ # Dictionary items for translations
├── Languages/ # Language configurations
├── Media/ # Media items
├── MediaTypes/ # Media Type definitions
├── MemberTypes/ # Member Type definitions
├── RelationTypes/ # Relation Type definitions
├── Templates/ # Razor templates
└── usync.config # uSync version metadata
```

## Database Changes and uSync
Expand Down
21 changes: 5 additions & 16 deletions .github/script-create-nuget-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

## Overview

This comprehensive script creates NuGet packages by starting Umbraco, downloading the package via API, applying BlockList label fixes (temporary workaround), updating .csproj versions, and building all packages in dependency order.
This comprehensive script creates NuGet packages by starting Umbraco, downloading the package via API, updating .csproj versions, and building all packages in dependency order.

## Script Location

`.github/workflows/powershell/CreateNuGetPackages.ps1`

## Purpose

Orchestrates the entire package creation process including running Umbraco, downloading content package, fixing BlockList labels, updating versions, and building all NuGet packages.
Orchestrates the entire package creation process including running Umbraco, downloading content package, updating versions, and building all NuGet packages.

## When It's Used

Expand All @@ -30,20 +30,11 @@ Orchestrates the entire package creation process including running Umbraco, down
4. **Starts Umbraco** - Runs Clean.Blog project
5. **Waits for API** - Polls until Umbraco responds
6. **Downloads Package** - Gets package.zip via API
7. **Fixes BlockList Labels** - Applies workaround for Umbraco issue #20801
8. **Updates Versions** - Sets version in all .csproj files
9. **Builds Packages** - In dependency order: Core → Headless → Clean → Template
7. **Updates Versions** - Sets version in all .csproj files
8. **Builds Packages** - In dependency order: Core → Headless → Clean → Template

## Key Features

### BlockList Label Fix (Temporary)

Workaround for [Umbraco issue #20801](https://github.com/umbraco/Umbraco-CMS/issues/20801):
- Extracts package.zip
- Reads BlockList config from uSync
- Adds labels to package.xml
- Repacks package.zip

### Dependency Order Building

1. **Clean.Core** - Base package
Expand Down Expand Up @@ -86,12 +77,10 @@ Packages created in `.artifacts/nuget/`:
## Related Documentation

- [workflow-versioning-releases.md](workflow-versioning-releases.md) - Parent workflow
- BlockList issue: https://github.com/umbraco/Umbraco-CMS/issues/20801

## Notes

- **Most complex script** in the workflow (831 lines)
- **Temporary BlockList fix** - remove when Umbraco fixes issue
- **Most complex script** in the workflow
- **Builds in dependency order** to avoid package resolution errors
- **Uses local NuGet source** for intermediate packages
- **Supports both PowerShell 5.x and Core 6+**
Loading
Loading