The order of training_epoch_end and validation_epoch_end seems reversed after updates?

Hi team!

Assuming the system runs validation at every epoch (train → val → train → val → …),
I believe in the version 1.3.8, the LightningModules callback flow was as follows:

1. training_epoch_start
2. validation_epoch_start
3. training_epoch_end
4. validation_epoch_end

But the current version 1.6.5. seems the end callback order seems reversed?

1. training_epoch_start
2. validation_epoch_start
3. validation_epoch_end
4. training_epoch_end

Is it correct or my misunderstanding? Plus, could you please give me a reference for the comprehensive execution order of LightningModule callbacks?

Thank you!