Developer Document Catalog (3.3.22)

# Breezy Developer Document Catalog

## Overall developer documentation

- Developer Guide

- Architectural Overview — describes some of the most important classes and concepts.

- breezy API reference (external link) — automatically generated API reference information

- Integrating with Breezy (wiki) — a guide for writing Python programs that work with Breezy.

- Revision Properties — An application can set arbitrary per-revision key/value pairs to store app-specific data.

- Testing — Guide to writing tests for Breezy.

- Code Review.

- Breezy Code Style Guide.

- Writing plugins — specific advice on writing Breezy plugins.

- Documenting changes.

## Process

- Releasing Breezy — Checklist to make a release of Breezy.

- Managing the Breezy PPA — Packaging Breezy for Ubuntu.

- Giving back (wiki) — How to get your changes to Breezy integrated into a release.

- Profiling notes — Instructions on how to profile brz code and visualize the results.

- EC2 resources — A team resource for Windows packaging and testing, and Ubuntu testing.

- Tracking Bugs in Breezy — How we use the bug tracker.

## Architecture overviews

- Transports — Transport virtual filesystem abstraction.

## Plans

- Performance roadmap — The roadmap for fixing performance in brz over the next few releases.

- Co-located branches — Planned(?) support for storing multiple branches in one file-system directory.

- Breezy Windows Shell Extension Options — Implementation strategy for Breezy Windows Shell Extensions, aka TortoiseBzr.

- CHK Optimized index

## Specifications

- API versioning — breezy API versioning.

- Apport error reporting — Capture data to report bugs.

- Authentication ring — Configuring authentication.

- Bundles — All about brz bundles.

- Container format — Notes on a container format for streaming and storing Breezy data.

- Groupcompress — Notes on the compression technology used in CHK repositories.

- Indices — The index facilities available within breezy.

- Inventories — Tree shape abstraction.

- LCA merge — A nice new merge algorithm.

- Network protocol — Custom network protocol.

- Plugin APIs — APIs plugins should use.

- Repositories — What repositories do and are used for.

- Repository stream — Notes on streaming data for repositories (a layer above the container format).

- Integration Guide — A guide to integrate breezy into any python application.

- Breezy and case-insensitive file systems — How Breezy operates on case-insensitive file systems such as commonly found on Windows, USB sticks, etc.

- Development repository formats — How to work with repository formats that are still under development. Contains instructions for those implementing new formats, of course, but also for (bleeding-edge) end users of those formats.

## Data formats

- Knit pack repositories — KnitPack repositories (new in Bazaar 0.92).

## Implementation notes

- BTree Index Prefetch — How brz decides to pre-read extra nodes in the btree index.

- Computing last_modified values for inventory entries

- Content filtering

- LCA Tree Merging — Merging tree-shape when there is not a single unique ancestor (criss-cross merge).

## Miscellaneous

- dirstate — An observation re. the dirstate file

- “brz update” performance analysis — “brz update” performance analysis