Custom_module - RefreshCache/arena-rc-qachecklist GitHub Wiki
¶
Custom module compatibilityAnother very useful related module would be one that provides developers a place to publish compatibility of their custom modules with various versions of Arena. This would be combined with a "version check" module that could be loaded into the Administration section of your Arena server. When used, it would allow to you check all your current custom modules against a central database and a specific version. When you are looking to upgrade you could then check ahead of time to see if any custom modules need to be updated for compatibility reasons or simply will not work.
¶
Wants (functionality matrix)- Allow users to register custom modules they have developed.
- Allow users to register packages (groups of custom modules) they have developed. (Would this really be needed?)
- Ability to publish official compatibility for a module you have developed (registered).
- Other users should be able to publish informational notes they have observed about a module.
¶
ObjectsEach object shall have the standard DateCreated, DateModified, CreatedBy and ModifiedBy properties. They are not noted below.
¶
CustomModule- CustomModuleID (pk)
- ChurchID (fk)
- Name
¶
File- FileID (pk)
- ChurchID (fk)
- Path (relative to Arena install, e.g. /UserControls/Custom/RC/ModuleCompatibility.ascx)
- DisplayVersion (The version number to display with the path name)
- VersionString (If non-empty string, check against the Assembly version if file is a .DLL)
- MatchString (If non-empty string, search the file for this string)
¶
ModuleFile- CustomModuleID (pk)
- FileID (pk)
¶
ReleaseVersion (see main QA Checklist page)¶
ModuleTestResult- ModuleTestResultID (pk)
- CustomModuleID (fk)
- ReleaseVersionID (fk)
- ChurchID (fk)
- Status (pass/fail/info)
- Notes (A ModuleTestResult is considered official if the ModuleTestResult.ChurchID == CustomModule.ChurchID)
¶
Modules¶
CustomModuleQAXMLThis module would reside on the Refresh Cache server. It's sole purpose would be to return all the test results (and related module and file information) for a given version number as an XML data stream. This data stream would be used by the client to inform the user what modules are compatible.
¶
CustomModuleQACheckInstalled on individual Arena servers, generally under the Administration section, this module would provide the single point for an Administrator to go to for testing compatibility with a specific version. A list of available version numbers would be retrieved from the CustomModuleQAXML server as an XML stream. The user would then be given those versions to pick as a single-choice drop down list. After submitted that version number the following tasks would be performed:
- Retrieve all compatibility data from the QA server as an XML stream.
- Generate an internal list of all custom module files on the local server (bin/Arena.Custom..dll; UserControls/Custom/.ascx [recursive, Note 1])
- Walk each CustomModule object (loop)
- Walk each File object for current CustomModule (loop)
- Search for matching local file in internal list
- If local file not found, break loop
- If all File objects were found and matched
- Display all ModuleTestResult objects for this CustomModule
- Mark all local files as processed.
- Walk the internal file list (loop)
- Display any "unprocessed" files to the user as "untested and may not be compatible"
- Search for matching File object
- Note: When an .ascx file is found, a matching .ascx.cs file is also checked for and processed automatically.