Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5cffe6c
Icons regardless of type, library updates, and other improvements
Onebeld Jun 14, 2026
e28d030
Replace PathIcon with IconControl where possible and various fixes
Onebeld Jun 14, 2026
1be17e2
SmoothScrollViewer, MaterialIcons generator have been removed, IconCo…
Onebeld Jun 16, 2026
a8f0499
Added documentation for ScrollViewerExtensions, improved functionalit…
Onebeld Jun 17, 2026
a425bcf
More detailed attribution, improved ScrollViewerExtensions, removal o…
Onebeld Jun 20, 2026
2c7eda5
Reworked NoticeDialog, renamed to PleasantIcon, added ColorPicker, an…
Onebeld Jun 27, 2026
2f26e26
Removing VGUI, installing fonts, Composition animations, and other ch…
Onebeld Jun 28, 2026
2dec3ea
Removed PleasantReDock, added philosophy to README, added documentati…
Onebeld Jun 29, 2026
535f0c1
Introducing SearchableComboBox
Onebeld Jun 30, 2026
26164f9
Localization key generation and usage analysis, virtualized Searchabl…
Onebeld Jul 2, 2026
ec92090
Refining the analyzer, adding tests
Onebeld Jul 4, 2026
b2f6604
Analysis of keys that are missing from resx, property for disabling t…
Onebeld Jul 4, 2026
148c322
Fix for implicit animations, improved ScrollViewer smooth scrolling, …
Onebeld Jul 5, 2026
6050c04
Refactoring of NavigationView, fixing Tab focus behavior, and correct…
Onebeld Jul 6, 2026
7a29bf5
Continued rework of NavigationView, removal of PleasantFlyout, modifi…
Onebeld Jul 7, 2026
540d0e4
PleasantWindow refinements, focus fixes, and more
Onebeld Jul 8, 2026
8c24d24
CrashReportDialog Changes, Updating to Avalonia 12.1, and More
Onebeld Jul 11, 2026
1c81a0f
Added styles for new Avalonia controls, removed custom CommandBar, an…
Onebeld Jul 12, 2026
0f33caa
Merge remote-tracking branch 'refs/remotes/origin/main' into dev
Onebeld Jul 12, 2026
21c419b
Added style for GroupBox, refined ScrollViewerExtension logic, and va…
Onebeld Jul 13, 2026
73edf24
Fix paths in GitHub Actions
Onebeld Jul 13, 2026
250ab99
Deleted PleasantUI.MaterialIcons from GitHub Actions
Onebeld Jul 13, 2026
32fb931
Removing unnecessary functionality, fixing DashboardCard, optimizing …
Onebeld Jul 16, 2026
29b22c5
Removed ItemListPanel, moved two controls to ToolKit, and finalized c…
Onebeld Jul 19, 2026
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
  •  
  •  
  •  
17 changes: 9 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore (with retry)
uses: nick-fields/retry@v3
Expand All @@ -34,25 +34,27 @@ jobs:
max_attempts: 3
retry_wait_seconds: 15
command: |
dotnet restore src/PleasantUI/PleasantUI.csproj
dotnet restore generators/PleasantUI.Localization.Generator/PleasantUI.Localization.Generator.csproj
dotnet restore analyzers/PleasantUI.Localization.Analyzer/PleasantUI.Localization.Analyzer.csproj
dotnet restore src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj
dotnet restore src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj
dotnet restore src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj
dotnet restore src/PleasantUI/PleasantUI.csproj

- name: Build
run: |
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore
dotnet build generators/PleasantUI.Localization.Generator/PleasantUI.Localization.Generator.csproj --configuration Release --no-restore
dotnet build analyzers/PleasantUI.Localization.Analyzer/PleasantUI.Localization.Analyzer.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj --configuration Release --no-restore
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore

- name: Verify packages exist
run: |
echo "=== Searching for all .nupkg files under src/ ==="
find src/ -name "*.nupkg" 2>/dev/null | sort

