Feature-based versioning allows us to define and control the versions of an arbitrarily named "feature" in one place.
Note: Do not delete data/features/placeholder.yml
because it is used by tests.
Add a new YAML file with the feature name you want to use in this directory. For a feature named meow
, that would be data/features/meow.yml
.
Add a versions
block to the YML file with the short names of the versions the feature is available in. For example:
versions:
fpt: '*'
ghes: '>3.1'
ghae: '*'
The format and allowed values are the same as the frontmatter versions property.
Now you can use {% ifversion meow %} ... {% endif %}
in content files!
You can also use the feature in frontmatter in content files:
versions:
fpt: '*'
ghes: '>3.1'
feature: 'meow'
If you want a content file to apply to more than one feature, you can do this:
versions:
fpt: '*'
ghes: '>3.1'
feature: ['meow', 'blorp']
The schema for validating the feature versioning lives in tests/helpers/schemas/feature-versions-schema.js
and is exercised by tests/linting/lint-versioning.js
.
TBD!