This patch supports to create function version.
- Versioning feature is only allowed for package type function for now
- New version creation code should be wrapped in lock to avoid any
race condition
- New version number is calculated by Qinling and no need to be
provided by end users
- Version creation is not allowed if no change happened to function
package.
- Only function owner can create version.
- Maximum version number is 10 by default, we will make it configurable
as needed in future.
- All function versions will be deleted when function itself is deleted
This patch only focuses on version creation, the other version
operations and related function operations will be handled in the
following patches.
Story: #2001829
Task: #14305
Change-Id: I62bb344da237766fc11cce2ffda65945313136b1