1 | # Contributing to LibSass
|
2 |
|
3 | :+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
|
4 |
|
5 | The following is a set of guidelines for contributing to LibSass, which is hosted in the [Sass Organization](https://github.com/sass) on GitHub.
|
6 | These are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request.
|
7 |
|
8 | LibSass is a library that implements a [sass language][8] compiler. As such it does not directly interface with end users (frontend developers).
|
9 | For direct contributions to the LibSass code base you will need to have at least a rough idea of C++, we will not lie about that.
|
10 | But there are other ways to contribute to the progress of LibSass. All contributions are done via github pull requests.
|
11 |
|
12 | You can also contribute to the LibSass [documentation][9] or provide additional [spec tests][10] (and we will gladly point you in the
|
13 | direction for corners that lack test coverage). Foremost we rely on good and concise bug reports for issues the spec tests do not yet catch.
|
14 |
|
15 | ## Precheck: My Sass isn't compiling
|
16 | - [ ] Check if you can reproduce the issue via [SourceMap Inspector][5] (updated regularly).
|
17 | - [ ] Validate official ruby sass compiler via [SassMeister][6] produces your expected result.
|
18 | - [ ] Search for similar issue in [LibSass][1] and [node-sass][2] (include closed tickets)
|
19 | - [ ] Optionally test your code directly with [sass][7] or [sassc][3] ([installer][4])
|
20 |
|
21 | ## Precheck: My build/install fails
|
22 | - [ ] Problems with building or installing libsass should be directed to implementors first!
|
23 | - [ ] Except for issues directly verified via sassc or LibSass own build (make/autotools9
|
24 |
|
25 | ## Craft a meaningfull error report
|
26 | - [ ] Include the version of libsass and the implementor (i.e. node-sass or sassc)
|
27 | - [ ] Include information about your operating system and environment (i.e. io.js)
|
28 | - [ ] Either create a self contained sample that shows your issue ...
|
29 | - [ ] ... or provide it as a fetchable (github preferred) archive/repo
|
30 | - [ ] ... and include a step by step list of command to get all dependencies
|
31 | - [ ] Make it clear if you use indented or/and scss syntax
|
32 |
|
33 | ## My error is hiding in a big code base
|
34 | 1. we do not have time to support your code base!
|
35 | 2. to fix occuring issues we need precise bug reports
|
36 | 3. the more precise you are, the faster we can help you
|
37 | 4. lazy reports get overlooked even when exposing serious bugs
|
38 | 5. it's not hard to do, it only takes time
|
39 | - [ ] Make sure you saved the current state (i.e. commit to git)
|
40 | - [ ] Start by uncommenting blocks in the initial source file
|
41 | - [ ] Check if the problem is still there after each edit
|
42 | - [ ] Repeat until the problem goes away
|
43 | - [ ] Inline imported files as you go along
|
44 | - [ ] Finished once you cannot remove more
|
45 | - [ ] The emphasis is on the word "repeat" ...
|
46 |
|
47 | ## What makes a code test case
|
48 |
|
49 | Important is that someone else can get the test case up and running to reproduce it locally. For this
|
50 | we urge you to verify that your sample yields the expected result by testing it via [SassMeister][6]
|
51 | or directly via ruby sass or node-sass (or any other libsass implementor) before submitting your bug
|
52 | report. Once you verified all of the above, you may use the template below to file your bug report.
|
53 |
|
54 |
|
55 | [1]: https://github.com/sass/libsass/issues?utf8=%E2%9C%93&q=is%3Aissue
|
56 | [2]: https://github.com/sass/node-sass/issues?utf8=%E2%9C%93&q=is%3Aissue
|
57 | [3]: https://github.com/sass/sassc
|
58 | [4]: http://libsass.ocbnet.ch/installer/
|
59 | [5]: http://libsass.ocbnet.ch/srcmap/
|
60 | [6]: http://www.sassmeister.com/
|
61 | [7]: https://rubygems.org/gems/sass
|
62 |
|
63 | [8]: http://sass-lang.com/
|
64 | [9]: https://github.com/sass/libsass/tree/master/docs
|
65 | [10]: https://github.com/sass/sass-spec
|