First, note that most of the time when you publish, you're publishing
a new version, not a new edition. New versions are always free, and
are automatically available to all readers of the book.
A new edition is a new book, and previous editions can indicate that it is a new edition of them.
The main use case of new editions is to have different books about different versions of a programming language or framework. For example, for Laravel, here are great books about Laravel 3 and Laravel 4.
New editions typically only happen every couple of years, and can
either be free to existing readers, at a discount, or full price. The way you accomplish that is by handing out coupons.
You can send messages to existing readers of a book when publishing a new version, so what you can do is:
- Publish the first version of the new edition
- Publish the last version of the old edition, saying essentially "hey, there's a new edition at <URL> where I'm going to be writing about version X of the thing, which is out of the scope of this book, and here's a coupon to get the new edition for only $Y"