| 
									
										
										
										
											2023-11-29 12:54:28 -08:00
										 |  |  | # Contributing to MLX
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | We want to make contributing to this project as easy and transparent as | 
					
						
							|  |  |  | possible. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Pull Requests
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-25 19:06:34 -07:00
										 |  |  | 1. Fork and submit pull requests to the repo. | 
					
						
							| 
									
										
										
										
											2023-11-29 12:54:28 -08:00
										 |  |  | 2. If you've added code that should be tested, add tests. | 
					
						
							|  |  |  | 3. If a change is likely to impact efficiency, run some of the benchmarks before | 
					
						
							|  |  |  |    and after the change. Examples of benchmarks can be found in `benchmarks/python/`. | 
					
						
							|  |  |  | 4. If you've changed APIs, update the documentation. | 
					
						
							| 
									
										
										
										
											2025-03-25 19:06:34 -07:00
										 |  |  | 5. Every PR should have passing tests and at least one review. | 
					
						
							| 
									
										
										
										
											2023-11-29 16:23:42 -08:00
										 |  |  | 6. For code formatting install `pre-commit` using something like `pip install pre-commit` and run `pre-commit install`. | 
					
						
							| 
									
										
										
										
											2023-11-29 12:54:28 -08:00
										 |  |  |    This should install hooks for running `black` and `clang-format` to ensure | 
					
						
							|  |  |  |    consistent style for C++ and python code. | 
					
						
							| 
									
										
										
										
											2025-03-25 19:06:34 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-29 12:54:28 -08:00
										 |  |  |    You can also run the formatters manually as follows: | 
					
						
							| 
									
										
										
										
											2025-03-25 19:06:34 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |    ```shell | 
					
						
							|  |  |  |    clang-format -i file.cpp | 
					
						
							|  |  |  |    ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    ```shell | 
					
						
							|  |  |  |    black file.py | 
					
						
							|  |  |  |    ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-29 12:54:28 -08:00
										 |  |  |    or run `pre-commit run --all-files` to check all files in the repo. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Issues
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | We use GitHub issues to track public bugs. Please ensure your description is | 
					
						
							|  |  |  | clear and has sufficient instructions to be able to reproduce the issue. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## License
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | By contributing to MLX, you agree that your contributions will be licensed | 
					
						
							|  |  |  | under the LICENSE file in the root directory of this source tree. |