Skip to content

Commit 3095f34

Browse files
committed
Build PanelSwWix4 packages, instead of WixToolset
1 parent b4da272 commit 3095f34

464 files changed

Lines changed: 1142 additions & 1087 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
name: Build WiX Toolset v7
1+
name: Build PanelSwWix Toolset v8
22

33
on:
4-
push:
5-
branches:
6-
- main
7-
tags:
8-
- v**
9-
pull_request:
10-
branches:
11-
- main
124
workflow_dispatch:
5+
inputs:
6+
publish_nuget:
7+
description: 'Publish nuget package?'
8+
required: true
9+
default: false
10+
type: boolean
1311

1412
env:
1513
DOTNET_NOLOGO: true
@@ -63,7 +61,10 @@ jobs:
6361
client-id: ${{ secrets.WIX_SIGNING_CLIENTID }}
6462
tenant-id: ${{ secrets.WIX_SIGNING_TENANTID }}
6563

66-
- name: Build wix7
64+
- name: Decrypt snk
65+
run: gpg --quiet --batch --yes --decrypt --passphrase="${{ secrets.GPG_PASSPHRASE }}" --output "${{ github.workspace }}\src\psw-wix.snk" "${{ github.workspace }}\src\psw-wix.snk.gpg"
66+
67+
- name: Build psw-wix-8
6768
shell: cmd
6869
run: ./src/build_official.cmd
6970
env:
@@ -72,12 +73,23 @@ jobs:
7273
AZURE_TENANT_ID: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_TENANTID || '' }}
7374
SigningKeyVaultUri: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_VAULTURI || '' }}
7475
SigningCertName: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_CERTNAME || '' }}
76+
BuildRunNumber: ${{ github.run_number }}
77+
78+
- name: Resolve build version
79+
if: always()
80+
run: |
81+
$xmlDoc = New-Object System.Xml.XmlDocument
82+
$file = [System.IO.Path]::Combine("${{ github.workspace }}", "Directory.Packages.props")
83+
[xml]$xmlDoc = Get-Content $file
84+
$node = $xmlDoc.SelectSingleNode('//PackageVersion[@Include="PanelSwWix4.Dtf.Compression"]/@Version')
85+
Add-Content -Path ${{ github.env }} -Value ("WIX_VERSION=" + $node.Value)
7586
7687
- name: Validate test results
7788
shell: cmd
7889
run: 7z a build\testresults.zip @src\testresultfilelist.txt
7990

8091
- name: Save build
92+
if: always()
8193
uses: actions/upload-artifact@v4
8294
with:
8395
name: artifacts
@@ -106,6 +118,13 @@ jobs:
106118
name: logs_${{ github.run_id }}
107119
path: build/logs/
108120

109-
- name: Push to GitHub Packages
110-
if: ${{ github.event_name == 'push' && github.repository_owner == 'wixtoolset' && (env.WixOfficialBuild == 'true' || github.ref == 'refs/heads/main') }}
111-
run: dotnet nuget push "build/artifacts/**/*.nupkg" --source https://nuget.pkg.github.com/wixtoolset/index.json --api-key ${{ secrets.GITHUB_TOKEN }} --skip-duplicate
121+
- name: Publish nuget packages to github
122+
if: ${{ github.event.inputs.publish_nuget == 'true' }}
123+
env:
124+
GITHUB_TOKEN: ${{ secrets.TAGGER_PAT }}
125+
run: |
126+
dotnet nuget add source --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
127+
dotnet nuget push build/artifacts/**/PanelSwWix4.*.${{ env.WIX_VERSION }}.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source github
128+
dotnet nuget push build/artifacts/**/PanelSwWix4.*.${{ env.WIX_VERSION }}.nupkg --api-key ${{ secrets.NUGET_TOKEN }} --source https://api.nuget.org/v3/index.json
129+
git tag ${{ env.WIX_VERSION }}
130+
git push --tags

.github/workflows/cla.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: "CLA-Bot signature check"
13-
uses: cla-assistant/github-action@v2.3.0
13+
uses: cla-assistant/github-action@v2.6.1
1414
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
1515
env:
1616
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Publish a Build of WiX Toolset v4+
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
run_id:
7+
description: 'Build ID'
8+
required: true
9+
type: string
10+
11+
jobs:
12+
build:
13+
name: Publish
14+
runs-on: windows-latest
15+
steps:
16+
- name: Resolve build commit
17+
env:
18+
GITHUB_TOKEN: ${{ github.token }}
19+
run: |
20+
$buildSha = (gh run view "${{ github.event.inputs.run_id }}" --json headSha --jq ".headSha" --repo "${{ github.repositoryUrl }}") | Out-String
21+
Write-Host ("Build SHA is " + $buildSha)
22+
if ($buildSha -notmatch '[0-9a-fA-F]{40}') {
23+
exit 1
24+
}
25+
Add-Content -Path ${{ github.env }} -Value ("BUILD_SHA=" + $buildSha)
26+
27+
- name: Checkout code
28+
uses: actions/checkout@v3
29+
with:
30+
fetch-depth: 0
31+
ref: ${{ env.BUILD_SHA }}
32+
33+
- name: Download build artifact
34+
env:
35+
GH_TOKEN: ${{ github.token }}
36+
run: |
37+
gh run download "${{ github.event.inputs.run_id }}" --name artifacts
38+
39+
- name: Resolve build version
40+
run: |
41+
$sdkFileName = Get-Childitem –Path "PanelSwWix4.Sdk.*.nupkg" -Name
42+
$sdkFileName = $sdkFileName.Replace("PanelSwWix4.Sdk.", "");
43+
$sdkFileName = $sdkFileName.Replace(".nupkg", "");
44+
Add-Content -Path ${{ github.env }} -Value ("WIX_VERSION=" + $sdkFileName)
45+
46+
- name: Publish nuget packages to github
47+
if: ${{ env.WIX_VERSION != '' }}
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.TAGGER_PAT }}
50+
run: |
51+
dotnet nuget add source --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
52+
dotnet nuget push "PanelSwWix4.*.${{ env.WIX_VERSION }}.nupkg" --api-key ${{ secrets.GITHUB_TOKEN }} --source github --skip-duplicate
53+
dotnet nuget push "PanelSwWix4.*.${{ env.WIX_VERSION }}.nupkg" --api-key ${{ secrets.NUGET_TOKEN }} --source https://api.nuget.org/v3/index.json --skip-duplicate
54+
git tag ${{ env.WIX_VERSION }}
55+
git push --tags

.github/workflows/test-report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Generate Test Reports
17-
uses: dorny/test-reporter@v1
17+
uses: dorny/test-reporter@v2.0.0
1818
with:
1919
artifact: logs_${{ github.event.workflow_run.id }}
2020
name: Xunit Tests

README.md

