diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3f3fb27 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,59 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make +participation in our project and our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, +race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take +appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, +issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the +project or its community. Examples of representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed representative at an online or +offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at +`open-source@arthenica.com`. All complaints will be reviewed and investigated and will result in a response that is +deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with +regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at +[https://contributor-covenant.org/version/1/4][version]. + +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f08bf75 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,63 @@ +# How to contribute + +Thanks for taking the time to contribute! :heart: + +The following is a set of guidelines for contributing to `FFmpegKit`! + +## Project Resources + +* [Wiki](https://github.com/arthenica/ffmpeg-kit/wiki) includes most detailed documentation we have +* [FFmpegKit Feature Roadmap](https://github.com/orgs/arthenica/projects/1) shows our long term plans for the project +* [How To Get Help](https://github.com/arthenica/ffmpeg-kit/issues/215) details what you need to do if you need help +* [Discussions](https://github.com/arthenica/ffmpeg-kit/discussions) is where we expect you to ask questions +* [Issues](https://github.com/arthenica/ffmpeg-kit/issues) is for bugs and issues + +## Reporting Bugs + +Bugs are tracked as [GitHub issues](https://github.com/arthenica/ffmpeg-kit/issues). We have a `Bug report` issue +template which includes all the fields we need to see to confirm a bug and work on it. Try to fill out all template +fields, especially the logs field and steps to reproduce the bug. Reproducing a bug is crucial to be able to fix it. + +### FFmpeg Bugs + +`FFmpegKit` does not modify the original `FFmpeg` source code. Therefore, if an `FFmpeg` feature or component is not +working as expected, most probably that problem comes from `FFmpeg`. If you encounter those kind of errors, we expect +you to install the desktop version of `FFmpeg` and test that feature or component there. If it fails on desktop too +then it must be reported to [FFmpeg bug tracker](https://trac.ffmpeg.org/). If not, then it is an `FFmpegKit` bug. +Create an issue and state that this bug doesn't exist on the `desktop` version of the same `FFmpeg` version. + +## Feature Requests + +Before creating a feature request, please check our long term plan for the project, which is visible under the +[FFmpegKit Feature Roadmap](https://github.com/orgs/arthenica/projects/1). Then create an issue and fill out the +`Feature request` issue template and provide as many details as possible. + +### External Library Requests + +`FFmpeg` supports a long list of `external` libraries. In `FFmpegKit` we did our best to support most of them. +However, there are still many libraries that cannot be used within `FFmpegKit`. + +Unfortunately, cross compilation is a challenging process. Because of that, we don't take new external library +requests. Though, we are open to PRs. If someone wants to contribute we'll be happy to review their changes that +enables another external library in `FFmpeg`. + +## Pull Requests + +Although it is not mandatory, our suggestion is to first discuss the change you wish to make via an issue or a +discussion. `FFmpegKit` is a complex project. There are many things that must be considered when implementing a +feature. + +`FFmpegKit` has a unified API, which means we provide the same functionality on all platforms. Therefore, we expect +the same from the pull requests as well. A feature must be implemented for all platforms unless it is a platform specific +feature. + +Ensure that your changes rely on official documented methods and test your changes using the test applications we have +under the [ffmpeg-kit-test](https://github.com/arthenica/ffmpeg-kit-test) repository. + +`main` branch of `FFmpegKit` includes only the latest released source code. Therefore, please open your pull requests +against the development branches (`development` for native platforms, `development-react-native` for +`react-native`, `development-flutter` for `flutter`). + +Note that PRs about styling and cosmetic changes will not be accepted. + +Thanks! \ No newline at end of file