-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Add "Enable Prebuilds" to Project Settings – EXP-573 #18698
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
Conversation
Can't test yet, it seems, to waiting with the ✔️ 🙃 |
<Heading2 className="mt-12">Prebuilds</Heading2> | ||
<CheckboxInputField | ||
label="Enable prebuilds" | ||
hint="You need to have admin permissions on the repository in order to install a webhook for prebuilds." |
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.
thought(blocking): I assume that clicking enable will install the webhook? If so, that's not super obvious to me as a user. Mentioning the "webhook" at all here feels confusing, could we leave it up to the error? e.g. the user clicks to enable, if incorrect permissions show an error with an action? There feels like too much information that we'd need to contain here, e.g. we'd also need to mention that this overrides the init
and before
steps of your .gitpod.yml
. @gtsiolis -> Any chance we could do a quick mockup and iterate on the copy text for @AlexTugarev? Happy to do a quick sync tomorrow morning if needed to get this unblocked.
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.
I assume that clicking enable will install the webhook?
yes
If so, that's not super obvious to me as a user.
that's not a change to current state at all. in fact, you would actually get feedback if it fails. today, if it fails, you wouldn't even notice as everything happens behind the scene and there is no feedback.
Mentioning the "webhook" at all here feels confusing, could we leave it up to the error? e.g. the user clicks to enable, if incorrect permissions show an error with an action?
yes. I like that! let's simplify the hint, not mentioning the webhook and improve the error message.
CTA? which one? I think the most we can do is point out to check write permissions in Gitpod and admin permissions on the project at the SCM provider.
👍🏻 for the sync, but I don't see a blocker her TBH. this is where we need input, thus please fill in the gaps 🙏🏻
Looking at UX changes now! 👀 |
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.
Leaving a first round of comments. 🥊
Also scheduled a sync with @AlexTugarev taking place in the next hour to discuss more about this. 💬
Also, thanks for the ping[1], @loujaybee.
enablePrebuilds?: boolean; | ||
useIncrementalPrebuilds?: boolean; |
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.
The backwards compatibility logic that undefined
actually means enabled
is very surprising. What are you concerns with usin the inverse logic internally? I.e. prebuildsDisabled
?
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.
The backwards compatibility logic that undefined actually means enabled is very surprising.
Agree on that. I'd like to follow-up with a data migration separate from this PR and backfill all empty settings using a migration, then remove the compatibility lines. Would you be fine with that?
Using the inverse logic internally just for the sake of not dealing with the data migration sounds as odd as the compatibility mode.
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.
If you do a data migration, then I'd love to discuss if a shape for prebuilds as suggested by @geropl would make sense. Also would be good to name the property enabled
instead of enable
as the later sounds like an action and not like a state.
Found that |
@mustard-mh, thanks for raising this!
What's more surprising, there is no |
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.
Left two more comments with copy suggestions, to match the latest designs shared in a relevant discussion (internal). 🥊
Feel free to ignore if you think they cause more confusion. 🏓
Co-authored-by: George Tsiolis <[email protected]>
Taking a look now 👀 |
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.
Code LGTM, tested and works ✔️
I moved the "Learn more" link, so that it's also present if prebuilds aren't enabled. Next: testing once more with other SCM providers before landing this. |
![]() Fixed bug with BBS prebuilds via 418a1fa |
![]() Fixed GitLab prebuilds in 453bfb3 |
/unhold |
Description
This should add an explicit "Enable Prebuilds" checkbox to project settings.
Pre-existing projects are treated as if prebuilds were enabled, i.e. if new settings aren't present prebuilds are enabled and you'd need to disable them manually. Prebuilds are disabled when new projects are created.
Visualizing the prebuild enablement state in the list of all projects
New CTA on Project Created page guiding users to the project settings
Known issues
Summary generated by Copilot
🤖 Generated by Copilot at 4f80bee
No summary available (Limit exceeded: required to process 129049 tokens, but only 50000 are allowed per call)
Related Issue(s)
Fixes EXP-573
How to test
Unfortunately, this requires a full manual test of prebuild setups with all supported SCMs.
Documentation
Preview status
Gitpod was successfully deployed to your preview environment.
Build Options
Build
Run the build with werft instead of GHA
Run Leeway with
--dont-test
Publish
Installer
Add desired feature flags to the end of the line above, space separated
Preview Environment / Integration Tests
If enabled this will build
install/preview
If enabled this will create the environment on GCE infra
Valid options are
all
,workspace
,webapp
,ide
,jetbrains
,vscode
,ssh
. If enabled,with-preview
andwith-large-vm
will be enabled./hold