|
|
= Contributing to ChunkyPNG
|
|
|
|
|
|
I will gladly accept any contributions from anybody to improve this library. However, this is a
|
|
|
personal open source project, without an active community around it. As a result I am the only
|
|
|
maintainer, and I’d like to keep the scope and complexity of this project small.
|
|
|
This way, with the limited amount of time I dedicate to this project, this library remains a
|
|
|
solid piece of software that many people rely on in their workflow.
|
|
|
|
|
|
|
|
|
== Project scope
|
|
|
|
|
|
The scope of this library is defined as:
|
|
|
|
|
|
1. Reading and writing any PNG image that conforms to the spec, with proper error handling of
|
|
|
images that do not conform to the spec.
|
|
|
2. Basic canvas drawing and compositing operations to create new or edit existing images.
|
|
|
However, I will generally be hesitant to add new drawing and compositing methods, because
|
|
|
the list could be endless to support every niche use case.
|
|
|
3. Remain compatible with Ruby versions that are widely used.
|
|
|
|
|
|
I generally consider this gem to be feature complete based on this scope. I will close issues
|
|
|
and pull requests that go beyond this scope. If you want to work on something, but are not sure
|
|
|
if it will be accepted, feel free to reach out to me by opening an issue before committing your time.
|
|
|
|
|
|
For functionality that goes beyond the scope, I would suggest making it available as a separate
|
|
|
“plugin” gem (e.g. chunky_png-<my-feature>). If anything in the gem needs to be refactored
|
|
|
to support this kind of extensibility, I am happy to accept PRs for that.
|
|
|
|
|
|
|
|
|
== Reporting bugs
|
|
|
|
|
|
- First, see if somebody else has reported the problem already.
|
|
|
- Try to include as much relevant information as possible, so I can recreate the problem.
|
|
|
- If possible, include the PNG image that is causing the issue.
|
|
|
- If possible, include a code snippet that exposes the problem.
|
|
|
|
|
|
|
|
|
== Pull requests
|
|
|
|
|
|
Title and description:
|
|
|
|
|
|
- If you are not yet done, please include <tt>[WIP]</tt> in the title of your pull request.
|
|
|
- Explain why your changes are relevant in the description of your pull request.
|
|
|
- If your changes improve performance, include benchmark methodology and results in the PR.
|
|
|
See BENCHMARKING.rdoc for more information.
|
|
|
|
|
|
Code:
|
|
|
|
|
|
- Don't break backwards compatibility.
|
|
|
- Follow code conventions. They are enforced through Rubocop.
|
|
|
- Add Yardoc comments as documentation.
|
|
|
|
|
|
Specs:
|
|
|
|
|
|
- Always include specs that test your changes, to prevent me from breaking your code later.
|
|
|
- If your specs use PNG files, try to keep them as small as possible to keep the test suite snappy.
|
|
|
- Make sure that the specs are passing for all Rubies on Travis CI: https://travis-ci.org/wvanbergen/chunky_png/
|
|
|
|
|
|
Misc:
|
|
|
|
|
|
- Add an entry to CHANGELOG.rdoc.
|
|
|
- Do not change <tt>ChunkyPNG::VERSION</tt>
|
|
|
|
|
|
|
|
|
== Releases
|
|
|
|
|
|
- Ensure the latest master is passing on Travis CI.
|
|
|
- Update <tt>CHANGELOG.rdoc</tt>
|
|
|
- Update <tt>ChunkyPNG::VERSION</tt>
|
|
|
- Run <tt>bundle exec rake release</tt>
|