I recently wrote apost explaining how to get started using thepnpm
package manager withtelescope. Today I want to talk about the process of getting to the "Merged PR" finish line.
Navigating through problems
Gettingpnpm
to work on telescope was far from smooth. It all started with silly bugs. For example I removed a dependency (npm-run-all
) that I thought was not needed just to realize that the front-end would break in all sorts of ways.
GitHub Actions
Once I fixed all the small errors and was satisfied with the local implementation, I started to work on changing the GitHub Actions CI to also usepnpm
. After many unsuccessful attempts, I was relieved to see that all the GitHub Actions jobs passed. Mypnpm
implementation worked!
But things were not over... After making a small change in the docs, I pushed a new commit and then saw this:
ERR_PNPM_OUTDATED_LOCKFILE Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up-to-date with package.json
How was this possible? I did not make any new changes to any of thepackage.json
orpnpm-lock.yaml
files and now CI stopped working.
After speaking withDavid, he suggested to tackle a problem thatcould have been the cause of this error:Standardize package versions across package.json files (Spoiler, this wasn't the problem).
Standardize package versions
While working on this secondary issue, I changed all the dependencies to use the caret (^) version and the only one that gave me some trouble wasPrettier. It turns out that a minor update from Prettier could create new formatting changes to the files and since we were usingnpm
without a lock file, our CI was failing (ThanksDuke for finding this out!).
It took a few more failed CI attempts (mainly due to connection issues) for thisPR to be ready.
Back topnpm
Before including the changes made in my secondary PR, I decided to try one more time to wipe allnpm_modules
, reinstallpnpm
, rebase my branch, runpnpm install
and finally push the newly createdpnpm-lock.yaml
file.
Just likemagic, all the GitHub Actions jobs passed!
The simple explanation is that thepnpm-lock.yaml
file had problems and despite my many attempts to generate aworking copy, it took thisone extra try to fix it. I suspect it was due to having originally installedpnpm
from ascript and then not having it properly removed from my system before reinstalling it withnpm install -g pnpm
.
Sticking with it
I had a few days where I felt like all the work was for nothing because there were numerous problems that I could not figure out.
In a way I am glad that I encountered so many obstacles because it allowed me to dive deeper in my understanding of package managers and Continuous Integration with GitHub Actions.
I want to end this post by saying that I am very pleased with the feedback I received from everyone in the telescope community after they started usingpnpm
. Seeing all the positive comments made everything I worked on in the last few week even more worth it!
Top comments(1)
For further actions, you may consider blocking this person and/orreporting abuse
Read next

New 32B AI Model Masters Complex Reasoning Through Systematic Training Approach
Mike Young -

Java 24 Launches with JEP 483 for Enhanced Application Performance and Future Plans for 2025
Abhishek Dave -

Navigating the Landscape of Fair Code Licenses: The AFPL Unveiled
Rachel Duncan -

How to Build a Data App with Google Sheets Backend Using Evidence
hayato onodera -