Moko Consulting

Open-source software for Joomla, Gitea, and web platforms. Home of MokoSuite, MokoGitea, and MokoCLI.

Tennessee
standards/licensing

Licensing Standards

License requirements for all MokoConsulting projects.

Default License

All Joomla extensions are licensed under GPL-3.0-or-later, consistent with Joomla's own license.

License Header

Every PHP source file must include a license header:

<?php

/**
 * @package     MokoConsulting.MokoSuiteBackup
 * @copyright   Copyright (C) 2026 Moko Consulting. All rights reserved.
 * @license     GNU General Public License version 3 or later; see LICENSE
 */

declare(strict_types=1);

Repository Files

Every repo must include:

  • LICENSE — full GPL-3.0 license text
  • COPYING — can be a symlink to LICENSE or identical copy
  • License reference in README.md
  • SPDX identifier in composer.json: "license": "GPL-3.0-or-later"

License by Platform

Platform License Notes
Joomla extensions GPL-3.0-or-later Required by Joomla ecosystem
MokoGitea MIT Matches upstream Gitea license
MCP servers MIT Permissive for tooling
mokoplatform CLI MIT Permissive for tooling
Documentation CC-BY-4.0 Wiki and docs content

Third-Party Dependencies

Compatible Licenses (OK to use)

  • MIT
  • BSD-2-Clause, BSD-3-Clause
  • Apache-2.0
  • ISC
  • Unlicense, CC0-1.0

Requires Review

  • LGPL-2.1, LGPL-3.0 — OK as dependency, not for copy-paste
  • AGPL-3.0 — requires legal review; network use implications
  • MPL-2.0 — OK as dependency with file-level copyleft

Prohibited

  • Proprietary / no license
  • SSPL (Server Side Public License)
  • EUPL without compatibility review
  • Any "non-commercial" or "personal use only" license

Dependency Audit

Before adding any new dependency:

  1. Check license with composer licenses or npm ls --all --json | jq '.dependencies[].license'
  2. Verify license is in the compatible list above
  3. Check that the dependency is actively maintained
  4. Prefer well-known, widely-used packages over niche alternatives

Run license audits in CI:

composer licenses --format=json | jq '.dependencies[] | select(.license[] | test("GPL|AGPL|SSPL") | not)'

Attribution

  • No Co-Authored-By headers in commits
  • No AI attribution in source files
  • Third-party code included directly (not as dependency) must retain original license headers
  • Credit upstream projects in README where appropriate