benduran / turbo-tools

A collection of TurboRepo CLI tools to test, lint, build, version and publish packages in your Turborepo monorepo
Mozilla Public License 2.0
9 stars 3 forks source link

[Feature Request] Skip packages from being versioned and published #21

Open offirgolan opened 3 weeks ago

offirgolan commented 3 weeks ago

👋 Hi @benduran!

I'd like to make a feature request to add the ability to skip packages from being both versioned/tagged and published. We have some private packages/apps that we don't want to always version every time we update a dependent package (but we do want to update their dependencies). Since we have pipelines that monitor those private app's tags, we want to have more control over when we version and tag them.

Some options:

benduran commented 3 weeks ago

Hi Offir,

Thanks for reaching out. Hope you and the other Netflixers have been doing well!

To be sure I fully understand, you're wanting to exclude some packages, regardless of their private: boolean status, from having their versions managed (and subsequently, published) at all?

If that's the case, I could see the benefit for both a CLI flag and some type of turboTools.config.mjs override. Additionally, it might be ergonomic to consider having a package.json field like the following: { "turboTools": { "canVersion": false, "canPublish": false } }

On Tue, Oct 22, 2024 at 8:58 PM Offir Golan @.***> wrote:

👋 Hi @benduran https://github.com/benduran!

I'd like to make a feature request to add the ability to skip packages from being both versioned/tagged and published. We have some private packages/apps that we don't want to always version every time we update a dependent package (but we do want to update their dependencies). Since we have pipelines that monitor those private app's tags, we want to have more control over when we version and tag them.

Some options:

  • CLI: npx turbo-tools publish --skip-package my-app
  • Config: Add version.checkCanVersion

— Reply to this email directly, view it on GitHub https://github.com/benduran/turbo-tools/issues/21, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQYTHYNBKFRT4TH5PYCXDDZ42U57AVCNFSM6AAAAABQNIPEDOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGYYDMMZWGMZTQNI . You are receiving this because you were mentioned.Message ID: @.***>

--

offirgolan commented 2 weeks ago

Doing well, thanks for asking! I hope you're doing well also 😄

Yes, that's correct. For example, lets say I have app A which is dependent on packages X and Y. I want to be able to version and publish X and Y but I'm not ready to version A. I still want A's dependencies to be updated but A should not be versioned, tagged, or published.

benduran commented 2 weeks ago

Thanks for the additional information. This makes sense.

I'm pretty slammed with work tasks at the moment (plus getting settled in a new country), so I may not have the cycles in the short-term to look into this. The work, itself, should be fairly straightforward, but, it would actually require a combination of changes here in the turbo-tools library, as well as in its sister library, lets-version @.***/lets-version>, to make this work.

I'm happy to review any PRs you submit, if you're willing to dive in. Otherwise, there may be a bit of a wait until I get some free cycles to take a look.

Let me know your thoughts!

On Mon, Oct 28, 2024 at 11:40 PM Offir Golan @.***> wrote:

Doing well, thanks for asking! I hope you're doing well also 😄

Yes, that's correct. For example, lets say I have app A which is dependent on packages X and Y. I want to be able to version and publish X and Y but I'm not ready to version A. I still want A's dependencies to be updated but A should not be versioned, tagged, or published.

— Reply to this email directly, view it on GitHub https://github.com/benduran/turbo-tools/issues/21#issuecomment-2442874867, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQYTH4TLZ3QC6CYTN7CGP3Z53DPLAVCNFSM6AAAAABQNIPEDOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBSHA3TIOBWG4 . You are receiving this because you were mentioned.Message ID: @.***>

--