46 lines
1.9 KiB
Markdown
46 lines
1.9 KiB
Markdown
## 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.
|