Procedure for changing node name and IP

I have an existing cluster where I’d like to change both node names and IP addresses for both servers and some of the clients. I can see on the GitHub tracker that there are several past issues regarding this that are now closed saying it should be possible. What is the recommended procedure to achieve this to avoid issues? I assume nodes should be changed one by one. The reasonable approaches I can see for servers:

  1. Terminate node, make it leave the cluster, wipe all local data on the node and start it again as a new node with both IP and name changed. Perform a rolling restart of other nodes with retry_join changed. Wait for things to sync, proceed with other nodes.
  2. Change the IP address, restart the node. Wait for things to sync. Perform a rolling restart of other nodes with retry_join changed. Change the name of the node, restart the node. Wait for things to sync. Proceed with other nodes.
  3. Change both node name and IP address., restart the node. Wait for things to sync. Perform a rolling restart of other nodes with retry_join changed. Wait for things to sync. Proceed with other nodes.