mirror of
				https://github.com/cheat/cheat.git
				synced 2025-11-04 07:45:28 +01:00 
			
		
		
		
	docs: create HACKING.md
				
					
				
			Create a `HACKING.md` file for onboarding new developers to `cheat`.
This commit is contained in:
		@@ -19,7 +19,8 @@ tracker][issues] to discuss with the maintainer whether it would be considered
 | 
				
			|||||||
for merging.
 | 
					for merging.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`cheat` is mostly mature and feature-complete, but may still have some room for
 | 
					`cheat` is mostly mature and feature-complete, but may still have some room for
 | 
				
			||||||
new features.
 | 
					new features. See [HACKING.md][hacking] for a quick-start guide to `cheat`
 | 
				
			||||||
 | 
					development.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Add documentation ####
 | 
					#### Add documentation ####
 | 
				
			||||||
Did you encounter features, bugs, edge-cases, use-cases, or environment
 | 
					Did you encounter features, bugs, edge-cases, use-cases, or environment
 | 
				
			||||||
@@ -41,6 +42,7 @@ Please open all pull-requests against the `develop` branch.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[cheat]: https://github.com/cheat/cheat
 | 
					[cheat]: https://github.com/cheat/cheat
 | 
				
			||||||
[cheatsheets]: https://github.com/cheat/cheatsheets
 | 
					[cheatsheets]: https://github.com/cheat/cheatsheets
 | 
				
			||||||
 | 
					[hacking]: HACKING.md
 | 
				
			||||||
[issues]: https://github.com/cheat/cheat/issues 
 | 
					[issues]: https://github.com/cheat/cheat/issues 
 | 
				
			||||||
[pr]: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork
 | 
					[pr]: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork
 | 
				
			||||||
[wiki]: https://github.com/cheat/cheat/wiki
 | 
					[wiki]: https://github.com/cheat/cheat/wiki
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										57
									
								
								HACKING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								HACKING.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					Hacking
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					The following is a quickstart guide for developing `cheat`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 1. Install system dependencies
 | 
				
			||||||
 | 
					Before you begin, you must install a handful of system dependencies. The
 | 
				
			||||||
 | 
					following are required, and must be available on your `PATH`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `git`
 | 
				
			||||||
 | 
					- `go` (>= 1.17 is recommended)
 | 
				
			||||||
 | 
					- `make`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following dependencies are optional:
 | 
				
			||||||
 | 
					- `docker`
 | 
				
			||||||
 | 
					- `pandoc` (necessary to generate a `man` page)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2. Install utility applications
 | 
				
			||||||
 | 
					Run `make setup` to install `scc` and `revive`, which are used by various
 | 
				
			||||||
 | 
					`make` targets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 3. Development workflow
 | 
				
			||||||
 | 
					After your environment has been configured, your development workflow will
 | 
				
			||||||
 | 
					resemble the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Make changes to the `cheat` source code.
 | 
				
			||||||
 | 
					2. Run `make test` to run unit-tests.
 | 
				
			||||||
 | 
					3. Fix compiler errors and failing tests as necessary.
 | 
				
			||||||
 | 
					4. Run `make`. A `cheat` executable will be written to the `dist` directory.
 | 
				
			||||||
 | 
					5. Use the new executable by running `dist/cheat <command>`.
 | 
				
			||||||
 | 
					6. Run `make install` to install `cheat` to your `PATH`.
 | 
				
			||||||
 | 
					7. Run `make build-release` to build cross-platform binaries in `dist`.
 | 
				
			||||||
 | 
					8. Run `make clean` to clean the `dist` directory when desired.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You may run `make help` to see a list of available `make` commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Developing with docker
 | 
				
			||||||
 | 
					It may be useful to test your changes within a pristine environment. An
 | 
				
			||||||
 | 
					Alpine-based docker container has been provided for that purpose.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you would like to build the docker container, run:
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					make docker-setup
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To shell into the container, run:
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					make docker-sh
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `cheat` source code will be mounted at `/app` within the container.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you would like to destroy this container, you may run:
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					make distclean
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[go]: https://go.dev/
 | 
				
			||||||
		Reference in New Issue
	
	Block a user