How to Contribute to Varnish
How to report or fix a bug
- open a trac bug
- write a varnishtest case which exposes the problem. This speeds up bugfixing by several orders of magnitude.
- suggest a patch
- in the trac bug
- on varnish-dev
How to develop new features in Varnish
- No trac tickets for features (trac is only used for bugs, not features)
- Collect important material on a wiki page (until a better method for tracking feature requests is established)
- Link the wiki page to from the appropriate Future Backlog (ideas lists)
- Discuss by mail
- If discussing on IRC or off-line, please write up summaries on the wiki page or by mail such that the discussion can be tracked and reviewed later
Can this be done as a vmod?
Try to write your feature as a vmod and contribute it to the vmod repo whenever possible.
Does the feature need changes to the core code?
It will probably save you time and effort write a proposal and discuss the your feature before writing code. If you decide to not follow these suggestions, be prepared to see your contribution be simply rejected or ignored.
- Convince phk and other core developers on varnish-dev that the world needs the feature (think of 97% rather than 3% of users)
- What is the feature you are suggesting, which problem does it solve or what is it useful for, what is its scope
- Write specs
- How will the VCL look like?
- What will the feature do?
- How will it work?
- Will it be default-on or default-off?
- Write documentation
- Discuss the implementation details with core developers on varnish-dev
- Start writing code
- Read and understand the Developer Guidelines
- write a prototype
- throw it away
- start over
- Submit a patch
- send the patch to varnish-dev, or add it as a pull request on the github project.