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
2.7 KiB
title, description, date, author, categories, keywords, audience, level, type
| title | description | date | author | categories | keywords | audience | level | type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Contributing to JuliaFEM | Quick start guide for new contributors | 2025-11-09 | Jukka Aho |
|
|
contributors | beginner | guide |
Thank you for considering contributing to JuliaFEM! 🎉
Quick Links
- Contributor Manual - Start here for technical details
- Coding Standards - REQUIRED reading for all contributors
- Testing Philosophy - How we test and why
Quick Start
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/JuliaFEM.jl.git cd JuliaFEM.jl -
Create a branch:
git checkout -b fix-issue-123 -
Read the Coding Standards - Critical rules like:
- ✅ Use
u, v, wfor reference coordinates - ❌ Never use Greek letters (ξ, η, ζ) in code
- ✅ Type-stable code required
- ✅ Zero allocations in hot paths
- ✅ Use
-
Make your changes following the standards
-
Run tests:
julia --project=. -e 'using Pkg; Pkg.test()' -
Commit with good messages:
feat(topology): Add Pyr5 pyramid element - Implement 5-node pyramid reference element - Zero-allocation tuple interface - Tests for reference coordinates Closes #123 -
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
❌ 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 and Coding Standards