-
Notifications
You must be signed in to change notification settings - Fork 0
Initial implementation of the Devfile GUI Wizard #1
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Ilya Buziuk <[email protected]>
Build a complete single-page application that guides users through creating devfile 2.3.0 YAML files via an interactive 7-step wizard interface. Features: - Step-by-step wizard covering all devfile 2.3.0 sections (metadata, projects, components, commands, events, variables) - Real-time YAML preview with syntax highlighting - Built-in validation for devfile compliance - One-click download and copy-to-clipboard functionality - Responsive design with Tailwind CSS - Client-side state management using React useReducer + Context API Technical Stack: - React 18.3.1 with modern hooks - Tailwind CSS 3.4.0 with forms plugin - Vite 5.4.0 for fast development and builds - js-yaml for YAML generation Documentation: - Comprehensive README.md with setup and usage instructions - Working devfile.yaml for developing this project itself - Updated CLAUDE.md with project guidance Resolves: devfile/api#1765 Signed-off-by: Ilya Buziuk <[email protected]> Co-Authored-By: Claude Sonnet 4.5 <[email protected]> Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Added badges for contribution and Che server. Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
michael-valdron
left a comment
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.
Good work on this @ibuziuk!
I left a few comments to address to best match the Devfile v2.3.0 schema and a bit of UX. Few more comments I have:
- We should change from the image built under your registry, seeing your private conversation we can address separately this after this PR
- To deploy, you'll need to fill in the commands to build and export to a static website here, start.devfile.io should already be pointing here so once the deploy workflow is completed you'll start seeing it there.
| options={COMPONENT_TYPES} | ||
| /> | ||
|
|
||
| {component.type === 'container' && ( |
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.
Component fields are missing the inputs to fill in the devfile, was this intentional to batch out the features based on imminent interest?
For volumes, there could be a dynamic field on either the container or volume component that ties it to the other.
The fields missing are the following:
container
volume
kubernetes
All fields: https://devfile.io/docs/2.3.0/devfile-schema#components-kubernetes
openshift
All fields: https://devfile.io/docs/2.3.0/devfile-schema#components-openshift
image
All fields: https://devfile.io/docs/2.3.0/devfile-schema#components-image
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.
Correct, those are for further improvements once the initial implementation is merged
| options={COMMAND_TYPES} | ||
| /> | ||
|
|
||
| {command.kind === 'exec' && ( |
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.
Command fields are missing the inputs to fill in the devfile, was this intentional to batch out the features based on imminent interest?
The fields missing are the following:
exec
- env
- group
- hotReloadCapable <-- this I assume might be missing due to how specific it is to the
odotool, but correct me if I'm wrong - label
apply
All fields: https://devfile.io/docs/2.3.0/devfile-schema#commands-apply
composite
All fields: https://devfile.io/docs/2.3.0/devfile-schema#commands-composite
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.
Should there be another step or expand this step to include starterProjects? Also dependentProjects?
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.
no, I do not want to expose it on UI, at the very least for 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.
In general, I do not understand why starterProjects / dependendentProjects properties are needed. This is also probably smth. odo specific
| </div> | ||
| </main> | ||
|
|
||
| <footer className="bg-white border-t border-gray-200 mt-12"> |
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.
One more comment is that CNCF requires us to have the following line on all page footers:
Copyright © Devfile a Series of LF Projects, LLC
For website terms of use, trademark policy and other project policies please see lfprojects.org/policies/.
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.
README.md
Outdated
|
|
||
| ## License | ||
|
|
||
| This project is open source and available under the [MIT License](LICENSE). |
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 think we should convert this to Apache-2.0
cc @elsony
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.
switching to Apache License, Version 2.0
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
…tial PR. The workflow Will be implemented for https://quay.io/ in the future Signed-off-by: Ilya Buziuk <[email protected]>
|
@michael-valdron thank you for the review:
sounds good, I have removed the image build action from the initial PR
done |
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
Signed-off-by: Ilya Buziuk <[email protected]>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: dmytro-ndp, ibuziuk, rohanKanojia, svor The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |

Related issue - devfile/api#1765
Original repository - https://github.com/ibuziuk/devfile-gui-wizard
Preview - https://devfile-gui-wizard-devfile-gui-wizard.apps.che-dev.x6e0.p1.openshiftapps.com/
Developer Sandbox