|
1 | 1 | # Tooling |
2 | 2 |
|
| 3 | +Below is a suite of recommended tooling that can help support the principles of the codebase interface initiative. |
| 4 | + |
3 | 5 | ## Abstractions |
4 | 6 |
|
| 7 | +Abstractions allow you to provide a consistent outer layer for interacting with your codebase without being concerned with localised language or framework variations. |
| 8 | + |
5 | 9 | - [Taskfile](https://taskfile.dev/){target="_blank"} - A simple and easy to use task runner / build tool that aims to be a simpler and more powerful Make alternative. It is written in Go and uses a YAML file to define tasks. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be run from the command line. |
6 | 10 | - [Makefile](https://www.gnu.org/software/make/){target="_blank"} - A build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be run from the command line. |
7 | 11 | - [Justfile](https://just.systems/){target="_blank"} - A command runner that allows you to define and run commands in a simple and easy to use way. It is written in Rust and uses a simple syntax to define commands. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be run from the command line. |
8 | 12 |
|
9 | 13 | ## IDE Agnostic Files |
10 | 14 |
|
| 15 | +IDE agnostic files allow you to enforce rules or share configuration without IDE vendor lock-in. |
| 16 | + |
11 | 17 | - [`.editorconfig`](https://editorconfig.org/){target="_blank"} - A file format and collection of text editor plugins for maintaining consistent coding styles between different editors and IDEs. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports the EditorConfig file format. |
12 | 18 | - [`.env`](https://12factor.net/config){target="_blank"} - A plain text file that contains environment variables for a project. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports environment variables. |
13 | 19 |
|
14 | 20 | ### Git |
15 | 21 |
|
| 22 | +Whilst git is not the only source control methodology out there and can be challenged, these files are git-specific and supported across IDEs so are preferred over using vendor specific files. |
| 23 | + |
16 | 24 | - [`.gitignore`](https://git-scm.com/docs/gitignore){target="_blank"} - A plain text file that tells Git which files and directories to ignore in a project. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports Git. |
17 | 25 | - [`.gitattributes`](https://git-scm.com/docs/gitattributes){target="_blank"} - A plain text file that tells Git how to handle certain files in a project. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports Git. |
18 | 26 | - [`.gitmessage`](https://git-scm.com/docs/git-commit#_specifying_the_commit_message){target="_blank"} - A plain text file that contains a template for commit messages. It is cross platform and works on Windows, MacOS and Linux. It is also IDE agnostic as it can be used with any text editor or IDE that supports Git. |
|
0 commit comments