1.9 KiB
How can I contribute?
- create issues for bugs you find
- create pull requests to fix bigs, add features, clean up code, etc.
- improve the documentation
- chat with us on the freenode IRC server at #open-m3u8
What can I work on?
We do not yet support the full m3u8 specification! So a great way to help is by adding support for more tags in the specification:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-14
The issues page is another good place to look for ways to contribute.
Compatibility
This library needs to support Android which means we are limited to Java 7 sans try-with-resources.
Code Style
- 4 spaces per indent - no tab characters
- mPrefix private members
- opening braces on the same line
- when wrapping long method calls, put each argument on its own line
- when building long fluent builders, put each method in the chain on its own line
Merging
We use a rebase / cherry-pick strategy to merging code. This is to maintain a legible git history on the master branch. This has a few implications:
- it is best if you rebase your branches onto master to fix merge conflicts instead of merging
- your commits may be squashed, reordered, reworded, or edited when merged
- your pull request will be marked closed instead of merged but will be linked to the closing commit
- your branch will not remain tracked by this repository
Working with the Code
com.iheartradio.m3u8 package
Everything not meant to be visible to the public API must be package protected. If a whole class is package protected, then you may mark the fields public since they will still not be visible.
com.iheartradio.m3u8.data package
The data structures in this package reflect the structure of a playlist based on the specification. They are part of the public API and must be immutable. The Playlist
is the result of parsing and the input of writing.