Skip to content

Commit b650521

Browse files
authored
Merge pull request #220 from sproctor/fix/azure-publisher-name
fix(azure-publisher-name): add publisherName support for azure artifact signing
2 parents 37ef4dc + a8c8c47 commit b650521

9 files changed

Lines changed: 62 additions & 53 deletions

File tree

docs/code-signing.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,15 @@ windows {
4848
| Sectigo | `http://timestamp.sectigo.com` |
4949
| GlobalSign | `http://timestamp.globalsign.com` |
5050

51-
### Azure Trusted Signing
51+
### Azure Artifact Signing
5252

53-
For cloud-based signing with [Azure Trusted Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/):
53+
For cloud-based signing with [Azure Artifact Signing](https://learn.microsoft.com/en-us/azure/artifact-signing/):
5454

5555
```kotlin
5656
windows {
5757
signing {
5858
enabled = true
59+
publisherName = "Your Publisher Name"
5960
azureTenantId = "your-tenant-id"
6061
azureEndpoint = "https://your-region.codesigning.azure.net"
6162
azureCertificateProfileName = "your-profile"

docs/comparison/packaging.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -146,27 +146,27 @@ Conveyor's delta update system is a genuine differentiator: a single-line change
146146

147147
### 4. Code Signing & Notarization
148148

149-
| Tool | macOS Signing | macOS Notarization | Windows PFX | Azure Trusted Signing | Other Cloud HSMs | Score |
150-
|------|:------------:|:------------------:|:-----------:|:---------------------:|:----------------:|:-----:|
151-
| **Nucleus** |||| || **10** |
152-
| Conveyor ||| ✅ (+ self-sign + SSL certs) | | ✅ (6 providers) | **10** |
153-
| install4j |||| || **8** |
154-
| jDeploy | ✅¹ | ✅¹ | ✅¹ | || **7** |
155-
| jpackage | ✅ (`--mac-sign`) | ✅ (`--mac-app-store`) || || **3** |
156-
| Compose MP |||| || **5** |
157-
| JavaPackager ||| ✅ (Jsign) | || **3** |
149+
| Tool | macOS Signing | macOS Notarization | Windows PFX | Azure Artifact Signing | Other Cloud HSMs | Score |
150+
|------|:------------:|:------------------:|:-----------:|:----------------------:|:----------------:|:-----:|
151+
| **Nucleus** |||| || **10** |
152+
| Conveyor ||| ✅ (+ self-sign + SSL certs) | | ✅ (6 providers) | **10** |
153+
| install4j |||| || **8** |
154+
| jDeploy | ✅¹ | ✅¹ | ✅¹ | || **7** |
155+
| jpackage | ✅ (`--mac-sign`) | ✅ (`--mac-app-store`) || || **3** |
156+
| Compose MP |||| || **5** |
157+
| JavaPackager ||| ✅ (Jsign) | || **3** |
158158

159159
¹ jDeploy pre-signs and notarizes installers using its own certificate; optional custom signing via GitHub Action ([FAQ](https://www.jdeploy.com/docs/faq/)).
160160

161161
??? info "Sources"
162-
- **Nucleus**: [`MacOSSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/MacOSSigningSettings.kt), [`WindowsSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/WindowsSigningSettings.kt) — Azure Trusted Signing via `azureTenantId`, `azureEndpoint`, `azureCertificateProfileName`
163-
- **Conveyor**: [Keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/) — macOS notarization (App Store Connect API keys), Windows self-signing, Azure Trusted Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, HSMs (SafeNet, YubiKey)
162+
- **Nucleus**: [`MacOSSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/MacOSSigningSettings.kt), [`WindowsSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/WindowsSigningSettings.kt) — Azure Artifact Signing via `azureTenantId`, `azureEndpoint`, `azureCertificateProfileName`
163+
- **Conveyor**: [Keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/) — macOS notarization (App Store Connect API keys), Windows self-signing, Azure Artifact Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, HSMs (SafeNet, YubiKey)
164164
- **install4j**: [Features](https://www.ej-technologies.com/install4j/features) — cross-platform signing and notarization
165165
- **jpackage**: [Oracle man page](https://docs.oracle.com/en/java/javase/23/docs/specs/man/jpackage.html)`--mac-sign`, `--mac-signing-key-user-name`, `--mac-app-store`
166166
- **Compose MP**: [Native distributions](https://kotlinlang.org/docs/multiplatform/compose-native-distribution.html) — macOS signing and notarization DSL
167167
- **JavaPackager**: [v1.7.4 release](https://github.com/fvarrui/JavaPackager/releases/tag/v1.7.4) — Jsign 5.0 for Windows signing
168168

169-
Conveyor has the broadest signing provider support (6 cloud HSM services). Nucleus focuses on the two most common paths (PFX + Azure Trusted Signing) with CI-ready composite actions for secret management.
169+
Conveyor has the broadest signing provider support (6 cloud HSM services). Nucleus focuses on the two most common paths (PFX + Azure Artifact Signing) with CI-ready composite actions for secret management.
170170

171171
---
172172

@@ -423,7 +423,7 @@ A modern CLI tool that uniquely supports **cross-compilation** — build for Win
423423

424424
**Updates**: Sparkle 2 on macOS with delta patches (configurable, default 5 versions), MSIX native 64 KB-chunk delta on Windows, apt repositories on Linux ([update modes](https://conveyor.hydraulic.dev/21.1/configs/update-modes/)).
425425

426-
**Signing**: Self-signing for free distribution, purchased Authenticode/SSL certificates (.p12/.pfx), macOS notarization via App Store Connect API keys, plus 6 cloud signing providers: Azure Trusted Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, and HSM support (SafeNet, YubiKey) ([keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/)).
426+
**Signing**: Self-signing for free distribution, purchased Authenticode/SSL certificates (.p12/.pfx), macOS notarization via App Store Connect API keys, plus 6 cloud signing providers: Azure Artifact Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, and HSM support (SafeNet, YubiKey) ([keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/)).
427427

428428
**OS integration**: Registers URL schemes (`app.url-schemes`) and file associations (`app.file-associations`) at OS level, but does **not** provide a runtime library — apps must implement receiving logic themselves ([OS integration](https://conveyor.hydraulic.dev/21.1/configs/os-integration/)).
429429

@@ -495,7 +495,7 @@ Bundles JRE with application into a directory structure. Game-focused (libGDX/LW
495495
4. **First JVM tool with AOT cache** — Project Leyden (JDK 25+), no GraalVM required
496496
5. **First JVM tool with integrated GraalVM Native Image support** — compile Compose Desktop apps to standalone native binaries (~0.5s cold boot, ~100–150 MB RAM, no bundled JRE). Three startup tiers: standard JVM → AOT cache (Leyden) → native image
497497
6. **Broadest store distribution** — 4 stores (MAS, MS Store, Flathub, Snap Store), unique JVM sandbox pipeline
498-
7. **Full signing matrix** — macOS + notarization, Windows PFX + Azure Trusted Signing
498+
7. **Full signing matrix** — macOS + notarization, Windows PFX + Azure Artifact Signing
499499
8. **Free and open source** (MIT)
500500
9. **Native SSL runtime** — unique JNI module using the OS trust store (macOS Security.framework, Windows Crypt32, Linux PEM bundles); pre-wired OkHttp and Ktor adapters; no cacerts manipulation needed at runtime
501501
10. **Build-time CA cert patching** — import custom PEM/DER certificates into the bundled JVM's `cacerts` at packaging time (Conveyor also offers this via `app.jvm.additional-ca-certs`)

docs/llm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ curl -s https://nucleusframework.dev/llms-full.txt # complete
6161
- Platform-specific configuration (macOS, Windows, Linux)
6262
- macOS 26 Liquid Glass and SDK version patching
6363
- Sandboxing pipeline details
64-
- Code signing and notarization (Windows PFX, Azure Trusted Signing, macOS Developer ID)
64+
- Code signing and notarization (Windows PFX, Azure Artifact Signing, macOS Developer ID)
6565
- Auto-update runtime API with Compose integration example
6666
- Publishing to GitHub Releases and S3
6767
- CI/CD workflows and all composite actions

docs/llms-full.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,7 +1268,7 @@ Create an `.msixbundle` containing both amd64 and arm64 `.appx` files. See [CI/C
12681268

12691269
## Code Signing
12701270

1271-
See [Code Signing](../code-signing.md#windows) for full details on PFX certificates and Azure Trusted Signing.
1271+
See [Code Signing](../code-signing.md#windows) for full details on PFX certificates and Azure Artifact Signing.
12721272

12731273
```kotlin
12741274
windows {
@@ -1913,9 +1913,9 @@ windows {
19131913
| Sectigo | `http://timestamp.sectigo.com` |
19141914
| GlobalSign | `http://timestamp.globalsign.com` |
19151915

1916-
### Azure Trusted Signing
1916+
### Azure Artifact Signing
19171917

1918-
For cloud-based signing with [Azure Trusted Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/):
1918+
For cloud-based signing with [Azure Artifact Signing](https://learn.microsoft.com/en-us/azure/artifact-signing/):
19191919

19201920
```kotlin
19211921
windows {
@@ -3244,7 +3244,7 @@ GraalVM Native Image compilation **requires [BellSoft Liberica NIK 25](https://b
32443244

32453245
Some libraries and use cases make native image compilation **extremely difficult or impractical**. Nucleus can handle most standard Compose Desktop dependencies automatically, but the following categories will likely require extensive manual configuration — or may not work at all:
32463246

3247-
**Libraries that are very hard to support:**
3247+
**Libraries that are very hard to support:**
32483248
- **Heavy JNA users** — Libraries that rely extensively on JNA (Java Native Access) for dynamic function calls. JNA's runtime proxy generation is fundamentally at odds with native-image's closed-world assumption. Examples: some system tray libraries, platform bridge libraries.
32493249
- **Full-text search engines** — Apache Lucene, Elasticsearch client, and similar libraries use heavy reflection, dynamic class loading, custom classloaders, and `MethodHandle`-based access patterns that are nearly impossible to capture statically.
32503250
- **Dynamic scripting engines** — Embedding Groovy, JRuby, Nashorn, or other scripting runtimes that rely on runtime code generation.
@@ -4066,7 +4066,7 @@ Cancellation is bidirectional: cancelling the JVM `Job` cancels the native corou
40664066

40674067
Nucleus provides reusable composite actions and ready-to-use GitHub Actions workflows for building, packaging, and publishing desktop applications across all platforms.
40684068

4069-
**Use Nucleus actions in your own project:**
4069+
**Use Nucleus actions in your own project:**
40704070
All composite actions can be referenced directly from the Nucleus repository — no need to copy them into your project:
40714071

40724072
```yaml
@@ -5572,7 +5572,7 @@ NucleusDecoratedWindowTheme(
55725572
windowStyle = myWindowStyle,
55735573
titleBarStyle = myTitleBarStyle,
55745574
) {
5575-
DecoratedWindow(...)
5575+
DecoratedWindow(...)
55765576
}
55775577
```
55785578

@@ -13335,7 +13335,7 @@ Conveyor's delta update system is a genuine differentiator: a single-line change
1333513335

1333613336
### 4. Code Signing & Notarization
1333713337

13338-
| Tool | macOS Signing | macOS Notarization | Windows PFX | Azure Trusted Signing | Other Cloud HSMs | Score |
13338+
| Tool | macOS Signing | macOS Notarization | Windows PFX | Azure Artifact Signing | Other Cloud HSMs | Score |
1333913339
|------|:------------:|:------------------:|:-----------:|:---------------------:|:----------------:|:-----:|
1334013340
| **Nucleus** | ✅ | ✅ | ✅ | ✅ | ❌ | **10** |
1334113341
| Conveyor | ✅ | ✅ | ✅ (+ self-sign + SSL certs) | ✅ | ✅ (6 providers) | **10** |
@@ -13348,14 +13348,14 @@ Conveyor's delta update system is a genuine differentiator: a single-line change
1334813348
¹ jDeploy pre-signs and notarizes installers using its own certificate; optional custom signing via GitHub Action ([FAQ](https://www.jdeploy.com/docs/faq/)).
1334913349

1335013350
??? info "Sources"
13351-
- **Nucleus**: [`MacOSSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/MacOSSigningSettings.kt), [`WindowsSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/WindowsSigningSettings.kt) — Azure Trusted Signing via `azureTenantId`, `azureEndpoint`, `azureCertificateProfileName`
13352-
- **Conveyor**: [Keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/) — macOS notarization (App Store Connect API keys), Windows self-signing, Azure Trusted Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, HSMs (SafeNet, YubiKey)
13351+
- **Nucleus**: [`MacOSSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/MacOSSigningSettings.kt), [`WindowsSigningSettings.kt`](https://github.com/kdroidFilter/Nucleus/blob/main/plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/WindowsSigningSettings.kt) — Azure Artifact Signing via `azureTenantId`, `azureEndpoint`, `azureCertificateProfileName`
13352+
- **Conveyor**: [Keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/) — macOS notarization (App Store Connect API keys), Windows self-signing, Azure Artifact Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, HSMs (SafeNet, YubiKey)
1335313353
- **install4j**: [Features](https://www.ej-technologies.com/install4j/features) — cross-platform signing and notarization
1335413354
- **jpackage**: [Oracle man page](https://docs.oracle.com/en/java/javase/23/docs/specs/man/jpackage.html) — `--mac-sign`, `--mac-signing-key-user-name`, `--mac-app-store`
1335513355
- **Compose MP**: [Native distributions](https://kotlinlang.org/docs/multiplatform/compose-native-distribution.html) — macOS signing and notarization DSL
1335613356
- **JavaPackager**: [v1.7.4 release](https://github.com/fvarrui/JavaPackager/releases/tag/v1.7.4) — Jsign 5.0 for Windows signing
1335713357

13358-
Conveyor has the broadest signing provider support (6 cloud HSM services). Nucleus focuses on the two most common paths (PFX + Azure Trusted Signing) with CI-ready composite actions for secret management.
13358+
Conveyor has the broadest signing provider support (6 cloud HSM services). Nucleus focuses on the two most common paths (PFX + Azure Artifact Signing) with CI-ready composite actions for secret management.
1335913359

1336013360
---
1336113361

@@ -13608,7 +13608,7 @@ A modern CLI tool that uniquely supports **cross-compilation** — build for Win
1360813608

1360913609
**Updates**: Sparkle 2 on macOS with delta patches (configurable, default 5 versions), MSIX native 64 KB-chunk delta on Windows, apt repositories on Linux ([update modes](https://conveyor.hydraulic.dev/21.1/configs/update-modes/)).
1361013610

13611-
**Signing**: Self-signing for free distribution, purchased Authenticode/SSL certificates (.p12/.pfx), macOS notarization via App Store Connect API keys, plus 6 cloud signing providers: Azure Trusted Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, and HSM support (SafeNet, YubiKey) ([keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/)).
13611+
**Signing**: Self-signing for free distribution, purchased Authenticode/SSL certificates (.p12/.pfx), macOS notarization via App Store Connect API keys, plus 6 cloud signing providers: Azure Artifact Signing, Azure Key Vault, AWS KMS, SSL.com eSigner, DigiCert ONE, Google Cloud KMS, and HSM support (SafeNet, YubiKey) ([keys and certificates](https://conveyor.hydraulic.dev/21.1/configs/keys-and-certificates/)).
1361213612

1361313613
**OS integration**: Registers URL schemes (`app.url-schemes`) and file associations (`app.file-associations`) at OS level, but does **not** provide a runtime library — apps must implement receiving logic themselves ([OS integration](https://conveyor.hydraulic.dev/21.1/configs/os-integration/)).
1361413614

@@ -13680,7 +13680,7 @@ Bundles JRE with application into a directory structure. Game-focused (libGDX/LW
1368013680
4. **First JVM tool with AOT cache** — Project Leyden (JDK 25+), no GraalVM required
1368113681
5. **First JVM tool with integrated GraalVM Native Image support** — compile Compose Desktop apps to standalone native binaries (~0.5s cold boot, ~100–150 MB RAM, no bundled JRE). Three startup tiers: standard JVM → AOT cache (Leyden) → native image
1368213682
6. **Broadest store distribution** — 4 stores (MAS, MS Store, Flathub, Snap Store), unique JVM sandbox pipeline
13683-
7. **Full signing matrix** — macOS + notarization, Windows PFX + Azure Trusted Signing
13683+
7. **Full signing matrix** — macOS + notarization, Windows PFX + Azure Artifact Signing
1368413684
8. **Free and open source** (MIT)
1368513685
9. **Native SSL runtime** — unique JNI module using the OS trust store (macOS Security.framework, Windows Crypt32, Linux PEM bundles); pre-wired OkHttp and Ktor adapters; no cacerts manipulation needed at runtime
1368613686
10. **Build-time CA cert patching** — import custom PEM/DER certificates into the bundled JVM's `cacerts` at packaging time (Conveyor also offers this via `app.jvm.additional-ca-certs`)
@@ -13972,7 +13972,7 @@ dependencies {
1397213972
| Flatpak config | Not available | Full `flatpak { }` DSL |
1397313973
| Store pipeline | Not available | Automatic dual pipeline for store formats (PKG, AppX, Flatpak) with sandboxing for PKG and Flatpak |
1397413974
| Auto-update | Not available | Built-in with YML metadata |
13975-
| Code signing | macOS only | + Windows PFX / Azure Trusted Signing |
13975+
| Code signing | macOS only | + Windows PFX / Azure Artifact Signing |
1397613976
| DMG appearance | Not customizable (jpackage defaults) | Full `dmg { }` DSL: background, icon size, window layout, content positioning, format ([details](targets/macos.md#dmg-customization)) |
1397713977
| Artifact naming | Fixed | Template with `artifactName` |
1397813978

docs/llms.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ dependencies {
659659
| Flatpak config | Not available | Full `flatpak { }` DSL |
660660
| Store pipeline | Not available | Automatic dual pipeline for store formats (PKG, AppX, Flatpak) with sandboxing for PKG and Flatpak |
661661
| Auto-update | Not available | Built-in with YML metadata |
662-
| Code signing | macOS only | + Windows PFX / Azure Trusted Signing |
662+
| Code signing | macOS only | + Windows PFX / Azure Artifact Signing |
663663
| DMG appearance | Not customizable (jpackage defaults) | Full `dmg { }` DSL: background, icon size, window layout, content positioning, format ([details](targets/macos.md#dmg-customization)) |
664664
| Artifact naming | Fixed | Template with `artifactName` |
665665

0 commit comments

Comments
 (0)