Each Substrate runtime has a RuntimeVersion. The fields in this RuntimeVersion struct indicate when various aspects of the runtime change and each field has its own semantics described in those docs.
I'm not sure what authoring_version means and when exactly it should change. The description in the docs is not totally clear to me
authoring_version: u32
authoring_version is the version of the authorship interface.
An authoring node will not attempt to author blocks unless this
is equal to its native runtime.
If possible please provide examples of upgrades where:
- both
spec_versionandauthoring_versionwould change spec_versionwould change, butauthoring_versionwould notauthoring_versionwould change, butspec_versionwould not