Contributing
GitHub hosts the Adaptive Framework source code repository. We use the GitFlow branching model to track the development and releases of the framework. The main branch is the default and most current version of the framework. The develop branch is used for the next release. A feature branch is sometimes used for major, long-term development features. For collaborators outside of the organization, we do accept Pull Requests using the "fork and pull" workflow.
Coding Conventions
These conventions are not required, but are followed in AFW core unless noted in the associated header file:
- Adaptive object property names should be lower camel case (i.e., first character lower case).
- The id of objects of type AdaptiveObjectType, AdaptivePropertyType, and AdaptiveDataType should be upper camel case (ie. first character upper case).
-
All names declared in headers should start with the header name without the
.h
. For instance all of the function names inafw_memory.h
begin withafw_memory_
. -
All
#define
names in headers should start with the uppercased header name without the.h
. For instance all of the#define
names in afw_memory.h begin withAFW_MEMORY_
. -
All
#define
names should be uppercase with the exception of the parts of a name that matches the case of the thing they represent. For instance, the#define
name for the core quoted string for"objectType"
isAFW_Q_objectType
. -
Q
in a#define
name indicates a quoted preprocessing value. -
U
in a#define
name indicates an unquoted preprocessing value. -
S
in a#define
name indicates a reference to a string variable containing as
in it's name. -
s
is in the variable name of a afw_utf8_t that is referenced externally. -
The variable name of null-terminated strings end with a
_z
.
Versioning
The afw_version.h
header contains #defines for version information
of the containing source and must be updated as the source level changes. The
corresponding values must also be changed in the corresponding builds.
As version requirements change, function afw_version_check()
in
afw.c
must be updated. This includes any dependency changes.
Any Adaptive Framework application should pass AFW_VERSION_HEX
as
the first parameter to afw_environment_create()
. Macro
AFW_ENVIRONMENT_CREATE()
will do this for you. Function
afw_environment_create()
will insure that the version of the
Adaptive Framework library and its dependencies are compatible with the application.
Function afw_environment_load_extension()
checks the version of
libafw
that the extension was compiled against to make sure it is
compatible.
License
Adaptive Framework is licensed under the MIT License.