The search index now has the extra information necessary to filter by prebuilt packages. It’ll take a little while to gather the data for all packages, but all the pieces for tracking prebuilt binaries are in place. Next week I plan on polishing these new changes a bit and going through some of our GitHub issues backlog.
This week, I’ve been all about support organizations and teams for our Jetpack-managed services:
- Organization Creation: be it a personal account for Hobby projects or a pro team for serious business.
- Cloud Dashboard: new dashboard for organization admins to manage their teams, invite new members, and grant permissions.
- Member Invitation: a smooth email flow for joining the team as a member.
We had an interactive demo on Friday where Daniel signed up the “Jetpack.io” team and invited me aboard. It’s practically dogfood-ready, with some polishing carried over for next week.
I also went through some pending contributions from our community, and I want to give a shoutout to the following contributors:
- pinage404 for diving into our devbox docs and making them shine
- iSplasher for adding nullable support to our typeid-sql library
- reecefenwick for upgrading uuidv7 in our typeid-js library
- eljohnson92 for updating our devbox docker image to support ARM builds for newer Macbooks
Worked on first pass of devbox-envsec integration. This allows devbox to use envsec secrets to populate the environment. Secrets can be shared across team members. Fixed a regression that was causing global services not to work. Migrated our envsec back-end to use typeids and added json output to envsec errors for better integration with devbox.
Spend a couple of days reading, understanding, and setting up identity federation in Google Cloud. This was part of our architecture for backend deployment project. Afterwards, I worked on adding an API endpoint that looks up projects registered with a given repository in our database. This will be used in the same backend deployment project as well. I’m planning to work with Daniel and implement the remaining pieces of the architecture, mainly registration and authentication so that we can launch this project soon.
This week I worked on improving the proof-of-concept I built last week, which can deploy an app upon a push to git. The GitHub App that listens to git push events (webhooks) is now much simpler and does less work, pushing that work over to the build pipeline itself. The result is less complexity and slightly faster build times. I expected the build times to get faster than they did though. There’s still room for build time optimization, but I won’t focus on that in the near term, and will instead focus on further generalizing the logic in the webhook listener so that we can deploy multiple apps.
This past week I wrapped up a last set of tasks for a feature that should considerably speed up installing packages and starting shells in new projects. Rodrigo and I have worked on this for a couple of months, and I'm excited that it will likely roll out in the next Devbox release!
In addition, in response to a user's request, we also enabled a feature that will have Devbox scripts exit on error. In bash-terms, this involves setting
set -e in the scripts that run. Currently, if any one script errors, then we continue execution but this can lead to undefined or undesirable outcomes. We've been running this mode internally for our unit-tests and it has caught quite a few errors.
Lastly, I spent quite a few cycles prototyping a couple of approaches to some glibc dynamic linking errors that some users have experienced. Unfortunately, the first prototype I tried didn't work. The second one partially works, and I am planning to continue on this line of work this coming week.
Our Github backlog has grow, so I spent some time cleaning up issues and trying to reproduce a few of user reported bugs. I prioritized and sorted the issues into a rough roadmap using Github Projects, and shared the prioritized list with the team.
I also spent some time experimenting with potential open-source orchestration solutions for managing multiple Devbox projects, some of which seem promising with a little more work.
This week was busy with a lot of external conversations (potential partnerships and those types of discussions).
On the engineering front created an opensource package to host common utilities we need across our different projects, moved our new authentication library there for the time being, and spent time w/ Rodrigo and Mohsen discussing our approach to deployments.