Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/cd-mobile-mcp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ jobs:
registry-url: 'https://registry.npmjs.org'
scope: '@qwen-code'

- name: 'Install npm 11'
run: 'npm install --global npm@11.19.0'

- name: 'Determine version'
id: 'version'
run: |
Expand Down Expand Up @@ -69,5 +72,3 @@ jobs:
if: '${{ !inputs.dry_run }}'
working-directory: 'packages/mobile-mcp'
run: 'npm publish --provenance --access public'
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
5 changes: 3 additions & 2 deletions .github/workflows/release-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ jobs:
registry-url: 'https://registry.npmjs.org'
scope: '@qwen-code'

- name: 'Install npm 11'
run: 'npm install --global npm@11.19.0'

- name: 'Install Dependencies'
run: |-
npm ci
Expand Down Expand Up @@ -295,8 +298,6 @@ jobs:
working-directory: 'packages/sdk-typescript'
run: |-
npm publish --provenance --access public --tag=${{ steps.version.outputs.NPM_TAG }} ${{ steps.vars.outputs.is_dry_run == 'true' && '--dry-run' || '' }}
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'

- name: 'Create and switch to a release branch'
if: |-
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,9 @@ jobs:
registry-url: 'https://registry.npmjs.org'
scope: '@qwen-code'

- name: 'Install npm 11'
run: 'npm install --global npm@11.19.0'

- name: 'Install Dependencies'
env:
NPM_CONFIG_PREFER_OFFLINE: 'true'
Expand Down Expand Up @@ -531,7 +534,6 @@ jobs:
fi
npm publish --provenance "${PUBLISH_ARGS[@]}"
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
RELEASE_VERSION: '${{ needs.prepare.outputs.release_version }}'
NPM_TAG: '${{ needs.prepare.outputs.npm_tag }}'
IS_DRY_RUN: '${{ needs.prepare.outputs.is_dry_run }}'
Expand All @@ -549,7 +551,6 @@ jobs:
fi
npm publish --provenance "${PUBLISH_ARGS[@]}"
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
RELEASE_VERSION: '${{ needs.prepare.outputs.release_version }}'
NPM_TAG: '${{ needs.prepare.outputs.npm_tag }}'
IS_DRY_RUN: '${{ needs.prepare.outputs.is_dry_run }}'
Expand All @@ -567,7 +568,6 @@ jobs:
fi
npm publish --provenance "${PUBLISH_ARGS[@]}"
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
RELEASE_VERSION: '${{ needs.prepare.outputs.release_version }}'
NPM_TAG: '${{ needs.prepare.outputs.npm_tag }}'
IS_DRY_RUN: '${{ needs.prepare.outputs.is_dry_run }}'
Expand Down Expand Up @@ -598,7 +598,6 @@ jobs:
echo "::warning::Every channel package was already published; nothing shipped"
fi
env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_TOKEN }}'
RELEASE_VERSION: '${{ needs.prepare.outputs.release_version }}'
NPM_TAG: '${{ needs.prepare.outputs.npm_tag }}'
IS_DRY_RUN: '${{ needs.prepare.outputs.is_dry_run }}'
Expand Down
5 changes: 5 additions & 0 deletions packages/audio-capture/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/audio-capture",
"version": "0.21.11",
"description": "Native microphone capture backend for Qwen Code voice input",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/audio-capture"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-base",
"version": "0.21.11",
"description": "Base channel infrastructure for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/base"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/dingtalk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-dingtalk",
"version": "0.21.11",
"description": "DingTalk channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/dingtalk"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/feishu/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-feishu",
"version": "0.21.11",
"description": "Feishu (Lark) channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/feishu"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/github/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-github",
"version": "0.21.11",
"description": "GitHub polling channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/github"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/qqbot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-qqbot",
"version": "0.21.11",
"description": "QQ Bot (QQ机器人) channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/qqbot"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/telegram/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-telegram",
"version": "0.21.11",
"description": "Telegram channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/telegram"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/wecom/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-wecom",
"version": "0.21.11",
"description": "WeCom channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/wecom"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions packages/channels/weixin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
"name": "@qwen-code/channel-weixin",
"version": "0.21.11",
"description": "WeChat (Weixin) channel adapter for Qwen Code",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/channels/weixin"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
45 changes: 45 additions & 0 deletions scripts/tests/package-scripts.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,51 @@ describe('package scripts', () => {
);
});

it('meets npm trusted publishing requirements', () => {
for (const [workflowPath, jobName, publishStepName] of [
[
'.github/workflows/release.yml',
'publish',
'Publish @qwen-code/audio-capture',
],
[
'.github/workflows/release-sdk.yml',
'release-sdk',
'Publish @qwen-code/sdk',
],
['.github/workflows/cd-mobile-mcp.yml', 'build-and-publish', 'Publish'],
]) {
const publishJob = getWorkflowJob(readWorkflow(workflowPath), jobName);
const installStep = getWorkflowStep(publishJob, 'Install npm 11');
expect(installStep).toContain('npm install --global npm@11.19.0');
expect(publishJob.indexOf(installStep)).toBeLessThan(
publishJob.indexOf(getWorkflowStep(publishJob, publishStepName)),
);
}

for (const packageDirectory of [
'packages/audio-capture',
'packages/cli',
'packages/channels/base',
'packages/channels/dingtalk',
'packages/channels/feishu',
'packages/channels/github',
'packages/channels/qqbot',
'packages/channels/telegram',
'packages/channels/wecom',
'packages/channels/weixin',
'packages/mobile-mcp',
'packages/sdk-typescript',
]) {
const packageJson = JSON.parse(
readFileSync(path.join(root, packageDirectory, 'package.json'), 'utf8'),
);
expect(packageJson.repository?.url?.replace(/^git\+/, '')).toBe(
'https://github.com/QwenLM/qwen-code.git',
);
}
});

it('fast-tracks trusted autofix issue triggers before LLM assessment', () => {
const workflow = readWorkflow('.github/workflows/qwen-autofix.yml');
const issueJob = getWorkflowJob(workflow, 'issue-autofix');
Expand Down
Loading