From 241fadc6695ddae0327b65f2e16dc6770e7640bc Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Sun, 9 Nov 2025 08:23:16 +0200 Subject: [PATCH] docs: Add contributor quick-start guide New file providing step-by-step onboarding for contributors: - Quick links to contributor manual, coding standards, and testing philosophy - 8-step workflow from fork to pull request - Code of conduct principles (respectful, constructive, welcoming) - Clear acceptance criteria (type stability, tests, documentation, clean commits) - Rejection criteria (type instability, no tests, Greek letters, breaking changes) - Help resources (discussions, issues, PRs) - MIT license acknowledgment --- docs/CONTRIBUTING.md | 99 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 docs/CONTRIBUTING.md diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000..d2c3d80 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,99 @@ +--- +title: "Contributing to JuliaFEM" +description: "Quick start guide for new contributors" +date: 2025-11-09 +author: "Jukka Aho" +categories: ["development", "contributing", "getting started"] +keywords: ["juliafem", "contributing", "pull requests", "development"] +audience: "contributors" +level: "beginner" +type: "guide" +--- + +Thank you for considering contributing to JuliaFEM! πŸŽ‰ + +## Quick Links + +- **[Contributor Manual](contributor/README.md)** - Start here for technical details +- **[Coding Standards](contributor/coding_standards.md)** - **REQUIRED** reading for all contributors +- **[Testing Philosophy](contributor/testing_philosophy.md)** - How we test and why + +## Quick Start + +1. **Fork the repository** on GitHub + +2. **Clone your fork:** + + ```bash + git clone https://github.com/YOUR_USERNAME/JuliaFEM.jl.git + cd JuliaFEM.jl + ``` + +3. **Create a branch:** + + ```bash + git checkout -b fix-issue-123 + ``` + +4. **Read the [Coding Standards](contributor/coding_standards.md)** - Critical rules like: + - βœ… Use `u, v, w` for reference coordinates + - ❌ Never use Greek letters (ΞΎ, Ξ·, ΞΆ) in code + - βœ… Type-stable code required + - βœ… Zero allocations in hot paths + +5. **Make your changes** following the standards + +6. **Run tests:** + + ```bash + julia --project=. -e 'using Pkg; Pkg.test()' + ``` + +7. **Commit with good messages:** + + ```text + feat(topology): Add Pyr5 pyramid element + + - Implement 5-node pyramid reference element + - Zero-allocation tuple interface + - Tests for reference coordinates + + Closes #123 + ``` + +8. **Push and create Pull Request** + +## Code of Conduct + +- Be respectful and constructive +- Focus on the code, not the person +- Welcome newcomers and help them learn +- Ask questions before making assumptions + +## What We Look For + +βœ… **Type-stable code** - Performance depends on it +βœ… **Tests included** - New features need tests +βœ… **Documentation** - Docstrings for exported functions +βœ… **Clean commits** - Logical, well-described changes +βœ… **Follows standards** - Read [coding_standards.md](contributor/coding_standards.md) + +❌ **Type-unstable code** - Will be rejected +❌ **No tests** - Cannot merge without tests +❌ **Greek letters in code** - Use u, v, w instead +❌ **Breaking changes** - Discuss in issue first + +## Getting Help + +- **Questions?** Open a GitHub Discussion +- **Bug report?** Open an issue with reproducible example +- **Feature idea?** Open an issue to discuss before implementing +- **Stuck?** Ask in the issue or PR - we're happy to help! + +## License + +By contributing, you agree that your contributions will be licensed under the MIT License. + +--- + +**Ready to contribute?** β†’ Start with [Contributor Manual](contributor/README.md) and [Coding Standards](contributor/coding_standards.md)