We have a few repos that we use to develop, maintain, test, and deploy our products.

How we name packages

Each package that will become a gem should follow this naming scheme avo_NAME.

We have a template repository which we will have to keep up to date. In it’s readme you’ll find notes on how to maintain the naming.

Patterns

Build and deploy to gemserver

Each package can build itself using bud

Assets

If a packages has a package.json file it should have a build script (mandatory) and a watch script (optional).

The build script should build its assets (jsand/or css) and the watch must be a running process that continues to build it’s assets in development.

Alternatively, it can implement separate watch commands for each of the processes (yarn build:js —watch, yarn build:css --watch).

Each package should build and output their own asset files and register it wiht Avo through Avo.asset_manager.

Packages

avo

This is the repo that holds the main Avo product with it’s community features.

It has the dummy app where we do manual and automated testing for the community features. We should have everything in the community tier there so anyone can use/test them when they download the repo.

prommy

This is a Rails 7 app where we manually test all the packages together.

It will probably have duplicated configuration (resource, actions, dashboards, etc.) files with the dummy from the Avo repo.