Skip to content

Commit 90236a0

Browse files
Merge pull request #751 from zenml-io/staging
Release
2 parents 72e4fe6 + ea4bac9 commit 90236a0

File tree

291 files changed

+11419
-5192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

291 files changed

+11419
-5192
lines changed

.github/workflows/unit-tests.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@ on:
44
push:
55
branches:
66
- main
7-
- dev
87
pull_request:
9-
branches:
10-
- main
11-
- dev
12-
- future
13-
- staging
148
workflow_dispatch:
159

1610
jobs:

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@
3030
"@tanstack/react-query": "^5.72.0",
3131
"@tanstack/react-table": "^8.21.2",
3232
"@tisoap/react-flow-smart-edge": "^3.0.0",
33-
"@zenml-io/react-component-library": "^0.22.0",
33+
"@zenml-io/react-component-library": "^0.23.1",
3434
"awesome-debounce-promise": "^2.1.0",
3535
"class-variance-authority": "^0.7.1",
3636
"clsx": "^2.1.1",
37+
"featureos-widget": "^0.0.32",
3738
"immer": "^10.1.1",
3839
"jwt-decode": "^4.0.0",
3940
"lodash.debounce": "^4.0.8",
@@ -92,7 +93,7 @@
9293
"cross-spawn": "^7.0.5",
9394
"micromatch": "^4.0.8",
9495
"nanoid": "^3.3.8",
95-
"undici": "^5.28.5"
96+
"undici": "^5.29.0"
9697
}
9798
}
9899
}

pnpm-lock.yaml

