-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
First off, I'd like to say that I love the concept of this project and I really like the idea of a readme outlining (and defining) a projects dependencies. but hear me out!
I have put together a couple of reasons why I think restricting the dependencies to existing files/formats hurts the usage of this project more than it aids it. Particularly when working in a team. (I understand that motivating developers to use the readme is likely the main reason this isn't already a feature)
-
By only allowing a magic environment to be defined in a file that is likely to already exist in a project makes tea harder to sell to colleagues/peers/other devs. Different people have different opinions on what a readme should/shouldn't contain, likewise for a package.json. By having a dedicated config in source control, devs can learn the advantages of tea at their own pace. Once they see how great it is, convincing them that maybe it's time to move this to the readme becomes an easier sell.
-
In a similar vein, not all teams are going to want to adopt this tool, if there were a dedicated config file one could add it to the .gitignore, use tea to their hearts desire without impacting the project or team directly and still reap most of the benefits of the tool. This currently doesn't seem possible in a nodejs project with an existing readme.
-
While markdown is great, there are other great markup formats such as asciidoc that all have their pros and cons. Forcing a particular format goes against the beauty of having different tools to suit different needs. Especially if a project has an extensive readme already written up in a different format. Personally I love markdown, it's my preferred syntax but I think it's wrong to ignore where it falls short and why it may not always be the best fit for someone.
-
But you can also use package.json! Sure but why? Package.json is a project specific file that exists to outline the metadata about a node.js project, why should this dictate the environmental config for what could be a project much larger than just the node component? Furthermore the mere existence of a package.json implies a lot about a project. It's out of place and potentially misleading to exist in a golang project for example. This leads on to my next point.
-
By glancing at a directory we can typically make relatively safe assumptions. Eg. 'Ah so there's a package.json, a tsconfig.json and an .env file, it's very likely this is a node project, written in typescript with some environmental config'. This goes for all kinds of tooling and their respective configs. By having, lets say, a
teaxyz.json, it's immediately obvious that there's some environmental config I can use to get up and running. This is almost as powerful as having the deps right there in the readme.
These criticisms are with the best of intentions, I truly believe this project could change the face of development. Apologies if they come across too harshly, I have a tendency to over explain things.
I'm definitely open to hearing why my outlined points are all wrong!
If this is something that the maintainers of the project would be willing to accept then I'll gladly do the work and submit a PR.