Adaptive Framework 0.9.0

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 in afw_memory.h begin with afw_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 with AFW_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" is AFW_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 a s 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.