Thank you for your interest in contributing to dyadicMarkov.
dyadicMarkov is an R package for identifying interaction patterns in categorical dyadic sequences using transition matrices. Contributions are welcome, including bug reports, documentation improvements, examples, tests, and carefully discussed feature proposals.
Reporting issues
Please report bugs, documentation issues, or feature requests through the GitHub issue tracker:
https://github.com/BoellenruecherM/dyadicMarkov-public/issues
When reporting a bug, please include:
- a minimal reproducible example;
- the expected result;
- the observed result;
- the version of
dyadicMarkovyou are using; - your R session information, for example from
sessionInfo().
For questions about possible extensions or larger changes, please open an issue before starting substantial work. This helps avoid duplicate work and makes sure the proposed change fits the scope of the package.
Fixing typos and documentation
Small documentation fixes, typo corrections, and improvements to examples are very welcome.
If you edit function documentation, please edit the source .R file containing the roxygen2 comments rather than the generated .Rd file. The .Rd files are generated from the roxygen2 documentation.
Pull requests
Pull requests are welcome. For substantial changes, please open an issue first to discuss the proposed contribution.
A typical contribution workflow is:
- Fork the repository.
- Clone your fork locally.
- Create a new branch for your change.
- Make your changes.
- Add or update tests when package behavior changes.
- Update documentation when user-facing behavior changes.
- Run the package checks locally.
- Submit a pull request.
Before submitting a pull request, please make sure that:
- the package can be installed successfully;
-
devtools::test()passes; -
devtools::check()passes without errors, warnings, or notes; - new functionality is documented;
- new functionality is covered by tests where appropriate;
- user-facing changes are mentioned in
NEWS.md.
Code style
Please follow the general tidyverse style guide for R code. In particular:
- use clear and descriptive object names;
- use descriptive names that are consistent with the surrounding code; do not rename existing exported functions solely for style consistency;
- avoid unnecessary changes to unrelated files;
- avoid restyling code that is not part of the pull request.
The package uses roxygen2 with Markdown syntax for documentation and testthat for unit tests.
Contributions that include clear documentation and relevant tests are easier to review and accept.
Extended tests
The regular test suite is designed to remain fast and is run with:
devtools::test()The package also includes an opt-in extended test that reproduces the complete binary bivariate sequence-length sensitivity analysis using the bundled simulation data for sequence lengths 30, 60, 90, 180, and 720. The calculation classifies 1,000 dyads in four member-variable orientations at each sequence length, for 20,000 classifications in total.
The extended test is part of the standard testthat framework but is disabled during ordinary test runs. To enable it in Windows CMD, run:
set "DYADICMARKOV_EXTENDED_TESTS=true"
Rscript -e "devtools::test(filter='extended-sensitivity')"
set "DYADICMARKOV_EXTENDED_TESTS="On shells that support inline environment-variable assignment, the equivalent is:
The test is deterministic: it re-analyses fixed simulation data bundled with the package and does not regenerate the original stochastic simulations, so no random seed is required. It requires no downloads, external services, or manually supplied artefacts.
A complete run on the Windows development machine used for package development took approximately 233 seconds (about 3 minutes 53 seconds). Runtime will depend on hardware. The test has no known special memory requirements, does not require platform-specific external software, and produces no files, figures, or other artefacts requiring manual inspection. The extended test has been directly validated on Windows; the R and testthat code itself contains no platform-specific implementation.
Code of conduct
Please note that this project follows the rOpenSci Code of Conduct. By contributing to this project, you agree to abide by its terms.
