-
-
Notifications
You must be signed in to change notification settings - Fork 97
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
Features and Enhancements should be treated separately or questions be rephrased #39
Comments
I'd add field Describe Enhancment at the top of enhancment template. With current template I do not really know where to put proposed changes and since it is most importat information it should be probably at the top of the template. |
Straight up removing the "workaround", "mockup", and "why in core" questions does a lot more damage I think. The entire purpose is for the template to be a end-all solution for capturing possible redundancies in the codebase and filtering out stuff that doesn't belong, and each of these questions have valid responses where someone might think it goes in the engine, but really shouldn't.
Overall, I am not in favor of removing any of the discussed fields. The potential loss of benefit far outweighs any perceived improvement/simplification in the Issue creation workflow. If you really wanted to create different templates that just reword the statements, I guess you could(?), but then you'd be maintaining two separate Issue templates that effectively ask the exact same questions. And that just doesn't really make sense to do from a repository management perspective. |
My point is that we should make it flexible, some of those questions can be made optional, with words:
But yeah if the task is to prevent people from creating "low-quality" proposals
I don't see how this could be an issue from management perspective, a python script could write out needed templates from a single source. But then again I'd just refine correct wording for each at the very least. |
Why complicate something this simple even further? I'm just saying that I don't think the effort involved is worth it, not that it would necessarily be a huge pain to deal with. |
I do agree that having an "if applicable" condition could help to make certain proposals feel more at home though. |
Exactly, but we should first define if the effort should be alleviated from the maintainers side or user side. |
Adding something like "if applicable" is counter to the purpose of the proposals. If every part of the template is marked as "if applicable" people will just not fill them out and then it falls on core developers to police them. The purpose of the proposals is to force users to spend time and decently plan out their feature request. Each question is asking for particular, necessary information. For example, if you don't have a project that needs the feature, then you shouldn't make a proposal in the first place. The goal of this system is to eliminate all feature proposals that are "nice to have" and narrow down the proposals to things that are "need to have". And for other sections, if we make them optional, users will just not fill them out. Just look at the 1000 feature proposals on the main repo for examples. |
I see no labels assigned yet in this repo, should we add some for this as well? |
It does seem to me like the core contributors are more interested at this point in encouraging people to NOT make feature requests / enhancements when they don't actually need them for an active project. Hence the blatant "don't bother making this if these conditions don't apply" issue template. Which is another reason I think people shouldn't be removing any of the questions that are currently there. When I'm thinking of "if applicable", I'm thinking of the way some of the questions are phrased to imply that you have an actual game project you are working on. I myself mostly develop tools and plugins, so until recently there haven't been any "projects" that my things could be related to, and many of the proposals I've made so far have been for the sake of building better tools and workflows for other people who create projects. In those cases, asking whether I have a project that needs the feature is not applicable, so-to-speak. |
@clayjohn thanks for your answer, this clears up the process somewhat. I think this also depends on how substantial and big the feature proposal/enhancement really is.
Quoting reduz's words in #10 (comment):
One could write a really nice proposal with all the descriptions, diagrams, screenshots etc that would be worth of 10 incomplete and vague feature proposals. But this wouldn't make a difference as long as hardly anyone would be really interested in reading it all, understanding all the nuances, especially if the feature is undesired by most users because the actual use cases are quite niche (which wouldn't be welcomed in the first place then, so this needs to be stated clearly). So there's a dilemma of whether it's actually worth making a proposal, or should a person come up with his own solution even if it might be potentially worth for a lot of users, either now or in the future. As I recall correctly, there was some music game jam going on recently, and I think this created quite a lot of interest by itself, so you could possibly see users starting mentioning about various audio-related features being created and requested by developers using Godot, but that's unrelated to the topic. The point again is really there should be some freedom in expressing ideas. Just put "Recommended" and ignore the proposal if you feel like it's incomplete if users start omitting important parts. |
Yes, from all the question that really get me is: Describe the project you are working on I can live with the rest of the questions just fine to be honest. I'd even close this issue if this gets rephrased/omitted, but I still think there should be two templates. |
@Xrayez Personally, I am against "optional/recommended" solely because it implies that users can avoid those questions. As someone on the bugsquad, I feel very bad closing issues unless they are clearly in violation of rules. I know other contributors are in a similar place, that is the reason why we have literally thousands of issues on the main repo that will never be addressed, but are nevertheless left open. If a user submitted a proposal and didn't fill out a section marked as "recommended" I wouldn't feel right closing the proposal just because that section wasn't filled out. It wouldn't be fair to the person. I prefer to keep the requirement that all sections be filled out, then it is our discretion whether we leave the proposal open even though it violates the rule.
I agree that we can improve all the questions, this one in particular. In my opinion it should be more like "Discuss what you are trying to do and why it isn't currently possible". That way it is sufficiently general to capture non-project/game use cases, but still highlights that you need to be proposing a solution to an unmet need. |
@clayjohn well, I think the suggestion you have is more like the "how would this benefit you if added" question whereas the first question is more about 1) securing the context of the "benefit" question and 2) enforcing that an actual task that someone is attempting to complete is inhibited by the lack of the proposed changes. So, I think we should change the "what is your project?" question to "You should have a live or in-development project/task/tool that you cannot complete as desired without this proposal. If so, please describe it." |
Sounds great to me. :) |
From the #42:
Imo this can be simplified, read on.
Perhaps "use-case" and "obstacle" is a better word for this. Describing the project/task/tool effectively forces the person to reveal his end goal created by problem/limitation/obstacle etc. Describing the real-life context can help but it's not necessary as long as the problem is clear enough. So, this question has two parts actually: the context and the problem. Describe the project you are working on (optional)
Describe the problem you are dealing with.
Describe how this enhancement will help to solve your problem:
Better yet, a user can come up with "Minimal reproduction project" to show this limitation so as to create proper context, but it has to be optional because users will just pass by, including myself (but yeah I understand the policy now). |
Perhaps we should have |
This to me is highly problematic, as the reason why I (and I assume a lot of other people too) would not start a specific project is the lack of a certain feature or the need to improve an existing feature in Godot. |
@willnationsdev isn't a plugin an actual project? It's not a game, but it's a piece of software with a use within Godot. And sometimes people even want such plugins to exist (at least you, since you make plugins, I guess you have a reason to make them, even if not a game you are making :D) |
You have to understand the amount of work that core contributors (who are volunteers) have to put in right now in moderating random feature proposals. Users drop in out of nowhere and say "I want X and I want it now". It takes them ten seconds to ask for a feature they haven't fully thought out, and then the burden is on us to figure out if a) other users even need it, b) if it can be implemented without changing the engine and c) if it can be implemented at all. That is a LOT of work that has to come from volunteers. The new process is designed to ask more of people making feature proposals. It shifts some of the work to them. If you absolutely need a new feature, be prepared to spend ten minutes or more and give a complete explanation of that proposed feature. This way core contributors can spend less time moderating proposals and more time actually improving the engine. I'd also like to point out that the main repo has 1000 feature proposals and 1500 proposed enhancements. That number is extreme, most of those will never be implemented and so they have no value for anyone. If a person makes a feature request and absolutely no one else expresses interest in that feature, then it should not be implemented. This new process gives us the tools and procedure to properly close unwanted feature requests.
I like willnationsdev's solution here, he says "project/task/tool", to me "task" captures all those non-project based needs. |
I highly doubt anyone who mentally sane who understand the meaning of "open source" with a 2 men team actually being paid (not enough) would expect people who spend their free time to contribute (completely unpaid) to respond to their every wishes. Personally I never assumed it was anyone's job to figure out if If I would go to Github and submit a proposal for a new feature or improvement of existing feature, I would assume I do this, for the sole purpose to document my need and to establish a place for discussion for this particular issue. Nothing more nothing less. If anyone has a similar need I can refer them to the issue and ask them for a thumbs up or voice their opinion. Other people have slightly different ideas about the solution, so we have a place to discuss. If someone already had the issue I can check and contribute with my support/opinion/ideas there. Since the year I've been here, I heard over and over again, the reason we did this on Github and not on Reddit or Discord was so it is documented and can be tracked. Issues on Github are also found via online search machines. Maybe someone who may or may not have the same need one day comes along and has the time, skills and motivation to actually make a PR and implement a solution. In that case it's good to already have a place for a discussion or at least documented interest in a feature. Core contributors don't have to do anything if you ask me. If they are curious, want to poke around the idea pool or share their expertise on stuff that's in their insterest, that's cool. But honestly, I really wonder why you reduz or akien would think they would have to do this. If this is about implementation and architecture/bloat, I thought that's what the Pull Request is for, no? |
I would like to strongly disagree on this. @clayjohn Not everyone has the same needs at the same time. If someone made a feature request in 2014, someone else found the issue 2016 and added "I need this too", and in 2018 three more people come to the same issue because they found it via online search or through some other cross-reference any realize there is actually an easy solution for it, or even if they just want to state they need this as well ... |
@golddotasksquestions You are mostly right. In general the previous process worked. However, i'd like your thoughts on one more point. What should we do about the current 2500 feature/enhancement requests? Obviously they are not going to get implemented, so how do we create a fair system to select which ones are left open and which ones are closed? Leaving 2500 open requests in our bug report tracking system is not an option. Currently its a nightmare for those of us who are actually contributing to the engine to sort through bug reports (I say this as a bugsquad member and frequent contributor). I spend hours every day dealing with new issues that are posted, and even at that I feel I am barely doing an adequate job because I just don't have time to cross reference every bug report with recent PRs and prior bug reports (this is necessary to determine if a new report is a duplicate or if it has been fixed in master). So right now our current process is failing, and it gets more and more difficult every day as the number of issues climbs. Edit: At any rate our discussion is getting off topic. My apologies @Xrayez. Lets continue this on discord perhaps? |
@clayjohn thanks but I think I've expressed my opinion fully and I completely understand your position. |
My heartfelt Thank You!
Yes.
By moving everything that is a) not a bug and b) does not the GIP requirement to
If you feel like you want to do any actual work, you can stick around
👍 |
Closing and continuing with a different approach in #47 which I feel like is the real motivation for this. |
Relates to #10.
Noticed some issue with people not filling templates properly.
There should be two kinds of templates in GIP: one handling new features, and another enhancing existing ones, that way people could avoid filling out redundant questions. The template itself is named as
Feature / Enhancement Proposal
when you attempt to create one, so makes sense to split those just like in the main repository.I propose modifying those templates like the following:
Feature template
Describe the project you are working onDescribe the vision/end goal you are trying to achieve
Describe how this enhancement will help your project:Describe how this feature will help to achieve your goal:
Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:
Describe implementation detail for your proposal (in code), if possible:
If this feature will not be used often, can it be worked around with a few lines of script?:Is there a reason why this should be core and not an add-on in the asset library?:
Enhancement template
Describe the project you are working onDescribe enhancement of the existing feature (#39 (comment))
Describe how this feature / enhancement will help your project:Describe how this enhancement will help to achieve your goal:
Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:Describe implementation detail for your proposal (in code), if possible:
If this enhancement will not be used often, can it be worked around with a few lines of script?:
Is there a reason why this should be core and not an add-on in the asset library?:A few other questions could be added for each.
The text was updated successfully, but these errors were encountered: