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. Pre-Release Public Testing

    The mybb_*_build git tag is used to provide downloadable packages of the final codebase that excludes non-public patches. A pinned announcement thread is created in the Development forum. The link is shared in the #18-development channel on Discord.

  3. 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.

  4. 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.
  5. 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 with listed accessible download locations for packages is pushed to the repository, adding Release Notes and updating MyBB.com pages,
    4. the Release Blog Post is published with MyBB Team as the author, with tags Release, Updates, and Security if the release addresses security-related issues,
    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.
  6. 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.
  7. Documentation & Forum Updates

    • The plugin hooks data is pushed to the Docs repository.
    • The Pre-Release thread is unpinned and locked.

Edit this page on GitHub