FAILED=0
for project in PleasantUI PleasantUI.DataGrid PleasantUI.MaterialIcons PleasantUI.ToolKit; do
for project in PleasantUI PleasantUI.DataGrid PleasantUI.ToolKit; do
FOUND=$(find "src/$project" -name "*.nupkg" 2>/dev/null | head -1)
if [ -z "$FOUND" ]; then
echo "ERROR: No .nupkg found anywhere under src/$project"
Expand All @@ -75,7 +77,6 @@ jobs:
path: |
src/PleasantUI/bin/Release/*.nupkg
src/PleasantUI.DataGrid/bin/Release/*.nupkg
src/PleasantUI.MaterialIcons/bin/Release/*.nupkg
src/PleasantUI.ToolKit/bin/Release/*.nupkg
if-no-files-found: error

Expand Down Expand Up @@ -107,7 +108,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Publish to NuGet (Trusted Publishing, with retry)
uses: nick-fields/retry@v3
Expand Down
22 changes: 10 additions & 12 deletions .github/workflows/canary-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore (with retry)
uses: nick-fields/retry@v3
Expand All @@ -126,10 +126,11 @@ jobs:
max_attempts: 3
retry_wait_seconds: 15
command: |
dotnet restore src/PleasantUI/PleasantUI.csproj
dotnet restore generators/PleasantUI.Localization.Generator/PleasantUI.Localization.Generator.csproj
dotnet restore analyzers/PleasantUI.Localization.Analyzer/PleasantUI.Localization.Analyzer.csproj
dotnet restore src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj
dotnet restore src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj
dotnet restore src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj
dotnet restore src/PleasantUI/PleasantUI.csproj

- name: Modify Package.props with canary version
run: |
Expand All @@ -147,10 +148,11 @@ jobs:

- name: Build
run: |
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore
dotnet build generators/PleasantUI.Localization.Generator/PleasantUI.Localization.Generator.csproj --configuration Release --no-restore
dotnet build analyzers/PleasantUI.Localization.Analyzer/PleasantUI.Localization.Analyzer.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj --configuration Release --no-restore
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore

- name: Build single-file example app
uses: nick-fields/retry@v3
Expand Down Expand Up @@ -196,7 +198,7 @@ jobs:
find src/ -name "*.nupkg" 2>/dev/null | sort

FAILED=0
for project in PleasantUI PleasantUI.DataGrid PleasantUI.MaterialIcons PleasantUI.ToolKit; do
for project in PleasantUI PleasantUI.DataGrid PleasantUI.ToolKit; do
FOUND=$(find "src/$project" -name "*.nupkg" 2>/dev/null | head -1)
if [ -z "$FOUND" ]; then
echo "ERROR: No .nupkg found anywhere under src/$project"
Expand All @@ -212,7 +214,7 @@ jobs:
- name: Rename packages with canary version
run: |
CANARY_VERSION="${{ steps.version.outputs.canary_version }}"
for project in PleasantUI PleasantUI.DataGrid PleasantUI.MaterialIcons PleasantUI.ToolKit; do
for project in PleasantUI PleasantUI.DataGrid PleasantUI.ToolKit; do
for pkg in src/$project/bin/Release/*.nupkg; do
if [ -f "$pkg" ]; then
BASE_NAME=$(basename "$pkg" .nupkg)
Expand Down Expand Up @@ -741,7 +743,6 @@ jobs:
'Always end with a Packages section listing:' \
'- PleasantUI' \
'- PleasantUI.DataGrid' \
'- PleasantUI.MaterialIcons' \
'- PleasantUI.ToolKit' \
'' \
'Add an Example App section noting that a single-file example application is included in the canary release artifacts for testing the canary build.' \
Expand Down Expand Up @@ -788,7 +789,6 @@ jobs:
printf '\n### Packages\n'
printf '- PleasantUI\n'
printf '- PleasantUI.DataGrid\n'
printf '- PleasantUI.MaterialIcons\n'
printf '- PleasantUI.ToolKit\n'
printf '\n### Example App\n\n'
printf 'A single-file example application is included in the canary release artifacts for this build.\n'
Expand All @@ -815,7 +815,6 @@ jobs:
printf '\n### Packages\n'
printf '- PleasantUI\n'
printf '- PleasantUI.DataGrid\n'
printf '- PleasantUI.MaterialIcons\n'
printf '- PleasantUI.ToolKit\n'
printf '\n### Example App\n\n'
printf 'A single-file example application is included in the canary release artifacts for this build.\n'
Expand Down Expand Up @@ -856,7 +855,7 @@ jobs:
const owner = context.repo.owner;
const repo = context.repo.repo;

const body = `## Canary Release Build\n\n${notes}\n\n### Release Artifacts\n\nDownload all canary release artifacts (NuGet packages + example app) from the workflow run page:\n\n[Download Artifacts](https://github.com/${owner}/${repo}/actions/runs/${runId})\n\nThe "canary-release-artifacts" artifact includes:\n- PleasantUI NuGet packages\n- PleasantUI.DataGrid NuGet packages\n- PleasantUI.MaterialIcons NuGet packages\n- PleasantUI.ToolKit NuGet packages\n- PleasantUI Example app (Linux x64)`;
const body = `## Canary Release Build\n\n${notes}\n\n### Release Artifacts\n\nDownload all canary release artifacts (NuGet packages + example app) from the workflow run page:\n\n[Download Artifacts](https://github.com/${owner}/${repo}/actions/runs/${runId})\n\nThe "canary-release-artifacts" artifact includes:\n- PleasantUI NuGet packages\n- PleasantUI.DataGrid NuGet packages\n- PleasantUI.ToolKit NuGet packages\n- PleasantUI Example app (Linux x64)`;

await github.rest.issues.createComment({
issue_number: context.issue.number,
Expand Down Expand Up @@ -888,7 +887,6 @@ jobs:
echo "The \`canary-release-artifacts\` artifact includes:"
echo "- PleasantUI NuGet packages"
echo "- PleasantUI.DataGrid NuGet packages"
echo "- PleasantUI.MaterialIcons NuGet packages"
echo "- PleasantUI.ToolKit NuGet packages"
echo "- PleasantUI Example app (Linux x64)"
if [ "${{ steps.pr_comment.outcome }}" == "failure" ]; then
Expand Down
19 changes: 8 additions & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
if: steps.tag_check.outputs.exists == 'false'
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore (with retry)
if: steps.tag_check.outputs.exists == 'false'
Expand All @@ -103,18 +103,20 @@ jobs:
max_attempts: 3
retry_wait_seconds: 15
command: |
dotnet restore src/PleasantUI/PleasantUI.csproj
dotnet restore generators/PleasantUI.Localization.Generator/PleasantUI.Localization.Generator.csproj
dotnet restore analyzers/PleasantUI.Localization.Analyzer/PleasantUI.Localization.Analyzer.csproj
dotnet restore src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj
dotnet restore src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj
dotnet restore src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj
dotnet restore src/PleasantUI/PleasantUI.csproj

- name: Build
if: steps.tag_check.outputs.exists == 'false'
run: |
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore
dotnet build generators/PleasantUI.Localization.Generator/PleasantUI.Localization.Generator.csproj --configuration Release --no-restore
dotnet build analyzers/PleasantUI.Localization.Analyzer/PleasantUI.Localization.Analyzer.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj --configuration Release --no-restore
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore

- name: Verify packages exist
if: steps.tag_check.outputs.exists == 'false'
Expand All @@ -123,7 +125,7 @@ jobs:
find src/ -name "*.nupkg" 2>/dev/null | sort

FAILED=0
for project in PleasantUI PleasantUI.DataGrid PleasantUI.MaterialIcons PleasantUI.ToolKit; do
for project in PleasantUI PleasantUI.DataGrid PleasantUI.ToolKit; do
FOUND=$(find "src/$project" -name "*.nupkg" 2>/dev/null | head -1)
if [ -z "$FOUND" ]; then
echo "ERROR: No .nupkg found anywhere under src/$project"
Expand Down Expand Up @@ -665,7 +667,6 @@ jobs:
'Always end with a Packages section listing:' \
'- PleasantUI' \
'- PleasantUI.DataGrid' \
'- PleasantUI.MaterialIcons' \
'- PleasantUI.ToolKit' \
'' \
'---' \
Expand Down Expand Up @@ -709,7 +710,6 @@ jobs:
printf '\n### Packages\n'
printf '- PleasantUI\n'
printf '- PleasantUI.DataGrid\n'
printf '- PleasantUI.MaterialIcons\n'
printf '- PleasantUI.ToolKit\n'
} > /tmp/release_notes.md
echo "Using simple commit-based release notes (AI generation skipped)."
Expand All @@ -729,7 +729,6 @@ jobs:
printf '\n### Packages\n'
printf '- PleasantUI\n'
printf '- PleasantUI.DataGrid\n'
printf '- PleasantUI.MaterialIcons\n'
printf '- PleasantUI.ToolKit\n'
} > /tmp/release_notes.md
echo "WARNING: AI release notes generation failed. Used commit-based fallback."
Expand All @@ -753,7 +752,6 @@ jobs:
files: |
src/PleasantUI/bin/Release/*.nupkg
src/PleasantUI.DataGrid/bin/Release/*.nupkg
src/PleasantUI.MaterialIcons/bin/Release/*.nupkg
src/PleasantUI.ToolKit/bin/Release/*.nupkg

- name: Confirm release created
Expand All @@ -774,7 +772,6 @@ jobs:
for pkg in \
src/PleasantUI/bin/Release/*.nupkg \
src/PleasantUI.DataGrid/bin/Release/*.nupkg \
src/PleasantUI.MaterialIcons/bin/Release/*.nupkg \
src/PleasantUI.ToolKit/bin/Release/*.nupkg; do
echo "Pushing $pkg"
dotnet nuget push "$pkg" \
Expand Down
Loading
Loading