@@ -279,6 +279,107 @@ make build-testing
2792794 . ** Read CLAUDE.md** : Check the project-specific development guide in the root
280280 directory
281281
282+ ## Contributing to Mina
283+
284+ We welcome contributions from external developers! Whether you're fixing bugs,
285+ adding features, or improving documentation, your contributions help make Mina
286+ better for everyone.
287+
288+ ### Finding Your First Issue
289+
290+ If you're new to the project and looking for a good place to start, check out
291+ issues labeled as "good first issue":
292+
293+ ** [ View First Good Issues →] ( https://github.com/o1-labs/openmina/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22 ) **
294+
295+ These issues are specifically chosen to be:
296+
297+ - Well-documented with clear requirements
298+ - Self-contained and focused in scope
299+ - Good introductions to the codebase
300+ - Suitable for developers new to the project
301+
302+ Before starting work on any issue, please comment on it to let others know
303+ you're working on it and to coordinate with the maintainers.
304+
305+ ### Code Quality Standards
306+
307+ We maintain high code quality standards to ensure the codebase remains
308+ maintainable and consistent. Please follow these guidelines when contributing:
309+
310+ #### Required Checks Before Submitting
311+
312+ ** 1. Formatting and Linting:**
313+
314+ ``` bash
315+ # Format all code (Rust, TOML, and markdown files)
316+ make format
317+ make format-md
318+
319+ # Check formatting is correct
320+ make check-format
321+ make check-md
322+
323+ # Run linting
324+ make lint
325+ ```
326+
327+ ** 2. Remove Trailing Whitespaces:**
328+
329+ ``` bash
330+ # Critical: Remove trailing whitespaces (mandatory before every commit)
331+ make fix-trailing-whitespace
332+
333+ # Verify no trailing whitespaces remain
334+ make check-trailing-whitespace
335+ ```
336+
337+ ** 3. Compilation and Testing:**
338+
339+ ``` bash
340+ # Ensure code compiles without errors
341+ make check
342+
343+ # Run the test suite in debug mode
344+ make test
345+
346+ # Or run the test suite in release mode
347+ make test-release
348+ ```
349+
350+ ** 4. Environment Setup for Tests:**
351+
352+ Some tests require SQLite database setup:
353+
354+ ``` bash
355+ # Create SQLite database for heartbeats processor
356+ sqlite3 /tmp/heartbeats.db < tools/heartbeats-processor/schema.sql
357+ export DATABASE_URL=" sqlite:///tmp/heartbeats.db"
358+ ```
359+
360+ #### Pull Request Requirements
361+
362+ - ** All formatting commands must pass** (` make format ` , ` make format-md ` ,
363+ ` make fix-trailing-whitespace ` )
364+ - ** Code must compile** (` make check ` succeeds)
365+ - ** Tests must pass** (at minimum ` make test ` )
366+ - ** No trailing whitespaces** in any files
367+ - ** Follow existing code patterns** and conventions in the file you're editing
368+ - ** Include clear commit messages** wrapped at 80 characters
369+
370+ #### Development Workflow
371+
372+ 1 . Make your changes following existing code patterns
373+ 2 . Run formatting: ` make format && make format-md `
374+ 3 . Remove trailing whitespaces: ` make fix-trailing-whitespace `
375+ 4 . Verify compilation: ` make check `
376+ 5 . Run tests: ` make test `
377+ 6 . Commit your changes with a clear message
378+ 7 . Submit your pull request
379+
380+ Following these standards helps maintain code consistency and makes the review
381+ process smoother for everyone.
382+
282383## Getting Help
283384
284385- ** Documentation** :
0 commit comments