tinted-theming / home

Style systems and smart build tooling for crafting high fidelity color schemes and easily using them in all your favorite apps.
MIT License
252 stars 12 forks source link

Idea: Define `version` and `spec` in scheme files & Meta file for templates #98

Open ln4r3n opened 3 months ago

ln4r3n commented 3 months ago

For future proofing the project i think it's necessary to add version (for possible color changes) and spec to schemes files.

Also I propose another metafile for templates (parsed by builders): tinted-template.yaml with contents such as (my example is the official vim plugin),this needs to be present in the root of the template repo:


name: base16-vim
version: 0.1        # template version
system:             # supported system and spec
  - base16: 0.11
  - base24:
      - 0.11
      - 0.12        # possible future spec
maintainer:
  - https://github.com/BonaBeavis
  - https://github.com/JamyGolden
dependecies:        # array for checking if dependecies are present
postprocessor:      # for e.g converting the generated files to binary format

With these changes the user and builder both can easly check for compatibility, supported systems, etc.

JamyGolden commented 1 week ago

Right now all the changes that have been made have been backwards compatible. Once we add variables to a new spec, those variables in the builder will default to some base0x value if it's not provided. I don't think adding a more strict version system like you're suggesting is a bad idea if we were to start adding breaking changes. Making the decision to add breaking changes is quite a big step though and it might be easier to create a new scheme spec if we were to do that. What do you think @belak?