Lines changed: 18 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/App.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ export function App() {
1717
<TourProvider>
1818
<QueryClientProvider client={queryClient}>
1919
<Toaster />
20-
2120
<RouterProvider router={router} />
2221
</QueryClientProvider>
2322
</TourProvider>

src/app/Header.tsx

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/app/artifacts/page.tsx

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import ACP from "@/assets/images/acp.webp";
2-
import { PageHeader } from "@/components/PageHeader";
3-
import { ProBadge } from "@/components/pro/ProBadge";
42
import {
53
ProButtons,
64
ProFeatureList,
@@ -13,46 +11,40 @@ import { CommandSection } from "./Fragments";
1311

1412
export default function ModelsPage() {
1513
return (
16-
<div>
17-
<PageHeader className="flex items-center gap-1">
18-
<h1 className="text-display-xs font-semibold">Artifacts</h1>
19-
<ProBadge />
20-
</PageHeader>
21-
<div className="layout-container space-y-5 py-5">
22-
<ProWrapper className="relative overflow-y-hidden">
23-
<div className="w-full max-w-none space-y-5 lg:max-w-[900px]">
24-
<ProHeadline>Advanced Artifact Management Features with ZenML Pro</ProHeadline>
25-
<ProInfoBadge />
26-
<ProFeatureList
27-
features={[
28-
{
29-
title: "Artifact Control Plane Dashboard",
30-
subtitle: "Artifact management and monitoring"
31-
},
32-
{
33-
title: "Enterprise Security",
34-
subtitle: "Social SSO, RBAC, and User Management"
35-
},
36-
{
37-
title: "Managed ZenML Server",
38-
subtitle: "On your VPC or hosted on our infrastructure"
39-
},
40-
{
41-
title: "Advanced MLOps",
42-
subtitle: "CI/CD/CT, Model Control Plane and more"
43-
}
44-
]}
45-
/>
46-
<ProButtons />
47-
</div>
48-
<ProImage
49-
className="absolute translate-x-[30%] translate-y-[15%] scale-[40%]"
50-
src={ACP}
51-
alt="Screenshot of the ZenML Pro Artifact Control Plane"
14+
<div className="layout-container space-y-5 py-5">
15+
<ProWrapper className="relative overflow-y-hidden">
16+
<div className="w-full max-w-none space-y-5 lg:max-w-[900px]">
17+
<ProHeadline>Advanced Artifact Management Features with ZenML Pro</ProHeadline>
18+
<ProInfoBadge />
19+
<ProFeatureList
20+
features={[
21+
{
22+
title: "Artifact Control Plane Dashboard",
23+
subtitle: "Artifact management and monitoring"
24+
},
25+
{
26+
title: "Enterprise Security",
27+
subtitle: "Social SSO, RBAC, and User Management"
28+
},
29+
{
30+
title: "Managed ZenML Server",
31+
subtitle: "On your VPC or hosted on our infrastructure"
32+
},
33+
{
34+
title: "Advanced MLOps",
35+
subtitle: "CI/CD/CT, Model Control Plane and more"
36+
}
37+
]}
5238
/>
53-
</ProWrapper>
54-
<CommandSection />
55-
</div>
39+
<ProButtons />
40+
</div>
41+
<ProImage
42+
className="absolute translate-x-[30%] translate-y-[15%] scale-[40%]"
43+
src={ACP}
44+
alt="Screenshot of the ZenML Pro Artifact Control Plane"
45+
/>
46+
</ProWrapper>
47+
<CommandSection />
5648
</div>
5749
);
5850
}

src/app/components/StackComponentList.tsx

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,23 @@ import { Button, Skeleton } from "@zenml-io/react-component-library/components/s
1010
import { Link } from "react-router-dom";
1111
import { getComponentList } from "./columns";
1212
import { useComponentlistQueryParams } from "./service";
13+
import { StackComponentListParams } from "@/types/components";
14+
import { useComponentSelectorContext } from "./selector-context";
15+
import { ComponentButtonGroup } from "./button-group";
1316

14-
export function StackComponentList() {
17+
type Props = {
18+
fixedQueryParams?: StackComponentListParams;
19+
displayCreateComponent?: boolean;
20+
};
21+
22+
export function StackComponentList({ fixedQueryParams, displayCreateComponent = true }: Props) {
1523
const queryParams = useComponentlistQueryParams();
24+
const { rowSelection, setRowSelection, selectedRowCount } = useComponentSelectorContext();
1625

1726
const componentList = useQuery({
1827
...componentQueries.componentList({
1928
...queryParams,
29+
...fixedQueryParams,
2030
sort_by: "desc:updated"
2131
}),
2232
throwOnError: true
@@ -30,27 +40,39 @@ export function StackComponentList() {
3040
<div className="flex flex-col gap-5">
3141
<div className="flex flex-wrap items-center justify-between gap-y-4">
3242
<div className="flex items-center gap-2">
33-
<SearchField searchParams={queryParams} />
43+
{selectedRowCount >= 1 ? (
44+
<ComponentButtonGroup />
45+
) : (
46+
<SearchField searchParams={queryParams} />
47+
)}
3448
</div>
3549

3650
<div className="flex items-center justify-between gap-2">
3751
<Button intent="primary" emphasis="subtle" size="md" onClick={() => refetch()}>
3852
<Refresh className="h-5 w-5 fill-theme-text-brand" />
3953
Refresh
4054
</Button>
41-
<Button size="md" asChild>
42-
<Link to={routes.components.create}>
43-
<Plus className="h-5 w-5 shrink-0 fill-white" />
44-
<span>New Component</span>
45-
</Link>
46-
</Button>
55+
{displayCreateComponent && (
56+
<Button size="md" asChild>
57+
<Link to={routes.components.create}>
58+
<Plus className="h-5 w-5 shrink-0 fill-white" />
59+
<span>New Component</span>
60+
</Link>
61+
</Button>
62+
)}
4763
</div>
4864
</div>
4965

5066
<div className="flex flex-col items-center gap-5">
5167
<div className="w-full">
5268
{data ? (
53-
<DataTable columns={columns} data={data.items} />
69+
<DataTable
70+
getRowId={(row) => row.id}
71+
rowSelection={rowSelection}
72+
onRowSelectionChange={setRowSelection}
73+
columns={columns}
74+
data={data.items}
75+
/>
5476
) : (
5577
<Skeleton className="h-[500px] w-full" />
5678
)}

src/app/components/[componentId]/edit/form-step.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
"use client";
2-
31
import { Button, Skeleton } from "@zenml-io/react-component-library";
42
import { useId } from "react";
53
import * as Wizard from "@/components/wizard/Wizard";

src/app/components/[componentId]/page.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { StackComponentTabs } from "@/components/stack-components/component-detail/Tabs";
22
import { useParams } from "react-router-dom";
3-
import { RunsBody } from "../../pipelines/RunsTab/RunsBody";
4-
import { RunsSelectorProvider } from "../../pipelines/RunsTab/RunsSelectorContext";
3+
import { RunsBody } from "../../runs/RunsBody";
4+
import { RunsSelectorContextProvider } from "../../runs/RunsSelectorContext";
55
import { StackList } from "../../stacks/StackList";
66

77
export default function ComponentDetailPage() {
@@ -13,9 +13,9 @@ export default function ComponentDetailPage() {
1313
isPanel={false}
1414
stacksTabContent={<StackList fixedQueryParams={{ component_id: componentId }} />}
1515
runsTabContent={
16-
<RunsSelectorProvider>
16+
<RunsSelectorContextProvider>
1717
<RunsBody fixedQueryParams={{ stack_component: componentId }} />
18-
</RunsSelectorProvider>
18+
</RunsSelectorContextProvider>
1919
}
2020
componentId={componentId}
2121
/>

0 commit comments

Comments
 (0)