Contributing to Penlight
So you want to contribute to Penlight? Fantastic! Here's a brief overview on
how best to do so.
What to change
Here's some examples of things you might want to make a pull request for:
- New features
- Bugfixes
- Inefficient blocks of code
If you have a more deeply-rooted problem with how the library is built or some
of the stylistic decisions made in the code, it's best to
create an issue before putting
the effort into a pull request. The same goes for new features - it might be
best to check the project's direction, existing pull requests, and currently open
and closed issues first.
Using Git appropriately
Here's how to go about contributing to Penlight:
- Fork the repository to
your Github account.
- Create a topical branch - a branch whose name is succint but explains what
you're doing, such as "added-klingon-cloacking-device" - from
master
branch.
- Make your changes, committing at logical breaks.
- Push your branch to your personal account
- Create a pull request
- Watch for comments or acceptance
If you wanna be a rockstar;
- Update the CHANGELOG.md file
- Add tests that show the defect your fix repairs, or that tests your new feature
Please note - if you want to change multiple things that don't depend on each
other, make sure you check out the master
branch again and create a different topical branch
before making more changes - that way we can take in each change separately.
Release instructions for a new version
- create a new release branch
- update
./lua/pl/utils.lua
(the _VERSION
constant)
- update
./config.ld
with the new version number
- create a new rockspec file for the version in
./rockspecs
- check the
./CHANGELOG.md
files for completeness
- commit the release related changes
- render the documentation using
ldoc .
- commit the documentation as a separate commit
- push the release branch and create a PR
- merge the PR
- tag the release and push the tag to the github repo
- upload the rockspec, and source rock files to LuaRocks
- test installing through LuaRocks
- announce the release on the Lua mailing list