Skip to content

Possible improvements on data file template/schema #6

@lmammino

Description

@lmammino

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions