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
This commit is contained in:
Jukka Aho
2025-11-09 08:23:16 +02:00
parent 77cb9f6394
commit 241fadc669
+99
View File
@@ -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)