Skip to content

Contribute

jananite edited this page Feb 5, 2020 · 35 revisions

How to contribute changes back to x265?

See our TODO page for work that needs to be done, and what is currently in progress

Communications

We use a mailing list to communicate and review patches:

Contributor License Agreement

As is common for Open Source projects, we require a signed contributor agreement before we can accept changes. This protects the project from being sued by former contributors (or their employers) for copyright or patent infringement.

You must download the document, fill it in, return it to us by one of the methods described in the document. We will countersign and return it to you. You only need to do this once.

Release Management

x265 will follow Mercurial's standard branching methodology. The repository will have two named branches, stable and default. The default branch is where all new development will be performed, while the stable branch is for bug fixes only until we get to a release cycle. Each time a bug fix commit is made to stable, that bug fix is merged into the default branch.

When we decide we want to release the contents of the default branch, we merge the default branch onto stable and then begin a short period of heavy testing leading up to a new revision tag being made on the stable branch. Once the tag is made, the default branch is opened again for new development.

Since this is such a young project, there will be no set release tag cadence. It will happen as often as is convenient and necessary, but hopefully at least once a month.

API Change Responsibilities

If you introduce a new x265_param member, you must add documentation for it and make it fully configurable.

  1. x265.h needs good documentation
  2. x265_param_parse() must be updated
  3. x265_param2string() must be updated
  4. getopt() (and CLI help) support needs to be added to x265cli.h
  5. the param must be documented in doc/reST/cli.rst
  6. X265_BUILD must be incremented, the binary interface has changed
  7. test(s) have to be added to smoke-tests.txt and regression-tests.txt

Much of the above is also true if you change any public function definitions or public structures.

Clone this wiki locally