- 
                Notifications
    You must be signed in to change notification settings 
- Fork 22
Update Tools page #643
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update Tools page #643
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|  | @@ -4,118 +4,95 @@ sidebar_position: 1 | |||||
|  | ||||||
| # Tools | ||||||
|  | ||||||
| ## Operating System | ||||||
| ## Operating system | ||||||
|  | ||||||
| All Bitwarden developers are issued with a MacBook. The tooling recommendations and instructions in | ||||||
| this documentation assume that youโre using macOS. This may require some adaptation if youโre using | ||||||
| a different operating system. | ||||||
| All Bitwarden developers are issued with a MacBook or Windows laptop. The tooling recommendations | ||||||
| and instructions in this documentation assume that youโre using one of these operating systems, | ||||||
| noting where a tool may apply to only one of them. | ||||||
|  | ||||||
| This may require some adaptation if youโre using a different operating system. | ||||||
|  | ||||||
| ## Recommended tools | ||||||
|  | ||||||
| The following tools are strongly recommended as part of the โstandardโ developer setup. We recommend | ||||||
| The following tools are strongly recommended as part of the "standard" developer setup. We recommend | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ๐ So glad we catch these awful magic quotes that rich editors sneak in. | ||||||
| that any new Bitwarden developer install all of them as part of setting up their local development | ||||||
| environment. | ||||||
|  | ||||||
| ### IDEs | ||||||
|  | ||||||
| - [Visual Studio Code](https://code.visualstudio.com/) - used for all Typescript projects. | ||||||
| Suboptimal for C#. Be sure to install [extensions](#visual-studio-code-extensions) | ||||||
| - [JetBrains Rider](https://www.jetbrains.com/rider/download/) - fully featured IDE for C#, .NET & | ||||||
| more. Bitwarden developers should contact IT for a license | ||||||
| - [Xcode](https://developer.apple.com/xcode/) - required for iOS Mobile development and Safari web | ||||||
| extension | ||||||
| | Tool | How we use it | | ||||||
| | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- | | ||||||
| | [JetBrains Rider](https://www.jetbrains.com/rider/download/) | Fully featured IDE for C#, .NET & more. Bitwarden developers should contact IT for a license. | | ||||||
| | [Visual Studio](https://visualstudio.microsoft.com/) | Used for C# development on Windows. | | ||||||
| | [Visual Studio Code](https://code.visualstudio.com/) | Used for all Typescript projects. Suboptimal for C#. Be sure to install [extensions](#visual-studio-code-extensions). | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 Not sure how much commentary to leave since this is a move, but I would avoid the opinionated language. "Typescript" should be fixed everywhere. | ||||||
| | [Xcode](https://developer.apple.com/xcode/) | Required for iOS Mobile development and Safari web extension. | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ๐ญ Maybe just move to the mobile-specific tooling section? | ||||||
|  | ||||||
| ### Local environment | ||||||
|  | ||||||
| - [Homebrew](https://brew.sh/) - package manager for macOS | ||||||
| - [Iterm2](https://iterm2.com/) (available via Homebrew) - a better terminal emulator | ||||||
| - 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. | ||||||
| - [Docker](https://docs.docker.com/get-docker/) - required for server development only | ||||||
| - [.NET SDK](https://dotnet.microsoft.com/download) - required for server and other backend | ||||||
| development environments | ||||||
| - [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos) | ||||||
| (available via Homebrew: `brew install powershell`) | ||||||
| - [NodeJS](https://nodejs.org/) v20 (preferably using a [node version manager][nvm]) | ||||||
| - [NPM](https://www.npmjs.com/) v10 (included with Node) | ||||||
| - [Rust](https://www.rust-lang.org/tools/install) latest stable version - (preferably installed via | ||||||
| [rustup](https://rustup.rs/)) | ||||||
| - [Git](https://git-scm.com) | ||||||
| - [Commit signing](../../contributing/commit-signing.mdx) is strongly recommended | ||||||
|  | ||||||
| ### Mobile | ||||||
|  | ||||||
| - [Android Studio](https://developer.android.com/studio/) - Nice for setting up and running Android | ||||||
| Simulators | ||||||
| - [adb](https://developer.android.com/studio/command-line/adb) - for interacting with Android sims | ||||||
| - [Apple Icons Generator Gist](https://gist.github.com/brutella/0bcd671a9e4f63edc12e) - Script to | ||||||
| generate Apple icons from an image | ||||||
| | Tool | How we use it | | ||||||
| | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||||||
| | [.NET SDK](https://dotnet.microsoft.com/download) | Required for server and other back-end development environments. | | ||||||
| | [Docker](https://docs.docker.com/get-docker/) | Required for server development only. Bitwarden developers should contact IT for a license for Docker Desktop. | | ||||||
| | [Git](https://git-scm.com) | [Commit signing](../../contributing/commit-signing.mdx) is strongly recommended. | | ||||||
| | [Homebrew](https://brew.sh/) | Package manager for macOS. | | ||||||
| | [Iterm2](https://iterm2.com/) | A better terminal emulator (available via Homebrew). | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. โน๏ธ Is this tool widespread? | ||||||
| | [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]. | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 Fix everywhere. | ||||||
| | [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. | | ||||||
| | [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos) | Available via Homebrew on macOS: `brew install powershell`. | | ||||||
| | [Rust](https://www.rust-lang.org/tools/install) | We stay on the latest stable version - preferably installed via [rustup](https://rustup.rs/). | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 | ||||||
| | 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. | | ||||||
|  | ||||||
| ### Mobile-specific tooling | ||||||
|  | ||||||
| | Tool | How we use it | | ||||||
| | ----------------------------------------------------------------------------------- | --------------------------------------------------- | | ||||||
| | [adb](https://developer.android.com/studio/command-line/adb) | For interacting with Android sims. | | ||||||
| | [Android Studio](https://developer.android.com/studio/) | Nice for setting up and running Android Simulators. | | ||||||
| | [Apple Icons Generator Gist](https://gist.github.com/brutella/0bcd671a9e4f63edc12e) | Script to generate Apple icons from an image. | | ||||||
|  | ||||||
| ### Databases | ||||||
|  | ||||||
| - [MSSQL VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-mssql.mssql) for | ||||||
| working with your local SQL Server | ||||||
| - [PgAdmin4](https://www.pgadmin.org/) - Useful for fiddling with PostgreSQL db | ||||||
| - [MySQLWorkbench](https://www.mysql.com/products/workbench/) - Useful for fiddling with MySQL db | ||||||
| - [SQLiteStudio](https://www.sqlitestudio.pl/) - Useful for fiddling with SQLite db | ||||||
| | Tool | How we use it | | ||||||
| | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- | | ||||||
| | [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. | | ||||||
| | [MSSQL VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-mssql.mssql) | For working with your local SQL Server. | | ||||||
| | [MySQLWorkbench](https://www.mysql.com/products/workbench/) | Useful for fiddling with MySQL db. | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 | ||||||
| | [PgAdmin4](https://www.pgadmin.org/) | Useful for fiddling with PostgreSQL db. | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 Apply the same language for each below. Prior phrasing with "fiddling" is awkward to me. | ||||||
| | [SQLiteStudio](https://www.sqlitestudio.pl/) | Useful for fiddling with SQLite db. | | ||||||
|  | ||||||
| ### Visual Studio Code Extensions | ||||||
| ### Visual Studio Code extensions | ||||||
|  | ||||||
| There are some vs code extensions that are life-savers in our line of work. A list of highly | ||||||
| There are some VS Code extensions that are very helpful in our codebase. A list of highly | ||||||
| recommended ones include the following: | ||||||
|  | ||||||
| - 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. | ||||||
| - [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - | ||||||
| can be annoying, but has saved me lots of `tmes form writting oragnizations.` | ||||||
| - [LiveShare](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - | ||||||
| For pair programming | ||||||
| - C# | ||||||
| - [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) - Omnisharp | ||||||
| integrations | ||||||
| - [.NET Core Test Explorer](https://marketplace.visualstudio.com/items?itemName=formulahendry.dotnet-test-explorer) - | ||||||
| Test explorer for .NET tests | ||||||
| - [.NET Core User Secrets](https://marketplace.visualstudio.com/items?itemName=adrianwilczynski.user-secrets) - | ||||||
| Edit secrets files by right clicking on a .proj and selecting edit user -secrets | ||||||
| - Git | ||||||
| - [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) - fantastic | ||||||
| git visualization tool | ||||||
| - [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) - | ||||||
| More Git history | ||||||
| - [Git Lens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) - Even more Git | ||||||
| options | ||||||
| - Typescript / Angular | ||||||
| - [Angular Language Service](https://marketplace.visualstudio.com/items?itemName=Angular.ng-template) - | ||||||
| Understands Angular templates | ||||||
| - [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest) - Jest test runner | ||||||
| - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - | ||||||
| integrate with prettier code formatting | ||||||
| - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - | ||||||
| Integrations for ESLint | ||||||
| - Rust | ||||||
| - [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer) - | ||||||
| Great rust language server | ||||||
| - [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) - | ||||||
| for handling TOML (cargo config) | ||||||
| - [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb) - for rust | ||||||
| debugging | ||||||
| - Databases | ||||||
| - [MySQL Syntax](https://marketplace.visualstudio.com/items?itemName=jakebathman.mysql-syntax) - | ||||||
| syntax highlighting for MySQL | ||||||
| - [PostgreSQL](https://marketplace.visualstudio.com/items?itemName=ckolkman.vscode-postgres) - | ||||||
| syntax highlighting for PostgreSQL | ||||||
| | Type | Extension | Notes | | ||||||
| | -------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | ||||||
| | C# | [.NET Core Test Explorer](https://marketplace.visualstudio.com/items?itemName=formulahendry.dotnet-test-explorer) | Test explorer for .NET tests. | | ||||||
| | 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". | | ||||||
| | C# | [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) | Omnisharp integrations. | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 | ||||||
| | Databases | [MySQL Syntax](https://marketplace.visualstudio.com/items?itemName=jakebathman.mysql-syntax) | Syntax highlighting for MySQL. | | ||||||
| | Databases | [PostgreSQL](https://marketplace.visualstudio.com/items?itemName=ckolkman.vscode-postgres) | Syntax highlighting for PostgreSQL. | | ||||||
| | 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. | | ||||||
| | 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.` | | ||||||
| | General | [LiveShare](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) | For pair programming. | | ||||||
| | Git | [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) | Fantastic git visualization tool. | | ||||||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 
        Suggested change
       
 | ||||||
| | Git | [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) | More Git history. | | ||||||
| | Git | [Git Lens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) | Even more Git options. | | ||||||
| | Rust | [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb) | For Rust debugging. | | ||||||
| | Rust | [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) | For handling TOML (`cargo` config). | | ||||||
| | Rust | [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer) | Great Rust language server. | | ||||||
| | Typescript / Angular | [Angular Language Service](https://marketplace.visualstudio.com/items?itemName=Angular.ng-template) | Understands Angular templates. | | ||||||
| | Typescript / Angular | [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | Integrations for ESLint. | | ||||||
| | Typescript / Angular | [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest) | Jest test runner. | | ||||||
| | Typescript / Angular | [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | Integrate with prettier code formatting. | | ||||||
|  | ||||||
| ## Optional tools | ||||||
|  | ||||||
| The following tools may be useful depending on your preferences or what youโre developing. | ||||||
| The following tools may be useful depending on your preferences or what you're developing. | ||||||
|  | ||||||
| - [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 | ||||||
| - [Parallels](https://www.parallels.com/) - For running Windows VMs | ||||||
| - [Sourcetree](https://www.sourcetreeapp.com/) - Git GUI. Note: 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). | ||||||
| | Tool | How we use it | | ||||||
| | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||||||
| | [Parallels](https://www.parallels.com/) | For running Windows or Linux VMs on macOS machines. | | ||||||
| | [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). | | ||||||
|  | ||||||
| [nvm]: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
โ What's the context of Bitwarden vs. non here? Is this whole page worthy of hiding behind the check?