From 870c99e65349c38cd0ac5dd2ea1072a1935070be Mon Sep 17 00:00:00 2001 From: Tensai Date: Sun, 27 Apr 2025 09:45:08 +0200 Subject: [PATCH 1/2] feat!: use `{{packageVersion}}` as default in zip file templates BREAKING CHANGE: use `{{packageVersion}}` as default in artifactTemplate and sourcesTemplate --- packages/wxt/e2e/tests/zip.test.ts | 11 ++++++----- packages/wxt/src/core/resolve-config.ts | 4 ++-- packages/wxt/src/types.ts | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/wxt/e2e/tests/zip.test.ts b/packages/wxt/e2e/tests/zip.test.ts index 3ff265aad..b212f0caa 100644 --- a/packages/wxt/e2e/tests/zip.test.ts +++ b/packages/wxt/e2e/tests/zip.test.ts @@ -77,21 +77,22 @@ describe('Zipping', () => { it('should correctly apply template variables for zip file names based on provided config', async () => { const project = new TestProject({ name: 'test', - version: '1.0.0', + version: '1.0.0-beta.1', }); project.addFile( 'entrypoints/background.ts', 'export default defineBackground(() => {});', ); - const artifactZip = '.output/test-1.0.0-firefox-development.zip'; - const sourcesZip = '.output/test-1.0.0-development-sources.zip'; + const artifactZip = '.output/test-1.0.0-beta.1-firefox-development.zip'; + const sourcesZip = '.output/test-1.0.0-beta.1-development-sources.zip'; await project.zip({ browser: 'firefox', mode: 'development', zip: { - artifactTemplate: '{{name}}-{{version}}-{{browser}}-{{mode}}.zip', - sourcesTemplate: '{{name}}-{{version}}-{{mode}}-sources.zip', + artifactTemplate: + '{{name}}-{{packageVersion}}-{{browser}}-{{mode}}.zip', + sourcesTemplate: '{{name}}-{{packageVersion}}-{{mode}}-sources.zip', }, }); diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index 001884f90..c9dc8c81c 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -301,8 +301,8 @@ function resolveZipConfig( const downloadedPackagesDir = path.resolve(root, '.wxt/local_modules'); return { name: undefined, - sourcesTemplate: '{{name}}-{{version}}-sources.zip', - artifactTemplate: '{{name}}-{{version}}-{{browser}}.zip', + sourcesTemplate: '{{name}}-{{packageVersion}}-sources.zip', + artifactTemplate: '{{name}}-{{packageVersion}}-{{browser}}.zip', sourcesRoot: root, includeSources: [], compressionLevel: 9, diff --git a/packages/wxt/src/types.ts b/packages/wxt/src/types.ts index b1ef253bd..022018502 100644 --- a/packages/wxt/src/types.ts +++ b/packages/wxt/src/types.ts @@ -152,7 +152,7 @@ export interface InlineConfig { * - `{{mode}}` - The current mode * - `{{manifestVersion}}` - Either "2" or "3" * - * @default "{{name}}-{{version}}-{{browser}}.zip" + * @default "{{name}}-{{packageVersion}}-{{browser}}.zip" */ artifactTemplate?: string; /** @@ -177,7 +177,7 @@ export interface InlineConfig { * - `{{mode}}` - The current mode * - `{{manifestVersion}}` - Either "2" or "3" * - * @default "{{name}}-{{version}}-sources.zip" + * @default "{{name}}-{{packageVersion}}-sources.zip" */ sourcesTemplate?: string; /** From 2e29f9bb0535b101c8ec53db450a3c647a876379 Mon Sep 17 00:00:00 2001 From: Tensai Date: Sun, 27 Apr 2025 10:42:01 +0200 Subject: [PATCH 2/2] feat!: add `{{modeSuffix}}` to zip templates and use as default BREAKING CHANGE: add template variable `{{modeSuffix}}` to artifactTemplate and sourcesTemplate and use it as default. --- packages/wxt/e2e/tests/zip.test.ts | 9 +++++---- packages/wxt/src/core/resolve-config.ts | 5 +++-- packages/wxt/src/core/zip.ts | 6 ++++++ packages/wxt/src/types.ts | 6 ++++-- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/wxt/e2e/tests/zip.test.ts b/packages/wxt/e2e/tests/zip.test.ts index b212f0caa..b95986351 100644 --- a/packages/wxt/e2e/tests/zip.test.ts +++ b/packages/wxt/e2e/tests/zip.test.ts @@ -83,16 +83,17 @@ describe('Zipping', () => { 'entrypoints/background.ts', 'export default defineBackground(() => {});', ); - const artifactZip = '.output/test-1.0.0-beta.1-firefox-development.zip'; - const sourcesZip = '.output/test-1.0.0-beta.1-development-sources.zip'; + const artifactZip = '.output/test-1.0.0-beta.1-firefox-dev.zip'; + const sourcesZip = '.output/test-1.0.0-beta.1-sources-dev.zip'; await project.zip({ browser: 'firefox', mode: 'development', zip: { artifactTemplate: - '{{name}}-{{packageVersion}}-{{browser}}-{{mode}}.zip', - sourcesTemplate: '{{name}}-{{packageVersion}}-{{mode}}-sources.zip', + '{{name}}-{{packageVersion}}-{{browser}}{{modeSuffix}}.zip', + sourcesTemplate: + '{{name}}-{{packageVersion}}-sources{{modeSuffix}}.zip', }, }); diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index c9dc8c81c..803b226e2 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -301,8 +301,9 @@ function resolveZipConfig( const downloadedPackagesDir = path.resolve(root, '.wxt/local_modules'); return { name: undefined, - sourcesTemplate: '{{name}}-{{packageVersion}}-sources.zip', - artifactTemplate: '{{name}}-{{packageVersion}}-{{browser}}.zip', + sourcesTemplate: '{{name}}-{{packageVersion}}-sources{{modeSuffix}}.zip', + artifactTemplate: + '{{name}}-{{packageVersion}}-{{browser}}{{modeSuffix}}.zip', sourcesRoot: root, includeSources: [], compressionLevel: 9, diff --git a/packages/wxt/src/core/zip.ts b/packages/wxt/src/core/zip.ts index ceda07efd..56346e70b 100644 --- a/packages/wxt/src/core/zip.ts +++ b/packages/wxt/src/core/zip.ts @@ -30,6 +30,11 @@ export async function zip(config?: InlineConfig): Promise { const projectName = wxt.config.zip.name ?? safeFilename(packageJson?.name || path.basename(process.cwd())); + const modeSuffixes: Record = { + production: '', + development: '-dev', + }; + const modeSuffix = modeSuffixes[wxt.config.mode] ?? `-${wxt.config.mode}`; const applyTemplate = (template: string): string => template .replaceAll('{{name}}', projectName) @@ -39,6 +44,7 @@ export async function zip(config?: InlineConfig): Promise { output.manifest.version_name ?? output.manifest.version, ) .replaceAll('{{packageVersion}}', packageJson?.version) + .replaceAll('{{modeSuffix}}', modeSuffix) .replaceAll('{{mode}}', wxt.config.mode) .replaceAll('{{manifestVersion}}', `mv${wxt.config.manifestVersion}`); diff --git a/packages/wxt/src/types.ts b/packages/wxt/src/types.ts index 022018502..02d41cb45 100644 --- a/packages/wxt/src/types.ts +++ b/packages/wxt/src/types.ts @@ -150,9 +150,10 @@ export interface InlineConfig { * - `{{packageVersion}}` - The version from the package.json * - `{{browser}}` - The target browser from the `--browser` CLI flag * - `{{mode}}` - The current mode + * - `{{modeSuffix}}`: A suffix based on the mode ('-dev' for development, '' for production) * - `{{manifestVersion}}` - Either "2" or "3" * - * @default "{{name}}-{{packageVersion}}-{{browser}}.zip" + * @default "{{name}}-{{packageVersion}}-{{browser}}{{modeSuffix}}.zip" */ artifactTemplate?: string; /** @@ -175,9 +176,10 @@ export interface InlineConfig { * - `{{packageVersion}}` - The version from the package.json * - `{{browser}}` - The target browser from the `--browser` CLI flag * - `{{mode}}` - The current mode + * - `{{modeSuffix}}`: A suffix based on the mode ('-dev' for development, '' for production) * - `{{manifestVersion}}` - Either "2" or "3" * - * @default "{{name}}-{{packageVersion}}-sources.zip" + * @default "{{name}}-{{packageVersion}}-sources{{modeSuffix}}.zip" */ sourcesTemplate?: string; /**