chore: remove Labs package and update project docs

This commit is contained in:
chinboy
2026-07-04 17:36:39 +08:00
parent f9400c8578
commit 3b492a3be6
31 changed files with 101 additions and 112 deletions
+1 -2
View File
@@ -40,7 +40,6 @@ AtomUI/
│ ├── AtomUI.Desktop.Controls.DataGrid
│ ├── AtomUI.Desktop.Controls.ColorPicker
│ ├── AtomUI.Desktop.Controls.Extras # Stable supplemental controls beyond Ant Design
│ ├── AtomUI.Desktop.Controls.Labs # Experimental supplemental controls beyond Ant Design
│ ├── AtomUI.Toolkits.GalleryBase # Product-neutral Gallery base controls and themes
│ ├── AtomUI.Icons.* # Icon infrastructure and Ant Design icon package
│ ├── AtomUI.Fonts.* # Font packages
@@ -58,7 +57,7 @@ Important source boundaries:
- `AtomUI.Controls.Shared`: cross-control data contracts, collection views, shared state.
- `AtomUI.Controls`: common controls and primitives.
- `AtomUI.Desktop.Controls`: main desktop control package.
- `AtomUI.Desktop.Controls.DataGrid`, `AtomUI.Desktop.Controls.ColorPicker`, `AtomUI.Desktop.Controls.Extras`, and `AtomUI.Desktop.Controls.Labs`: optional desktop packages.
- `AtomUI.Desktop.Controls.DataGrid`, `AtomUI.Desktop.Controls.ColorPicker`, and `AtomUI.Desktop.Controls.Extras`: optional desktop packages.
- `AtomUI.Toolkits.GalleryBase`: product-neutral Gallery base controls, models, themes, and runtime helpers.
- `AtomUI.Generator`: Roslyn source generators referenced as analyzers.
- `AtomUIGallery`: Gallery shell, showcases, API tables, token tables, and NativeAOT publish target.
-1
View File
@@ -8,7 +8,6 @@
<Project Path="src/AtomUI.Desktop.Controls.ColorPicker/AtomUI.Desktop.Controls.ColorPicker.csproj" />
<Project Path="src/AtomUI.Desktop.Controls.DataGrid/AtomUI.Desktop.Controls.DataGrid.csproj" />
<Project Path="src/AtomUI.Desktop.Controls.Extras/AtomUI.Desktop.Controls.Extras.csproj" />
<Project Path="src/AtomUI.Desktop.Controls.Labs/AtomUI.Desktop.Controls.Labs.csproj" />
<Project Path="src/AtomUI.Desktop.Controls/AtomUI.Desktop.Controls.csproj" />
<Project Path="src/AtomUI.Fonts.AlibabaPuHuiTi/AtomUI.Fonts.AlibabaPuHuiTi.csproj" />
<Project Path="src/AtomUI.Fonts.AlibabaSans/AtomUI.Fonts.AlibabaSans.csproj" />
+1 -1
View File
@@ -1,4 +1,4 @@
<img src="./resources/images/readme/AtomUIOSS.png"/>
<img src="./resources/images/readme/atomui-oss-banner.png"/>
<br/>
<div align="center">
+1 -1
View File
@@ -1,4 +1,4 @@
<img src="./resources/images/readme/AtomUIOSS.png"/>
<img src="./resources/images/readme/atomui-oss-banner.png"/>
<br/>
<div align="center">
+1 -1
View File
@@ -4,7 +4,7 @@
<Title>AtomUI</Title>
<Author>Qinware Technologies Ltd.</Author>
<Authors>$(Author)</Authors>
<Description>AtomUI is an Ant Design 6 component system for Avalonia/.NET desktop applications, including themed controls, design tokens, icons, native window integration and optional DataGrid, ColorPicker, Extras and Labs packages.</Description>
<Description>AtomUI is an Ant Design 6 component system for Avalonia/.NET desktop applications, including themed controls, design tokens, icons, native window integration and optional DataGrid, ColorPicker and Extras packages.</Description>
<PackageTags>avalonia;AntDesign;UI;Control Library;Desktop;XAML</PackageTags>
<ProjectUrl>https://qinware.com</ProjectUrl>
<RepositoryUrl>https://github.com/AtomUI/AtomUI</RepositoryUrl>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

