Skip to content

Commit 286b14b

Browse files
committed
Updated tooling page
1 parent f7f7e83 commit 286b14b

File tree

1 file changed

+67
-90
lines changed

1 file changed

+67
-90
lines changed

docs/getting-started/tools/index.md

Lines changed: 67 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -4,118 +4,95 @@ sidebar_position: 1
44

55
# Tools
66

7-
## Operating System
7+
## Operating system
88

9-
All Bitwarden developers are issued with a MacBook. The tooling recommendations and instructions in
10-
this documentation assume that you’re using macOS. This may require some adaptation if you’re using
11-
a different operating system.
9+
All Bitwarden developers are issued with a MacBook or Windows laptop. The tooling recommendations
10+
and instructions in this documentation assume that you’re using one of these operating systems,
11+
noting where a tool may apply to only one of them.
12+
13+
This may require some adaptation if you’re using a different operating system.
1214

1315
## Recommended tools
1416

15-
The following tools are strongly recommended as part of the standard developer setup. We recommend
17+
The following tools are strongly recommended as part of the "standard" developer setup. We recommend
1618
that any new Bitwarden developer install all of them as part of setting up their local development
1719
environment.
1820

1921
### IDEs
2022

21-
- [Visual Studio Code](https://code.visualstudio.com/) - used for all Typescript projects.
22-
Suboptimal for C#. Be sure to install [extensions](#visual-studio-code-extensions)
23-
- [JetBrains Rider](https://www.jetbrains.com/rider/download/) - fully featured IDE for C#, .NET &
24-
more. Bitwarden developers should contact IT for a license
25-
- [Xcode](https://developer.apple.com/xcode/) - required for iOS Mobile development and Safari web
26-
extension
23+
| Tool | How we use it |
24+
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
25+
| [JetBrains Rider](https://www.jetbrains.com/rider/download/) | Fully featured IDE for C#, .NET & more. Bitwarden developers should contact IT for a license. |
26+
| [Visual Studio](https://visualstudio.microsoft.com/) | Used for C# development on Windows. |
27+
| [Visual Studio Code](https://code.visualstudio.com/) | Used for all Typescript projects. Suboptimal for C#. Be sure to install [extensions](#visual-studio-code-extensions). |
28+
| [Xcode](https://developer.apple.com/xcode/) | Required for iOS Mobile development and Safari web extension. |
2729

2830
### Local environment
2931

30-
- [Homebrew](https://brew.sh/) - package manager for macOS
31-
- [Iterm2](https://iterm2.com/) (available via Homebrew) - a better terminal emulator
32-
- Various browsers - It’s nice to have a slew of browsers ready to test the extension in a host of
33-
scenarios. You can also use multiple browsers to have different browser extension version
34-
installed to compare them.
35-
- [Docker](https://docs.docker.com/get-docker/) - required for server development only
36-
- [.NET SDK](https://dotnet.microsoft.com/download) - required for server and other backend
37-
development environments
38-
- [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos)
39-
(available via Homebrew: `brew install powershell`)
40-
- [NodeJS](https://nodejs.org/) v20 (preferably using a [node version manager][nvm])
41-
- [NPM](https://www.npmjs.com/) v10 (included with Node)
42-
- [Rust](https://www.rust-lang.org/tools/install) latest stable version - (preferably installed via
43-
[rustup](https://rustup.rs/))
44-
- [Git](https://git-scm.com)
45-
- [Commit signing](../../contributing/commit-signing.mdx) is strongly recommended
46-
47-
### Mobile
48-
49-
- [Android Studio](https://developer.android.com/studio/) - Nice for setting up and running Android
50-
Simulators
51-
- [adb](https://developer.android.com/studio/command-line/adb) - for interacting with Android sims
52-
- [Apple Icons Generator Gist](https://gist.github.com/brutella/0bcd671a9e4f63edc12e) - Script to
53-
generate Apple icons from an image
32+
| Tool | How we use it |
33+
| --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
34+
| [.NET SDK](https://dotnet.microsoft.com/download) | Required for server and other back-end development environments. |
35+
| [Docker](https://docs.docker.com/get-docker/) | Required for server development only. Bitwarden developers should contact IT for a license for Docker Desktop. |
36+
| [Git](https://git-scm.com) | [Commit signing](../../contributing/commit-signing.mdx) is strongly recommended. |
37+
| [Homebrew](https://brew.sh/) | Package manager for macOS. |
38+
| [Iterm2](https://iterm2.com/) | A better terminal emulator (available via Homebrew). |
39+
| [NodeJS](https://nodejs.org/) | Check the `engines` in [package.json](https://github.com/bitwarden/clients/blob/main/package.json) for the current version. We recommend using a [node version manager][nvm]). |
40+
| [npm](https://www.npmjs.com/) | Check the `engines` in [package.json](https://github.com/bitwarden/clients/blob/main/package.json) for the current version. It is included with NodeJS. |
41+
| [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos) | Available via Homebrew on macOS: `brew install powershell`. |
42+
| [Rust](https://www.rust-lang.org/tools/install) | We stay on the latest stable version - preferably installed via [rustup](https://rustup.rs/). |
43+
| Various browsers | It's nice to have a slew of browsers ready to test the extension in a host of scenarios. You can also use multiple browsers to have different browser extension version installed to compare them. |
44+
45+
### Mobile-specific tooling
46+
47+
| Tool | How we use it |
48+
| ----------------------------------------------------------------------------------- | --------------------------------------------------- |
49+
| [adb](https://developer.android.com/studio/command-line/adb) | For interacting with Android sims. |
50+
| [Android Studio](https://developer.android.com/studio/) | Nice for setting up and running Android Simulators. |
51+
| [Apple Icons Generator Gist](https://gist.github.com/brutella/0bcd671a9e4f63edc12e) | Script to generate Apple icons from an image. |
5452

5553
### Databases
5654

57-
- [MSSQL VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-mssql.mssql) for
58-
working with your local SQL Server
59-
- [PgAdmin4](https://www.pgadmin.org/) - Useful for fiddling with PostgreSQL db
60-
- [MySQLWorkbench](https://www.mysql.com/products/workbench/) - Useful for fiddling with MySQL db
61-
- [SQLiteStudio](https://www.sqlitestudio.pl/) - Useful for fiddling with SQLite db
55+
| Tool | How we use it |
56+
| ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
57+
| [Microsoft Azure Storage Explorer](https://azure.microsoft.com/en-us/features/storage-explorer/) | For connecting to or working with local Azure table storage and queues. |
58+
| [MSSQL VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-mssql.mssql) | For working with your local SQL Server. |
59+
| [MySQLWorkbench](https://www.mysql.com/products/workbench/) | Useful for fiddling with MySQL db. |
60+
| [PgAdmin4](https://www.pgadmin.org/) | Useful for fiddling with PostgreSQL db. |
61+
| [SQLiteStudio](https://www.sqlitestudio.pl/) | Useful for fiddling with SQLite db. |
6262

63-
### Visual Studio Code Extensions
63+
### Visual Studio Code extensions
6464

65-
There are some vs code extensions that are life-savers in our line of work. A list of highly
65+
There are some VS Code extensions that are very helpful in our codebase. A list of highly
6666
recommended ones include the following:
6767

68-
- General
69-
- [Back & Forth](https://marketplace.visualstudio.com/items?itemName=nick-rudenko.back-n-forth) -
70-
Adds forward and back buttons to top right of your editor. Simple, but incredibly useful.
71-
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) -
72-
can be annoying, but has saved me lots of `tmes form writting oragnizations.`
73-
- [LiveShare](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) -
74-
For pair programming
75-
- C#
76-
- [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) - Omnisharp
77-
integrations
78-
- [.NET Core Test Explorer](https://marketplace.visualstudio.com/items?itemName=formulahendry.dotnet-test-explorer) -
79-
Test explorer for .NET tests
80-
- [.NET Core User Secrets](https://marketplace.visualstudio.com/items?itemName=adrianwilczynski.user-secrets) -
81-
Edit secrets files by right clicking on a .proj and selecting edit user -secrets
82-
- Git
83-
- [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) - fantastic
84-
git visualization tool
85-
- [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) -
86-
More Git history
87-
- [Git Lens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) - Even more Git
88-
options
89-
- Typescript / Angular
90-
- [Angular Language Service](https://marketplace.visualstudio.com/items?itemName=Angular.ng-template) -
91-
Understands Angular templates
92-
- [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest) - Jest test runner
93-
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) -
94-
integrate with prettier code formatting
95-
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) -
96-
Integrations for ESLint
97-
- Rust
98-
- [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer) -
99-
Great rust language server
100-
- [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) -
101-
for handling TOML (cargo config)
102-
- [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb) - for rust
103-
debugging
104-
- Databases
105-
- [MySQL Syntax](https://marketplace.visualstudio.com/items?itemName=jakebathman.mysql-syntax) -
106-
syntax highlighting for MySQL
107-
- [PostgreSQL](https://marketplace.visualstudio.com/items?itemName=ckolkman.vscode-postgres) -
108-
syntax highlighting for PostgreSQL
68+
| Type | Extension | Notes |
69+
| -------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
70+
| C# | [.NET Core Test Explorer](https://marketplace.visualstudio.com/items?itemName=formulahendry.dotnet-test-explorer) | Test explorer for .NET tests. |
71+
| C# | [.NET Core User Secrets](https://marketplace.visualstudio.com/items?itemName=adrianwilczynski.user-secrets) | Edit secrets files by right clicking on a .proj and selecting "Manage User Secrets". |
72+
| C# | [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) | Omnisharp integrations. |
73+
| Databases | [MySQL Syntax](https://marketplace.visualstudio.com/items?itemName=jakebathman.mysql-syntax) | Syntax highlighting for MySQL. |
74+
| Databases | [PostgreSQL](https://marketplace.visualstudio.com/items?itemName=ckolkman.vscode-postgres) | Syntax highlighting for PostgreSQL. |
75+
| General | [Back & Forth](https://marketplace.visualstudio.com/items?itemName=nick-rudenko.back-n-forth) | Adds forward and back buttons to top right of your editor. Simple, but incredibly useful. |
76+
| General | [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) | Can be annoying, but has saved lots of `tmes form writting oragnizations.` |
77+
| General | [LiveShare](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) | For pair programming. |
78+
| Git | [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) | Fantastic git visualization tool. |
79+
| Git | [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) | More Git history. |
80+
| Git | [Git Lens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) | Even more Git options. |
81+
| Rust | [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb) | For Rust debugging. |
82+
| Rust | [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) | For handling TOML (`cargo` config). |
83+
| Rust | [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer) | Great Rust language server. |
84+
| Typescript / Angular | [Angular Language Service](https://marketplace.visualstudio.com/items?itemName=Angular.ng-template) | Understands Angular templates. |
85+
| Typescript / Angular | [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | Integrations for ESLint. |
86+
| Typescript / Angular | [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest) | Jest test runner. |
87+
| Typescript / Angular | [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | Integrate with prettier code formatting. |
10988

11089
## Optional tools
11190

112-
The following tools may be useful depending on your preferences or what youre developing.
91+
The following tools may be useful depending on your preferences or what you're developing.
11392

114-
- [Microsoft Azure Storage Explorer](https://azure.microsoft.com/en-us/features/storage-explorer/) -
115-
for connecting to or working with local Azure table storage and queues
116-
- [Parallels](https://www.parallels.com/) - For running Windows VMs
117-
- [Sourcetree](https://www.sourcetreeapp.com/) - Git GUI. Note: For the git hooks to behave
118-
correctly on macOS when using nvm, please follow
119-
[these instructions](https://typicode.github.io/husky/#/?id=command-not-found).
93+
| Tool | How we use it |
94+
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
95+
| [Parallels](https://www.parallels.com/) | For running Windows or Linux VMs on macOS machines. |
96+
| [Sourcetree](https://www.sourcetreeapp.com/) | Git GUI. For the Git hooks to behave correctly on macOS when using `nvm`, please follow [these instructions](https://typicode.github.io/husky/#/?id=command-not-found). |
12097

12198
[nvm]: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm

0 commit comments

Comments
 (0)