OpenFn / OpenFn/adaptors

Find a way to bump common without bumping every adaptor

Open
#551 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wontfix
Dominant language
JavaScript
Stars
24
Forks
41
Avg merge
3d 13h
Merged PRs (30d)
12

Description

A really annoying side-effect of the monorepo is that whenever we make a change to common, every adaptor version gets a patch increase.

Very often this patch results in no actual change to the adaptor. For example, changing the docs in common does not affect http. Or changing a common function not exported by an adaptor does not affect that adaptor (probably). Both of these cases are common and result in a no-diff release.

Version locking?

Can we version lock each adaptor to the most relevant common version? Ie instead of workspace:*, can we set the dependency to 1.8.0?

I worry about the internal consistency of the monorepo if we do this. At build time I'm pretty sure each adaptor uses the local common version anyway. If we version lock, does that version get ignored? Or does that version get downloaded to node_modules? Both are kind of confusing.

It's also a bit of a pain not only to go and set each version, but to remember to update it when there's a relevant change.

Ignore on release?

It's possible to pass an --ignore string to pnpm changeset version (I think? Or do we do it at publish time? I'm sure I've done this one) to ignore some versions.

If we ignore a package after a common release, what happens next time common is bumped? I think it'll just take the next version, which is fine.

There are two difficulties with this:

  • Generating the ignore list is very tedious and quite error prone. We can provide tooling to help make it easier (like adding an --only instead, which is the inverse logic). But it's still manual.
  • What if I forget to include a dependency that DOES need updating? How do we even know which adaptors DO need updating?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how the monorepo uses workspace:* dependencies and how pnpm changeset version handles the common package and adaptors. Determine how affected adaptors can be identified and how version locking or an ignore/only workflow affects later releases; done means a reliable, documented approach that avoids no-diff adaptor releases without breaking consistency.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
build-system, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.