Skip to content

Commit b2659dd

Browse files
committed
Merge pull request #4967 from AgDude/contributing
update developer guidelines with information about plugins.
2 parents 6032ac0 + 3663aa0 commit b2659dd

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

CONTRIBUTING.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ Example:
7474
Feature requests are welcome. But take a moment to find out whether your idea
7575
fits with the scope and aims of the project. It's up to *you* to make a strong
7676
case to convince the project's developers of the merits of this feature. Please
77-
provide as much detail and context as possible.
77+
provide as much detail and context as possible. Please also see the note in the
78+
[Developer guidelines](DEVELOPER.md) about implementing new features as plugins.
7879

7980

8081
<a name="pull-requests"></a>

DEVELOPER.md

+9-5
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,20 @@ The core angular module (ui.grid) provides the basics
3232
- Virtualization
3333
- Row Selection
3434

35-
Everything else should be added as new angular modules unless the grid team agrees that it's a core feature.
35+
Everything else should be added as new angular modules unless the grid team agrees that it's a core feature. All new feature
36+
modules should be developed as plugins, and be hosted in their own repositories. There is a great [blog post](http://brianhann.com/write-your-own-ui-grid-plugin/)
37+
about developing a plugin for ui-grid. Your plugin should use the available publicApi, if you need something in the publicApi that isn't
38+
currently exposed, we welcome pull requests.
39+
40+
The grid team has limited time to spend on this project, and as the list of features grows, so does the effort required to support
41+
those features. In a future release we will be working to move some of the existing features out of the core repository. The basic
42+
rule of thumb for any new features is: "If it is possible to implement it as a plugin, it should be a plugin".
3643

3744
## Feature module design
38-
* We prefer no 3rd party dependencies other than angular. Contact grid team if you have a 3rd party need that can't be avoided.
45+
* We prefer no 3rd party dependencies other than angular.
3946
* jQuery is only used in Unit Tests
4047
* unit test your code! not that hard. see test/unit for examples. Features will be rejected if the test coverage isn't adequate.
4148
* use ngDoc to document how to use your feature. see examples in existing code.
42-
* New module should be named ui.grid.feature
43-
* feature folder is added below src
44-
* One js file per feature
4549
* no global variables
4650
* public methods and events are registered in grid.api (more on that later)
4751
* design and code the angular way. What do we mean by that? Dependency injection, small directives, emphasis the model, not the DOM, tests!

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ Feature | Release state
7676
7777
For more details on the features check the [Tutorials](http://ui-grid.info/docs/#/tutorial).
7878
79+
# Plugins
80+
81+
UI-Grid has an excellent plugin system. Most new features can be added as plugins. Please see some discussion of that in the [Developer guidelines](DEVELOPER.md).
82+
There is a [list of known plugins](http://ui-grid.info/docs/#/tutorial/299_third_party_features) on the tutorial site. If you would
83+
like your plugin added to that list, please [edit the tutorial page](misc/tutorial/299_third_party_features.ngdoc) and send a pull request.
84+
7985
# Building
8086
8187
Install dependencies

0 commit comments

Comments
 (0)