# Bazaar Developer Document Catalog

# Overall developer documentation

- Developer Guide
- Architectural Overview — describes some of the most important classes and concepts.
- bzrlib API reference (external link) — automatically generated API reference information
- Integrating with Bazaar (wiki) — a guide for writing Python programs that work with Bazaar.
- Revision Properties — An application can set arbitrary per-revision key/value pairs to store app-specific data.
- Testing — Guide to writing tests for Bazaar.
- Code Review.
- Bazaar Code Style Guide.
- Writing plugins — specific advice on writing Bazaar plugins. (web link)
- Documenting changes.

# Process

- The Bazaar Development Cycle — The monthly development cycle and how to run it.
- Releasing Bazaar — Checklist to make a release of Bazaar.
- Managing the Bazaar PPA — Packaging Bazaar for Ubuntu.
- Giving back (wiki) — How to get your changes to Bazaar integrated into a release.
- Profiling notes — Instructions on how to profile bzr code and visualize the results.
- EC2 resources — A team resource for Windows packaging and testing, and Ubuntu testing.
- Tracking Bugs in Bazaar — How we use the bug tracker.

# Architecture overviews

- Transports — Transport virtual filesystem abstraction.

# Plans

- Performance roadmap — The roadmap for fixing performance in bzr over the next few releases.
- Co-located branches — Planned(?) support for storing multiple branches in one file-system directory.
- Bazaar Windows Shell Extension Options — Implmentation strategy for Bazaar Windows Shell Extensions, aka TortoiseBzr.
- CHK Optimized index

# Specifications

- API versioning — bzrlib API versioning.
- Apport error reporting — Capture data to report bugs.
- Authentication ring — Configuring authentication.
- Bundles — All about bzr bundles.
- Container format — Notes on a container format for streaming and storing Bazaar data.
- Groupcompress — Notes on the compression technology used in CHK repositories.
- Indices — The index facilities available within bzrlib.
- 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 bzrlib into any python application.
- Bazaar and case-insensitive file systems — How Bazaar 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 bzr 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
- "bzr update" performance analysis — "bzr update" performance analysis