Skip to content

Conversation

@jdalrymple
Copy link
Contributor

@jdalrymple jdalrymple commented Sep 30, 2025

What:

Modernized project dependencies and resolved deprecated packages, peer dependency warnings, and security vulnerabilities.

Why:

  • The codecov package was deprecated with a migration plan in place
  • Multiple peer dependency warnings were causing noise during installation
  • Security audit identified 2 low-severity vulnerabilities in transitive dependencies
  • node-fetch dependency was unnecessary given Node.js 22's native fetch support
  • ES module compatibility issues were causing test failures after package updates

How:

Dependency Updates:

  • Removed deprecated codecov package and updated CircleCI config to use official codecov orb
  • Removed unnecessary node-fetch dependency, now using Node.js 22's native fetch
  • Removed typescript dev dependency (not needed for pure JS project)
  • Added pnpm override for tmp@>=0.2.4 to resolve security vulnerability

Configuration Changes:

  • Updated Jest config to support ES modules with --experimental-vm-modules flag
  • Added transformIgnorePatterns for prettier compatibility
  • Modified test script to use NODE_OPTIONS environment variable

Code Updates:

  • Fixed inquirer v12 compatibility by using require('inquirer').default
  • Fixed lint errors (curly braces, logical assignment warnings)
  • Updated test snapshots to reflect prettier formatting changes
  • Fixed conditional logic in test files to avoid ESLint warnings

Infrastructure Updates:

  • Updated CircleCI to use Node.js 22.14 (from 16.17.0) to match engine requirements
  • Migrated CI from yarn to pnpm to match project package manager
  • Added pnpm installation step to CircleCI workflow
  • Removed obsolete .yvmrc file (Yarn version specification no longer needed)

Checklist:

  • Documentation
  • Tests
  • Ready to be merged
  • Added myself to contributors table

@jdalrymple
Copy link
Contributor Author

I know this was a huge overhaul, but would love to get the cli tool up to date 🙏

@jdalrymple
Copy link
Contributor Author

Bump 🙏

steps:
- prep_env
- run: yarn install
- run: pnpm install
Copy link
Member

Choose a reason for hiding this comment

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

cool - i didn't know about pnpm!!

Copy link
Member

Choose a reason for hiding this comment

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

we moved from yarn --> npm for the documentation i wonder if we should use this over in that repo too?

Copy link
Contributor

Choose a reason for hiding this comment

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

Although I personally love pnpm and use it in all my projects (template: create-typescript-app), switching this CLI from a previous package manager to pnpm is a big change. If we want to do that (+1 from me) it should be in a separate PR than a smaller "update dependencies" one.

@lwasser
Copy link
Member

lwasser commented Jan 23, 2026

@all-contributors please add @jdalrymple for security, bug

@allcontributors
Copy link
Contributor

@lwasser

I've put up a pull request to add @jdalrymple! 🎉

@lwasser
Copy link
Member

lwasser commented Jan 23, 2026

hey @jdalrymple thank you for this - this is a BIG PR!!

We have been working on reviving this project and I do have merge permissions but i'm trying to use them carefully as we all get up to speed on this project. Do you have the capacity to split this out into small pieces?

I am doing updates such as dependabot etc as well. if you are willing to work with us, implementing this in several smaller pr's would be greatly appreciated!

@@ -1,15 +1,23 @@
version: 2.1

orbs:
Copy link
Member

Choose a reason for hiding this comment

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

i don't think i have access to circle ci so let me dig into that first. if this could be it's own pr we can merge it quickly as is

@lwasser
Copy link
Member

lwasser commented Jan 23, 2026

maybe one pr for circle ci
one pr for linting
one pr for deps.

i am still trying to figure out how deployment is setup here. And where tests run.

lemme know how that sounds. I appreciate your help!!

Copy link
Contributor

@JoshuaKGoldberg JoshuaKGoldberg left a comment

Choose a reason for hiding this comment

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

🙌 I appreciate the initiative! There are quite a few unrelated changes in this PR ranging from stylistic tweaks in other files to a full swap of the package manager. +1 to lwasser's suggestion to have one PR per thing. That makes things much more reviewable. And if one item is blocked, that doesn't block the other items. Thanks!

steps:
- prep_env
- run: yarn install
- run: pnpm install
Copy link
Contributor

Choose a reason for hiding this comment

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

Although I personally love pnpm and use it in all my projects (template: create-typescript-app), switching this CLI from a previous package manager to pnpm is a big change. If we want to do that (+1 from me) it should be in a separate PR than a smaller "update dependencies" one.

@@ -1,5 +1,4 @@
const url = require('url')
const fetch = require('node-fetch')
Copy link
Contributor

Choose a reason for hiding this comment

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

Moving from node-fetch to the global fetch is also a bigger change than just bumping @babel/runtime. node-fetch isn't quite a drop-in replacement for fetch. fetch is more spec/standards-compliant.

if (commitConvention.lowercase)
if (commitConvention.lowercase) {
commitMessage = commitConvention.transform(commitMessage)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

[Style] Unrelated change - this isn't a problem on its own, but with all the other unrelated changes makes this PR harder to review.

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.

4 participants