From aa8d208b554981265f60b768625113bdba2527a2 Mon Sep 17 00:00:00 2001 From: AstroHan Date: Sun, 20 Sep 2026 19:45:54 +0800 Subject: [PATCH 1/7] fix(website): separate release downloads from developer testing Generated-by: Codex --- README.md | 2 +- README.zh-CN.md | 2 +- website/README.md | 2 +- website/src/components/Downloads.astro | 32 +++---------- website/src/components/Home.astro | 18 +++---- website/src/copy/en.ts | 65 +++++++------------------- website/src/copy/links.ts | 2 - website/src/copy/types.ts | 12 ++--- website/src/copy/zh-CN.ts | 60 +++++++----------------- website/src/styles/site.css | 7 ++- website/test/site.test.mjs | 32 ++++++++++++- 11 files changed, 90 insertions(+), 144 deletions(-) diff --git a/README.md b/README.md index 81c955da3a..82fcc0c17c 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ The [website](https://maka.apache.org/en/) walks through one turn of the log and **Apache Releases**: Maka has not made an Apache release yet. When one exists, the signed source archive will be the official release; packages distributed elsewhere are convenience artifacts. See the [downloads page](https://maka.apache.org/en/downloads/) and [`.github/ASF_SOURCE_RELEASE.md`](./.github/ASF_SOURCE_RELEASE.md) for candidate criteria, signing procedures, and verification steps. -**Desktop Nightly**: Built daily from `main` for developers and testers, for macOS on Apple Silicon and Intel, Windows x64 and Linux x64 and arm64; the Windows and Linux builds are unsigned previews. It is not an ASF release and is not intended for production use. The [downloads page](https://maka.apache.org/en/downloads/) has the installers and the platform status. +**Development testing**: To contribute or help test unreleased changes, see [CONTRIBUTING](./CONTRIBUTING.md) and the [development mailing list](https://lists.apache.org/list.html?dev@maka.apache.org). Development builds are not approved Apache releases. **Build from source**: To compile and run Desktop, the TUI, or the CLI directly from a source checkout, see the [Build from source](#build-from-source) section below. diff --git a/README.zh-CN.md b/README.zh-CN.md index 473f9b86ed..fc8a4bfdd9 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -56,7 +56,7 @@ Agent harness 的本职就是把任务做完。衡量它的标准只有一条: **Apache Releases**:Maka 尚未发布过 Apache release。发布之后,带签名的源码包才是正式 release,其他渠道分发的包属于便利构建。候选版本的准入标准、签名路径与验包步骤见[下载页面](https://maka.apache.org/zh-CN/downloads/)与 [`.github/ASF_SOURCE_RELEASE.md`](./.github/ASF_SOURCE_RELEASE.md)。 -**Desktop Nightly**:每天从 `main` 构建,面向开发者和测试者,覆盖 macOS 的 Apple Silicon 与 Intel、Windows x64、Linux x64 与 arm64;Windows 和 Linux 构建是未签名预览。它不是 ASF release,不适合生产使用。安装包与平台状态见[下载页面](https://maka.apache.org/zh-CN/downloads/)。 +**开发测试**:如果希望贡献代码或协助测试尚未发布的改动,请阅读[贡献指南](./CONTRIBUTING.zh-CN.md)并关注[开发邮件列表](https://lists.apache.org/list.html?dev@maka.apache.org)。开发构建不是获批的 Apache 正式版本。 **从源码构建**:要从源码 checkout 直接构建并运行 Desktop、TUI 或 CLI,见下方的[从源码构建](#从源码构建)一节。 diff --git a/website/README.md b/website/README.md index b2b88ff786..71499993fa 100644 --- a/website/README.md +++ b/website/README.md @@ -29,7 +29,7 @@ npm --workspace @maka/website run test:dist ## Content -- The positioning sentence, the page structure and the three download paths follow the consensus in [#4307](https://github.com/apache/maka/discussions/4307). The homepage direction (Astryx Centered Hero) was chosen by vote in the same thread. +- The positioning sentence and homepage direction (Astryx Centered Hero) follow the consensus in [#4307](https://github.com/apache/maka/discussions/4307). Public download calls to action lead to approved releases, or the current release status until one is available. Contributor setup and testing instructions live in CONTRIBUTING; the site does not promote Nightly installers to general users. See the [ASF publication policy](https://www.apache.org/legal/release-policy.html#publication). - English and Chinese are one page each in `src/copy/`. Both share the `Copy` type in `src/copy/types.ts`, so a section, claim or link added to one language fails to type-check until the other has it too, and `test/site.test.mjs` asserts the built pages link the same documents. Yuhan Lei (@Astro-Han) keeps the two in sync. - Numbers on the homepage are drawn from the reports in [`docs/eval/`](../docs/eval/) and link to them. The reports own the numbers. - Fact-check cadence: the homepage is re-read against the product at every release, and whenever the positioning, the primary journey, platform support or the trust boundary changes. The README's *Get Maka* section, `SECURITY.md` and `docs/eval/` are the sources to check against. diff --git a/website/src/components/Downloads.astro b/website/src/components/Downloads.astro index 2441a7d099..b1e6cd31dd 100644 --- a/website/src/components/Downloads.astro +++ b/website/src/components/Downloads.astro @@ -41,14 +41,11 @@ const steps = { `gpg --verify ${archive}.asc ${archive}`, ], checksum: [`curl -O ${dist}${archive}.sha512`, `shasum -a 512 -c ${archive}.sha512`], - clone: ['git clone https://github.com/apache/maka.git', 'cd maka'], - build: ['npm ci', 'npm run build'], }; const sections = [ ['apache-releases', d.releases.h2], ['verify', d.verify.h2], - ['nightly', d.nightly.h2], - ['source', d.source.h2], + ['development', d.development.h2], ] as const; --- @@ -61,8 +58,6 @@ const sections = [

{d.status.h3}

{d.status.release.label}{d.status.release.value}{d.status.release.note} - {d.status.nightly.label}{d.status.nightly.value}{d.status.nightly.note} - {d.status.source.label}{d.status.source.value}{d.status.source.note}
@@ -87,25 +82,10 @@ const sections = [
-
-

{d.nightly.h2}

- {d.nightly.note} -

{d.nightly.p} {d.nightly.windows}

- {copy.hero.nightly} -
- -
- -
-

{d.source.h2}

-
    {d.source.prerequisites.map((item) =>
  • {item}
  • )}
- {(['clone', 'build'] as const).map((step) => ( - <> - {d.source[step]} -
{steps[step].join('\n')}
- - ))} -

{d.source.after}

+
+

{d.development.h2}

+

{d.development.p}

+

{d.development.contribute} · {d.development.discuss}

@@ -119,7 +99,7 @@ const sections = [ // Copy buttons and the outline's current-section marker. (() => { for (const button of document.querySelectorAll('.copy')) { - // Each button is named after its step, so five of them stay distinguishable to a screen reader. + // Name each button after its step so screen readers can distinguish them. const show = (text) => { button.textContent = text; button.setAttribute('aria-label', `${text}: ${button.dataset.label}`); diff --git a/website/src/components/Home.astro b/website/src/components/Home.astro index b38d40fc02..41a126eed8 100644 --- a/website/src/components/Home.astro +++ b/website/src/components/Home.astro @@ -56,8 +56,8 @@ const reads = [

{copy.hero.headline[0]}{copy.hero.headline[1]}{copy.hero.headline[2]}

{copy.hero.lede}

{copy.hero.fine} · {copy.hero.architecture}
@@ -126,19 +126,15 @@ const reads = [ diff --git a/website/src/copy/en.ts b/website/src/copy/en.ts index e0810ddd6c..c6647346a9 100644 --- a/website/src/copy/en.ts +++ b/website/src/copy/en.ts @@ -41,7 +41,7 @@ export const en: Copy = { community: 'Community', security: 'Security', asf: 'ASF', - getMaka: 'Get Maka', + getMaka: 'Release status', menu: 'Menu', }, hero: { @@ -51,9 +51,9 @@ export const en: Copy = { ' of everything it did.', ], lede: 'An agent harness exists to finish tasks. We hold it to one measure: how many it completes and at what cost. We publish every run: same model, same official verifier, full per-task record.', - nightly: 'Try Desktop Nightly', - source: 'Build from source', - fine: 'Nightly is a developer build, not an ASF release', + releases: 'Release status', + contribute: 'Contribute', + fine: 'The first Apache release is in preparation', architecture: 'Read the architecture', }, scene: { @@ -116,17 +116,12 @@ export const en: Copy = { more: 'Log Is the Runtime', }, get: { - h3: 'Get Maka', - p: 'Three paths, kept separate on purpose.', - nightly: { - title: 'Try Desktop Nightly', - body: 'Daily builds from main for developers and testers, published on GitHub Releases. macOS on Apple Silicon and Intel; Windows and Linux are unsigned previews.', - note: 'NOT AN ASF RELEASE · MAY BE UNSTABLE', - }, - source: { - title: 'Build from source', - body: 'Clone apache/maka, then npm ci and npm run build. Desktop, TUI and CLI share one Runtime Host.', - note: 'APACHE-2.0', + h3: 'Releases and development', + p: 'Follow release progress or take part in development.', + contribute: { + title: 'Contribute to Maka', + body: 'The contributor guide covers development setup, testing and submitting changes.', + note: 'FOR CONTRIBUTORS', }, releases: { title: 'Apache Releases', @@ -178,7 +173,7 @@ export const en: Copy = { }, downloads: { title: 'Downloads', - lede: 'The signed source archive is the release. Everything else on this page is a convenience build, and says so.', + lede: 'Apache Maka has not made its first Apache release yet. Approved releases and verification instructions will be listed here.', onThisPage: 'On this page', copy: 'Copy', copied: 'Copied', @@ -189,49 +184,25 @@ export const en: Copy = { value: 'None yet. The first one appears here after its vote.', note: 'NOT YET', }, - nightly: { - label: 'Desktop Nightly', - value: - 'Daily from main. macOS arm64 and x64; Windows x64 and Linux x64 and arm64 as unsigned previews.', - note: 'NOT AN ASF RELEASE', - }, - source: { - label: 'Source', - value: 'apache/maka on GitHub, Apache License 2.0.', - note: 'APACHE-2.0', - }, }, releases: { h2: 'Apache releases', note: 'NO APACHE RELEASE YET', p: 'Apache Maka (Incubating) has not made an Apache release. When the first one passes its vote, this section will list it: the source archive, its SHA-512 checksum and detached GPG signature from the ASF distribution directory, and the KEYS file the signature verifies against.', - distNote: 'Until then the distribution directory does not exist:', + distNote: 'Approved releases will be available from:', }, verify: { h2: 'Verify a release', - p: 'Every Apache release is verified the same way, and every reviewer on the vote does this before voting.', + p: 'After a release is available, replace with its version in the commands below.', keys: 'Step 1: Import the release managers’ keys', signature: 'Step 2: Check the signature', checksum: 'Step 3: Check the checksum', }, - nightly: { - h2: 'Desktop Nightly', - note: 'NOT AN ASF RELEASE', - p: 'Desktop Nightly is built daily from main for developers and testers and published as a GitHub prerelease. Choose the newest Maka Desktop Nightly; after installation the app updates itself on the Nightly channel. It is not an ASF release and is not intended for production use. It ships for macOS on Apple Silicon and Intel, Windows x64, and Linux x64 and arm64.', - windows: 'The Windows and Linux builds are unsigned previews, not a supported release tier.', - }, - source: { - h2: 'Build from source', - prerequisites: [ - 'Node.js 22.19 or newer', - 'npm 11', - 'Git', - 'ripgrep, which the Grep tool shells out to', - ], - clone: 'Step 1: Clone the repository', - build: 'Step 2: Install and build every workspace', - after: - 'CONTRIBUTING covers the workspace layout and how to start Desktop, the TUI and the CLI from that build.', + development: { + h2: 'Participate in development', + p: 'To contribute code or help with testing, read the contributor guide and follow the development mailing list. Development builds are not approved Apache releases.', + contribute: 'Contributor guide', + discuss: 'Development mailing list', }, }, }; diff --git a/website/src/copy/links.ts b/website/src/copy/links.ts index 529718e62d..cc33e0162b 100644 --- a/website/src/copy/links.ts +++ b/website/src/copy/links.ts @@ -24,7 +24,6 @@ const main = `${repo}/blob/main`; export const links = { repo, - releases: `${repo}/releases`, discussions: `${repo}/discussions`, devList: 'https://lists.apache.org/list.html?dev@maka.apache.org', docs: `${main}/docs/README.md`, @@ -32,7 +31,6 @@ export const links = { nineArm: `${main}/docs/eval/terminal-bench-2.1-deepseek-v4-flash-nine-arm.md`, paired: `${main}/docs/eval/terminal-bench-2.1-deepseek-v4-flash-maka-vs-opencode.md`, security: `${main}/SECURITY.md`, - windows: `${main}/docs/windows-support.md`, asf: 'https://www.apache.org/', incubator: 'https://incubator.apache.org/', conduct: 'https://www.apache.org/foundation/policies/conduct.html', diff --git a/website/src/copy/types.ts b/website/src/copy/types.ts index 9ff5442596..8175a8c52d 100644 --- a/website/src/copy/types.ts +++ b/website/src/copy/types.ts @@ -44,8 +44,8 @@ export interface Copy { hero: { headline: [string, string, string]; lede: string; - nightly: string; - source: string; + releases: string; + contribute: string; fine: string; architecture: string; }; @@ -70,8 +70,7 @@ export interface Copy { get: { h3: string; p: string; - nightly: { title: string; body: string; note: string }; - source: { title: string; body: string; note: string }; + contribute: { title: string; body: string; note: string }; releases: { title: string; body: string; note: string }; }; reads: { @@ -104,12 +103,9 @@ export interface Copy { status: { h3: string; release: { label: string; value: string; note: string }; - nightly: { label: string; value: string; note: string }; - source: { label: string; value: string; note: string }; }; releases: { h2: string; note: string; p: string; distNote: string }; verify: { h2: string; p: string; keys: string; signature: string; checksum: string }; - nightly: { h2: string; note: string; p: string; windows: string }; - source: { h2: string; prerequisites: string[]; clone: string; build: string; after: string }; + development: { h2: string; p: string; contribute: string; discuss: string }; }; } diff --git a/website/src/copy/zh-CN.ts b/website/src/copy/zh-CN.ts index d6ed0fde7c..ad292ecdae 100644 --- a/website/src/copy/zh-CN.ts +++ b/website/src/copy/zh-CN.ts @@ -35,15 +35,15 @@ export const zhCN: Copy = { community: '社区', security: '安全', asf: 'ASF', - getMaka: '获取 Maka', + getMaka: '发布进展', menu: '菜单', }, hero: { headline: ['一个高性能的 Agent 工作台,', '并完整记录', '它做过的每一件事。'], lede: 'Agent harness 的本职就是把任务做完。衡量它的标准只有一条:完成了多少,花了多少。我们公开每一次运行:同一个模型,同一个官方验证器,逐任务的完整记录。', - nightly: '体验 Desktop Nightly', - source: '从源码构建', - fine: 'Nightly 是开发者构建,不是 ASF release', + releases: '查看发布进展', + contribute: '参与开发', + fine: '首个 Apache 正式版本正在准备中', architecture: '阅读架构文档', }, scene: { @@ -96,17 +96,12 @@ export const zhCN: Copy = { more: 'Log Is the Runtime', }, get: { - h3: '获取 Maka', - p: '三条路径,边界分明。', - nightly: { - title: '体验 Desktop Nightly', - body: '每天基于 main 构建,面向开发者和测试者,发布在 GitHub Releases。macOS 覆盖 Apple Silicon 与 Intel;Windows 和 Linux 是未签名预览。', - note: '不是 ASF RELEASE · 可能不稳定', - }, - source: { - title: '从源码构建', - body: '克隆 apache/maka,然后 npm ci 和 npm run build。Desktop、TUI 和 CLI 共用同一个运行时宿主。', - note: 'APACHE-2.0', + h3: '发布与开发', + p: '关注正式版本的发布进展,或参与项目开发。', + contribute: { + title: '参与 Maka 开发', + body: '贡献指南介绍了开发环境搭建、测试和提交改动的方法。', + note: '面向贡献者', }, releases: { title: 'Apache Releases', @@ -157,7 +152,7 @@ export const zhCN: Copy = { }, downloads: { title: '下载', - lede: '带签名的源码包才是正式 release。本页其余内容都是便利构建,并且都明确标注。', + lede: 'Apache Maka 尚未发布首个 Apache 正式版本。获批后,本页会提供发布文件和验证说明。', onThisPage: '本页目录', copy: '复制', copied: '已复制', @@ -168,44 +163,25 @@ export const zhCN: Copy = { value: '暂未发布。首个 release 投票通过后会列在这里。', note: '暂无', }, - nightly: { - label: 'Desktop Nightly', - value: - '每天基于 main 构建。macOS arm64 与 x64;Windows x64、Linux x64 与 arm64 为未签名预览。', - note: '不是 ASF RELEASE', - }, - source: { - label: '源码', - value: 'GitHub 上的 apache/maka,Apache License 2.0。', - note: 'APACHE-2.0', - }, }, releases: { h2: 'Apache releases', note: '暂无 APACHE RELEASE', p: 'Apache Maka (Incubating) 尚未发布过 Apache release。首个 release 投票通过后会列在这里:源码包、ASF 分发目录中的 SHA-512 校验和与独立的 GPG 签名,以及签名对应的 KEYS 文件。', - distNote: '在此之前,分发目录尚未创建:', + distNote: '获批的正式版本将发布到:', }, verify: { h2: '验证 release', - p: '所有 Apache release 的验证方式都一样,参与投票的每位 reviewer 在表决前都会走一遍这几步。', + p: '正式版本发布后,将以下命令中的 替换为对应版本号。', keys: '第 1 步:导入 release manager 的公钥', signature: '第 2 步:校验签名', checksum: '第 3 步:核对校验和', }, - nightly: { - h2: 'Desktop Nightly', - note: '不是 ASF RELEASE', - p: 'Desktop Nightly 每天基于 main 构建,面向开发者和测试者,以 GitHub prerelease 形式发布。选择最新的 Maka Desktop Nightly;安装后应用会在 Nightly 渠道自动更新。它不是 ASF release,不适合生产环境。提供 macOS 的 Apple Silicon 与 Intel、Windows x64、Linux x64 与 arm64 构建。', - windows: 'Windows 和 Linux 构建是未签名预览,不属于受支持的发布层级。', - }, - source: { - h2: '从源码构建', - prerequisites: ['Node.js 22.19 或更高版本', 'npm 11', 'Git', 'ripgrep,供 Grep 工具调用'], - clone: '第 1 步:克隆仓库', - build: '第 2 步:安装依赖并构建全部 workspace', - after: - 'CONTRIBUTING 介绍了 workspace 的目录结构,以及如何从这份构建启动 Desktop、TUI 和 CLI。', + development: { + h2: '参与开发', + p: '如果希望贡献代码或协助测试,请阅读贡献指南并关注开发邮件列表。开发构建不是获批的 Apache 正式版本。', + contribute: '贡献指南', + discuss: '开发邮件列表', }, }, }; diff --git a/website/src/styles/site.css b/website/src/styles/site.css index 1ea8e2273c..70b21cbc69 100644 --- a/website/src/styles/site.css +++ b/website/src/styles/site.css @@ -733,7 +733,6 @@ h2 { } } -/* Get Maka: three paths */ .tile.get { flex-direction: row; gap: 40px; @@ -745,10 +744,10 @@ h2 { flex-direction: column; gap: 8px; } -.paths3 { +.paths { flex: 1; display: grid; - grid-template-columns: repeat(3, 1fr); + grid-template-columns: repeat(2, 1fr); gap: 24px; } .path { @@ -1111,7 +1110,7 @@ h2 { .get-h { flex-basis: auto; } - .paths3 { + .paths { grid-template-columns: 1fr; } .reads { diff --git a/website/test/site.test.mjs b/website/test/site.test.mjs index 8f11997bcb..30989cd2bc 100644 --- a/website/test/site.test.mjs +++ b/website/test/site.test.mjs @@ -119,7 +119,7 @@ test('every copy button on the downloads page has its own accessible name', () = /