-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
replace GrapheneAssetNode
isSource
with isMaterializable
#23401
Conversation
Deploy preview for dagit-core-storybook ready! ✅ Preview Built with commit e378057. |
GrapheneAssetNode
isSource
with isMaterializable
05a154a
to
3d10a43
Compare
09958a5
to
ce79b42
Compare
ce79b42
to
e378057
Compare
Hey @sryza I think this makes sense, but how is isMaterializable different from isExecutable? maybe we merge those two as well? |
@@ -65,7 +65,7 @@ export const buildAssetTabMap = (input: AssetTabConfigInput) => { | |||
id: 'partitions', | |||
title: 'Partitions', | |||
to: buildAssetViewParams({...params, view: 'partitions'}), | |||
hidden: !definition?.partitionDefinition || definition?.isSource, | |||
hidden: !definition?.partitionDefinition || !definition?.isMaterializable, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically this also hides it if the definition does not exist, I think in this case we may want to say (definition && !definition.isMaterializable)
so that the !definition
case doesn't also count
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gah I accidentally merged before fixing this. Here's a followup: #23490.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually – thinking about this more deeply after noticing a test failure on my followup PR branch, I think the expected behavior is actually that we do want to hide the tab if the definition does not exist. So I think this is right?
@@ -177,7 +177,7 @@ export const AssetView = ({ | |||
}; | |||
|
|||
const renderPartitionsTab = () => { | |||
if (definition?.isSource) { | |||
if (!definition?.isMaterializable) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same note as above, I think we want isMaterializable = false specifically. Maybe another way of writing this is definition?.isMaterializable === false
, since the other falsy value is undefined
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oo thanks for catching my ignoramus javascript, will fix
|
Summary & Motivation
We are eliminating "source asset" as a concept in Dagster. The way we use
isSource
in the UI is synonymous with "the asset is not materializable". This PR removesisSource
fromGrapheneAssetNode
, addsisMaterializable
, and updates the downstream frontend code.The one user-facing change is that the asset details page will now say "External Asset" instead of "Source Asset" when an asset is not materializable:
How I Tested These Changes