Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
95 lines (67 sloc) 4.07 KB

Contributing to Monix

The Monix project welcomes contributions from anybody wishing to participate. All code or documentation that is provided must be licensed with the same license that Monix is licensed with (Apache 2.0, see LICENSE.txt).

Code of Conduct

People are expected to follow the Typelevel Code of Conduct when discussing Monix on the Github page, Gitter channel, or other venues.

We hope that our community will be respectful, helpful, and kind. If you find yourself embroiled in a situation that becomes heated, or that fails to live up to our expectations, you should disengage and contact one of the project maintainers in private. We hope to avoid letting minor aggressions and misunderstandings escalate into larger problems.

General Workflow

  1. Make sure you can license your work under Apache 2.0

  2. Before starting to work, make sure there is a ticket in the issue or create one first. It can help accelerate the acceptance process if the change is agreed upon

  3. If you don't have write access to the repository, you should do your work in a local branch of your own fork and then submit a pull request. If you do have write access to the repository, never work directly on master.

  4. When the work is completed, verify it with following commands:

sbt scalafmtAll
sbt coreJVM/test
sbt mimaReportBinaryIssues

If mimaReportBinaryIssues fails, it means there are binary incompatibilities.

  • If you're working on stable version (e.g. last released version is 3.0.0 or similar) then we will have to implement the change in a way that passes this test. There are few useful guidelines here but do not hesitate to submit a Pull Request anyway and ask Maintainers for help.
  • If you're not working on stable version (e.g. last released version is 3.0.0-RC3 or similar), just add proper filter here. You should be able to find it in the failure output.
  1. Submit a Pull Request.

  2. Anyone can comment on a pull request and you are expected to answer questions or to incorporate feedback.

  3. It is not allowed to force push to the branch on which the pull request is based.

General Guidelines

  1. It is recommended that the work is accompanied by unit tests.

  2. The commit messages should be clear and short one lines, if more details are needed, specify a body.

  3. New source files should be accompanied by the copyright header.

  4. Follow the structure of the code in this repository and the indentation rules used.

  5. Your first commit request should be accompanied with a change to the AUTHORS file, adding yourself to the authors list.

Finding Starting Point

If you want to contribute but you don't know where to start - have a look at low-hanging fruit or help wanted issues. If there aren't any, have unclear description or seem too complicated - visit monix/monix Gitter channel. Gitter is a go-to place in case you have any questions or need guidance since we're more than happy to help new contributors regardless of their experience.


All code must be licensed under the Apache 2.0 license and all files must include the following copyright header:

Copyright (c) 2014-$today.year by The Monix Project Developers.
See the project homepage at:

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.
You can’t perform that action at this time.