Thank you for investing your time in contributing to radash!
The documentation site has a separate project. This repo and guide is specifically for the radash library source code.
If you have a general question about radash, how to use it, the roadmap, or an idea to chat about you can ask it on the discussions page. Before you do, search to see if it's been asked before. If a related topic doesn't exist, you can start a new one.
If you have an issue with radash, you want to report a bug, or you need an improvement you can create an issue on the issues page. Before you do, search to see if it's already been brought up. If a similar issue doesn't exist, you can create a new one.
Scan through the existing issues to find one that interests you. As a general rule, I don’t assign issues to anyone. If you find an issue to work on, you are welcome to open a PR with a fix. Feel free to ask questions about the implementation or design in a comment on the issue before diving in.
- To get started, run
yarn
in the project's root directory to install the dependencies. - You can run the unit tests with
yarn test
. They require Node v16+. You can runnvm use
in the root directory to change to the correct Node version. The tests should pass (duh) and maintain 100% code coverage. - To get familiar with the existing code I would recommend looking through the docs and the codebase in parallel. For each function in the docs, find the implementation in the source and skim over the code.
- When coding, try not to create internal APIs (any function or module that is not exported to be used by the client).
- Also, try not to use functions from other radash modules. This is a softer rule but we want to make it easy for readers to understand a function without having to navigate the codebase. As a utility library users should ideally be able to copy/paste a function from radash into their project. Most radash functions should be easy to write in isolation.
- If an implementation needs more than ~20 lines of code it might be better suited for another package or library. This is another softer rule.
Once you've made your changes on a fork of the radash repo, create a pull request to the master
branch of the radash repository.
- Be sure to fill in a description that lets readers and reviewers understand both the implementation and intent of your changes.
- Don't forget to link the PR to an issue if you are solving one.
- Enable the checkbox to allow maintainer edits so the branch can be updated for a merge.
Once you submit your PR, I (@rayepps) will review it. I might ask questions or request additional information.
Congratulations 🎉🎉 Currently, the package publishing process is manual. Your PR will be updated with a comment when the next release is published. This should happen within 24-48 hours of your PR being merged.