]> git.mxchange.org Git - friendica.git/blob - library/fullcalendar/CONTRIBUTING.txt
74084517bea373bddc4192ace513970eb1d90fb8
[friendica.git] / library / fullcalendar / CONTRIBUTING.txt
1
2 ## Reporting Bugs
3
4 Each bug report MUST have a [JSFiddle/JSBin] recreation before any work can begin. [further instructions »](http://fullcalendar.io/wiki/Reporting-Bugs/)
5
6
7 ## Requesting Features
8
9 Please search the [Issue Tracker] to see if your feature has already been requested, and if so, subscribe to it. Otherwise, read these [further instructions »](http://fullcalendar.io/wiki/Requesting-Features/)
10
11
12 ## Contributing Features
13
14 The FullCalendar project welcomes [Pull Requests][Using Pull Requests] for new features, but because there are so many feature requests (over 100), and because every new feature requires refinement and maintenance, each PR will be prioritized against the project's other demands and might take a while to make it to an official release.
15
16 Furthermore, each new feature should be designed as robustly as possible and be useful beyond the immediate usecase it was initially designed for. Feel free to start a ticket discussing the feature's specs before coding.
17
18
19 ## Contributing Bugfixes
20
21 In the description of your [Pull Request][Using Pull Requests], please include recreation steps for the bug as well as a [JSFiddle/JSBin] demo. Communicating the buggy behavior is a requirement before a merge can happen.
22
23
24 ## Contributing Locales
25
26 Please edit the original files in the `locale/` directory. DO NOT edit anything in the `dist/` directory. The build system will responsible for merging FullCalendar's `locale/` data with the [MomentJS locale data].
27
28
29 ## Other Ways to Contribute
30
31 [Read about other ways to contribute »](http://fullcalendar.io/wiki/Contributing/)
32
33
34 ## Getting Set Up
35
36 You will need [Git][git], [Node][node], and NPM installed. For clarification, please view the [jQuery readme][jq-readme], which requires a similar setup.
37
38 Also, you will need the [gulp-cli][gulp-cli] package installed globally (`-g`) on your system:
39
40         npm install -g gulp-cli
41
42 Then, clone FullCalendar's git repo:
43
44         git clone git://github.com/fullcalendar/fullcalendar.git
45
46 Enter the directory and install FullCalendar's dependencies:
47
48         cd fullcalendar
49         npm install
50
51
52 ## What to edit
53
54 When modifying files, please do not edit the generated or minified files in the `dist/` directory. Please edit the original `src/` files.
55
56
57 ## Development Workflow
58
59 After you make code changes, you'll want to compile the JS/CSS so that it can be previewed from the tests and demos. You can either manually rebuild each time you make a change:
60
61         gulp dev
62
63 Or, you can run a script that automatically rebuilds whenever you save a source file:
64
65         gulp watch
66
67 When you are finished, run the following command to write the distributable files into the `./dist/` directory:
68
69         gulp dist
70
71 If you want to clean up the generated files, run:
72
73         gulp clean
74
75
76 ## Style Guide
77
78 Please follow the [Google JavaScript Style Guide] as closely as possible. With the following exceptions:
79
80 ```js
81 if (true) {
82 }
83 else { // please put else, else if, and catch on a separate line
84 }
85
86 // please write one-line array literals with a one-space padding inside
87 var a = [ 1, 2, 3 ];
88
89 // please write one-line object literals with a one-space padding inside
90 var o = { a: 1, b: 2, c: 3 };
91 ```
92
93 Other exceptions:
94
95 - please ignore anything about Google Closure Compiler or the `goog` library
96 - please do not write JSDoc comments
97
98 Notes about whitespace:
99
100 - **use *tabs* instead of spaces**
101 - separate functions with *2* blank lines
102 - separate logical blocks within functions with *1* blank line
103
104 Run the command line tool to automatically check your style:
105
106         gulp lint
107
108
109 ## Before Submitting your Code
110
111 If you have edited code (including **tests** and **translations**) and would like to submit a pull request, please make sure you have done the following:
112
113 1. Conformed to the style guide (successfully run `gulp lint`)
114
115 2. Written automated tests. View the [Automated Test Readme]
116
117
118 [JSFiddle/JSBin]: http://fullcalendar.io/wiki/Reporting-Bugs/
119 [Issue Tracker]: https://github.com/fullcalendar/fullcalendar/issues
120 [Using Pull Requests]: https://help.github.com/articles/using-pull-requests/
121 [MomentJS locale data]: https://github.com/moment/moment/tree/develop/locale
122 [git]: http://git-scm.com/
123 [node]: http://nodejs.org/
124 [gulp-cli]: https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md
125 [jq-readme]: https://github.com/jquery/jquery/blob/master/README.md#what-you-need-to-build-your-own-jquery
126 [Google JavaScript Style Guide]: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
127 [Automated Test Readme]: https://github.com/fullcalendar/fullcalendar/wiki/Automated-Tests