-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
I'm not sure that having a huge amount of json files is a great idea, but in case we keep going in this direction there's probably more space to optimize the template file format.
I would just raise a convenient discussion to establish the best format together before moving on.
Just some generic premises (in random order) we need to take under considerations:
- We need something that should be easily "parseable", and editable, even on github. So JSON seems to be an optimal choice for this purpose (also YAML might be worth considering)
- We need to build a script (or something) that reads all the data files and should be able to sync all the edits within a central repository (e.g. a database)
- We need to be able to validate the data files (so that we can skip the incomplete/incorrect ones)
- It might be good to figure out a (simple) strategy to make the data file schema updatable (new fields)
- The files should provide data that should be easily made "searchable"
Here's my proposal, starting from the original template file:
{
"name": "Library name. E.g. gulp",
"dependencies": ["nodejs"],
"environments": ["frontend", "backend"],
"audience": "", // <--- Not sure what it means
"description": "A task / build runner for automating tasks such as ",
"features": [
"Killer feature number 1",
"Killer feature number 2"
],
"stability": "alpha, beta or stable",
"website": "The official site url",
"repository":"The url of the repository (in case it's an open project)",
"similar": ["grunt", "gnu make"],
"used by": [
["organisation1", "organisation1 website"],
["organisation2", "organisation2 website"]
]
}A quick overview of what i changed with some other reasoning:
- Language -> Dependencies: does it really matters how a tool has been built? I think it matters only to be sure to have the right dependencies before installing it. So why not use an array of dependencies?
- Environment -> Environments: It's better to have an array here (eg. reactJs is both backend and frontend). I am not sure if it's an useful thing to have/maintain tough... we would need to create a set of predefinied enviroments. And I am also not sure it provides a lot of value to the end user. Maybe it's better to skip it.
- stability : this can be useful to have (to evaluate among similar tools)
- Official -> Website: it just makes more sense to me 😉
- Repository : can be also really useful (all the package managers includes this info). We can also use this info to pull other informations like github stars, commits, contributors, etc. at a later stage
- Similar: I think it's better to have just an array of names here (essentially references to other data files)
- Used by: This can be cool to evaluate the quality/notoriety of a tool (eg. used by facebook/twitter/google/airbnb, etc.)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels