mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 21:37:57 +08:00
Ballistica Feature Sets
This directory contains a config file for each feature-set in the project. Feature sets are high level subsets of an engine or app which can be easily added, removed, duplicated, etc.
Naming Conventions
Feature sets should have lowercase alphanumeric names with underscores between
words. An example would be foo_bar. Variations of this name may be used
throughout code; for example FooBar may be used in class names where
camel-case is standard or foobar may be used in Python module names where
brevity is desirable.
Locations
The build system looks for feature-set files in specific predefined locations with specific naming conventions:
- Feature Set Definition: To define feature set
foo_bar, a file must exist in this directory calledfeatureset_foo_bar.py. - Python Package: If feature set
foo_barprovides a Python package, it should be a directory namedbafoobar('ba' prefix, name with spaces removed) that lives under Python source files. - Native Code: If feature set
foo_barprovides a native component (C++ code or otherwise) it should live in a directory namedfoo_bar(unmodified feature set name) under native source files. - Meta Package: If feature set
foo_barprovides a meta package (that is, code or data used to generate other source code), it should be a directory namedbafoobarmeta('ba' prefix, name with spaces removed, 'meta' suffix) that lives under meta source files. - Test Package: If feature set
foo_barprovides a set of tests, it should be a directory namedtest_foo_bar('test_' prefix, unmodified feature set name) under tests.