Thank you for your interest in improving this project. This project is open-source under the BlueOak 1.0.0 Model License and welcomes contributions in the form of bug reports, feature requests, and pull requests.
Here is a list of important resources for contributors:
Report bugs on the Issue Tracker.
When filing an issue, make sure to answer these questions:
- Which operating system (and powershell version, for Windows) are you using?
- Which version of this project are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
The best way to get your bug fixed is to provide a test case, and/or steps to reproduce the issue.
Request features on the Issue Tracker.
Open a Pull Request to submit changes to this project.
Your pull request needs to meet the following guidelines for acceptance:
- shellcheck should pass against all shell scripts
- PSScriptAnalyzer should pass against all powershell scripts
It is recommended to open an issue before starting work on anything. This will allow a chance to talk it over with the maintainers and validate your approach.
The repository has two complementary test entrypoints:
./script/test: manual container bring-up and debugging for Linux setup flows../test/run-cram: structured Cram regression suites for repeatable scenario coverage.
Both rely on Docker for the container-backed Linux setup tests.
# Run all distros through the manual container test entrypoint
./script/test
# Run a specific distro
./script/test arch
# Drop into a user shell after setup (useful for debugging)
./script/test -i debian
# Stop after setup-root, then drop into a shell
./script/test -r -i debian
# Run a command as the test user after setup
./script/test -c 'chezmoi data | grep -E "work|personal"' debian
# Run all structured Cram suites
./test/run-cram
# Run only the container-backed dotfiles scenarios
./test/run-cram test/cram/container
# Run only the statusline transcript tests
./test/run-cram test/cram/statuslineSupported distros: arch, chimera, debian, fedora, ubuntu.
Pass GITHUB_TOKEN in the environment to authenticate private dependency downloads
during setup.
The container Cram suite currently lives under test/cram/container/. These
tests keep ./script/test as the human-facing container entrypoint, but define
named scenarios in Cram with helper scripts for matrix coverage and assertions.