releases/openstack_releases/schema.yaml
Tony Breeds 828e285701 Add a 'generic' release-type.
We use release-types as a way to verify that versions are compatible and
if needed reflected accurately in the code (puppet, xstatic).  If one
isn't set explicitly then we assume python-service.

In certain circumstances (anything other than the first release in a
series) we also perform python specific requirements checking on all
'python' types.

Add a new 'generic' type that uses the same rules to validate version
numbers but wont run any python specific checks.

We need this a projects (like monasca-thresh) will fail the requirements
check for 2nd or greater releases[1].

An alternate would be to have the requirements code check if setup.py
exists before calling it but that seems like the wrong layer to me.

[1] http://logs.openstack.org/54/652854/1/check/openstack-tox-validate/80df01c/job-output.txt.gz#_2019-04-16_06_08_00_636538
Change-Id: I3fcde5eb266f954fddb6871ce8690b93b8fd7a8d
2019-04-18 15:27:27 +10:00

120 lines
3.0 KiB
YAML

---
$schema: "http://json-schema.org/schema#"
$id: "https://opendev.org/openstack/releases/src/branch/master/README.rst"
# Do not allow any properties not defined here. This lets us catch
# typos.
additionalProperties: false
required:
- team
- type
properties:
team:
type: "string"
launchpad:
type: "string"
storyboard:
# TODO(fungi): Previously this was an integer but now we
# want to support strings. This can be changed to "string"
# later if all the data gets updated from numbers to names.
type: ["integer", "string"]
release-notes:
oneOf:
- type: "string"
# We don't include any details about the object form of the
# release notes because the keys are the repository names.
- type: "object"
include-pypi-link:
type: "boolean"
release-model:
type: "string"
enum: ["cycle-with-intermediary", "cycle-with-milestones", "cycle-trailing", "untagged", "cycle-with-rc"]
type:
type: "string"
enum: ["horizon-plugin", "library", "client-library", "service", "tempest-plugin", "other"]
artifact-link-mode:
type: "string"
enum: ["tarball", "none"]
repository-settings:
type: "object"
properties:
additionalProperties: False
pypi-name:
type: "string"
flags:
type: "array"
items:
type: "string"
enum: [ "no-artifact-build-job", "retired" ]
tarball-base:
type: "string"
release-type:
type: "string"
enum: [ "python-service", "python-pypi", "xstatic", "fuel",
"nodejs", "puppet", "neutron", "horizon", "openstack-manuals",
"manila-image-elements", "generic" ]
stable-branch-type:
type: "string"
enum: [ "std", "tagless", "upstream" ]
cycle-highlights:
type: "array"
items:
type: "string"
releases:
type: "array"
items:
type: "object"
properties:
version:
type: "string"
projects:
type: "array"
items:
type: "object"
required:
- repo
- hash
properties:
repo:
type: "string"
hash:
type: "string"
comment:
type: "string"
tarball-base:
type: "string"
additionalProperties: False
diff-start:
type: "string"
flags:
type: "array"
items:
type: "string"
enum: [ "forced" ]
required: ["version", "projects"]
additionalProperties: False
branches:
type: "array"
items:
type: "object"
properties:
name:
type: "string"
location:
oneOf:
- type: "string"
- type: "object"
required: ["name", "location"]
additionalProperties: False
stable-status:
type: "string"
enum:
- future
- development
- maintained
- extended maintenance
- unmaintained
- end of life