The Pulse ❤️: April 2022

--

TLDR; The Buffalo team is bringing the Framework up to speed after slowing down for the past 2+ years of pandemics and personal changes. I aim to keep you posted on things that happen within the team. In this post I cover the things that have happened in the organization lately.

It’s been a long time since I post anything in here about Buffalo, and It was about time. The goal of this post is to share some of the things that have happened within the Buffalo ecosystem over the last 2 months, and get to a regular cadence showing the Buffalo community the progress and direction of the Framework and the team.

With that said, let me share some of the things the Buffalo team have been working on for the last 2 months.

Separating Buffalo CLI and the Library

There are two key components of Buffalo that interact mostly with our users: The Library and the CLI.

The library is what gets invoked by Buffalo applications and changes when new functionality is built for applications to use. Methods on the App like app.GET(...) live in here.

The CLI on the other side is the command line application that facilitates the usage of Buffalo, generators, fixers and helpers live here. It’s what we invoke when running buffalo dev .

At some point we figured out that the reasons for the CLI to change are different than the reasons for the Library to do so, and in that same sense we may have been adding a lot of dependencies to the Buffalo applications that were only CLI dependencies so we decided to split those in two:

Each one with different versions.

Embracing Embed (and leaving Packr)

This change may have took us more than a month, the center of it was to transition our file embed capabilities from Packr into Embed. The reasons for doing so was the difficulty in maintaining Packr and the preference for a standard lib solution over a custom one.

To make this happen we had to remove Packr dependencies from foundational libraries such as Pop and update other like Genny. Then we needed to change the CLI generators, add fixers and test it all. As I say this was not a small one.

Updated Buffalo docs

Recently we released a new version of the Buffalo website and documentation. This new version attempts at simplifying the maintenance of the documentation with an improved UX for the docs.

You can check it out live at gobuffalo.io.

Latest Releases

As usual there have been several releases on the following Buffalo libraries, its worth pointing those out here for everybody’s visibility.

New Buffalo team members 👏🎉

Last month the Buffalo team incorporated 2 more members which have been continually contributing to some of the most important changes in the organization repositories.

Welcome to the core team Yonghwan SO and Matthias Fasching 👏👏👏.

What’s in progress

Documentation

Now that we have launched we need to make sure the movement of some docs has been successful and these render correctly. Also, some of the content is outdated and irrelevant. There is a conversation about this going on.

VirtualHost (in development)

We’re working on the ability to mount routes for a specific domain or subdomain. This is a functionality that Gorilla has but we have not accommodated within the Buffalo library.

Moving `main.go` to `cmd/main.go`

With this change we’re following a Go common practice of putting executables within the cmd folder. This change will imply the addition of some fixers and updated documentation.

Besides those developments there are some conversations going on within the Buffalo team that are worth giving visibility to:

  • [Internal] The road to v1.0.0
  • [Internal] Team mechanics, permissions and governance.
  • [Internal] social profiles and community.

I hope you have enjoyed this post. and it to be the spark for a continuous stream of more posts like this every month. If you’re not subscribed to this blog please do it. Also join the Gophers Slack #buffalo channel where we have cool conversations about the Buffalo framework and day to day tasks.

--

--