intuit / intuit/auto

Multiple Package Manager Plugins in 1 repo

Open
#917 18 comments 0 reactions 1 assignee Assigned to @just-be-dev View on GitHub
enhancement
Dominant language
TypeScript
Stars
2.5k
Forks
221
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**

Right now you can only use 1 package manager plugin per project. This means you can't use the `chrome-web-store` plugin the `npm` plugin in one repo.

**Describe the solution you'd like**

This limitation is mainly because currently `auto` works based on git project and has no concept of a package.

In the `npm` plugin I have demonstrated how you can do changelog management and separate releases for `sub-packages`. This is all based around around `lerna` and can't really be moved to `core`.

But since each package manager plugin relies on some extra file for the package manager (all except `git-tag`) we could pretty easily do something like:

**Example: npm plugin**

1. When loaded it tries to find a `package.json` (single or lerna)
2. `auto` considers anything in that folder to be a part of the `package`
3. `auto` manages a unique changelog for each `package`

This could potentially be a poor experience. Instead we could just add an extra config option to all package manager plugins for a folder. This could also support the `git-tg` plugin (and would be needed to make it work at all).

## Potential Issues

- Each plugin currently commits, tags, and pushes. this would create a lot of noise. would probably have to move those git actions to core so it only happens once? although you might *want* separate commits for each `package`.
- Root changelog - probably wouldn't make sense in this type of project. each package manager plugin would also generate a changelog for each managed `package`

**Describe alternatives you've considered**

Nothing really.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.