Skip to content

Commit

Permalink
Add support for ARM64, update extensions and docs, allow non-Windows …
Browse files Browse the repository at this point in the history
…builds (#1196)

* Append dev containers

* Add support for ARM64 for WPF UI VS22 extension

* Update .gitignore

* Update pipelines

* Bump version

* Update docs

* Update wpf-ui-lock.yml
  • Loading branch information
pomianowski committed Aug 11, 2024
1 parent d27947e commit c3a50f7
Show file tree
Hide file tree
Showing 33 changed files with 1,090 additions and 8,064 deletions.
16 changes: 16 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "WPF UI Docs Dev Container",
"image": "mcr.microsoft.com/dotnet/sdk:8.0",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "20"
}
},
"postCreateCommand": "./.devcontainer/post-create.sh",
"forwardPorts": [
8080
],
"remoteEnv": {
"NODE_ENV": "development"
}
}
14 changes: 14 additions & 0 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh

apt-get update
apt-get install -y openssh-client

cd docs/templates
npm ci
npm run build
dotnet tool install -g docfx

export PATH="$PATH:/root/.dotnet/tools"

cd ../
docfx docfx.json --serve
12 changes: 10 additions & 2 deletions .github/workflows/wpf-ui-cd-extension.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,17 @@ jobs:
run: nuget restore Wpf.Ui.sln
- name: Build the solution
run: msbuild src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj /t:Rebuild -p:Configuration=Release -p:RestorePackages=false -p:Platform="x64" -p:GITHUB_ACTIONS=True
run: msbuild src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj /t:Rebuild -p:Configuration=Release -p:RestorePackages=false -p:Platform="x64" -p:ProductArchitecture="amd64" -p:GITHUB_ACTIONS=True
- name: Build the solution
run: msbuild src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj /t:Rebuild -p:Configuration=Release -p:RestorePackages=false -p:Platform="arm64" -p:ProductArchitecture="arm64" -p:GITHUB_ACTIONS=True
- uses: actions/upload-artifact@v4
with:
name: wpf-ui-vs22-extension
name: wpf-ui-vs22-extension-x64
path: src\Wpf.Ui.Extension\bin\x64\Release\Wpf.Ui.Extension.vsix
- uses: actions/upload-artifact@v4
with:
name: wpf-ui-vs22-extension-arm64
path: src\Wpf.Ui.Extension\bin\arm64\Release\Wpf.Ui.Extension.vsix
16 changes: 16 additions & 0 deletions .github/workflows/wpf-ui-cd-nuget.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ jobs:
with:
dotnet-version: 8.x

- name: Fetch the certificate
run: |
$signing_keys_payload = [System.Convert]::FromBase64String("${{ secrets.STRONG_NAME_KEY }}")
$currentDirectory = Get-Location
$certificatePath = Join-Path -Path $currentDirectory -ChildPath "src/lepo.snk"
[IO.File]::WriteAllBytes("$certificatePath", $signing_keys_payload)
- name: Install dependencies
run: dotnet restore

Expand All @@ -31,6 +38,9 @@ jobs:
- name: Build
run: dotnet build src\Wpf.Ui.Abstractions\Wpf.Ui.Abstractions.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true

- name: Build
run: dotnet build src\Wpf.Ui.DependencyInjection\Wpf.Ui.DependencyInjection.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true

- name: Build
run: dotnet build src\Wpf.Ui.Tray\Wpf.Ui.Tray.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true

Expand All @@ -39,3 +49,9 @@ jobs:

- name: Publish the symbols to NuGet.org
run: nuget push **\*.snupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'

- name: Upload NuGet packages as artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-packages
path: '**\*.nupkg'
2 changes: 1 addition & 1 deletion .github/workflows/wpf-ui-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: wpf-ui-lock

on:
schedule:
- cron: '0 * * * *'
- cron: '0 0 * * 0'
workflow_dispatch:

permissions:
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@
## files generated by popular Visual Studio add-ons.
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# Strong Name Key files
src/lepo.snk

# DocFX
docs/api/

# Desktop service store
.DS_Store

# User-specific files
*.rsuser
*.suo
Expand Down
3 changes: 2 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
</PropertyGroup>

<PropertyGroup>
<Version>4.0.0-rc.1</Version>
<Version>4.0.0-rc.2</Version>
<AssemblyVersion>4.0.0</AssemblyVersion>
</PropertyGroup>