Lines changed: 7 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,11 @@
1-
![The WiX Toolset Logo](https://github.com/wixtoolset/.github/raw/master/profile/images/readme-header.png)
1+
<img src="https://github.com/wixtoolset/Home/raw/master/imgs/wix-white-bg.png" alt="WiX Toolset" height="128" />
22

3-
[![latest version](https://img.shields.io/nuget/vpre/wix)](https://www.nuget.org/packages/wix)
4-
[![download count](https://img.shields.io/nuget/dt/wix)](https://www.nuget.org/stats/packages/WiX?groupby=Version)
5-
[![build status](https://img.shields.io/github/actions/workflow/status/wixtoolset/wix/build.yml?branch=main)](https://github.com/wixtoolset/wix/actions/workflows/build.yml?query=branch%3Amain)
3+
[![latest version](https://img.shields.io/nuget/vpre/wix)](https://www.nuget.org/packages/PanelSwWix4)
4+
[![download count](https://img.shields.io/nuget/dt/wix)](https://www.nuget.org/stats/packages/PanelSwWix4?groupby=Version)
5+
[![build status](https://img.shields.io/github/actions/workflow/status/nirbar/wix4/build.yml?branch=develop)](https://github.com/wixtoolset/wix/actions/workflows/build.yml?query=branch%3Adevelop)
66

7-
# WiX Toolset
7+
# PanelSwWix4: Custom WiX Toolset
88

9-
The WiX Toolset is the most powerful set of tools available to create your Windows installation experience. This repository contains the WiX Toolset code itself.
9+
This repository contains the PanelSwWix4: A custom WiX Toolset codebase
1010

11-
If you're new to WiX, check out our [Quick Start](https://docs.firegiant.com/quick-start/) to build your first installation package in just a few minutes.
12-
13-
14-
## Open Source Maintenance Fee
15-
16-
<a href="https://opensourcemaintenancefee.org/"><img src='https://github.com/wixtoolset/.github/blob/master/profile/images/osmf-logo-square-dark.png' height='146' align='right' /></a>
17-
18-
To ensure the long-term sustainability of this project, use of the WiX Toolset requires an [Open Source Maintenance Fee](https://opensourcemaintenancefee.org). While the source code is freely available under the terms of the [LICENSE](./LICENSE.TXT), all other aspects of the project--including opening or commenting on issues, participating in discussions and downloading releases--require [adherence to the Maintenance Fee](./OSMFEULA.txt).
19-
20-
In short, if you use this project to generate revenue, the [Maintenance Fee is required](./OSMFEULA.txt).
21-
22-
To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixtoolset).
23-
24-
25-
## Developing WiX
26-
27-
### Prerequisites
28-
29-
Before building the WiX Toolset, ensure you have Visual Studio 2026 (17.8.2 or higher) with the following installed:
30-
31-
| Workloads |
32-
| :-------- |
33-
| ASP.NET and web development |
34-
| .NET desktop development |
35-
| Desktop development with C++ |
36-
37-
| Individual components |
38-
| :-------------------- |
39-
| .NET 10.0 Runtime (Long Term Support) |
40-
| .NET Framework 4.7.2 SDK |
41-
| .NET Framework 4.7.2 targeting pack |
42-
| .NET Framework 4.6.2 targeting pack |
43-
| ATL v143 - VS 2026 C++ x64/x86 build tools (Latest) |
44-
| MSVC v143 - VS 2026 C++ ARM64/ARM64EC build tools (Latest) |
45-
| MSVC v143 - VS 2026 C++ x64/x86 build tools (Latest) |
46-
| Git for Windows |
47-
48-
Also, download the latest [nuget.exe command-line tool](https://www.nuget.org/downloads) and place it in a directory on your path.
49-
50-
#### Getting started:
51-
52-
* [Fork the WiX repository](https://github.com/wixtoolset/wix/fork)
53-
into your own GitHub repository
54-
* Clone the WiX repository from your fork (`git clone https://github.com/yourdomain/wix.git`)
55-
into the directory of your choice
56-
57-
#### To build the WiX toolset:
58-
59-
* Start a VS2026 'Developer Command Prompt'
60-
* Change directory to the root of the cloned repository
61-
* Issue the command `devbuild` (or `devbuild release` if you want to create a release version)
62-
63-
#### Executing your newly built WiX toolset
64-
65-
* `build\wix\Debug\publish\wix\wix --help` (Change `Debug` to `Release` if you built in release mode)
66-
67-
#### Pull request expectations
68-
69-
* Pick an [outstanding WiX issue](https://github.com/wixtoolset/issues/issues?q=is%3Aissue+is%3Aopen+label%3A%22up+for+grabs%22) (or [create a new one](https://github.com/wixtoolset/issues/issues/new/choose)). Add a comment requesting that you be assigned to the issue. Wait for confirmation.
70-
* To create a pull request, [fork a new branch](https://github.com/wixtoolset/wix/fork) from the `main` branch
71-
* Make changes to effect whatever changed behavior is required for the pull request
72-
* Push the changes to your repository origin as needed
73-
* If the `main` branch has changed since you created your branch, rebase to the latest updates.
74-
* If needed (ie, you squashed or rebased), do a force push of your branch
75-
* Create a pull request with your branch against the WiX repository.
76-
77-
## Additional information
78-
79-
* Web site: https://www.firegiant.com/wixtoolset/
80-
* Documentation [WiX Documentation](https://docs.firegiant.com/wixtoolset/)
81-
* Issue Tracker: [GitHub Issues](https://github.com/wixtoolset/issues/issues)
82-
* Discussions: [WiX Toolset Discussions](https://github.com/orgs/wixtoolset/discussions)
11+
# Customizations:

nuget.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<package pattern="*" />
1515
</packageSource>
1616
<packageSource key="build">
17-
<package pattern="WixToolset.*" />
17+
<package pattern="PanelSwWix4.*" />
1818
<package pattern="WixInternal.*" />
1919
</packageSource>
2020
</packageSourceMapping>

src/Directory.Build.rsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
-nologo
22
-nr:false
3-
-v:m
3+
-v:n
44

src/Directory.Build.targets

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,21 @@
2020
<Import Project="$(RootBuildFolder)SomeVerInfo.props" Condition=" '$(SomeVerInfoImported)'!='true' " />
2121
<Import Project="internal/SetBuildNumber/SomeVerInfo.targets" />
2222

23-
<PropertyGroup>
24-
<RepositoryUrl Condition=" '$(RepositoryUrl)'=='' ">https://github.com/wixtoolset/wix</RepositoryUrl>
25-
<RepositoryType Condition=" '$(RepositoryType)'=='' ">git</RepositoryType>
26-
<RepositoryCommit Condition=" '$(RepositoryCommit)'=='' ">$(SomeVerInfoSha)</RepositoryCommit>
27-
<PublishRepositoryUrl>true</PublishRepositoryUrl>
28-
29-
<ProjectUrl Condition=" '$(ProjectUrl)'=='' and '$(RepositoryUrl)'!='' ">$(RepositoryUrl)</ProjectUrl>
30-
</PropertyGroup>
23+
<Target Name="__FixupGitBaseVersion" BeforeTargets="_GitPopulateVersionInfo">
24+
<PropertyGroup>
25+
<BuildRunNumber Condition=" '$(BuildRunNumber)' == '' ">0</BuildRunNumber>
26+
<GitBaseVersion>$(GitBaseVersion.Replace('{apiversion}', '$(ApiVersion)'))</GitBaseVersion>
27+
<GitBaseVersion>$(GitBaseVersion.Replace('{build}', "$(BuildRunNumber.PadLeft(4, '0'))"))</GitBaseVersion>
28+
<GitBaseVersion>$(GitBaseVersion.Replace('{height}', '$(GitCommits)'))</GitBaseVersion>
29+
<GitBaseVersion>$(GitBaseVersion.Replace('{commits}', '$(GitCommits)'))</GitBaseVersion>
30+
<RepositoryUrl Condition=" '$(RepositoryUrl)'=='' and '$(GitRepositoryUrl)'!='' ">$(GitRepositoryUrl.Replace('.git',''))</RepositoryUrl>
31+
<RepositoryType Condition=" '$(RepositoryType)'=='' ">git</RepositoryType>
32+
<RepositoryCommit Condition=" '$(RepositoryCommit)'=='' ">$(SomeVerInfoSha)</RepositoryCommit>
33+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
34+
35+
<ProjectUrl Condition=" '$(ProjectUrl)'=='' and '$(RepositoryUrl)'!='' ">$(RepositoryUrl)</ProjectUrl>
36+
</PropertyGroup>
37+
</Target>
3138

3239
<PropertyGroup>
3340
<GenerateNuspecDependsOn>
@@ -37,14 +44,26 @@
3744
</GenerateNuspecDependsOn>
3845
</PropertyGroup>
3946

47+
<PropertyGroup Label="Default nuspec properties">
48+
<WixPackageId Condition=" '$(WixPackageId)'=='' And '$(PackageId)'!='' ">$(PackageId)</WixPackageId>
49+
<WixPackageId Condition=" '$(WixPackageId)'=='' ">$(MSBuildProjectName)</WixPackageId>
50+
<WixPackageId>$(WixPackageId.Replace('PanelSwWix4.', 'WixToolset.'))</WixPackageId>
51+
<PackageId Condition=" '$(PackageId)'=='' ">$(MSBuildProjectName)</PackageId>
52+
<PackageId>$(PackageId.Replace('WixToolset.', 'PanelSwWix4.'))</PackageId>
53+
<Title Condition=" '$(Title)'=='' ">$(Description)</Title>
54+
</PropertyGroup>
55+
56+
<ItemGroup Condition=" '$(IsWixExtension)' == 'true' ">
57+
<Content Include="$(MSBuildProjectDirectory)\$(MSBuildProjectName).targets" PackagePath="build\$(PackageId).targets"/>
58+
<Content Include="$(TargetPath)" PackagePath="wixext4" />
59+
</ItemGroup>
60+
4061
<Target Name="__SetNuspecProperties"
4162
Condition=" Exists('$(MSBuildProjectName).nuspec') ">
4263
<PropertyGroup>
4364
<NuspecFile Condition=" '$(NuspecFile)'=='' ">$(MSBuildProjectName).nuspec</NuspecFile>
44-
<PackageId Condition=" '$(PackageId)'=='' ">$(MSBuildProjectName)</PackageId>
45-
<Title Condition=" '$(Title)'=='' ">$(Description)</Title>
4665
<NuspecBasePath Condition=" '$(NuspecBasePath)'=='' ">$(OutputPath)</NuspecBasePath>
47-
<NuspecProperties>$(NuspecProperties);Id=$(PackageId);Version=$(PackageVersion);MajorVersion=$(SomeVerInfoMajor);NextMajorVersion=$(SomeVerInfoNextMajor);Authors=$(Authors);Configuration=$(Configuration)</NuspecProperties>
66+
<NuspecProperties>$(NuspecProperties);Id=$(PackageId);WixId=$(WixPackageId);Version=$(PackageVersion);MajorVersion=$(SomeVerInfoMajor);NextMajorVersion=$(SomeVerInfoNextMajor);Authors=$(Authors);Configuration=$(Configuration)</NuspecProperties>
4867
<NuspecProperties>$(NuspecProperties);Copyright=$(Copyright);Description=$(Description);Title=$(Title)</NuspecProperties>
4968
<NuspecProperties>$(NuspecProperties);RepositoryType=$(RepositoryType);RepositoryCommit=$(RepositoryCommit);RepositoryUrl=$(RepositoryUrl)</NuspecProperties>
5069
<NuspecProperties>$(NuspecProperties);PackageTags=$(PackageTags)</NuspecProperties>

src/Directory.csproj.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<LangVersion Condition=" '$(TargetFrameworkVersion)'=='' ">14.0</LangVersion>
66
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
77
<SignAssembly>true</SignAssembly>
8-
<AssemblyOriginatorKeyFile>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk))</AssemblyOriginatorKeyFile>
8+
<AssemblyOriginatorKeyFile>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)psw-wix.snk))</AssemblyOriginatorKeyFile>
99
<CreateDocumentation Condition=" '$(CreateDocumentationFile)'!='true' ">false</CreateDocumentation>
1010
<DocumentationFile Condition=" '$(CreateDocumentationFile)'=='true' ">$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
1111
<DebugType Condition=" '$(DebugType)'=='' ">embedded</DebugType>

src/Directory.csproj.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<ItemGroup Condition=" '$(IsWixTestProject)'!='true' ">
2323
<Content Include="$(PackageEulaSource)" Pack="true" PackagePath="/" />
2424
<Content Include="$(PackageIconSource)" Pack="true" PackagePath="/" />
25-
<Content Include="$(PackageLicenseAcceptanceTargets)" Pack="true" PackagePath="build/$(MSBuildProjectName).targets"
25+
<Content Include="$(PackageLicenseAcceptanceTargets)" Pack="true" PackagePath="build/$(MSBuildProjectName.Replace('WixToolset.', 'PanelSwWix4.')).targets"
2626
Condition=" '$(IsWixExtension)' != 'true' " />
2727
</ItemGroup>
2828

0 commit comments

Comments
 (0)