Skip to the content.

Module Development

Newfold modules are self-contained pieces of functionality that can be used to extend the functionality of a brand plugin. Modules are developed in their own repositories and are installed as dependencies of brand plugins.

Expectations

Workflow

The following is a high-level overview of the workflow for developing and releasing a module.

Pre-Development

Development

  1. Do all development work in feature branches in the module repository, following the branch naming conventions on the Version Control page. Be sure to start all feature branches from the develop branch.
  2. Create a pull request against the develop branch in the module repository when a feature branch is ready for review, and merge it only when automated checks pass and at least one other developer approves it.
  3. Once all features are in the develop branch, start preparing for a release.
  4. Create a release branch from the develop branch, following the branch naming conventions in the Version Control page.
  5. Tag a pre-release version (e.g. 1.0.0-rc.1) on the module repository.
  6. Test the pre-release locally.
  7. Create a feature branch on any applicable brand plugin repositories, update the module version to the pre-release version, implement any additional integrations, and verify proper coverage via automated tests.
  8. Tag a pre-release on the brand plugin repository (e.g. 1.0.0-alpha.1) for your feature branch, and test the alpha release using the build created via GitHub Actions. Be sure to check the “Set as a pre-release” checkbox when creating the release!
  9. If issues are found in the module, create a new PR against the release branch in the module repo with any required fixes, repeat steps 5-8 and be sure to increment the release candidate version.
  10. If issues are specific to the brand plugin, apply any fixes to the feature branch in the brand plugin repo and repeat steps 8-9, making sure to increment the pre-release version.
  11. If no issues are found, merge the release branch in the module repository into the main branch, tag a new production release (e.g. 1.0.0) and update the feature branch in the brand plugin(s) to use the new release.
  12. Create a new pull request from the feature branch in the brand plugin against the develop branch. Select at least 2 members of the WordPress COE team as reviewers, and notify the WordPress COE team in the General channel of the Press 1, 2, 4 Coordination team in Microsoft Teams.

At this point, your PR has been officially submitted. Code must be submitted by Wednesday the week before a release is scheduled to go out in order to make it into that release. If any issues are found, the WordPress COE team may request changes to the PR. If the PR is not ready to be merged by the end of the week, it will be pushed to the next release.

Keep in mind that the WordPress COE team will NOT conduct a full code review of the PR unless you specifically request it. However, they will review the PR for any obvious issues such as failing tests, missing tests, missing documentation, failing or missing GitHub Action checks, etc.