<PropertyGroup>
Expand Down
41 changes: 3 additions & 38 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -44,46 +44,11 @@
<EnableSingleFileAnalyzer>true</EnableSingleFileAnalyzer>
</PropertyGroup>

<!--
The following target has been ported from TerraFX.Interop.Windows.
See: https://github.com/terrafx/terrafx.interop.windows.
Using [module: SkipLocalsInit] suppresses the .init flag for local variables for the entire module.
This doesn't affect the correctness of methods in this assembly, as none of them are relying on the
JIT ensuring that all local memory is zeroed out to work. Doing this can provide some minor
performance benefits, depending on the workload.
-->
<PropertyGroup>
<GeneratedSkipLocalsInitFile Condition="'$(GeneratedSkipLocalsInitFile)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).SkipLocalsInit.g.cs</GeneratedSkipLocalsInitFile>
<GeneratedSkipLocalsInitFileLines>
<![CDATA[//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[module: global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]]]>
</GeneratedSkipLocalsInitFileLines>
<PropertyGroup Condition="'$(SourceLinkEnabled)' == 'true' AND '$(GeneratePackageOnBuild)' == 'true'">
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(RepositoryDirectory)\src\lepo.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>

<Target Name="GenerateSkipLocalsInit"
BeforeTargets="BeforeCompile;CoreCompile"
DependsOnTargets="PrepareForBuild"
Condition="'$(Language)' == 'C#'"
Inputs="$(MSBuildAllProjects)"
Outputs="$(GeneratedSkipLocalsInitFile)">

<!-- Write the file with the attribute -->
<WriteLinesToFile Lines="$(GeneratedSkipLocalsInitFileLines)" Overwrite="true" WriteOnlyWhenDifferent="true" File="$(GeneratedSkipLocalsInitFile)" />

<!-- Include the generated file in the list of files to compile -->
<ItemGroup>
<Compile Include="$(GeneratedSkipLocalsInitFile)" />
</ItemGroup>
</Target>

<Target Name="WpfSourceLinkWorkaround" BeforeTargets="InitializeSourceRootMappedPaths" Condition="'$(UseWPF)' == 'true'">
<!-- WPF causes an error with SourceLink because its build targets create a temporary project without a PackageReference to SourceLink, see https://github.com/dotnet/sourcelink/issues/91,
causing the @SourceRoot property to be unexpectedly empty for the MapSourceRoot task
Expand Down
4 changes: 2 additions & 2 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="Microsoft.VisualStudio.CoreUtility" Version="17.2.3194" />
<PackageVersion Include="Microsoft.VisualStudio.SDK" Version="17.3.32804.24" />
<PackageVersion Include="Microsoft.VSSDK.BuildTools" Version="17.7.2196" />
<PackageVersion Include="Microsoft.VisualStudio.SDK" Version="17.10.40171" />
<PackageVersion Include="Microsoft.VSSDK.BuildTools" Version="17.11.414" />
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2592.51" />
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.2428" />
<PackageVersion Include="NativeMethods" Version="0.0.3" />
Expand Down
42 changes: 14 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

# WPF UI

[Created with ❤ in Poland by lepo.co](https://dev.lepo.co/)
A simple way to make your application written in WPF keep up with modern design trends. Library changes the base elements like `Page`, `ToggleButton` or `List`, and also includes additional controls like `Navigation`, `NumberBox`, `Dialog` or `Snackbar`.
[Created with ❤ in Poland by lepo.co](https://lepo.co/)
WPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly. Library changes the base elements like `Page`, `ToggleButton` or `List`, and also includes additional controls like `Navigation`, `NumberBox`, `Dialog` or `Snackbar`.

[![Discord](https://img.shields.io/discord/1071051348348514375?label=discord)](https://discord.gg/AR9ywDUwGq) [![GitHub license](https://img.shields.io/github/license/lepoco/wpfui)](https://github.com/lepoco/wpfui/blob/master/LICENSE) [![Nuget](https://img.shields.io/nuget/v/WPF-UI)](https://www.nuget.org/packages/WPF-UI/) [![Nuget](https://img.shields.io/nuget/dt/WPF-UI?label=nuget)](https://www.nuget.org/packages/WPF-UI/) [![VS 2022 Downloads](https://img.shields.io/visual-studio-marketplace/i/lepo.WPF-UI?label=vs-2022)](https://marketplace.visualstudio.com/items?itemName=lepo.WPF-UI) [![Sponsors](https://img.shields.io/github/sponsors/lepoco)](https://github.com/sponsors/lepoco)

Expand All @@ -14,15 +14,22 @@ A simple way to make your application written in WPF keep up with modern design

https://bank.gov.ua/en/about/humanitarian-aid-to-ukraine

### Refugees in Poland
![ua](https://user-images.githubusercontent.com/13592821/184498735-d296feb8-0f9b-45df-bc0d-b7f0b6f580ed.png)

Many forms of support for refugees from Ukraine and organizations supporting them are available on the Polish government website
https://pomagamukrainie.gov.pl/chce-pomoc/prywatnie/pomoc-finansowa
## 🛟 Support plans

![ua](https://user-images.githubusercontent.com/13592821/184498735-d296feb8-0f9b-45df-bc0d-b7f0b6f580ed.png)
To ensure you receive the expert guidance you need, we offer a variety of support plans designed to meet the diverse needs of our community. Whether you are looking to modernize your WPF applications or need assistance with our other libraries, our tailored support solutions are here to help. From priority email support to 24/7 dedicated assistance, we provide flexible plans to suit your project requirements.

## 🚀 Getting started
[Take a look at the lepo.co support plans](https://lepo.co/support)

## 🤝 Help us keep working on this project

Support the development of WPF UI and other innovative projects by becoming a sponsor on GitHub! Your monthly or one-time contributions help us continue to deliver high-quality, open-source solutions that empower developers worldwide.

[Sponsor WPF UI on GitHub](https://github.com/sponsors/lepoco)

## 🚀 Getting started
ąś
For a starter guide see our [documentation](https://wpfui.lepo.co/documentation/).

**WPF UI Gallery** is a free application available in the _Microsoft Store_, with which you can test all functionalities.
Expand All @@ -45,18 +52,12 @@ https://marketplace.visualstudio.com/items?itemName=lepo.wpf-ui

![Monaco Editor](https://user-images.githubusercontent.com/13592821/258610583-7d71f69d-45b3-4be6-bcb8-8cf6cd60a2ff.png)

![Text Editor Sample](https://user-images.githubusercontent.com/13592821/165918838-a65cbb86-4fc4-4efb-adb7-e39027fb661f.png)

![Store App Sample](https://user-images.githubusercontent.com/13592821/165918914-6948fb42-1ee1-4c36-870e-65bb8ffe3c8a.png)

## 🏗️ Works with Visual Studio Designer

![VS2022 Designer Preview](https://user-images.githubusercontent.com/13592821/165919228-0aa3a36c-fb37-4198-835e-53488845226c.png)

## 🏁 Virtualized panels for displaying thousands controls

![WPF UI virtualized wrap panels](https://user-images.githubusercontent.com/13592821/167254364-bc7d1106-2740-4337-907c-0e0f1ce4c320.png)

## ❤️ Custom Tray icon and menu in pure WPF

![WPF UI Tray menu in WPF](https://user-images.githubusercontent.com/13592821/166259470-2d48a88e-47ce-4f8f-8f07-c9b110de64a5.png)
Expand All @@ -65,14 +66,6 @@ https://marketplace.visualstudio.com/items?itemName=lepo.wpf-ui

![WPF UI Snap Layout for WPF](https://user-images.githubusercontent.com/13592821/166259869-e60d37e4-ded4-46bf-80d9-f92c47266f34.png)

## 🕹️ Radiograph

Radiograph is a computer hardware monitoring app that uses **WPF UI**.

![Radiograph screenshot](https://user-images.githubusercontent.com/13592821/165918625-6cc72bb1-2617-40fa-a193-60fea0efcd65.png)

[<img src="https://github.com/lepoco/wpfui/blob/main/.github/assets/microsoft-badge.png?raw=true" width="120">](https://www.microsoft.com/en-us/p/radiograph/9nh1p86h06cg?activetab=pivot:overviewtab)

## 📖 Documentation

Documentation can be found at https://wpfui.lepo.co/. We also have a [tutorial](https://wpfui.lepo.co/tutorial/) over there for newcomers.
Expand Down Expand Up @@ -158,13 +151,6 @@ In the app dictionaries, you can add an alternate path to the font
<FontFamily x:Key="SegoeFluentIcons">pack://application:,,,/;component/Fonts/#Segoe Fluent Icons</FontFamily>
```

## Compilation

Use Visual Studio 2022 and invoke the .sln.

Visual Studio
**WPF UI** is an Open Source project. You are entitled to download and use the freely available Visual Studio Community Edition to build, run or develop for WPF UI. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.

## Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
Expand Down
36 changes: 28 additions & 8 deletions docs/docfx.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
{
"src": [
{
"files": ["src/Wpf.Ui/*.csproj", "src/Wpf.Ui.Tray/*.csproj", "src/Wpf.Ui.Abstractions/*.csproj", "src/Wpf.Ui.DependencyInjection/*.csproj"],
"files": [
"src/Wpf.Ui/*.csproj",
"src/Wpf.Ui.Tray/*.csproj",
"src/Wpf.Ui.Abstractions/*.csproj",
"src/Wpf.Ui.DependencyInjection/*.csproj"
],
"src": "../"
}
],
Expand All @@ -18,8 +23,13 @@
"build": {
"content": [
{
"files": ["**/*.{md,yml}"],
"exclude": ["_site/**", "obj/**"]
"files": [
"**/*.{md,yml}"
],
"exclude": [
"_site/**",
"obj/**"
]
}
],
"resource": [
Expand All @@ -30,20 +40,30 @@
"manifest.webmanifest",
"robots.txt"
],
"exclude": ["_site/**", "obj/**"]
"exclude": [
"_site/**",
"obj/**"
]
}
],
"xrefService": ["https://xref.docs.microsoft.com/query?uid={uid}"],
"postProcessors": ["ExtractSearchIndex"],
"xrefService": [
"https://xref.docs.microsoft.com/query?uid={uid}"
],
"postProcessors": [
"ExtractSearchIndex"
],
"globalMetadata": {
"_appTitle": "WPF UI",
"_appName": "WPF UI",
"_appFaviconPath": "images/favicon.ico",
"_appLogoPath": "images/wpfui.png",
"_appFooter": "<span>Made with <a href=\"https://dotnet.github.io/docfx\" rel=\"noreferrer\">docfx</a>, <a href=\"https://chat.openai.com/\" rel=\"noreferrer\">ChatGPT</a> and <a href=\"https://www.deepl.com/\" rel=\"noreferrer\">DeepL</a> | Copyright © 2024 <a href=\"https://dev.lepo.co/\">lepo.co</a></span>"
"_appFooter": "<span>Made with <a href=\"https://dotnet.github.io/docfx\" rel=\"noreferrer\">docfx</a>, <a href=\"https://chat.openai.com/\" rel=\"noreferrer\">ChatGPT</a> and <a href=\"https://www.deepl.com/\" rel=\"noreferrer\">DeepL</a> | Copyright © 2024 <a href=\"https://lepo.co/\">lepo.co</a></span>"
},
"dest": "_site",
"template": ["default", "templates/wpfui"],
"template": [
"default",
"templates/wpfui"
],
"globalMetadataFiles": [],
"fileMetadataFiles": [],
"markdownEngineName": "markdig",
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@

![Text Editor Sample](https://user-images.githubusercontent.com/13592821/165918838-a65cbb86-4fc4-4efb-adb7-e39027fb661f.png)

[Created with ❤ in Poland by lepo.co](https://dev.lepo.co/)
[Created with ❤ in Poland by lepo.co](https://lepo.co/)
A simple way to make your application written in WPF keep up with modern design trends. Library changes the base elements like `Page`, `ToggleButton` or `List`, and also includes additional controls like `Navigation`, `NumberBox`, `Dialog` or `Snackbar`.

[![Discord](https://img.shields.io/discord/1071051348348514375?label=discord)](https://discord.gg/AR9ywDUwGq) [![GitHub license](https://img.shields.io/github/license/lepoco/wpfui)](https://github.com/lepoco/wpfui/blob/master/LICENSE) [![Nuget](https://img.shields.io/nuget/v/WPF-UI)](https://www.nuget.org/packages/WPF-UI/) [![Nuget](https://img.shields.io/nuget/dt/WPF-UI?label=nuget)](https://www.nuget.org/packages/WPF-UI/) [![VS 2022 Downloads](https://img.shields.io/visual-studio-marketplace/i/lepo.WPF-UI?label=vs-2022)](https://marketplace.visualstudio.com/items?itemName=lepo.WPF-UI) [![Sponsors](https://img.shields.io/github/sponsors/lepoco)](https://github.com/sponsors/lepoco)
Expand Down
Loading

0 comments on commit c3a50f7

Please sign in to comment.