Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Looking for collaborators #7

Open
ben-eb opened this issue Mar 17, 2016 · 9 comments
Open

Looking for collaborators #7

ben-eb opened this issue Mar 17, 2016 · 9 comments

Comments

@ben-eb
Copy link
Owner

ben-eb commented Mar 17, 2016

Any contributions are welcome, as this is such a big project I don't feel like I can handle it all by myself. Indeed, currently we have nearly 4000 tests that are generated for the output module!

These contributions can be (but are not limited to) tests (passing/failing), improving the code coverage, documentation of current code (perhaps we should look into some automated documentation?), features, bug fixes, advice for implementing more properties, or helping me tackle anything that is labelled 'help wanted'.

I'm open to adding collaborators directly to the repository if I already know you, or after a first pull request if I don't. 😄

@davidtheclark
Copy link
Collaborator

The thing that I think would help the most in bringing me or some other potential contributor up to speed on the intentions module would be an example how it would get used. How would a tool like stylelint use this? Would stylelint have to run acquire and run itself and then use the built functions? Or would the built functions be published somehow?

@ben-eb
Copy link
Owner Author

ben-eb commented Apr 5, 2016

css-values is a tool to create modules (or other things). So if we wanted to make a plugin for stylelint, we would install css-values as a development dependency, and then run the generator to output that plugin. Then, consumers of that plugin download the built functions and not the methods used to generate them.

I haven't decided on acquire, other than we should run that periodically to catch updates to the dataset - that's a good task that a bot could do. I think it will be good when we reach 1.0.0 to publish dataset updates with semantic versioning - new properties are minor versions, changes to existing properties are major versions.

@davidtheclark
Copy link
Collaborator

Ok, I'd like to try to talk through some details and you correct me if I'm wrong :)

  • acquire simply gets the latest JSON data from MDN.
  • When you run, you parse the values of that JSON data (so css-values includes an MDN-spec-syntax parser) to generate an tree of nodes.
  • Using that node tree, you generate a bunch of functions that can check whether a property-value pair matches the spec.
  • The end-user, then, has access to the generated functions (if they want to validate property-value pairs) and also to the node tree itself (if they want to, say, generate a document or do something else).

So if stylelint made a rule that uses generated functions to check for invalid values, it would

  • Pull in CSS-values as a dev dependency.
  • Run CSS-values and put the output into a directory that is part of the repo, versioned & released.
  • Reference those generated functions from its value-no-unknown rule.

Does the above sound right? This kind of practice really helps me understand new things.

@ben-eb
Copy link
Owner Author

ben-eb commented Apr 5, 2016

Spot on, yeah. Note that in addition to acquire, we supplement that data with Autoprefixer (this is just for vendor specific keywords). At the moment that is pulled in via whatever Autoprefixer version the module is currently using.

@davidtheclark
Copy link
Collaborator

Thanks for the confirmation. Will probably dig in pretty soon. Meanwhile, just ran across this: http://www.slideshare.net/maxdesign/understanding-the-mysteries-of-the-css-property-value-syntax. You probably already reviewed that information when making the parser. Helped me.

@ben-eb
Copy link
Owner Author

ben-eb commented Apr 7, 2016

This is also a good resource. 😄

https://developer.mozilla.org/en/docs/Web/CSS/Value_definition_syntax

@davidtheclark davidtheclark mentioned this issue Apr 10, 2016
@delorge
Copy link
Collaborator

delorge commented Aug 6, 2016

@ben-eb I can be an collaborator :) Atm I'm not familiar with API yet, but I can help with property coverage for a first time.

@ben-eb
Copy link
Owner Author

ben-eb commented Aug 6, 2016

@delorge I've sent an invite so you can contribute directly to this repo if you would like! I think there are a few more simple tasks in this format (#10), if you would like to take those also it would be really great;

@delorge
Copy link
Collaborator

delorge commented Aug 7, 2016

@ben-eb okay, I will take a look today or next week

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants