Changelog

For a quick look at July's Updates :
Brev's Monthly Updates

v0.6.90
August 3, 2022

Improvements

  • Cloning public repos

    Clone public repos without needing to add SSH keys. You still need to configure ssh for private repos.

Bug Fixes

  • Due to a bug, if you were to create a dev environment from the web front-end and try to open it, it would go to the wrong directory. This would result in the “failed to open”. The web console was setting the wrong project directory for dev envs without cloned git repos which broke the web editor and brev open —> This is now fixed!
  • You can now enter a dev environment from the environment settings page
v0.6.89
July 26, 2022

Add Git URLs to existing dev environments

Last week’s redesign made it easier to navigate the Brev console and create new dev environments, however, it wasn’t possible to add git repos to existing dev environments.

This week’s update to the console lets you modify or add new Git URLs by clicking on the name of your created environment. This supports workflows such as starting from an empty dev environment and building it out as you go.

Improvements

Bug Fixes

  • Focused on general stability fixes such as bugs with various VSCode configurations prohibiting VS Code from connecting to dev environments and an outage with the encrypted secrets manager
  • Org links are now fully functional — all users are now able to invite their teammates to their environments by going on the ‘People’ tab on their console.
v0.6.87
July 13, 2022

Redesign: Introducing Environments

For the last 3 weeks, we’ve been working on a way to make all of our capabilities more discoverable. After numerous customer conversations, we decided to re-design our console UI and the language around the concept of an environment.

We offer a way for engineers to pre-configure and share environments.

We previously used the concept of a “workspace”, which was confusing to most users. We now abstract the idea of where the environment runs as a configuration detail when setting up your environment.

Create New Environment Page

This starts with a new ‘Create’ page with expanded configuration options for your environment. This includes Repositories, Install Scripts, Environment Variables & Secrets, IDE Configuration, Machine, and Name cards.

Git Repositories

We now support multiple git repositories in your environment. If you select multiple, you can choose the working directory for your workspace to open when connecting to it (either through SSH, or your local editor).

Install Scripts

Our environments emulate an Ubuntu 20.04.4 LTS operating system with a base docker image that has standard tooling and Linux essentials.

From there you can install any software that is needed to develop your code. You can execute those scripts from a repository or by copying an existing bash script.

We find that usually, clients have encoded their production environments in a Dockerfile or bash script. As your production environment is usually a subset of your development environment, you can easily use those scripts to get started!

Environment Variables & Secrets

You can now add environment variables and secrets that apply by scope (either to this environment in particular, all environments, in your organization, or for environments that your user has created).

There’s plenty more in our redesign that included slight changes to other pages in our frontend.

In the coming weeks, we will release patches as we find them, as well as update other portions of our codebase to reflect this shift in thinking (including our CLI, landing page, and other pages in our console).

Please give us feedback in our Discord here! Any and every piece of feedback is appreciated ❤️

Improvements

Bug Fixes

v0.6.86
July 6, 2022

Improvements

  • Upgraded Autostop

    We made our workspace autostop far more reliable

    This can save money for every engineer that is doing remote development regardless of where your instances are deployed. We are able to detect SSH traffic to the instance and stop that instance within 3 hours of inactivity.

  • Error messaging on console

    All error messages from our server are shown on the console and made more comprehensible. It is also possible to access the complete error log in your chrome devtools console.

Bug Fixes

  • If your remote machine fails for any reason, we now let you run brev reset on it which preserves files in /home/brev
  • API latency reduced — the 99th percentile of API requests are now faster.
v0.6.80
June 29, 2022

Improvements

  • Join Workspaces without Git Repositories

    Brev now lets users clone the workspaces of their teammates — even if the workspace does not have an associated git repository.

  • List workspace breadcrumbs

    brev ls was printing all possible SSH commands previously that made it harder to navigate our CLI — we consolidated that into a more cohesive readable format that makes most sense to new users.

  • Faster Login Page

    Now you can run brev login --skip-browser to allow login without having to hit enter

Bug Fixes

  • Made it so all workspaces are visible when running brev ls
  • Our demo repo was getting stuck at the deployment stage for some users — this has now been fixed
  • The open button no longer creates the wrong link if you want to access the web editor in console

v0.6.79
June 22, 2022

Workspace Scope Environment Variables

You can now add secure environment variables to your workspace. You can also use this to add constants.

We already support organization and personal environment variables on the account and organization settings page. All secrets are encrypted at rest and stored using Hashicorp Vault.

Github SSH Key Integration

We now make it easier to add your SSH key to Github. When onboarding, we ask for permission issues to issue you an SSH keys that allows you to securely clone Github repositories into your container. We previously had you copy the SSH key and put it in your account.

All private keys are encrypted at rest and securely stored in our enterprise secrets manager.

Improvements

  • Reset Multiple Workspaces

    You can now pass in multiple arguments to this command: brev reset <ws_name>…

    This also works with the —hard flag too.

  • Reset Breadcrumbs

    We now very clearly indicate when you need to reset your workspace. We show you breadcrumbs when a workspace is in an unhealthy or failed state and point you to the commands that will fix it.

Bug Fixes

  • We have added the Vim, Emacs and Atom editor options during the CLI onboarding
  • brev ls now shows status correctly. If it showed all of your workspaces as ‘UNHEALTHY’, upgrade to the latest version of the CLI by running brew upgrade brevdev/homebrew-brev/brev
  • brev start prioritizes path over name. You can use brev start to import local projects by using a relative path. We were previously assuming you were searching for the name of a workspace.
  • Command names were printing out when using the CLI — this is now gone if you upgrade to the latest version.
v0.6.75
June 14, 2022

SSH Wrapper: Get a Terminal for any Workspace

We hate having to manually enter and update ssh config. So to connect to your workspace automatically, we’ve created a wrapper command This is a shortcut to ssh into your workspace. Just run brev shell <workspace_name> to open a terminal into your workspace.

Improvements

  • Performance

    We’ve added a Redis cache to our backend for improved performance. This has reduced our read usage for DynamoDB (by around 32 - 51%).

  • Stop Multiple Workspaces

    You can now pass in multiple arguments to this command: brev stop <ws_name>...

Bug Fixes

  • Fixed confusing messaging for brev ls that appeared when there were no workspaces.
  • Fixed confusing error messaging for the error message workspace has multiple ids/names when starting your workspace. We now tell you to either delete your existing workspace or change the argument to the —name flag.
v0.6.71
June 8, 2022

Setup scripts (without committing to your repository)

Brev.dev works best when a setup script is saved, which creates the reproducible & sharable environment. You used to be required to commit this setup script to your repo at a specific file path .brev/setup.sh, however you can now use any file path and can reference an external repository. Here are your options:

  • Custom Path in your Repository: Supply a path when creating a workspace to use the setup script of your choice if committing to the repo.
  • External Repo with Custom Path: Optionally choose an external repo for your setup script. This will allow you to save your setup scripts separate to your code. The setup script repo can even be private.
  • File Upload: You can also copy and paste an existing shell script by entering the text directly.

VSCode extensions persist on brev reset

We used to persist all files in /home/brev/workspace on reset. We now persist the entire volume at /home/brev, so VSCode extensions and terminal settings persist.

Auto-install your VSCode extensions

Run brev import-vscode-extensions (or brev login) to save your VSCode extensions to your profile. Brev.dev will automatically install them for you on every workspace you create.

Save any of these extensions as part of a “workspace template” for new contributors.

Improvements

  • New Options for Personal Configuration

    Import your personal shell settings, aliases, etc to all of your workspaces by going to console.brev.dev/profile and adding a custom repository + path to the execution script.

    If you don’t have one, we have a starter that you can use at github.com/brevdev/user-dotbrev

  • Stop all Workspaces

    Run  brev stop --all to power down all of your workspaces.

  • Performance

    We launched a new workspace cluster. This has created massive improvements in stability and speed.

Bug Fixes

  • a small bug that affected a single user with brev refresh
v0.6.64
June 1, 2022

New Command: brev shell workspace_name

This is the same as running ssh workspace_slug but now you don’t have to remember the slug. You can directly use the workspace name.

New Command: brev reset --hard workspace_name

Deletes and recreates a workspace in one go. This deletes the entire machine without preserving the file state, and re-creates the workspace as if it were new (re-cloning the repository if you have one). If you have not committed your files you will lose it running this command.

Note: the normal brev reset workspace_name preserves files in /home/brev/workspace (this includes your .zshrc and .bashrc ) and gives you a new machine.

Improvements

  • Clearer Error Handling

    We now have clearer error messaging (rather than a stack trace). We have a verbose mode which shows you where the error is happening in our codebase that you can turn on in your ~/.brev/config.yaml file by adding feature.debug = true.

  • Clearer Command Messaging for brev login and brev start

    brev login: we now tell you the org that you’re in and that you should type in brev ls to view the workspaces in the organization. We also show you how to change orgs.

    brev start: we now tell you that you can type in brev open or brev shell to enter your project. brev open will use your preferred editor and auto-connect you to the machine. brev shell will ssh you into the machine.

  • Sanitized Workspace & Organization Names

    We now coerce and sanitize organization and workspace names to be subdomain compatible. This allows us to do interesting things in the future with routing, invite links and anything involving a URL!

Bug Fixes

  • Some users who deleted their ~/.brev directories were unable to ssh into their machines or run brev refresh. This is now resolved.
  • For some users, if your login failed we wouldn’t try to run our background connection daemon. We now run this regardless and update the connection when you re-authenticate.
  • If your user personalization for a workspace fails, we now stop and tell you instead of attempt to setup your project. Users wanted to know if there was an issue with their personal setup scripts instead of discovering as they started a project.
v0.6.57
May 9, 2022

Workspace Setup Infrastructure: V2

A number of internal changes were made to improve the way we startup workspaces. Previously, we used the Kubernetes PostStart container lifecycle hook to execute setup commands as well as your .brev/setup.sh script. Now, we install a custom binary on the remote machine and use systemd to execute certain commands.

The main benefit from this change: installing dependencies is no longer synchronous and therefore blocking. You can open your workspace sooner, while we are running the install commands. This makes startup times much faster. You can now watch your dependencies install by going to .brev/logs/setup.log

We also now allow you to create a workspace to a branch, tag or commit (rather than just to main).

This also gives us more visibility into your machine. We can now build features like sending you logs while the machine is being provisioned, or push updates remotely to this infrastructure (we can tell you to run brev reset and our updates will apply).

Share a Workspace

You can now share you workspace with another user. We will expose it publicly soon but as of current you can share by entering the following:

  • https://console.brev.dev/create?key=value

We accept repo (git repo url), name, size (type WorkspaceClass) and setup (setup script url).

Improvements

  • Onboarding

    This is now duplicated and synced between the CLI and the web console. You can start the onboarding process and pick up where you left off on either.

  • Faster and more resilient data storage

    We use DynamoDB to hold user information and metadata surrounding workspaces. We just enabled multi-leader cross region replicas, meaning we now have replicas of our data that are sync’d across all AWS regions.

  • Performance Fixes

    brev ls is now running 40% faster. Added global secondary indices to DynamoDB and replicated our data to live in us-west-2.

Bug Fixes

  • Could not establish connection errors reduced by at least 30% — ssh config is now updated more regularly
  • We now fail to create a workspace and forward you the error if you did not enter your SSH keys. Previously we would create the workspace but the git repo would not clone.
  • If you skip onboarding, you automatically pick up from where you left off
v0.6.55
May 5, 2022

Import Existing Projects

Type in brev import . in any local folder and we’ll automatically create a workspace for you. If you don’t have a setup script, we’ll automatically generate one for you.

Deploy in your Cloud

We now support this for select enterprise customers.

Improvements

  • Invite Links are on the Web Console

  • Invite Links Last 7 Days

    This used be 24 hours but that was too short notice for users who wanted to join.

  • Improved Error Logging for Setup Scripts

    We added Sentry to log setup script failures. This will give us visibility to patch common bugs.

  • Multiple Arguments for brev delete

    brev delete now takes multiple arguments. As we continue with a full CLI review, we’ll add this to more commands.

Bug Fixes

  • Small bugfixes to enable just adding brew install in your setup script.
  • Show login url when typing in brev login. In some cases, pressing Enter did not open the browser and let someone login
v0.6.53
April 27, 2022

Invite Links

Type in brev invite and we’ll automatically give you an invite link you can share with users. It will add them to your organization so they can join existing projects.

Automatic Development Environment Creation

When you start a workspace, we will automatically detect your dependencies and create a setup script. This will form the basis of your setup script that pre-configures your environment. We currently support Node, Golang, Gastby and Rust.

Multicluster Support

For increased security for our enterprise clients, we now have dedicated infrastructure for your workspaces that sits in a separate cluster from other workspaces. This is a pre-step in creating deploy in your own cloud.

Improvements

  • Homebrew Installed by Default

    This means you can just type in brew install python@3.5 to install Python 3.5. Note that we still recommend you use Linux scripts rather than brew to install as it is significantly faster and we cannot guarantee compatibility for all libraries.

  • Start Workspaces with Custom Environment Script

    You can now run brev start git_repo --setup-script gist_url which takes in a gist or pastebin url to a custom setup script (be sure to use the 'raw' text file link). This way you can create an environment before even starting a workspace.

  • CLI Authentication on Remote Workspace

    The CLI is automatically installed on each of your workspaces. We now also auto-log you in so you can just run brev ls or any other commands without having to re-login.

Bug Fixes

  • brev open now works for workspaces that don’t have a git url associated with it
  • Nested git repositories are now supported