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

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.

  1. 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
  2. Discuss the implementation details with core developers on varnish-dev
  3. Start writing code
    1. Read and understand the Developer Guidelines
    2. write a prototype
    3. throw it away
    4. start over
  4. Submit a patch
    1. send the patch to varnish-dev, or add it as a pull request on the github project.