Skip to content

Latest commit

 

History

History
103 lines (77 loc) · 3.14 KB

contributing.md

File metadata and controls

103 lines (77 loc) · 3.14 KB

English | Українська | Русский | Türkçe | Deutsch | Français | Português (BR) | 한국어 | বাংলা | Español | Italiano | Română | Polski | 简体中文 | 正體中文 | 日本語 | हिंदी | Nederlands

Let's make Bruno better, together!!

We are happy that you are looking to improve Bruno. Below are the guidelines to get started bringing up Bruno on your computer.

Technology Stack

Bruno is built using Next.js and React. We also use electron to ship a desktop version (that supports local collections)

Libraries we use

  • CSS - Tailwind
  • Code Editors - Codemirror
  • State Management - Redux
  • Icons - Tabler Icons
  • Forms - formik
  • Schema Validation - Yup
  • Request Client - axios
  • Filesystem Watcher - chokidar
  • i18n - i18next

Dependencies

You would need Node v20.x or the latest LTS version and npm 8.x. We use npm workspaces in the project

Development

Bruno is being developed as a desktop app. You need to load the app by running the Next.js app in one terminal and then run the electron app in another terminal.

Local Development

# use nodejs 20 version
nvm use

# install deps
npm i --legacy-peer-deps

# build packages
npm run build:graphql-docs
npm run build:bruno-query
npm run build:bruno-common

# bundle js sandbox libraries
npm run sandbox:bundle-libraries --workspace=packages/bruno-js

# run next app (terminal 1)
npm run dev:web

# run electron app (terminal 2)
npm run dev:electron

Troubleshooting

You might encounter a Unsupported platform error when you run npm install. To fix this, you will need to delete node_modules and package-lock.json and run npm install. This should install all the necessary packages needed to run the app.

# Delete node_modules in sub-directories
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
  rm -rf "$dir"
done

# Delete package-lock in sub-directories
find . -type f -name "package-lock.json" -delete

Testing

# bruno-schema
npm test --workspace=packages/bruno-schema

# bruno-lang
npm test --workspace=packages/bruno-lang

Raising Pull Requests

  • Please keep the PR's small and focused on one thing
  • Please follow the format of creating branches
    • feature/[feature name]: This branch should contain changes for a specific feature
      • Example: feature/dark-mode
    • bugfix/[bug name]: This branch should contain only bug fixes for a specific bug
      • Example bugfix/bug-1