Files
MokoCassiopeia/scripts/definitions/crm-module.xml

363 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<repository-structure xmlns="http://mokoconsulting.com/schemas/repository-structure"
version="1.0"
schema-version="1.0">
<metadata>
<name>MokoCRM Module</name>
<description>Standard repository structure for MokoCRM (Dolibarr) modules</description>
<repository-type>crm-module</repository-type>
<platform>mokokrm</platform>
<last-updated>2026-01-07T00:00:00Z</last-updated>
<maintainer>Moko Consulting</maintainer>
</metadata>
<structure>
<!-- Root level files -->
<root-files>
<file extension="md">
<name>README.md</name>
<description>Developer-focused documentation for contributors and maintainers</description>
<required>true</required>
<audience>developer</audience>
<stub-content><![CDATA[# {MODULE_NAME}
## For Developers
This README is for developers contributing to this module.
### Development Setup
1. Clone this repository
2. Install dependencies: `make install-dev`
3. Run tests: `make test`
### Building
```bash
make build
```
### Testing
```bash
make test
make lint
```
### Contributing
See CONTRIBUTING.md for contribution guidelines.
## For End Users
End user documentation is available in `src/README.md` after installation.
## License
See LICENSE file for details.
]]></stub-content>
</file>
<file extension="md">
<name>CONTRIBUTING.md</name>
<description>Contribution guidelines</description>
<required>true</required>
<audience>contributor</audience>
</file>
<file extension="md">
<name>ROADMAP.md</name>
<description>Project roadmap with version goals and milestones</description>
<required>false</required>
<audience>general</audience>
</file>
<file extension="">
<name>LICENSE</name>
<description>License file (GPL-3.0-or-later) - Default for Dolibarr/CRM modules</description>
<required>true</required>
<audience>general</audience>
<template>templates/licenses/GPL-3.0</template>
<license-type>GPL-3.0-or-later</license-type>
</file>
<file extension="md">
<name>CHANGELOG.md</name>
<description>Version history and changes</description>
<required>true</required>
<audience>general</audience>
</file>
<file>
<name>Makefile</name>
<description>Build automation using MokoStandards templates</description>
<required>true</required>
<always-overwrite>true</always-overwrite>
<audience>developer</audience>
<source>
<path>templates/makefiles</path>
<filename>Makefile.dolibarr.template</filename>
<type>template</type>
</source>
<destination>
<path>.</path>
<filename>Makefile</filename>
<create-path>false</create-path>
</destination>
<template>templates/makefiles/Makefile.dolibarr.template</template>
</file>
<file extension="editorconfig">
<name>.editorconfig</name>
<description>Editor configuration for consistent coding style</description>
<required>true</required>
<audience>developer</audience>
</file>
<file extension="gitignore">
<name>.gitignore</name>
<description>Git ignore patterns - preserved during sync operations</description>
<required>true</required>
<always-overwrite>false</always-overwrite>
<audience>developer</audience>
</file>
<file extension="gitattributes">
<name>.gitattributes</name>
<description>Git attributes configuration</description>
<required>true</required>
<audience>developer</audience>
</file>
</root-files>
<!-- Directory structure -->
<directories>
<!-- Source directory -->
<directory path="src">
<name>src</name>
<description>Module source code for deployment</description>
<required>true</required>
<purpose>Contains the actual module code that gets deployed to Dolibarr</purpose>
<files>
<file extension="md">
<name>README.md</name>
<description>End-user documentation deployed with the module</description>
<required>true</required>
<audience>end-user</audience>
<stub-content><![CDATA[# {MODULE_NAME}
## For End Users
This module provides {MODULE_DESCRIPTION}.
### Installation
1. Navigate to Home → Setup → Modules/Applications
2. Find "{MODULE_NAME}" in the list
3. Click "Activate"
### Configuration
After activation, configure the module:
1. Go to Home → Setup → Modules/Applications
2. Click on the module settings icon
3. Configure as needed
### Usage
{USAGE_INSTRUCTIONS}
### Support
For support, contact: {SUPPORT_EMAIL}
## Version
Current version: {VERSION}
See CHANGELOG.md for version history.
]]></stub-content>
</file>
<file extension="php">
<name>core/modules/mod{ModuleName}.class.php</name>
<description>Main module descriptor file</description>
<required>true</required>
<audience>developer</audience>
</file>
</files>
<subdirectories>
<directory path="src/core">
<name>core</name>
<description>Core module files</description>
<required>true</required>
</directory>
<directory path="src/langs">
<name>langs</name>
<description>Language translation files</description>
<required>true</required>
</directory>
<directory path="src/sql">
<name>sql</name>
<description>Database schema files</description>
<requirement-status>suggested</requirement-status>
</directory>
<directory path="src/css">
<name>css</name>
<description>Stylesheets</description>
<requirement-status>suggested</requirement-status>
</directory>
<directory path="src/js">
<name>js</name>
<description>JavaScript files</description>
<requirement-status>suggested</requirement-status>
</directory>
<directory path="src/class">
<name>class</name>
<description>PHP class files</description>
<requirement-status>suggested</requirement-status>
</directory>
<directory path="src/lib">
<name>lib</name>
<description>Library files</description>
<requirement-status>suggested</requirement-status>
</directory>
</subdirectories>
</directory>
<!-- Documentation directory -->
<directory path="docs">
<name>docs</name>
<description>Developer and technical documentation</description>
<required>true</required>
<purpose>Contains technical documentation, API docs, architecture diagrams</purpose>
<files>
<file extension="md">
<name>index.md</name>
<description>Documentation index</description>
<required>true</required>
</file>
</files>
</directory>
<!-- Scripts directory -->
<directory path="scripts">
<name>scripts</name>
<description>Build and maintenance scripts</description>
<required>true</required>
<purpose>Contains scripts for building, testing, and deploying</purpose>
<files>
<file extension="md">
<name>index.md</name>
<description>Scripts documentation</description>
<requirement-status>required</requirement-status>
</file>
<file extension="sh">
<name>build_package.sh</name>
<description>Package building script for Dolibarr module</description>
<requirement-status>suggested</requirement-status>
<template>templates/scripts/release/package_dolibarr.sh</template>
</file>
<file extension="sh">
<name>validate_module.sh</name>
<description>Module validation script</description>
<requirement-status>suggested</requirement-status>
<template>templates/scripts/validate/dolibarr_module.sh</template>
</file>
<file extension="xml">
<name>MokoStandards.override.xml</name>
<description>MokoStandards sync override configuration</description>
<requirement-status>optional</requirement-status>
<always-overwrite>false</always-overwrite>
</file>
</files>
</directory>
<!-- Tests directory -->
<directory path="tests">
<name>tests</name>
<description>Test files</description>
<required>true</required>
<purpose>Contains unit tests, integration tests, and test fixtures</purpose>
<subdirectories>
<directory path="tests/unit">
<name>unit</name>
<description>Unit tests</description>
<required>true</required>
</directory>
<directory path="tests/integration">
<name>integration</name>
<description>Integration tests</description>
<requirement-status>suggested</requirement-status>
</directory>
</subdirectories>
</directory>
<!-- Templates directory -->
<directory path="templates">
<name>templates</name>
<description>Template files for code generation</description>
<requirement-status>suggested</requirement-status>
<purpose>Contains templates used by build scripts</purpose>
</directory>
<!-- .github directory -->
<directory path=".github">
<name>.github</name>
<description>GitHub-specific configuration</description>
<requirement-status>suggested</requirement-status>
<purpose>Contains GitHub Actions workflows, issue templates, etc.</purpose>
<subdirectories>
<directory path=".github/workflows">
<name>workflows</name>
<description>GitHub Actions workflows</description>
<requirement-status>required</requirement-status>
<files>
<file extension="yml">
<name>ci-dolibarr.yml</name>
<description>Dolibarr-specific CI workflow</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<template>templates/workflows/dolibarr/ci-dolibarr.yml.template</template>
</file>
<file extension="yml">
<name>codeql-analysis.yml</name>
<description>CodeQL security analysis workflow</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<template>templates/workflows/generic/codeql-analysis.yml.template</template>
</file>
<file extension="yml">
<name>standards-compliance.yml</name>
<description>MokoStandards compliance validation</description>
<requirement-status>required</requirement-status>
<always-overwrite>true</always-overwrite>
<template>.github/workflows/standards-compliance.yml</template>
</file>
</files>
</directory>
</subdirectories>
</directory>
</directories>
</structure>
</repository-structure>