I’d say just do something that works with 1.0 and let the old stuff be old. 
I have to be a bit mroe specific here:



 tom:

Within the forward and backward of an autograd.Function , autograd tracing is disabled by default


“by default” for the backward actually needs to be qualified "unless you differentiate with “create_graph=True”.
The history as far as I remember is:

Originally (0.1.2) both forward and backward operated on “old-style-non-variable-tensors”, with PyTorch doing the “unpacking” of Variables into Tensors.
Then in 0.2, to facilitate higher order derivatives, the backward was switched to use variables (including using ctx.saved_variables instead of ctx.saved_tensors, also the Functions were now with static methods and ctx). The forward still operated on “old-style-non-variable-tensors” and PyTorch did the unpacking.
This was still the state in PyTorch 0.3.
With the 0.4 merger of Tensor and Variable, everything became Variables but was called Tensors. Thus the forward operated on Tensors-previously-known-as-Variable, with but with an implicit “no_grad” taking the effect of the unpacking. The backward worked as before, but ctx.saved_variables was renamed to ctx.saved_tensors.

Best regards
Thomas