-
Notifications
You must be signed in to change notification settings - Fork 2.6k
feat: add advanced software project generator initializer recipe (#4767) #4949
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
feat: add advanced software project generator initializer recipe (#4767) #4949
Conversation
Signed-off-by: Arya Pratap Singh <notaryasingh@gmail.com>
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
iandouglas
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.
Overall, looks great! I'd love to see a setting for "include_testing" where we generate some basic unit/integration testing for the frontend and backend, and including that in the CI/CD step as well.
| {% endif %} | ||
|
|
||
| 2. Frontend Setup | ||
| {% if frontend_framework != "none" %} |
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'd move this line above "2. Frontend step", same with backend section
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.
did this for both
| 2. Frontend Setup | ||
| {% if frontend_framework != "none" %} | ||
| {% if frontend_framework == "react" %} | ||
| Create React app with Vite and TypeScript in the frontend directory. |
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'd love to see these sections indented for each of the if/else clauses, it won't hurt the YAML layout, and would be easier to read
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.
tried my best to make it look good - vscode is bad
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.
my idea here is to indent each section further:
{% if frontend_framework != "none" %}
2. Frontend Setup
{% if frontend_framework == "react" %}
Create React app with Vite and TypeScript in the frontend directory.
...
Create example Welcome component and test.
{% elif frontend_framework == "vue" %}
Create Vue 3 app with TypeScript, Router, and Pinia.
...|
since this recipe is explicitly called "full-stack", we could probably take out the if conditions for the frontend and backend, since a full stack project would have both anyway ... whether it has a dedicated database would be a different case so that could be an 'if' condition for example. thoughts? |
oh yes i thought about that, but maybe sometimes you need a frontend only or a backend only - you might use some other custom counterpart. So its like a subset then. "it can full stack" but maybe sometimes you need a particular thing or so. Hence keeping it optional would be best. Just to make it modular. Rest of the issues I will address and fix by morning, i might need to rebase |
Signed-off-by: Arya Pratap Singh <notaryasingh@gmail.com>
|
most likely i think i addressed everything. let me know further. thanks for timely guidance @iandouglas |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
iandouglas
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.
left a few more comments and thoughts for your feedback
| requirement: required | ||
| description: Name of the project to initialize (alphanumeric and dashes only) | ||
|
|
||
| - key: project_type |
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.
do we need this as a parameter if we're always trying to build a full-stack project with this recipe? or should we rename the recipe to something like "software project generator" that doesn't necessarily fall into a frontend/backend/fullstack role?
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 a good idea to rename maybe
| requirement: optional | ||
| default: "." | ||
| description: Base directory where the project should be created | ||
|
|
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.
do we need any awareness of what kind of system we're developing on? eg, mac vs windows may have different tooling or needs (for example, Windows will handle disk paths differently, one common area I had was building paths like c:\src\react-project where the \r in the path gets interpreted as a carriage return character, breaking other workflows.
maybe this doesn't need to be a parameter, it could just be added in the instructions that say something like "detect what kind of operating system I'm on, and if you detect that I'm on Windows, be careful about disk paths where backslash path separators aren't interpreted as escape characters in strings"
| 2. Frontend Setup | ||
| {% if frontend_framework != "none" %} | ||
| {% if frontend_framework == "react" %} | ||
| Create React app with Vite and TypeScript in the frontend directory. |
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.
my idea here is to indent each section further:
{% if frontend_framework != "none" %}
2. Frontend Setup
{% if frontend_framework == "react" %}
Create React app with Vite and TypeScript in the frontend directory.
...
Create example Welcome component and test.
{% elif frontend_framework == "vue" %}
Create Vue 3 app with TypeScript, Router, and Pinia.
...Signed-off-by: Arya Pratap Singh <notaryasingh@gmail.com>
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
added some more things, i think this should not be extended further as it might cross the token limits now. lgtm and actually works. i personally tested on fedora so didnt have any issues |
iandouglas
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.
just one last change here for the operating system so people don't get stuck on something that LLMs often get tripped up on for file/disk paths
| Run initial tests to ensure everything works. | ||
| Display summary of created project structure and next steps. | ||
|
|
||
| Work through these steps systematically. Use shell commands to create files and directories. |
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'd just add the note here for goose that adds the following:
Detect the operating system that I'm on, and use appropriate disk path separators, being careful to avoid 'escaping' of slash or backslash characters as appropriate for my operating system when interpreting or using string values for filenames.
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
|
great work on the indentation, it's MUCH easier to read through the recipe now. Just one last thing to add to the end and we can get this merged in! Thanks for your contribution!! |
Signed-off-by: Arya Pratap Singh <notaryasingh@gmail.com>
thank you for the guidance, you are really a great maintainer. you will surely find me in some other pr at goose. thanks |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
|
thanks for your contribution!! we'll get this merged in as soon as the other workflows finish. |
|
i think the workflows have finished. thanks |
|
Amazing work! Thank you for the review @iandouglas, thank you for contributing @ARYPROGRAMMER ! <3 |
|
✅ $10 OpenRouter API key sent to |
Summary
Advanced recipe for automated full-stack project initialization supporting multiple framework combinations (React/Vue/Svelte/Next.js + Node.js/Python/Go/Rust), database integrations (PostgreSQL/MongoDB/MySQL/SQLite), Docker, CI/CD, and production-ready configurations with comprehensive testing and documentation.
Key Features:
Type of Change
Testing
used command:
Manual Testing:
Related Issues
Fixes #4767
Screenshots/Demos (for UX changes)
Before: N/A - New recipe submission
After: N/A - New recipe submission
Email: notaryasingh@gmail.com