Contributing to iheatmaprSource:
Please report bugs and contribute feature requests using the the Github Issues page. For reporting bugs, please provide a reproducible example. For feature requests, please give an example use case.
New features or improvements to the existing codebase or documentation are welcomed. Please use GitHub’s pull request feature for proposing and submitting changes.
New features or changes to existing features should mimic the style used for existing features. For example, if adding a new modular component that can be added onto a complex heatmap, the name of the new function should start with “add_”. Additionally, iheatmapr uses the S4 OOP system, so additional functions should generally be written as S4 methods.
If adding a new feature, a test should be added for that new feature, as well as an update to the vignette to document the new feature. The website documentation should also be updated using pkgdown.
Testing is done using the testthat package. A
expect_iheatmap function is included in helper_expectation.R in the tests/testthat directory. This function wraps a few expectations. In particular, the expectation will create a saved version of the data that is used to create the plotly graphic. After being run once, the test will check that the data is the same as was previously generated. The view_reference.Rmd file will create the plots based on all the saved data created by the
expect_iheatmap function. Building view_reference.Rmd can be used to visually inpect the expected result of each test.
iheatmapr is intended to be a general purpose package for creating complex, interactive heatmaps. The modular building blocks can be adapted to make domain-specific types of heatmaps, but such specialized adaptations are a better fit for complementary, add-on packages that build upon iheatmapr rather than as components of iheatmapr itself.
Please use the Issues page for questions about these guidelines. You can also submit a preliminary pull request with questions.
When contributing to iheatmapr, you are expected to follow the code of conduct.