Skip to content

BlueCentre/blueprint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polyglot Bazel Starter

# This is executable Markdown that's tested on CI.
set -o errexit -o nounset -o xtrace
alias ~~~=":<<'~~~sh'";:<<'~~~sh'

Blueprint is a production-ready polyglot Bazel starter repository that provides a foundation for building multi-language projects with best practices, optimized configurations, and excellent developer experience.

Features

  • 🧱 Latest Bazel - Up-to-date Bazel version with optimized configuration
  • 🌐 Multi-Language Support - Python, Go, JavaScript/TypeScript, Rust, Java, Kotlin, C++
  • 📦 Curated Configuration - Optimized .bazelrc flags via [bazelrc-preset.bzl]
  • 🧰 Developer Tools - Automated environment setup with [bazel_env.bzl]
  • 🎨 Code Quality - Formatting and linting using rules_lint
  • Pre-commit Hooks - Automatic code formatting and validation
  • 🚀 Aspect Workflows - Enhanced Bazel developer experience
  • 📚 Comprehensive Docs - Detailed documentation for users, contributors, and admins

Quick Start

1. Clone and Setup

git clone https://github.com/BlueCentre/blueprint.git
cd blueprint

# Allow direnv to set up environment
direnv allow

# If needed, run bazel_env setup
bazel run //tools:bazel_env
direnv allow

2. Build and Test

# Build everything
bazel build //...

# Run tests
bazel test //...

# Format code
format

# Lint code
aspect lint //...

3. Explore the Documentation

📖 Full Documentation →

Documentation

Comprehensive documentation organized for different audiences:

📚 For Users

New to Blueprint? Start here:

🤝 For Contributors

Want to contribute? Check these guides:

🔧 For Administrators

Maintaining Blueprint:

📊 Visual Documentation

Supported Languages

Blueprint provides first-class support for:

Language Package Manager Documentation
Python pip/uv Guide
Go go modules Guide
JavaScript/TypeScript pnpm Guide
Rust Cargo Guide
Java/Kotlin Maven Guide
C/C++ System Guide
Shell N/A Guide

Developer environment

Before following these instructions, setup the developer environment by running direnv allow and follow any prompts. This ensures that tools we call in the following steps will be on the PATH.

Many commands are available on the PATH thanks to direnv:

copier --help
yq --help

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •