> For most breaking changes, it's easy to write an automatic conversion tool
Thank you for volunteering to write it :D I think you are underestimating how hard this is to do for anything beyond simple things like function renames. And even if this tool is written, everyone will be forced to wait for all the library authors to run it and tag a new release (or they must fork the library and run it themselves, fragmenting the ecosystem in the process). Rust's editions are neat, but they are used sparingly, mainly for things like introducing new keywords. Rust is not using editions to introduce sweeping changes to APIs or syntax -- even when technically possible, it'd be a bad idea, because updating your code to a new edition would be painful, and old tutorials/docs with invalid code would pollute the web for many years to come.