.. _devguide:

Developer Guide
===============

Bokeh is an open source project and we love having new contributors. Hopefully,
you will find all the information you need in the following pages, linked below
and in the sidebar to the left. If not, please `contact the developers`_ with
any questions.

The software development process for Bokeh is outlined in
`Bokeh Enhancement Proposal 1`_. All changes, enhancements,
and bugfixes should generally go through the process outlined there.

The process for creating, distributing, and announcing final releases
of Bokeh is outlined in `Bokeh Enhancement Proposal 2`_.

------

:ref:`devguide_setup`
    Installation of everything needed to be able to develop Bokeh and BokehJS.

:ref:`devguide_envvars`
    Environment settings useful for testing and debugging Bokeh.

:ref:`devguide_testing`
    Local and continuous integration testing infrastructure.

:ref:`devguide_documentation`
    Style guide and best practices for authoring documentation for Bokeh.

:ref:`devguide_models`
    Overview of Bokeh's declarative model system for interfacing with BokehJS.

:ref:`devguide_server`
    Architecture and implementation notes for the Bokeh server.

:ref:`devguide_bindings`
    Guidance for integrating Bokeh into other languages.

:ref:`devguide_bokehjs`
    Information specific to developing BokehJS.

.. _Bokeh Enhancement Proposal 1: https://github.com/bokeh/bokeh/wiki/BEP-1:-Issues-and-PRs-management
.. _Bokeh Enhancement Proposal 2: https://github.com/bokeh/bokeh/wiki/BEP-2:-Release-Management
.. _contact the developers: https://bokehplots.com/pages/contact.html
