Skip to content

Does Git Updater support monorepos with multiple independently-released plugins? #1131

@jasonbahl

Description

@jasonbahl

Howdy 👋,

I'm the maintainer of WPGraphQL, and we're in the process of migrating to a monorepo structure where multiple official plugins will live in the same repository with independent versioning and releases.

I wanted to check if Git Updater supports this use case, or if there are any recommended configurations.

Our Setup

We'll be using release-please for automated releases. With multiple plugins in the monorepo, our releases will look like:

Plugin Tag Format Release Asset
WPGraphQL wp-graphql/v2.7.0 wp-graphql.zip
WPGraphQL Smart Cache wp-graphql-smart-cache/v1.5.0 wp-graphql-smart-cache.zip

Each plugin will have:

  • Its own GitHub Release (separate from other plugins)
  • Its own git tag (prefixed with the plugin name)
  • Its own zip asset attached to the release

Note

To see another monorepo in action, check out https://github.com/gatsbyjs/gatsby/releases. You will see that the one repo publishes releases for many different packages, each with varying release assets, etc. WPGraphQL will end up with a similar release page.

Current Plugin Header

/**
 * Plugin Name: WPGraphQL
 * GitHub Plugin URI: https://github.com/wp-graphql/wp-graphql
 * Primary Branch: master
 * Release Asset: true
 * ...
 */

Questions

  1. Does Git Updater support monorepos? When there are multiple releases in a repository (for different plugins), how does Git Updater determine which release to use for a given plugin?

  2. Tag format: Our tags will now be prefixed (e.g., wp-graphql/v2.7.0 instead of v2.6.0). Will this affect version detection?

  3. Release asset matching: Since each release will have a distinctly-named asset (wp-graphql.zip vs wp-graphql-smart-cache.zip), can Git Updater match based on asset name?

  4. Any recommended headers? Is there a header or configuration that helps Git Updater identify the correct releases in a monorepo?

Context

Thanks for maintaining this awesome plugin! 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions