You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 8, 2022. It is now read-only.
@@ -82,17 +89,24 @@ Your pull request should be rebased against the current master branch. Please do
82
89
the current master branch in with your topic branch, nor use the Update Branch button provided
83
90
by GitHub on the pull request page.
84
91
92
+
## Submitting a Plugin
93
+
94
+
Sharing a new plugin is one of the most impressive ways to jump into the Snap community as a contributor. This process is as simple as adding your plugin information to the [list in plugis.yml](docs/plugin.yml). Read more about what is required of plugin authors in [Plugin Authoring](docs/PLUGIN_AUTHORING.md).
95
+
85
96
## Notes on GitHub Usage
97
+
86
98
It's worth noting that we don't use all the native GitHub features for issue management. For instance, it's uncommon for us to assign issues to the developer who will address it. Here are notes on what we do use.
87
99
88
100
### TL;DR Labels
101
+
89
102
We use a number of labels for context in the main framework of Snap. Plugin repository labels will keep it simple. If you want to contribute to Snap, here are the most helpful ones for you:
90
103
91
104
1.**help-wanted** ([link](https://github.com/intelsdi-x/snap/labels/help-wanted)) - some specific issues maintainers would like help addressing
92
105
2.**type/rfc** ([link](https://github.com/intelsdi-x/snap/labels/type%2Frfc)) - we need active feedback on *how best* to solve these issues
93
106
3.**plugin-wishlist** ([link](https://github.com/intelsdi-x/snap/labels/plugin-wishlist)) - these are a great opportunity to write a plugin
94
107
95
108
### Issue Labels
109
+
96
110
Snap maintainers have a set of labels we use to keep up with issues. They are separated into namespaces:
97
111
98
112
***type/** - the category of issue. All issues will have one or more
Copy file name to clipboardExpand all lines: docs/PLUGIN_AUTHORING.md
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
### Table of Content
4
4
5
5
*[Overview](#overview)
6
-
*[Plugin Library](#plugin-library)
6
+
*[Plugin Library](#plugin-library)
7
7
*[Developing Plugins](#developing-plugins)
8
8
*[Plugin Type](#plugin-type)
9
9
*[Plugin Name](#plugin-name)
@@ -127,7 +127,7 @@ In the plugin repo root directory, the `metadata.yml` file provides Snap project
127
127
***description**: paragraph describing the plugin's purpose
128
128
***badge**: a list of [badges](https://shields.io/) to display
129
129
***ci**: a list of ci services running for this repo
130
-
***status**: one of the three statuses [described below](#plugin-status)
130
+
***status**: one of the four statuses [described below](#plugin-status)
131
131
132
132
All metadata fields are optional, but recommended to help users discover your plugin. Please check out the file plugin's [metadata.yml](https://github.com/intelsdi-x/snap-plugin-publisher-file/blob/master/metadata.yml) file for a working example.
133
133
@@ -144,12 +144,19 @@ We provide a list of Snap plugins at [snap-telemetry.io](http://snap-telemetry.i
144
144
145
145
### Plugin Status
146
146
147
-
While the Snap framework is hardened through tons of testing, **plugins mature at their own pace**. We want our community to share plugins early and update them often. We are defining categories of maturity of a plugin and will roll them out with the resolution of [#1322](https://github.com/intelsdi-x/snap/issues/1322).
147
+
While the Snap framework is hardened through tons of testing, **plugins mature at their own pace**. We also want our community to share plugins early and update them often. To help both of these goals, we have tiers of maturity defined for plugins being added to the Plugin Catalog:
148
+
*[**Supported**](#supported-plugins) - Created by a company with the intent of supporting customers
149
+
*[**Approved**](#approved-plugins) - Vetted by Snap maintainers to meet our best practices for design
150
+
*[**Experimental**](#experimental) - Early plugins ready for testing but not known to work as intended
151
+
*[**Unlabeled**](#all-other-plugins-unlabeled) - Shared for reference or extension
152
+
153
+
Further details to these definitions are available in [Plugin Status](PLUGIN_STATUS.md).
148
154
149
155
### Documentation
150
156
151
-
All plugins should include a README with the following information:
157
+
We request that all plugins include a README with the following information:
Not all plugins are designed with the same level of readiness in mind. To visualize that fact while also allowing everyone to share their work, we have introduced the concept of "tiers" of plugins. These tiers are communicated as statuses which will be visualized everywhere you see the [Plugin Catalog](PLUGIN_CATALOG.md).
4
+
5
+
Note that plugins can and likely will be demoted if they fall significantly behind best practices of the project. I know that's vague, but it will have to do for this first version :grimacing:
6
+
7
+
### What this is
8
+
9
+
* A way to quickly see the highest quality plugins
10
+
* A way to encourage contribution to existing plugins instead of forking
11
+
12
+
### What this is not
13
+
14
+
* Not a definition of the plugin version - that's done through `releases`
15
+
* Not a contract of support - we do our best as maintainers of Snap, but make no promises
16
+
17
+
## Plugin Status Matrix
18
+
19
+
All plugins meet a set of minimum requirements to be included at its status level. Note that some earlier stage plugins *can* have other requirements implemented, but they *must* have all checkboxes to be in the next tier.
| Reasonable test coverage |||:white_check_mark:|:white_check_mark:|
31
+
| Includes example tasks |||:white_check_mark:|:white_check_mark:|
32
+
| Includes dependency management |||:white_check_mark:|:white_check_mark:|
33
+
| Includes CI status |||:white_check_mark:|:white_check_mark:|
34
+
| Includes license |||:white_check_mark:|:white_check_mark:|
35
+
| Support provided by a company ||||:white_check_mark:|
36
+
37
+
## Supported Plugins
38
+
39
+
These are our premier plugins for the Snap telemetry framework and its users. These are designed to follow all of our recommended practices. Issues are also closely monitored by its supporting company ([read more about that here](#more-on-support-for-plugins)). While companies may support some plugins they contribute to Snap, not all contributions will meet the Supported standard.
40
+
41
+
We prefer to not have other repositories that overlap with Supported plugins and suggest contributing to the existing version to help keep this list small and effective. Like all plugins, community contribution is welcome.
42
+
43
+
44
+
## Approved Plugins
45
+
46
+
These are primarily community-contributed plugins that meet or exceed the project's best practices. These plugins have been vetted by Snap maintainers as of the date listed in the Plugin Catalog. They are excellent references and are quite likely ready for use in your own Snap deployment.
47
+
48
+
We prefer to not have other repositories that overlap with Approved plugins and suggest contributing to the existing version to help keep this list small and effective. Don't be shy about reaching out to existing plugin authors to see if you can help improve upon it.
49
+
50
+
## Experimental
51
+
52
+
These plugins are in development and are not yet complete, but are shared with the community for feedback and testing. They are shared with the community for feedback and testing. Think of this tier as an incubation phase that should move toward Approved or drop down to Unlabeled.
53
+
54
+
We prefer to not have other repositories that overlap with Experimental plugins and suggest contributing to the existing version to help keep this list small and effective. Don't be shy about reaching out to existing plugin authors to see if you can help improve upon it.
55
+
56
+
57
+
## All Other Plugins (Unlabeled)
58
+
59
+
These are plugins in varying phases of completeness and are shared for reference. They do not necessarily follow best practices for plugin development. We welcome anyone forking these plugins and working toward Approved status.
60
+
61
+
## Changing Tiers
62
+
63
+
If you find a plugin that should move between tiers (ex. from Unlabeled to Approved, Supported to Experimental or Approved to Experimental), open an issue to do so on the [main Snap repository](https://github.com/intelsdi-x/snap/issues). Please include any corresponding issues opened on the plugin repository as well.
64
+
65
+
## More On Support For Plugins
66
+
67
+
Snap is an open source project originated and actively maintained by Intel with the goal of becoming a broad community standard for telemetry. We stand behind Supported plugins with the intention of making them part of your monitoring infrastructure. As other companies adopt Snap as their standard telemetry framework, they may also choose to support various plugins. We want to make sure you know which ones, and what companies, are here to support you.
0 commit comments