Thank you for your interest in improving SwiftDeadCode! This document outlines how to report issues, propose enhancements, and submit pull requests so we can keep the project healthy and easy to maintain.
This project follows the Contributor Covenant. By participating, you agree to uphold its principles. If you encounter unacceptable behavior, please report it to the maintainers.
- Fork the repository and create a branch for your work. Use a descriptive branch name such as
feature/improve-reportingorfix/demangler-crash. - Install dependencies using the Swift Package Manager:
swift build
- Run the test suite to ensure everything passes before making changes:
swift test - If you plan to integrate the tool with an Xcode project, review
README.mdfor the current setup instructions.
- SwiftDeadCode focuses on comparing debug and release link maps and reporting application-owned debug-only symbols. Please open an issue to discuss major feature ideas before implementation.
- Keep the CLI experience focused and well-documented. New flags or configuration options should have accompanying documentation updates and, when possible, tests.
- Avoid committing unrelated formatting changes. If you need to reformat, do so in a dedicated pull request.
- Add or update tests to cover your change. We aim for meaningful test coverage that protects against regressions.
- Document user-facing changes. Update
README.mdor inline comments so users understand new behavior. - Run
swift testand ensure it passes locally. Mention the command in your pull request description. - Commit with a clear message explaining what the change does and why.
- Open a pull request against
main. Fill out the template (if applicable) and provide context, especially for non-obvious decisions.
When you encounter a bug:
- Check existing issues to avoid duplicates.
- Create a new issue with:
- Steps to reproduce
- Expected vs. actual behavior
- Relevant logs or report output
- Environment details (Xcode version, Swift version, OS, etc.)
We welcome ideas that improve the developer experience or analysis accuracy. Please open an issue describing the problem you want to solve, why it matters, and any implementation thoughts you have.
If you are unsure about the right approach, feel free to open a discussion or issue tagged as “question.” The maintainers and community are happy to help.
Thank you for contributing!