## Migrating an existing formula to multiple versions
In separate pull-requests:
1.[Rename the formula](Rename-A-Formula.md) from e.g. `boost.rb` to e.g. `boost@1.61.rb` and, in the same pull request, add an alias named `boost`. This should not require any `revision`ing or significant formula modification beyond the formula name.
2. Add the new `keg_only` version formula e.g. `boost@1.62.rb`
3. Tap authors should have their `depends_on "boost"` updated to `depends_on "boost@1.61"` or `depends_on "boost@1.62"`.
4. Modify the `boost` alias to point to `boost@1.62.rb`. Any formulae that need the old version of `boost` should have their `depends_on "boost"` to be updated to `depends_on "boost@1.61"`. `boost@1.62.rb` should no longer be `keg_only` and `boost@1.61.rb` should become `keg_only`.
5. When `boost@1.62` has two major/minor versions newer than it (e.g. `boost@1.64`) then consider removing `boost@1.62.rb` and anything that depends on it.
## Upgrading a multiple version formula
In separate pull-requests:
1. Add the new `keg_only` version formula e.g. `boost@1.63.rb`
2. Modify the `boost` alias to point to `boost@1.63.rb`. Any formulae that need the old version of `boost` should have their `depends_on "boost"` to be updated to `depends_on "boost@1.62"`. `boost@1.63.rb` should no longer be `keg_only` and `boost@1.62.rb` should become `keg_only`.
3. When `boost@1.63` has two major/minor versions newer than it (e.g. `boost@1.65`) then consider removing `boost@1.63.rb` and anything that depends on it.
## Importing a homebrew/versions formula into homebrew/core
In separate pull-requests:
1.[Migrate the formula](Migrating-A-Formula-To-A-Tap.md) from Homebrew/homebrew-versions to Homebrew/homebrew-core with the same, old name e.g. `boost160.rb` and to be `keg_only`.
2.[Rename the formula](Rename-A-Formula.md) from e.g. `boost160.rb` to e.g. `boost@1.60.rb`. This should not require any `revision`ing or significant formula modification beyond the formula name.
3. Tap authors should have their `depends_on "boost160"` updated to `depends_on "boost@1.60"`.
5. When `boost@1.60` has two major/minor versions newer than it (e.g. `boost@1.62`) then consider removing `boost@1.60.rb` and anything that depends on it.