Thank you for your interest in contributing to Linux System Info! We welcome contributions from the community and are grateful for your help in making this project better.
- Linux system (any major distribution)
- Bash 4.0 or higher
- Git
- Basic knowledge of shell scripting
# Fork the repository on GitHub
# Clone your fork
git clone https://github.com/YOUR_USERNAME/LinuxSystemInfo.git
cd LinuxSystemInfo
# Make scripts executable
chmod +x scripts/*.sh
# Test the scripts
./scripts/sysinfo.sh
./scripts/sysinfo-simple.shWe welcome several types of contributions:
- Use the issue tracker
- Include your Linux distribution and version
- Provide terminal output and error messages
- Describe the expected vs actual behavior
- Check existing issues first to avoid duplicates
- Explain the use case and benefit
- Provide implementation suggestions if possible
- Bug fixes
- New features
- Performance improvements
- Documentation improvements
- Test coverage improvements
- Testing on new Linux distributions
- Compatibility fixes
- Distribution-specific enhancements
- Use consistent indentation (4 spaces)
- Follow existing naming conventions
- Add comments for complex logic
- Keep functions focused and modular
- Maintain compatibility with bash 4.0+
#!/bin/bash
# Function description and purpose
function_name() {
local variable_name="value"
# Clear, descriptive comments
command_here
return 0
}- Always include error checking for critical operations
- Provide graceful fallbacks for missing dependencies
- Use timeouts for network operations
- Test error conditions thoroughly
- Keep execution time reasonable (< 3 seconds for comprehensive mode)
- Cache expensive operations when possible
- Avoid unnecessary external command calls
- Test on older/slower hardware
# Create a feature branch
git checkout -b feature/your-feature-name
# Make your changes
# Test thoroughly on different distributions if possible- Scripts run without errors on your system
- No breaking changes to existing functionality
- Error handling works correctly
- Performance impact is minimal
- Documentation is updated if needed
- Use clear, descriptive commit messages
- Start with a verb in imperative mood
- Keep the first line under 50 characters
- Add detailed description if needed
# Good commit messages
Add temperature monitoring for AMD CPUs
Fix memory percentage calculation on Alpine Linux
Update documentation for new installation method
# Poor commit messages
Fix bug
Update stuff
Changes- Fill out the pull request template
- Link related issues
- Describe what you changed and why
- Include screenshots for visual changes
- Request review from maintainers
Test your changes on:
- Different Linux distributions (if possible)
- Different terminal emulators
- Systems with/without optional dependencies
- Various hardware configurations
- Systems with limited memory
- Systems with high disk usage
- Network connectivity issues
- Missing optional dependencies
- Different shell environments
We're working on automated testing infrastructure. In the meantime:
- Test edge cases manually
- Verify fallback behavior
- Check error conditions
- Add comments for complex logic
- Document function parameters and return values
- Explain non-obvious behavior
- Update inline help text
Update relevant sections when:
- Adding new features
- Changing installation procedures
- Modifying dependencies
- Adding distribution support
Provide examples for:
- New configuration options
- Custom modifications
- Integration patterns
- Check existing issues - Avoid duplicate work
- Discuss the feature - Open an issue to discuss approach
- Design considerations - Think about compatibility and performance
- Implementation plan - Break down into smaller tasks
- Start small - Implement minimum viable version first
- Test early and often - Test on multiple systems
- Document as you go - Update docs alongside code
- Get feedback - Share work-in-progress for early feedback
- New CPU architectures
- Additional GPU vendors (AMD, Intel)
- More hardware sensors
- USB device information
- Additional programming languages
- More development tools
- Container platforms (Podman, LXC)
- Database systems
- New themes or color schemes
- Alternative layouts
- Responsive terminal sizing
- Export formats (JSON, XML)
- Systemd integration
- Cron job templates
- Monitoring system plugins
- Shell integration improvements
We use labels to categorize issues:
bug- Something isn't workingenhancement- New feature or improvementdocumentation- Documentation relatedgood first issue- Good for newcomershelp wanted- Extra attention neededquestion- Question about usagecompatibility- Distribution/hardware compatibilityperformance- Performance related
- π Open an issue for bugs
- π¬ Start a discussion for questions
- π§ Email mail@cloudwerx.dev for sensitive matters
- Be respectful and inclusive
- Help newcomers get started
- Share knowledge and resources
- Focus on constructive feedback
- Celebrate contributions from others
By contributing to Linux System Info, you agree that your contributions will be licensed under the Apache License 2.0. See the LICENSE file for details.
- Your code becomes part of the open-source project
- Others can use, modify, and distribute your contributions
- Your contributions are protected under the same license terms
- You retain copyright to your original work
Contributors are recognized in several ways:
- Listed in the project README
- Mentioned in release notes
- GitHub contributor statistics
- Special thanks for significant contributions
Significant contributors may be featured in our project documentation with:
- Name and optional link
- Description of contribution
- Special recognition badge
Don't hesitate to ask questions! We're here to help:
- π Check the README first
- π Search existing issues
- π¬ Start a discussion
- π§ Email us at mail@cloudwerx.dev
Happy Contributing! π
Made with β€οΈ by the Linux System Info community