It is our pleasure the announce the first release of ROTOR: a tool for refactoring multi-file OCaml codebases. Currently, it just performs renaming of value bindings, but the intention is for ROTOR to support a full range of refactoring tasks, and to be the go-to refactoring tool for the OCaml community.
ROTOR has been developed at the University of Kent, with the support of Jane Street, as part of a research project on trustworthy refactoring.
It is available now on OPAM:
> opam install rotor
This release is an alpha version, and so we’d love you all to try it out and give us your feedback. Since it is still a prototype, we are certainly not making any claims that it works perfectly in all cases, but we think it is at a stage where it can start to be useful to the community, and where it will be useful for us to seek community feedback.
Please raise any issues on the gitlab page. Please also email us to report on your experiences.
Currently, ROTOR is invoked from the command-line:
> rotor rename [options] <from-id> <to-id>
ROTOR can determine the files that comprise your codebase using
.merlin files, and outputs a
diff patch which can be applied to effect the renaming. For the future, we are looking at integrating within IDEs, which will make it easier to use.