From d351df1d106612cf379cce02b9c7a19ccf462946 Mon Sep 17 00:00:00 2001 From: Maksym Sadovnychyy Date: Wed, 30 Sep 2026 18:55:15 +0200 Subject: [PATCH] (refactor): group client and UI sources by area and add Flathub and Store submission notes --- CHANGELOG.md | 12 ++++ CONTRIBUTING.md | 13 ++++ data/com.maks_it.clusterconsole.metainfo.xml | 68 ++++++++++++++++++- packaging/flathub/manifest.md | 28 ++++++++ packaging/flathub/permissions.md | 19 ++++++ packaging/flathub/sources.md | 24 +++++++ packaging/flathub/submission.md | 21 ++++++ packaging/flathub/verification.md | 9 +++ packaging/microsoft-store/product-features.md | 38 +++++------ .../restricted-capabilities.md | 17 +++++ src/Directory.Build.props | 2 +- .../{ => Cluster}/ClusterMetrics.cs | 2 +- .../{ => Cluster}/ClusterModels.cs | 2 +- .../{ => Cluster}/ClusterSession.Features.cs | 3 +- .../{ => Cluster}/ClusterSession.Reclaim.cs | 3 +- .../{ => Cluster}/ClusterSession.Terminal.cs | 4 +- .../{ => Cluster}/ClusterSession.cs | 4 +- .../{ => Cluster}/ContainerLimits.cs | 2 +- .../{ => Cluster}/IClusterSession.cs | 3 +- .../{ => Cluster}/KubeQuantity.cs | 2 +- .../{ => Cluster}/ReclaimPolicy.cs | 2 +- .../{ => Cluster}/ResourceRef.cs | 2 +- .../{ => Cluster}/RolloutHistory.cs | 2 +- .../{ => Internal}/KubernetesApiRetry.cs | 2 +- .../{ => Internal}/KubernetesResult.cs | 2 +- .../{ => Internal}/NamespaceListMerge.cs | 2 +- .../{ => KubeConfig}/IKubeConfigService.cs | 2 +- .../{ => KubeConfig}/KubeAuthKind.cs | 2 +- .../{ => KubeConfig}/KubeConfigEditor.cs | 7 +- .../{ => KubeConfig}/KubeConfigService.cs | 2 +- .../{ => KubeConfig}/KubeConnectionModels.cs | 2 +- .../{ => Terminal}/PodShell.cs | 2 +- .../{ => Terminal}/PodTerminalConnection.cs | 2 +- .../ApplicationManifest.cs | 2 +- .../ClusterWorkspace.Metrics.cs | 2 +- .../ClusterWorkspace.NodeImages.cs | 2 +- .../ClusterWorkspace.VolumeFiles.cs | 2 +- .../ClusterWorkspace.cs | 2 +- .../NodeImages.cs | 2 +- .../PodMetricsAggregate.cs | 2 +- .../PortForwardRow.cs | 2 +- .../ResourceColumnSort.cs | 2 +- .../ResourceDescriptor.cs | 2 +- .../ResourceRow.cs | 2 +- .../ApplicationManifestTests.cs | 2 +- .../ClusterChatTests.cs | 3 +- .../ContainerLimitsTests.cs | 2 +- .../KubeConfigServiceTests.cs | 2 +- .../KubeQuantityTests.cs | 2 +- .../KubernetesApiRetryTests.cs | 2 +- .../KubernetesResultTests.cs | 2 +- .../NamespaceListMergeTests.cs | 2 +- .../PodLogsTests.cs | 2 +- .../PodMetricsAggregateTests.cs | 2 +- .../PodShellTests.cs | 2 +- .../ReclaimPolicyTests.cs | 2 +- .../ResourceCatalogTests.cs | 2 +- src/MaksIT.ClusterConsole.UI/App.axaml.cs | 6 +- .../Controls/{ => Charts}/ResourceBar.cs | 2 +- .../Controls/{ => Charts}/Sparkline.cs | 2 +- .../Controls/{ => Editor}/MarkupColorizer.cs | 2 +- .../Controls/{ => Editor}/SyntaxTextEditor.cs | 2 +- .../{ => Grid}/ColumnFilterHeader.axaml | 4 +- .../{ => Grid}/ColumnFilterHeader.axaml.cs | 4 +- .../Controls/{ => Grid}/DataGridColumns.cs | 2 +- .../{ => Services}/LayoutPersistence.cs | 2 +- .../Themes/Dark.axaml | 7 +- .../ClusterPageViewModel.Chat.cs | 2 +- .../ClusterPageViewModel.Terminal.cs | 4 +- .../{ => Cluster}/ClusterPageViewModel.cs | 7 +- .../{ => Cluster}/ColumnFilterViewModel.cs | 2 +- .../{ => Cluster}/LimitRowViewModel.cs | 4 +- .../ConnectionWizardViewModel.cs | 4 +- .../{ => Connections}/ConnectionsViewModel.cs | 4 +- .../ViewModels/{ => Shell}/MainViewModel.cs | 9 ++- .../{ => Storage}/RetainReclaimViewModel.cs | 4 +- .../{ => Storage}/VolumeFilesViewModel.cs | 2 +- .../Windows/ConnectionWizardWindow.axaml | 2 +- .../Windows/ConnectionWizardWindow.axaml.cs | 4 +- .../Windows/ConnectionsWindow.axaml | 2 +- .../Windows/ConnectionsWindow.axaml.cs | 2 +- .../{ => Windows}/MainWindow.axaml | 34 +++++----- .../{ => Windows}/MainWindow.axaml.cs | 10 +-- .../Windows/RetainReclaimWindow.axaml | 4 +- .../Windows/RetainReclaimWindow.axaml.cs | 2 +- .../Windows/VolumeFilesWindow.axaml | 6 +- .../Windows/VolumeFilesWindow.axaml.cs | 2 +- 87 files changed, 365 insertions(+), 134 deletions(-) create mode 100644 packaging/flathub/manifest.md create mode 100644 packaging/flathub/permissions.md create mode 100644 packaging/flathub/sources.md create mode 100644 packaging/flathub/submission.md create mode 100644 packaging/flathub/verification.md create mode 100644 packaging/microsoft-store/restricted-capabilities.md rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ClusterMetrics.cs (99%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ClusterModels.cs (98%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ClusterSession.Features.cs (99%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ClusterSession.Reclaim.cs (99%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ClusterSession.Terminal.cs (87%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ClusterSession.cs (99%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ContainerLimits.cs (98%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/IClusterSession.cs (98%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/KubeQuantity.cs (98%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ReclaimPolicy.cs (99%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/ResourceRef.cs (71%) rename src/MaksIT.ClusterConsole.Client/{ => Cluster}/RolloutHistory.cs (98%) rename src/MaksIT.ClusterConsole.Client/{ => Internal}/KubernetesApiRetry.cs (96%) rename src/MaksIT.ClusterConsole.Client/{ => Internal}/KubernetesResult.cs (98%) rename src/MaksIT.ClusterConsole.Client/{ => Internal}/NamespaceListMerge.cs (96%) rename src/MaksIT.ClusterConsole.Client/{ => KubeConfig}/IKubeConfigService.cs (94%) rename src/MaksIT.ClusterConsole.Client/{ => KubeConfig}/KubeAuthKind.cs (93%) rename src/MaksIT.ClusterConsole.Client/{ => KubeConfig}/KubeConfigEditor.cs (97%) rename src/MaksIT.ClusterConsole.Client/{ => KubeConfig}/KubeConfigService.cs (99%) rename src/MaksIT.ClusterConsole.Client/{ => KubeConfig}/KubeConnectionModels.cs (95%) rename src/MaksIT.ClusterConsole.Client/{ => Terminal}/PodShell.cs (97%) rename src/MaksIT.ClusterConsole.Client/{ => Terminal}/PodTerminalConnection.cs (98%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Charts}/ResourceBar.cs (98%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Charts}/Sparkline.cs (98%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Editor}/MarkupColorizer.cs (99%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Editor}/SyntaxTextEditor.cs (98%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Grid}/ColumnFilterHeader.axaml (95%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Grid}/ColumnFilterHeader.axaml.cs (90%) rename src/MaksIT.ClusterConsole.UI/Controls/{ => Grid}/DataGridColumns.cs (96%) rename src/MaksIT.ClusterConsole.UI/{ => Services}/LayoutPersistence.cs (99%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Cluster}/ClusterPageViewModel.Chat.cs (99%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Cluster}/ClusterPageViewModel.Terminal.cs (98%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Cluster}/ClusterPageViewModel.cs (99%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Cluster}/ColumnFilterViewModel.cs (98%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Cluster}/LimitRowViewModel.cs (94%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Connections}/ConnectionWizardViewModel.cs (98%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Connections}/ConnectionsViewModel.cs (97%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Shell}/MainViewModel.cs (97%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Storage}/RetainReclaimViewModel.cs (98%) rename src/MaksIT.ClusterConsole.UI/ViewModels/{ => Storage}/VolumeFilesViewModel.cs (99%) rename src/MaksIT.ClusterConsole.UI/{ => Windows}/MainWindow.axaml (97%) rename src/MaksIT.ClusterConsole.UI/{ => Windows}/MainWindow.axaml.cs (97%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c9ed7f..6f81279 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [Unreleased] +## [0.8.4] - 2026-09-30 + +### Added + +- Flathub submission documents are in `packaging/flathub`. +- Microsoft Store text for the `runFullTrust` capability is in `packaging/microsoft-store/restricted-capabilities.md`. + +### Changed + +- Client and UI code is grouped by area: cluster session, kubeconfig, terminal, charts, editor, grid, and the shell, connection, and storage windows. +- AppStream includes screenshots, an age rating, and the kubeconfig step after install. + ## [0.8.3] - 2026-09-29 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4c148ec..e5e6663 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -57,6 +57,7 @@ Store listing copy: | Product features (up to 20 bullets, 200 characters each) | [packaging/microsoft-store/product-features.md](packaging/microsoft-store/product-features.md) | | Keywords (up to 7, 40 characters each, 21 words total) | [packaging/microsoft-store/keywords.md](packaging/microsoft-store/keywords.md) | | Copyright, additional license terms, Developed by | [packaging/microsoft-store/additional-info.md](packaging/microsoft-store/additional-info.md) | +| Restricted capability `runFullTrust` | [packaging/microsoft-store/restricted-capabilities.md](packaging/microsoft-store/restricted-capabilities.md) | | Store logos (9:16 poster, 1:1 box art, app tiles) | [packaging/microsoft-store/logos.md](packaging/microsoft-store/logos.md) | ### System requirements (Properties) @@ -85,6 +86,18 @@ The app is a win-x64 desktop console (tables, YAML, terminal). It does not use a | Processor | x64 | Not specified | | Graphics | Not specified | Not specified | +## Flathub + +`FlatpakPack` writes the GitHub Release `.flatpak` from the linux-x64 publish. A Flathub submission builds a release tag from source. Open the pull request on [flathub/flathub](https://github.com/flathub/flathub) against `new-pr`. + +| Field | Document | +|-------|----------| +| Pull request and local check | [packaging/flathub/submission.md](packaging/flathub/submission.md) | +| Upstream files and NuGet sources | [packaging/flathub/sources.md](packaging/flathub/sources.md) | +| Manifest values | [packaging/flathub/manifest.md](packaging/flathub/manifest.md) | +| Finish args | [packaging/flathub/permissions.md](packaging/flathub/permissions.md) | +| Verified app id | [packaging/flathub/verification.md](packaging/flathub/verification.md) | + ## GitHub setup exe The GitHub Windows installer stays the WiX Burn `setup.exe`. Its switches are `/quiet /norestart` (install), `/repair /quiet /norestart` (repair), and `/uninstall /quiet /norestart` (uninstall). Signing that exe for an EXE/MSI Store listing needs a Trusted Root Authenticode certificate and the Burn order: payload PEs, then the MSI, then `wix burn detach` / sign the engine / `wix burn reattach` / sign `setup.exe` ([WiX signing](https://docs.firegiant.com/wix/tools/signing/)). diff --git a/data/com.maks_it.clusterconsole.metainfo.xml b/data/com.maks_it.clusterconsole.metainfo.xml index b5853d2..1a1b77a 100644 --- a/data/com.maks_it.clusterconsole.metainfo.xml +++ b/data/com.maks_it.clusterconsole.metainfo.xml @@ -9,6 +9,7 @@ CC0-1.0 Apache-2.0 +

**After installation, point the app at a kubeconfig that can reach a running cluster (KUBECONFIG or ~/.kube/config).**

Browse a Kubernetes cluster from the desktop using your kubeconfig. Apply YAML, follow logs, exec into pods, and manage port-forwards without a browser.

Settings stay on this computer. Cluster access uses the network and files under the home folder (typically ~/.kube).