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:

  1. Publish the first version of the new edition
  2. 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"
  3. Profit!

Thanks,
Peter

Did this answer your question?