Open QbieShay opened 1 year ago
Note that Git does not commit empty folders, so the folder would need to contain an empty .gitignore
file to be committed (.gitkeep
is sometimes used by convention too).
Should be enabled by default as an editor setting imo, so that this feature could be disabled for people who don't use plugins often.
It could be a nice addition to have a .gitkeep file, although my main target user, i suspect, wouldn't have git setup yet
Aren't addons always distributed with the addons/
folder included, so you just have to put them in your project? That's how AssetLib works at least; if every addon followed this convention, there wouldn't be any confusion, no?
Aren't addons always distributed with the
addons/
folder included, so you just have to put them in your project? That's how AssetLib works at least; if every addon followed this convention, there wouldn't be any confusion, no?
Not always. Most of them are open-source anyways so they use this but you still have to specify to the user that he/she should put it in the addons folder OR create a new folder with this name and then put it there. There is not a big but still significant room for misunderstanding.
Edit: Also I don't see a disadvantage of the addons folder not being registered by git if it's empty since it doesn't matter then anyway. There could be some git conflicts that could arise when that person pulls changes and on the server side is a non-empty folder though.
@KoBeWi not every addon is on the asset lib, those that are not, but are still popular, cause confusion
next we're gonna ask to create art/ folder by default, because most projects use art and it may be confusing for new users when they are asked to put art piece in art/ folder and there's no such folder in their project. I guess we would benefit from sort of customizable scaffolding though.
@badunius with the difference that there's not standardization for art/ folders, while addons are expected by the engine to be on the addons/ folder. It's structurally different.
@QbieShay perhaps, but I never used an addon in years, and it would be just as confusing to me why I have an addon/ folder in every project I create and just as inconvenient to delete it every time. If the engine expects all addons to be stored in a very specific location, it would be wiser to add an "Install Addon" dialog to the editor, so it would be automatically downloaded and unpacked into a proper location, and let the addon's structural integrity be the respective author's responsibility.
@QbieShay perhaps, but I never used an addon in years, and it would be just as confusing to me why I have an addon/ folder in every project I create and just as inconvenient to delete it every time
The project already contains an icon.svg
file in every project as well. Also how is this inconvenient? Why would you need to delete it? The folder itself would remain empty then.
If the engine expects all addons to be stored in a very specific location, it would be wiser to add an "Install Addon" dialog to the editor, so it would be automatically downloaded and unpacked into a proper location, and let the addon's structural integrity be the respective author's responsibility.
Addons are already "unpacked" when installing since they are already in the addons folder in their respective git server location. That is why there is a specific misunderstanding on how to install addons sometimes.
The project already contains an
icon.svg
file in every project as well. Also how is this inconvenient? Why would you need to delete it? The folder itself would remain empty then.
And this is why I keep my stuff in folders instead of the root directory. To have another folder that is not my and not used is to clutter project structure.
Addons are already "unpacked" when installing since they are already in the addons folder in their respective git server location. That is why there is a specific misunderstanding on how to install addons sometimes.
If you want to fix those misunderstandings, remove the manual labor. When I install node package I run npm i <package_name>
and it goes exactly where it has to be inside of the node_modules/
which is created automatically if it doesn't exist yet. So let the user paste a repository link into "Install Addon" dialog and allow the editor do the rest.
If you want to fix those misunderstandings, remove the manual labor. When I install node package I run
npm i <package_name>
and it goes exactly where it has to be inside of thenode_modules/
which is created automatically if it doesn't exist yet. So let the user paste a repository link into "Install Addon" dialog and allow the editor do the rest.
Not every addon is hosted publicly. Some of them can be sold and won't be publicly available for the editor to install.
Not every addon is hosted publicly. Some of them can be sold and won't be publicly available for the editor to install.
if they are paid they can afford to make a minimal installer to free their paid customer from confusion.
Again, I can't see how someone else's paid addon struggles justify creating folders I don't need in my projects.
Very few Godot addons are paid, @badunius
@Zireael07 okay, now how this makes creating addons/ folder by default a better solution?
Whether free or paid, addons are expected to be in the addons folder. So this folder should be created by default.
No it should not =/
I'm surprised this conversation got so heated up so fast.
My rationale is, that for a person that has experience with godot or is making a big project, if they don't use the addons folder they can delete it in one click. So it takes a pro 1s per project to delete it.
On the contrary, it takes a beginner more time to figure out where addons are supposed to be installed if they are addon that they find on github or someone gives them a link. The situation in which I opened this proposal was that I recommended hungryproton's scatter addon, which only comes from github, and the person i recommended it to was confused where to install it. It took them time to try and understand and subsequentially me time to explain where they were supposed to install the addon.
To me, it's significantly more time to explain confused people where the addons should go on a larger scale.
Furthermore, I think a lot of projects have addons. I don't have any hard numbers on this, but I don't think I had in my experience any project without addons. Even for professional project, where I identify tech that can be reused, I tend to separate it into an addon for future usage and for good code separation/artchitecture, so it's really bizarre for me to see this much pushback.
If I'm missing something crucial, please let me know.
My rationale is, that for a person that has experience with godot or is making a big project, if they don't use the addons folder they can delete it in one click. So it takes a pro 1s per project to delete it.
Exactly what I think and I don't understand why there is such an opposition to this.
If I'm missing something crucial, please let me know.
First and foremost addon usage is optional. Your proposal is to enforce it.
AssetLib creates addons/
folder automaticaly. This is covered.
If a person is at the point where they are installing "third-party" addons, they are expected to know how it works. If they don't they got too deep too early and need to learn it.
Covering mess-ups of some "third-party" addon authors who is unable to organize their repository structure and/or provide a proper installation manual should not be at the cost of enforcing creation of extra folders by default.
Basically what you are proposing is an equivalent of every car to be sold with a mandatory pre-installed baby seat. Which can be un-installed easily, of course. But I don't even have a baby.
Please, don't make someone else's problem everyone's.
First and foremost addon usage is optional. Your proposal is to enforce it.
There is nothing mandatory here.
Which can be un-installed easily, of course. But I don't even have a baby.
Not an issue. An empty folder can be deleted with a single click IF you really need to.
Godot has to cater to new users and beginners who do not know addons are expected to go into a SPECIFICALLY named folder.
First and foremost addon usage is optional. Your proposal is to enforce it.
There is nothing mandatory here.
I can't opt-out, so there is.
Which can be un-installed easily, of course. But I don't even have a baby.
Not an issue. An empty folder can be deleted with a single click IF you really need to.
An empty folder can be created just as easily.
Godot has to cater to new users and beginners who do not know addons are expected to go into a SPECIFICALLY named folder.
In short: No. Longer: addons is not the first thing a brand new user is going to interact with, neither it should be the first thing.
You'd be surprised how many projects start with an addon, e.g. Zylann's terrain addon being a prime example.
An empty folder can be deleted with a single click
You need at least 2 clicks :v
Godot has to cater to new users and beginners who do not know addons are expected to go into a SPECIFICALLY named folder.
Not every addon goes to addons
. An "addon" can be a single class_name
script. Placing it in addons folder would actually break it, because classes in addons, that are not part of enabled plugin, are not accessible.
So I agree that it's up to addon's creator to provide instructions on how to install and use it.
I honestly don't see a problem here that isn't just other people not providing proper instructions on how to use their plugins, and the documentation instructs how to make and use plugins as does the editor when creating them
To me this feels like excessive hand holding for badly informed new users that will cause annoyance for everyone else, and isn't really solving any limitation that isn't due to incorrect instructions or usage to begin with
@KoBeWi I don't think that RTFM solutions are a great approach in general.
This is a matter of "we could make it easier and more understandable, but we won't because it's up to the plugin creator to do it". I don't understand why not making things simpler when we can.
Like Zirael said
Godot has to cater to new users and beginners who do not know addons are expected to go into a SPECIFICALLY named folder. This is one of the core philosopies of Godot, being beginner friendly.
I will not engage with the "this will make my life worse" argument here because I can't imagine a situation where having to delete a folder every time you make a new project is a significant enough time investment to warrant this reaction. Again, please let me know if there's some corner case of sysadminering where it does indeed become an issue.
So in the case when an add-on publisher doesn't instruct the user to put it in the correct folder, how do you know the added folder will actually make a user put it there? And as pointed out, how do you guarantee that people won't put add-ons they shouldn't there?
How big is this problem? How sure are you this is the solution as opposed to an interface that allows you to add an add-on from the editor easily?
I see several problems here:
I'm not convinced this is a significant enough issue to annoy people by adding a folder they don't want, just to help a certain group of new users
I'm not convinced this is enough of an annoyance to justify not improving the UX for new users.
How big is this problem? How sure are you this is the solution as opposed to an interface that allows you to add an add-on from the editor easily?
An interface that would help you add an addon similar to blender's one is a cool idea. Much bigger implementation but why not!
How big is this problem?
I've noticed this as a pattern which is why I opened an issue. The time i opened this proposal was not the first time i saw people being confused about the addons/ folder not being there, hence why the proposal. Is this a big issue? No. People find their way eventually. But the base of UX is creating a good experience :) and you do that by making it better and better even with small adjustments, which is what I'm proposing here.
In my mind, addons/
is a special directory for Godot. Creating the directory for new projects would entice the user to seek for addons. I don't see any problems creating an empty directory for users.
We could even add a README.md inside the addons directory, explaining users how to download and activate addons.
* overfed trash bin noises *
do you realize that you plan to treat every user as if it's a new one?
- overfed trash bin noises *
Please stay respectful and constructive.
As a possible compromise: Perhaps it would be an idea to introduce an Editor Setting which by default adds this new folder so new users to Godot can know where the folder should be and for the ones who don't want to have it in every project can turn this feature off.
Please stay respectful and constructive.
I'm sorry, it's been explained multiple times by multiple people in a respectful and constructive manner that the proposed solution is dubious. To ignore all this and add another layer on top of the original idea -- this is disrespectful. (I admit I was a bit sarcastic, without any offensive intentions)
Isn't customizable project templates a constructive counter offer? That way default project template could have everything you deem important for the new users, and I could have a template that frees me from creating every time from ground up the project structure I find suitable.
The project creation dialog already offers a dropdown to select between various kinds of version control metadata to create. I probably wouldn't add another checkbox though (as to avoid asking too many questions when you create a project).
I'm not sure if adding an editor setting for this is warranted, as advanced users may want to create projects from the command line anyway (as I often do). This is especially the case when you have to create new projects several times per day, like I do for creating minimal reproduction projects or one-off testing projects. In this case, you can create any files you want using a custom script.
I'm sorry, it's been explained multiple times by multiple people in a respectful and constructive manner that the proposed solution is dubious. To ignore all this and add another layer on top of the original idea -- this is disrespectful. (I admit I was a bit sarcastic, without any offensive intentions)
I don't find it disrespectful to disagree. I can hear and understand your concerns, and still have different priorities and disagree with your proposed solution.
Isn't customizable project templates a constructive counter offer? That way default project template could have everything you deem important for the new users, and I could have a template that frees me from creating every time from ground up the project structure I find suitable.
I think this is a good proposal and should probably be in a separate, and more articulate proposal as it's entirely a different feature than my initial proposal. Also " Isn't customizable project templates a constructive counter offer?" is not an offer that was made or linked at any point in this thread before, so it's strange to act as if it was proposed and denied already :thinking:
A separate proposal with a mockup for template would be welcome :+1:
so it's strange to act as if it was proposed and denied already
The original comment does not make any assertion on that it was suggested, at least not without assumptions, let's all be constructive instead of hurling accusations at each other and not assume bad intent
I am more confused than trying to hurl accusation, it feels like I missed a part of the conversation even if i re-read it more than once :sweat_smile: maybe there's proposals that already cover that?
What I mean is that it's not given that "Isn't customizable project templates a constructive counter offer?" says that it has already been proposed in the thread, though it can be read that way it isn't guaranteed
Also " Isn't customizable project templates a constructive counter offer?" is not an offer that was made or linked at any point in this thread before, so it's strange to act as if it was proposed and denied already 🤔
https://github.com/godotengine/godot-proposals/issues/6785#issuecomment-1537265477
I guess we would benefit from sort of customizable scaffolding though.
Describe the project you are working on
Godot engine
Describe the problem or limitation you are having in your project
I'm seeing often that people get confused if they are linked an addon from github and they don't know where is their addons/ folder
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Auto create the addons/ folder, to limit new user cofnusion
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
See above
If this enhancement will not be used often, can it be worked around with a few lines of script?
It's the godot editor
Is there a reason why this should be core and not an add-on in the asset library?
See above