MyBB Documentation

Release Workflow

  1. Repository Maintenance

    • Public Repositories

      The version is updated in:

      • MyBB::$version, MyBB::$version_code (inc/class_core.php),
      • $langinfo['version'] in the English language manifest (inc/languages/english.php),
      • version attributes of <theme>, <stylesheet>, <template> depending on changes (install/resources/mybb_theme.xml).

      Target version milestones are removed from unresolved Issues and Pull Requests. Labels are updated.

      The final public codebase is marked with a signed mybb_*_build git tag.

    • Internal Repositories

      Security patches (if any) are added to the data repository at the mybb_*_build tag/branch.

  2. Package Building and Testing

    The mybb/mybb-build build script is used to perform tasks related to preparing releasable packages and associated information. The input and output is securely shared between Team members and tested.

  3. Announcements Preparation

    The package- and version-related information is completed and verified internally:

    • version metadata for Release Notes, partially generated by the build script,
    • Release Blog Post, fully generated by Jekyll basing on the version metadata at /versions/release-blog-post/ (locally),
    • plugin hooks data, fully generated by the build script,
    • file checksums, fully generated by the build script.
  4. Publication

    The packages and associated information are published. The tasks listed should be executed within the shortest timespan possible; the order is security-sensitive.

    1. the file checksums are uploaded to mybb.com/checksums/,
    2. the packages are uploaded to resources.mybb.com and verified,
    3. the version metadata is pushed to the repository, adding Release Notes and updating MyBB.com pages,
    4. the Release Blog Post is published,
    5. the Release Blog Post is propagated to public channels:

      • @mybbsecurity on Twitter (in accordance with rules),
      • @mybb on Twitter,
      • #18-support channel on Discord (pinned message),
    6. the Release Notes and Release Blog Post pages are archived using web.archive.org.
  5. Repository Updates

    1. A MyBB 1.8.x synchronization commit, containing any changes that have been applied outside the public repository, is pushed and tagged (signed mybb_18xx git tag),
    2. a Release is created and all packages are attached (including build_*.zip, containing the input and output of the build script),
    3. the version metadata is updated to list GitHub as a download source for the packages.
  6. Documentation Updates

    The plugin hooks data is pushed to the Docs repository.

Edit this page on GitHub