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.hbegin withafw_memory_. - 
                All 
#definenames in headers should start with the uppercased header name without the.h. For instance all of the#definenames in afw_memory.h begin withAFW_MEMORY_. - 
                All 
#definenames should be uppercase with the exception of the parts of a name that matches the case of the thing they represent. For instance, the#definename for the core quoted string for"objectType"isAFW_Q_objectType. - 
                
Qin a#definename indicates a quoted preprocessing value. - 
                
Uin a#definename indicates an unquoted preprocessing value. - 
                
Sin a#definename indicates a reference to a string variable containing asin it's name. - 
                
sis 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.