
Contributing to {bidux}
First off, thank you for your interest in making bidux better! Whether you’re filing a bug report, suggesting a new feature, improving documentation, or submitting code, your contributions are what make this project great.
📜 Code of Conduct
All contributors must abide by our Contributor Code of Conduct. Please read it before participating.
🐛 Reporting Bugs
- Search for existing issues to see if it’s already been reported.
- If not, open a new issue using the Bug Report template: https://github.com/jrwinget/bidux/issues/new?template=01_bug-report.yml
- Fill in all sections, including reproducible examples and session info.
✨ Suggesting Enhancements
- Browse open feature requests to avoid duplicates.
- Open a new issue with the Feature Request template: https://github.com/jrwinget/bidux/issues/new?template=02_feature-request.yml
- Describe the use case, proposed API, and any relevant links or mockups.
📖 Documentation Improvements
We rely on clear examples and comprehensive docs. To propose improvements:
- Create an issue with the Documentation template: https://github.com/jrwinget/bidux/issues/new?template=03_documentation-improvement.yml
- Submit a PR with updated
.Rmd
, vignettes, or help files. - Use
\donttest{}
for long-running examples, and ensure all code in examples runs without external dependencies.
🗂 Other Issue Templates
- ♿ Accessibility Issue - Report or fix accessibility barriers
- 🧠 Theory Suggestions - Propose new concepts or theories
- ✨ Shiny Integration Requests - Improve integration with Shiny packages
👩💻 Pull Request Workflow
Fork the
jrwinget/bidux
repository.Create a branch named
feature/your-feature
orbugfix/issue-123
.-
Install dependencies:
pak::pak(desc::desc_get_deps()$package)
-
Load the package and run tests:
devtools::load_all() devtools::test()
Write clear, descriptive commit messages.
-
Document new functions with roxygen2 and run:
devtools::document()
-
Check the package as if for CRAN:
devtools::check()
Push your branch and open a PR against
main
.
CI checks will run automatically. Address any failures before requesting a review.
🖋 Code Style Guidelines
We follow the tidyverse style conventions:
- Use snake_case for function and variable names.
- Avoid the magrittr pipe (
%>%
); prefer the native pipe (|>
). - Adhere to the tidyverse style guide.
- Run
styler::style_pkg()
andlintr::lint_package()
to catch formatting issues.
🧪 Testing
- Place tests in
tests/testthat/
using the testthat framework. - Aim for coverage across edge cases and expected failure modes.
- Use
skip_on_cran()
orskip_on_ci()
for tests that require external resources.
📚 Documentation & Vignettes
- Vignettes live in
vignettes/
. - Use R Markdown with examples that illustrate real-world workflows.
- Link new features to existing vignettes or create a dedicated one.
🧠 BID Framework Considerations
When contributing features or examples, keep the following in mind:
- Psychological Accuracy: Represent concepts and theories correctly.
- Accessibility: Ensure components and outputs meet WCAG standards.
- User Experience: Strive for clear, intuitive interfaces.
- Evidence-Based: Cite reputable sources when introducing new theories.
💬 Community & Discussions
For general questions, brainstorming, or design discussions, use GitHub Discussions.
⚖️ License
By contributing, you agree that your contributions will be licensed under the project’s MIT License.
Thank you for helping bidux become stronger and more user-friendly!