Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix (peer) dependencies #2528

Merged
merged 2 commits into from Mar 6, 2024
Merged

Conversation

marvinruder
Copy link
Contributor

@marvinruder marvinruder commented Mar 6, 2024

  • Declare prop-types as a dependency of @nivo/core (as recommended in their README)
  • Declare react as a peer dependency of @nivo/tooltip
  • Declare correct version of pnpm
  • Update lockfile

Fixes #2401

* Declare `prop-types` as a dependency of `@nivo/core` (as recommended in their README)
* Declare `react` as a peer dependency of `@nivo/tooltip`
* Update lockfile

Fixes #2401

Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
Copy link

vercel bot commented Mar 6, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
nivo ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 6, 2024 6:07pm

@marvinruder
Copy link
Contributor Author

For more details on the prop-types dependency, see facebook/prop-types#44.

To validate that all peer dependencies within the @nivo vendor scope are met, I used the following snippet:

// Place this .mjs file in the `packages` folder

import fs from 'fs'
import path, { dirname } from 'path'
import { fileURLToPath } from 'url'

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)

const folders = fs.readdirSync(__dirname).filter(f => {
    return fs.statSync(path.join(__dirname, f)).isDirectory()
})

for await (const folder of folders) {
    const packageJson = JSON.parse(
        fs.readFileSync(path.join(__dirname, folder, 'package.json'), 'utf8')
    )
    const dependencies = Object.keys(packageJson.dependencies ?? {})
    const peerDependencies = Object.keys(packageJson.peerDependencies ?? {})
    const nivoDependencies = Object.keys(packageJson.dependencies ?? {}).filter(dep =>
        dep.startsWith('@nivo/')
    )
    for await (const dep of nivoDependencies) {
        const depPackageJson = JSON.parse(
            fs.readFileSync(
                path.join(__dirname, dep.replace(/^@nivo\//, ''), 'package.json'),
                'utf8'
            )
        )
        const depPeerDependencies = Object.keys(depPackageJson.peerDependencies ?? {})
        depPeerDependencies.forEach(peerDep => {
            if (!peerDependencies.includes(peerDep) && !dependencies.includes(peerDep)) {
                throw new Error(
                    `@nivo/${folder} has a dependency on ${dep}, which declares ${peerDep} as its peer dependency. ` +
                        `However, @nivo/${folder} does not declare ${peerDep} as its dependency or peer dependency. Fix it.`
                )
            }
        })
    }
}

Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
Copy link

codesandbox-ci bot commented Mar 6, 2024

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit eca9bac:

Sandbox Source
nivo Configuration

@marvinruder
Copy link
Contributor Author

marvinruder commented Mar 6, 2024

Just imported the packages @nivo/core@https://pkg.csb.dev/plouc/nivo/commit/eca9bac0/@nivo/core/_pkg.tgz and @nivo/sunburst@https://pkg.csb.dev/plouc/nivo/commit/eca9bac0/@nivo/sunburst/_pkg.tgz into my project and I can confirm that this indeed solves #2401 for me without any additional declarations in .yarnrc.yml.

PS: Did the same with https://github.com/ollwenjones/nivo-0830-test, and I can confirm this also fixes the issue with pnpm.

Copy link
Owner

@plouc plouc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you for investigating and solving the issue.

@plouc plouc merged commit 68375a1 into plouc:master Mar 6, 2024
5 checks passed
This was referenced Mar 8, 2024
sebald pushed a commit to sebald/pattern-analyzer that referenced this pull request Mar 10, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nivo/axes](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/axes)) |
[`0.84.0` ->
`0.85.1`](https://renovatebot.com/diffs/npm/@nivo%2faxes/0.84.0/0.85.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2faxes/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2faxes/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2faxes/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2faxes/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nivo/bar](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/bar)) |
[`0.84.0` ->
`0.85.1`](https://renovatebot.com/diffs/npm/@nivo%2fbar/0.84.0/0.85.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2fbar/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2fbar/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2fbar/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2fbar/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nivo/core](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/core)) |
[`0.84.0` ->
`0.85.1`](https://renovatebot.com/diffs/npm/@nivo%2fcore/0.84.0/0.85.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2fcore/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2fcore/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2fcore/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2fcore/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nivo/line](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/line)) |
[`0.84.0` ->
`0.85.1`](https://renovatebot.com/diffs/npm/@nivo%2fline/0.84.0/0.85.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2fline/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2fline/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2fline/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2fline/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nivo/pie](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/pie)) |
[`0.84.0` ->
`0.85.1`](https://renovatebot.com/diffs/npm/@nivo%2fpie/0.84.0/0.85.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2fpie/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2fpie/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2fpie/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2fpie/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nivo/scatterplot](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/scatterplot))
| [`^0.84.0` ->
`^0.85.0`](https://renovatebot.com/diffs/npm/@nivo%2fscatterplot/0.84.0/0.85.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2fscatterplot/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2fscatterplot/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2fscatterplot/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2fscatterplot/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nivo/swarmplot](https://togithub.com/plouc/nivo)
([source](https://togithub.com/plouc/nivo/tree/HEAD/packages/swarmplot))
| [`^0.84.0` ->
`^0.85.0`](https://renovatebot.com/diffs/npm/@nivo%2fswarmplot/0.84.0/0.85.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nivo%2fswarmplot/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nivo%2fswarmplot/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nivo%2fswarmplot/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nivo%2fswarmplot/0.84.0/0.85.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>plouc/nivo (@&#8203;nivo/axes)</summary>

### [`v0.85.1`](https://togithub.com/plouc/nivo/releases/tag/v0.85.1)

[Compare
Source](https://togithub.com/plouc/nivo/compare/v0.85.0...v0.85.1)

#### What's Changed

- Tooltip: avoid a flash effect and weird initial transition by
[@&#8203;DimaAmega](https://togithub.com/DimaAmega) in
[plouc/nivo#2480
- feat(deps): upgrade d3-scale due to vulnerability by
[@&#8203;plouc](https://togithub.com/plouc) in
[plouc/nivo#2531

#### New Contributors

- [@&#8203;DimaAmega](https://togithub.com/DimaAmega) made their first
contribution in
[plouc/nivo#2480

**Full Changelog**:
plouc/nivo@v0.85.0...v0.85.1

### [`v0.85.0`](https://togithub.com/plouc/nivo/releases/tag/v0.85.0)

[Compare
Source](https://togithub.com/plouc/nivo/compare/v0.84.0...v0.85.0)

#### What's Changed

- refactor default props to fix error message by
[@&#8203;andre19980](https://togithub.com/andre19980) in
[plouc/nivo#2452
- fix(sankey): update onClick types in sankey chart to respect generics
by [@&#8203;stas-demydiuk](https://togithub.com/stas-demydiuk) in
[plouc/nivo#2509
- chore: upgrade d3-color and d3-scale-chromatic by
[@&#8203;icco](https://togithub.com/icco) in
[plouc/nivo#2466
- Fix: add initial property for truncateTickAt by
[@&#8203;scalabw](https://togithub.com/scalabw) in
[plouc/nivo#2504
- fix tooltip default color by
[@&#8203;scalabw](https://togithub.com/scalabw) in
[plouc/nivo#2521
- Touch crosshair for line graphs by
[@&#8203;WilliamABradley](https://togithub.com/WilliamABradley) in
[plouc/nivo#2524
- fix(marimekko): use readonly arrays for props as the library does not
modify them by [@&#8203;pcorpet](https://togithub.com/pcorpet) in
[plouc/nivo#2493
- fix(line): use readonly arrays for props as the library does not
modify them by [@&#8203;pcorpet](https://togithub.com/pcorpet) in
[plouc/nivo#2494
- Fix (peer) dependencies by
[@&#8203;marvinruder](https://togithub.com/marvinruder) in
[plouc/nivo#2528

#### New Contributors

- [@&#8203;andre19980](https://togithub.com/andre19980) made their first
contribution in
[plouc/nivo#2452
- [@&#8203;stas-demydiuk](https://togithub.com/stas-demydiuk) made their
first contribution in
[plouc/nivo#2509
- [@&#8203;icco](https://togithub.com/icco) made their first
contribution in
[plouc/nivo#2466
- [@&#8203;scalabw](https://togithub.com/scalabw) made their first
contribution in
[plouc/nivo#2504
- [@&#8203;WilliamABradley](https://togithub.com/WilliamABradley) made
their first contribution in
[plouc/nivo#2524
- [@&#8203;marvinruder](https://togithub.com/marvinruder) made their
first contribution in
[plouc/nivo#2528

**Full Changelog**:
plouc/nivo@v0.84.0...v0.85.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the
month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/sebald/pattern-analyzer).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0.83.0 Doesn't work with pnpm + webpack
2 participants