# Instructions for AI Agents

## Overview

This is Bunny, a Ruby AMQP 0-9-1 client for RabbitMQ that has one
key dependency: [amq-protocol](https://github.com/ruby-amqp/amq-protocol),
an AMQP 0-9-1 protocol parser (more specifically: a serialization, deserialization, and framing implementation).

## Target Ruby Version

This library targets Ruby 3.0 and later versions.

## Comments

 * Only add very important comments, both in tests and in the implementation

## Change Log

If asked to perform change log updates, consult and modify `ChangeLog.md` and stick to its
existing writing style.


## Releases

### How to Roll (Produce) a New Release

Suppose the current development version in `ChangeLog.md` has
a `## Changes between Bunny X.Y.0 and X.(Y+1).0 (in development)` section at the top.

To produce a new release:

 1. Update `ChangeLog.md`: replace `(in development)` with today's date, e.g. `(Mar 30, 2026)`. Make sure all notable changes since the previous release are listed
 2. Update the version in `lib/bunny/version.rb` to match (remove any `.pre` suffix)
 3. Commit with the message `X.(Y+1).0` (just the version number, nothing else)
 4. Tag the commit: `git tag vX.(Y+1).0`
 5. Bump the dev version: add a new `## Changes between Bunny X.(Y+1).0 and X.(Y+2).0 (in development)` section to `ChangeLog.md` with `No changes yet.` underneath, and update `lib/bunny/version.rb` to the next dev version with a `.pre` suffix
 6. Commit with the message `Bump dev version`
 7. Push: `git push && git push --tags`


## Git Instructions

 * Never add yourself to the list of commit co-authors
 * Never mention yourself in commit messages in any way (no "Generated by", no AI tool links, etc)

## Style Guide

 * Never add full stops to Markdown list items
