aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2019-07-28 10:02:38 +0000
committerGravatar GitHub <noreply@github.com> 2019-07-28 10:02:38 +0000
commitb209cb162c547ca7520a0dbe82b12c34673de2e2 (patch)
tree38eb52c1c9a0b16503bad6072b7170a72c21d2fd /CONTRIBUTING.md
parent92a636df53c16047a7523d499811ac0df41edaf3 (diff)
downloadcoredns-b209cb162c547ca7520a0dbe82b12c34673de2e2.tar.gz
coredns-b209cb162c547ca7520a0dbe82b12c34673de2e2.tar.zst
coredns-b209cb162c547ca7520a0dbe82b12c34673de2e2.zip
contrib: add words on adding new plugins (#3057)
* contrib: add words on adding new plugins New plugins are usually dropped in one giant ball of code, add some words on how this can be approached and made to work faster. (will at least give us something to point at) Signed-off-by: Miek Gieben <miek@miek.nl> * Update CONTRIBUTING.md Co-Authored-By: Michael Grosser <development@stp-ip.net> * Update CONTRIBUTING.md Co-Authored-By: Michael Grosser <development@stp-ip.net> * Update CONTRIBUTING.md Co-Authored-By: Michael Grosser <development@stp-ip.net> * Update CONTRIBUTING.md * Update CONTRIBUTING.md Co-Authored-By: Michael Grosser <development@stp-ip.net>
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7c2adc709..5cfccf49e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -42,6 +42,16 @@ If possible make a pull request as small as possible, or submit multiple pull re
feature. Smaller means: easier to understand and review. This in turn means things can be merged
faster.
+## New Plugins
+
+A new plugin is (usually) about 1000 lines of Go. This includes tests and some plugin boiler
+plate. This is a considerable amount of code and will take time to review. To prevent too much back and
+forth it is advisable to start with the plugin's `README.md`; This will be it's main documentation and will help
+nail down the correct name of the plugin and its various config options.
+
+From there it can work its way through the rest (`setup.go`, the `ServeDNS` handler function,
+etc.). Doing this will help the reviewers, as each chunk of code is relatively small.
+
## Updating Dependencies
We use [Go Modules](https://github.com/golang/go/wiki/Modules) as the tool to manage vendor dependencies.