@@ -14,7 +14,7 @@
Margin="32"
Spacing="24"
HorizontalAlignment="Center">
<Image Source="/Assets/AtomUIOSS-release-banner.png"
<Image Source="/Assets/atomui-oss-release-banner.png"
Stretch="Uniform"
HorizontalAlignment="Center"
MaxWidth="820" />
+1 -2
View File
@@ -20,8 +20,7 @@
"src/AtomUI.Desktop.Controls",
"src/AtomUI.Desktop.Controls.DataGrid",
"src/AtomUI.Desktop.Controls.ColorPicker",
"src/AtomUI.Desktop.Controls.Extras",
"src/AtomUI.Desktop.Controls.Labs"
"src/AtomUI.Desktop.Controls.Extras"
],
"categoryOrder": [
"general",
+1 -2
View File
@@ -64,8 +64,7 @@ Avalonia、ReactiveUI、Roslyn、测试依赖等版本在此统一管理。Relea
- `AtomUI.Desktop.Controls.DataGrid`
- `AtomUI.Desktop.Controls.ColorPicker`
- `AtomUI.Desktop.Controls.Extras`
- `AtomUI.Desktop.Controls.Labs`
- `AtomUI.Generator`
DataGrid、ColorPicker、Extras 和 Labs 是独立按需包,但源码上依赖 `AtomUI.Desktop.Controls` 并访问其内部成员。
DataGrid、ColorPicker 和 Extras 是独立按需包,但源码上依赖 `AtomUI.Desktop.Controls` 并访问其内部成员。
GalleryBase 是产品中立的 Gallery 应用底座包,跟随主库版本发布,供 AtomUI 生态内的产品 Gallery、Demo 和文档应用复用。
+4 -6
View File
@@ -14,7 +14,6 @@
- `src/AtomUI.Desktop.Controls.DataGrid`
- `src/AtomUI.Desktop.Controls.ColorPicker`
- `src/AtomUI.Desktop.Controls.Extras`
- `src/AtomUI.Desktop.Controls.Labs`
- `src/AtomUI.Generator`
- `src/AtomUI.Icons.Shared`
- `src/AtomUI.Icons.AntDesign`
@@ -38,7 +37,6 @@
| `AtomUI.Desktop.Controls.DataGrid` | `AtomUI.Desktop.Controls`, `AtomUI.Generator` | 独立 DataGrid 包 |
| `AtomUI.Desktop.Controls.ColorPicker` | `AtomUI.Desktop.Controls`, `AtomUI.Generator`, `Avalonia.Controls.ColorPicker` | 独立 ColorPicker 包 |
| `AtomUI.Desktop.Controls.Extras` | `AtomUI.Desktop.Controls`, `AtomUI.Generator` | Ant Design 之外的稳定补充控件包 |
| `AtomUI.Desktop.Controls.Labs` | `AtomUI.Desktop.Controls`, `AtomUI.Generator` | Ant Design 之外的实验性补充控件包 |
| `AtomUI.Toolkits.GalleryBase` | `AtomUI.Desktop.Controls`, `AtomUI.Generator` | 产品中立的 Gallery 展示控件、主题和运行时底座 |
| `AtomUI.Icons.AntDesign` | `AtomUI.Core` | Ant Design 图标注册与生成图标 |
| `AtomUI.Icons.AntDesign.Generator` | `AtomUI.Icons.Shared` | 从 SVG 生成 Ant Design 图标源码 |
@@ -51,9 +49,9 @@
多个包通过 `InternalsVisibleTo` 共享内部实现,维护时需要注意这些不是公开 API:
- `AtomUI.Core` 对 `AtomUI.Controls`、`AtomUI.Controls.Shared`、`AtomUI.Desktop.Controls`、DataGrid、ColorPicker、Extras、Labs 开放内部成员。
- `AtomUI.Controls` 对 `AtomUI.Desktop.Controls`、DataGrid、ColorPicker、Extras、Labs 开放内部成员。
- `AtomUI.Desktop.Controls` 对 DataGrid、ColorPicker、Extras、Labs、性能工具开放内部成员。
- `AtomUI.Core` 对 `AtomUI.Controls`、`AtomUI.Controls.Shared`、`AtomUI.Desktop.Controls`、DataGrid、ColorPicker、Extras 开放内部成员。
- `AtomUI.Controls` 对 `AtomUI.Desktop.Controls`、DataGrid、ColorPicker、Extras 开放内部成员。
- `AtomUI.Desktop.Controls` 对 DataGrid、ColorPicker、Extras、性能工具开放内部成员。
- `AtomUI.Native` 对 `AtomUI.Core`、`AtomUI.Desktop.Controls`、未来 `AtomUI.Mobile.Controls` 开放内部成员。
这些关系说明 DataGrid、ColorPicker、Extras 和 Labs 虽然是独立包,但它们不是完全隔离的第三方扩展,而是桌面控件体系的同源扩展。
这些关系说明 DataGrid、ColorPicker 和 Extras 虽然是独立包,但它们不是完全隔离的第三方扩展,而是桌面控件体系的同源扩展。
-4
View File
@@ -16,7 +16,6 @@ flowchart TD
DataGrid["AtomUI.Desktop.Controls.DataGrid\n独立 DataGrid 包"]
ColorPicker["AtomUI.Desktop.Controls.ColorPicker\n独立 ColorPicker 包"]
Extras["AtomUI.Desktop.Controls.Extras\n稳定补充控件包"]
Labs["AtomUI.Desktop.Controls.Labs\n实验性补充控件包"]
Generator["AtomUI.Generator\nToken 与语言源生成器"]
GalleryBase["AtomUI.Toolkits.GalleryBase\nGallery 应用底座库"]
Gallery["AtomUIGallery\n示例与展示宿主"]
@@ -29,7 +28,6 @@ flowchart TD
Generator -. analyzer .-> DataGrid
Generator -. analyzer .-> ColorPicker
Generator -. analyzer .-> Extras
Generator -. analyzer .-> Labs
Core --> Shared
Core --> Icons
Core --> Fonts
@@ -41,7 +39,6 @@ flowchart TD
Desktop --> DataGrid
Desktop --> ColorPicker
Desktop --> Extras
Desktop --> Labs
GalleryBase --> Gallery
Desktop --> Gallery
DataGrid --> Gallery
@@ -65,7 +62,6 @@ AtomUI 应用通常分两步接入:
- `AtomUI.Desktop.Controls` 是桌面主包,负责大多数 Ant Design 桌面控件、Popup/Overlay、Window、Browser 兼容主题。
- `AtomUI.Desktop.Controls.DataGrid` 和 `AtomUI.Desktop.Controls.ColorPicker` 是按需引入的独立桌面控件包。
- `AtomUI.Desktop.Controls.Extras` 承载 Ant Design 标准之外、准备作为稳定 API 发布的补充桌面控件。
- `AtomUI.Desktop.Controls.Labs` 承载 Ant Design 标准之外、仍处于实验或评估阶段的补充桌面控件。
- `AtomUI.Toolkits.GalleryBase` 是 Gallery 应用底座库,提供产品中立的 ShowCase 控件、Gallery 主题和运行时辅助能力。
- `AtomUI.Generator` 以 Analyzer 方式接入多个项目,生成 Token 资源键、ControlToken 类型池、语言资源键和语言 Provider 池。
+2
View File
@@ -13,6 +13,8 @@
修复 bug 时必须优先寻找从根源杜绝问题的方案,而不是只在触发点打补丁。
编写 BUG 类型 Issue 时,按 [BUG Issue 规范](bug-issue-guidelines.md) 收集上下文并描述期望行为;不要在 Issue 中混入实现方案、验收清单或测试计划。
执行顺序:
1. 复现或从错误栈、日志、截图、用户步骤中还原触发路径。
@@ -48,7 +48,6 @@
- `src/AtomUI.Desktop.Controls.DataGrid`
- `src/AtomUI.Desktop.Controls.ColorPicker`
- `src/AtomUI.Desktop.Controls.Extras`
- `src/AtomUI.Desktop.Controls.Labs`
- `src/AtomUI.Icons.*`
- `src/AtomUI.Generator`
- `controlgallery/AtomUIGallery`
+83
View File
@@ -0,0 +1,83 @@
# AtomUI BUG Issue 规范
本文档定义 BUG 类型 Issue 的编写规则。BUG Issue 用于描述已存在的异常行为,重点说明发生条件、当前表现、影响和期望行为。
## 必须收集
- 问题范围:影响的功能、模块、页面或配置。
- 使用场景:用户在做什么,为什么该场景合理。
- 初始状态:关键值、配置和数据状态。
- 复现步骤:按操作顺序写清楚。
- 当前行为:实际看到什么,哪些状态发生变化。
- 问题影响:为什么这是 bug,影响了什么用户流程。
- 期望行为:同一场景下应该表现成什么样。
- 补充材料:截图、录屏、日志、版本信息,按需提供。
## 推荐结构
```markdown
# [Bug] <对象> 在 <条件> 下 <异常行为>
## 类型
Bug
## 问题描述
简述问题和影响。
## 使用场景
说明真实业务或交互场景。
## 复现步骤
1. ...
2. ...
3. ...
## 当前行为
描述实际发生的行为。
## 期望行为
描述应该表现成什么样。
## 影响范围
说明影响哪些用户、流程或配置。
## 补充信息
截图、录屏、日志、版本等。
```
## 期望行为写法
- 写结果,不写实现。
- 写用户可观察行为。
- 明确哪些状态应该变化。
- 明确哪些状态不应该变化。
- 有优先级时,写清楚不同状态下的表现。
- 默认行为需要保留时,要明确说明。
## 不要写
- 解决方案。
- API 设计。
- 代码修改建议。
- 实现路径。
- 测试计划。
- 验收清单。
- PR 描述。
- Changelog 文案。
## 检查清单
- 能看出哪里出问题。
- 能复现问题。
- 当前行为清楚。
- 用户影响清楚。
- 期望行为清楚。
- 没有混入解决方案。
@@ -2,7 +2,7 @@
本文档定义 AtomUI 新特性请求 Issue 的编写规则。新特性 Issue 应用于提出新增控件能力、扩展 public API、补充主题能力、增加 Gallery 可见示例或改善开发体验的需求。
Bug、回归、崩溃、行为错误和文档错误不使用本文档,应按 bug issue 处理。
Bug、回归、崩溃、行为错误和文档错误不使用本文档,应按 [BUG Issue 规范](bug-issue-guidelines.md) 处理。
## 适用范围
+1 -2
View File
@@ -85,8 +85,7 @@ docs/AI/llms.config.json
"src/AtomUI.Desktop.Controls",
"src/AtomUI.Desktop.Controls.DataGrid",
"src/AtomUI.Desktop.Controls.ColorPicker",
"src/AtomUI.Desktop.Controls.Extras",
"src/AtomUI.Desktop.Controls.Labs"
"src/AtomUI.Desktop.Controls.Extras"
],
"categoryOrder": [
"general",
@@ -12,4 +12,4 @@
- 新增控件必须遵循桌面控件研发标准、AOT 规则和控件文档规则。
- 控件进入 Extras 前应具备稳定的公共 API、主题契约、Gallery 示例和验证覆盖。
- 若控件仍处于探索阶段,优先放入 `AtomUI.Desktop.Controls.Labs`。
- 仍处于探索阶段的控件不应进入 Extras,待 API、主题契约和验证边界稳定后再纳入。
@@ -1,15 +0,0 @@
# AtomUI.Desktop.Controls.Labs 模块概览
`AtomUI.Desktop.Controls.Labs` 是桌面实验性补充控件包,RootNamespace 为 `AtomUI.Desktop.Controls`。它依赖 `AtomUI.Desktop.Controls`,并以 Analyzer 方式引用 `AtomUI.Generator`。
## 职责
- 承载 Ant Design 标准之外、仍处于实验或评估阶段的桌面控件。
- 允许在独立按需包中验证控件 API、主题契约和交互模型。
- 为成熟控件迁移到 `AtomUI.Desktop.Controls.Extras` 或主桌面控件包提供过渡空间。
## 约束
- Labs 控件仍需遵循资源生命周期、AOT、主题 Token 和控件文档规则。
- 实验性边界必须在控件文档和 Gallery 示例中明确。
- 控件从 Labs 晋升到 Extras 前,应完成 API/主题契约稳定性评审和相邻测试补齐。
+2 -3
View File
@@ -8,7 +8,7 @@
- 组织桌面控件 Token、主题、语言 Provider。
- 提供 Popup、Overlay、Flyout、Window、WindowTitleBar、Dialog、Message、Notification 等桌面系统能力。
- 在浏览器环境下提供可用的主题 Provider 和安全 Token 子集。
- 向 DataGrid、ColorPicker、Extras、Labs、性能工具开放内部成员。
- 向 DataGrid、ColorPicker、Extras、性能工具开放内部成员。
## 关键入口
@@ -24,9 +24,8 @@
- [browser-compatibility.md](browser-compatibility.md)
- [../../controls/desktop/overview.md](../../controls/desktop/overview.md)
DataGrid、ColorPicker、Extras 和 Labs 虽然属于桌面控件体系,但它们是独立包,内部架构分别放在:
DataGrid、ColorPicker 和 Extras 虽然属于桌面控件体系,但它们是独立包,内部架构分别放在:
- [../desktop-controls-datagrid/overview.md](../desktop-controls-datagrid/overview.md)
- [../desktop-controls-colorpicker/overview.md](../desktop-controls-colorpicker/overview.md)
- [../desktop-controls-extras/overview.md](../desktop-controls-extras/overview.md)
- [../desktop-controls-labs/overview.md](../desktop-controls-labs/overview.md)
Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

@@ -30,6 +30,5 @@
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.DataGrid" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.ColorPicker" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Extras" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Labs" />
</ItemGroup>
</Project>
@@ -33,7 +33,6 @@
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.DataGrid" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.ColorPicker" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Extras" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Labs" />
</ItemGroup>
</Project>
-1
View File
@@ -38,7 +38,6 @@
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.DataGrid"/>
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.ColorPicker"/>
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Extras"/>
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Labs"/>
</ItemGroup>
<ItemGroup>
@@ -1,23 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>$(AtomUITargetFrameworks)</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>GeneratedFiles</CompilerGeneratedFilesOutputPath>
<RootNamespace>AtomUI.Desktop.Controls</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Remove="$(CompilerGeneratedFilesOutputPath)/**/*.cs"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../AtomUI.Generator/AtomUI.Generator.csproj"
OutputItemType="Analyzer"
ReferenceOutputAssembly="false"
PrivateAssets="all"/>
<ProjectReference Include="../AtomUI.Desktop.Controls/AtomUI.Desktop.Controls.csproj" />
</ItemGroup>
</Project>
@@ -1,15 +0,0 @@
using System.Collections.Generic;
using AtomUI.Theme.Language;
using Avalonia.Controls;
namespace AtomUI.Theme.Language
{
internal class LanguageProviderPool
{
internal static IList<LanguageProvider> GetLanguageProviders()
{
List<LanguageProvider> languageProviders = new List<LanguageProvider>(0);
return languageProviders;
}
}
}
@@ -1,2 +0,0 @@
using AtomUI.Theme;
using AtomUI.Theme.Language;
@@ -1,10 +0,0 @@
// <auto-generated />
#nullable enable
namespace AtomUI.Controls
{
[global::System.AttributeUsage(global::System.AttributeTargets.Class, Inherited = false)]
internal sealed class GenerateScopedResourceHostAttribute : global::System.Attribute
{
}
}
@@ -1,2 +0,0 @@
using AtomUI.Theme.TokenSystem;
using AtomUI.Theme;
@@ -1,12 +0,0 @@
using AtomUI.Theme.Language;
using Avalonia.Metadata;
[assembly: XmlnsPrefix("https://atomui.net", "atom")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Desktop.Controls")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Desktop.Controls.DesignTokens")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Desktop.Controls.Labs")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Desktop.Controls.Localization")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Desktop.Controls.Themes")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Desktop.Controls.Utils")]
[assembly: XmlnsDefinition("https://atomui.net", "AtomUI.Theme.Styling")]
[assembly: LanguageSgMetaInfo("AtomUI.Desktop.Controls.Localization")]
@@ -21,7 +21,6 @@
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.DataGrid" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.ColorPicker" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Extras" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Labs" />
<InternalsVisibleTo Include="AtomUI.Desktop.Controls.Tests" />
<InternalsVisibleTo Include="AtomUI.Performance" />
</ItemGroup>