This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 6dd65247969 feat: link Profile Analysis from the Resources nav (#4048)
6dd65247969 is described below

commit 6dd65247969b1cafea9f3f53912e9be61fde8a36
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Sat Aug 8 09:05:14 2026 +0800

    feat: link Profile Analysis from the Resources nav (#4048)
---
 src/components/home-next/NavbarNext.tsx                     |  1 +
 src/components/profile-analysis/ProfileAnalysis.scss        |  3 ++-
 src/components/profile-analysis/ProfileUploader.tsx         |  5 +++++
 .../profile-analysis/profile-analysis.components.test.js    | 13 +++++++++++++
 4 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/components/home-next/NavbarNext.tsx 
b/src/components/home-next/NavbarNext.tsx
index f54707bccdc..95160d5a32e 100644
--- a/src/components/home-next/NavbarNext.tsx
+++ b/src/components/home-next/NavbarNext.tsx
@@ -67,6 +67,7 @@ function buildNavItems(
                 { label: 'Blogs', href: '/blog' },
                 { label: 'News and Events', href: '/events' },
                 { label: 'Course', href: '/course' },
+                { label: 'Profile Analysis', href: '/profile-analysis' },
             ],
         },
         {
diff --git a/src/components/profile-analysis/ProfileAnalysis.scss 
b/src/components/profile-analysis/ProfileAnalysis.scss
index 575c75e3850..3a4bf8bcc07 100644
--- a/src/components/profile-analysis/ProfileAnalysis.scss
+++ b/src/components/profile-analysis/ProfileAnalysis.scss
@@ -421,7 +421,8 @@
         }
     }
 
-    &__ai-warning {
+    &__ai-warning,
+    &__version-notice {
         margin-bottom: 1rem;
         padding: 0.9rem 1rem;
         border-left: 4px solid var(--ifm-color-warning);
diff --git a/src/components/profile-analysis/ProfileUploader.tsx 
b/src/components/profile-analysis/ProfileUploader.tsx
index ebd56c0af20..72302d60f31 100644
--- a/src/components/profile-analysis/ProfileUploader.tsx
+++ b/src/components/profile-analysis/ProfileUploader.tsx
@@ -89,6 +89,11 @@ export function ProfileUploader({ file, disabled, 
onFileChange }: ProfileUploade
                 Profile sections before local visualization or AI upload.
             </p>
 
+            <div className="profile-analysis__version-notice" role="note">
+                Use a Profile produced by Apache Doris 4.1 or later. Profiles 
from earlier versions may fail to
+                parse.
+            </div>
+
             <label
                 className={`profile-analysis__drop-zone${
                     disabled ? ' profile-analysis__drop-zone--disabled' : ''
diff --git 
a/src/components/profile-analysis/profile-analysis.components.test.js 
b/src/components/profile-analysis/profile-analysis.components.test.js
index 05958550421..da42774a28e 100644
--- a/src/components/profile-analysis/profile-analysis.components.test.js
+++ b/src/components/profile-analysis/profile-analysis.components.test.js
@@ -84,6 +84,19 @@ test('explains the raw file limit and large-profile 
reduction in English', () =>
     assert.match(markup, /Files over 10 MiB are reduced to their aggregated 
Profile sections/);
 });
 
+test('states the supported Doris version before a Profile is chosen', () => {
+    const markup = renderUploader();
+
+    assert.match(markup, /profile-analysis__version-notice/);
+    assert.match(markup, /Apache Doris 4\.1 or later/);
+    assert.match(markup, /Profiles from earlier versions may fail to parse/);
+    // The notice must precede the drop zone so it is read before a file is 
picked.
+    assert.ok(markup.indexOf('__version-notice') < 
markup.indexOf('__drop-zone'));
+
+    const styles = fs.readFileSync(path.join(__dirname, 
'ProfileAnalysis.scss'), 'utf8');
+    assert.match(styles, /&__version-notice[\s\S]*?{[^}]*border-left:\s*4px 
solid var\(--ifm-color-warning\)/);
+});
+
 test('disables both tab actions without a file and keeps visualization 
available during AI processing', () => {
     const analyzerSource = fs.readFileSync(path.join(__dirname, 
'ProfileAnalyzer.tsx'), 'utf8');
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to