-
Notifications
You must be signed in to change notification settings - Fork 55
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
Allow submitting reviewed extensions via issues #1034
base: main
Are you sure you want to change the base?
Conversation
// Basic check to see if it is a GDevelop extension | ||
if ( | ||
!( | ||
Array.isArray(extension.eventsFunctions) && | ||
Array.isArray(extension.eventsBasedBehaviors) && | ||
typeof extension.name === 'string' | ||
) |
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.
This check might be a bit fragile? If in we stop storing empty arrays for example if an extension only has a behavior and no free functions, a legit GDevelop extension might come out not being detected as a GDevelop extension.
I really love the improvements you're doing on the submission workflow. I have some concerns about using the "reviewed" folder automatically. I have the impression that for submissions asking for a review, the community list is often suggested because:
It is also reassuring that the folder is "community" in case of mistake. |
Hmm... I hear you, how about this:
Warning A reviewed submission may take many months to be added to GDevelop, since it is a very long and tedious process that requires a lot of both your time and of the time of a voluntary reviewer. We recommend you submit it as a community extension, which includes only a bare-bones review:
A full review will additionally require multiple quality assurance checks that you might feel are unnecessary, like:
You can always submit as a community extension first, then submit it again as a reviewed extension, allowing people to start using your extension while completing the additional review steps.
That way:
|
I believe the bot could also mention how to update the zip files in case they have to be fixed. I had struggled with this kind of thing since the bot doesn't say how to do that. |
That's fair! I thought the bot would write detailed explanation of the commands when creating the PR, but either I remember wrong or this has been changed 😅 I'll do that! |
Sure, I didn't suggested to remove it, just to keep the community folder for both as I've never feel the need to merge a submission to the reviewed list directly. Apart maybe some of the extension team extensions (which are direct PR), but it can be a good thing to start with the community list. I chose this path for some of my extensions. The choice is still important to see the motivation.
I fear that nobody will ever choose "reviewed" with a message this strong. |
Let's merge this for now, to get all the misc improvements this provides. If we want to implement a different flow where people must submit as community extension, then create a request for it to be promoted to a reviewed extension, we can change and implement the new submission flow as a part of another PR. @D8H Is that alright with you? |
createWriteStream(`${extensionsFolder}/community/${file.name}`) | ||
createWriteStream( | ||
`${extensionsFolder}/${reviewed ? 'reviewed' : 'community'}/${ | ||
file.name | ||
}` | ||
) |
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.
What do you think about asking submitters if they want to submit a update or a new extension?
- a new extension would always target the community folder
- an update would target either reviewed or community according to the extension to update.
The PR title or tags could make it clear that it's a reviewed extension update so that reviewers don't merge something in the reviewed folder by mistake without a full review.
It will also avoid to move extensions to the community folder because submitters chose "reviewed" whereas it's not up to them to decide and 90% of submission are likely to go to the community folder at least as a 1st step.
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 a system where we have an issue template to submit a new extension that won't allow using a name that's already in-use, andcreates a community extensions PR by default, with another issue template to later on request an upgrade to reviewed tier, and an update extension issue template that'll take into account the current tier of the extension you're trying to update.
That way, we encourage community extensions by default, provide an upgrade path to reviewed extensions, and can still submit updates to all types of extensions without risking overriding/"updating" another one by accident, or decreasing the quality of the reviewed extension demoting it to community extension.
With that said, this PR already has a lot of changes. I'd rather first merge this one for now, to already get these improvements out and figure out any potential bug with these changes, then work on reworking & improving the submission system even more.
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 agree with your goal, but I don't want to see PR adding new extension in the review folder while you implement the 2nd step because it will require me to manually fix these PR.
The auto-pr system now reads the issue body to know whether the issue wants a reviewed or community extension submission and creates a PR with the file in the right folder.
Other misc improvements:
I wrote unit tests and extensively tested the changes on my fork of the repository.