Skip to content

Internal contribution guide

Bartosz Błaszków edited this page Jul 24, 2020 · 20 revisions

General rules

Here are a couple of points to remember when starting development in Membrane:

  • When moving a task from "Backlog" to "To do" replace any notes with issue in proper repo and assign yourself.
  • Create a branch with a meaningful name
  • You can open a draft PR right away.
  • Remember to link the issue to the PR (either by adding Closes # and PR number or using the UI)
  • Try to avoid making huge PRs - if the feature you're working on is big, create draft PR with a list of steps and ask for review as early as possible. You can smaller PRs from sub-task branches and use the main as master for this feature
  • When finished assign a reviewer. Ask during stand-up meeting who can do the review. You need at least one approval from one of the core team members and passing CI tests to merge new features.
  • Always remove your branch after merging the PR. It should happen automatically. If not, enable that in settings (or ask someone with permissions to do this)

Creating new plugin/repo

  • Each new plugin should have its own repo and hex package
  • The plugin should contain one or more elements related to the same format/protocol (e.g. H264 plugin may contain decoder, encoder and parser)
  • One plugin should only depend on at most one native library, so if you need separate libraries for decoder and encoder each should be a separate plugin
  • When starting development you should create new repo based on https://github.com/membraneframework/membrane_template_plugin, enable CI and create branch (often called develop) and follow the usual steps.
Clone this wiki locally