-
Notifications
You must be signed in to change notification settings - Fork 39
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
Revamp build process and update to 1.96.3 #555
Conversation
const enums are a pain in the ass for libraries
- always keep d.ts near the .js - make code more maintainable - faster - fix subpackage dependencies computation
as it breaks some namespace declarations
@kaisalmen do you have an idea about the build error? I've tried many things without any differences 🤔 No issue on my machine of course |
@CGNonofr awesome. I will look at all the changes later today.
I am locally on Ubunut 24.04.1 and it fails at the same point with a slightly different reason. I will come back to you... |
@CGNonofr I upgraded volta npm to |
@CGNonofr now it fails here: I will install ajv as devDependency and see what happens. Why is yarn still used? |
@CGNonofr if yarn is still needed you should also enforce the version with volta |
Interesting!
If you look at the commit history, you would notice that I've tried playing with the node/npm version already (:
I was thinking the whole repo has switched from yarn to npm, but maybe not everywhere? 🤔 I've failed to have any issue locally, and I've failed to have any other error then the |
That is the same I see locally. Can you patch the vscode package.json to contain those package ( |
@CGNonofr Getting there... |
9290a3b
to
bef41fd
Compare
@kaisalmen this time I'm confident :) |
🤞 |
demo failed !! |
Yes, it is much, but I can already see that it is better structured.
This sounds logical. Is this also the reason why you use You switched to used tsx because ts-node does no longer evolve, right. Is that similar tom vite-node? Once the build is stable and you can produce a new release, I will test it with monaco-languageclient. |
We don't really need it, it was part of an experiment that I don't use now. But It looks like a good practice so I've kept it.
I've discovered tsx on another project after fighting with ts-node for hours, and tsx was fully working on the first try! Also ts-node always generates verbose useless warning messages |
124ec32
to
9b4b750
Compare
@kaisalmen All green 🎉 Thanks for your help! |
Wonderful. Did you already test the release process? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's go. We have to test this in the field. 🎉
It's always hard to test that, but the only difference is the subpackage path so I hope nothing broke 🤞 |
@CGNonofr I saw that the creation of releases failed. Can you ping me once they are available? Thank you. |
🎉 This PR is included in version 12.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
@kaisalmen You were already pinged :) |
I'm aware it's a HUGE PR, sorry for that, I don't really expect you to fully understand what has been done about the build process as it would be really time consuming.
It's tried to fix all the issues I've noticed about the build process and decided to fully rework it on healthier bases.
What was improved:
Regarding the type, I had to make a choice, because the import graph of types and the one from the actual ESM are different (for instance, if only a type is imported from another module, the import is removed from the generated ESM).
I've decided that only external dependencies imported from actual ESM files are declared in the package
dependencies
. External dependencies only imported from d.ts files are put in thepeerDependencies
as optional (usingpeerDependenciesMeta
). Any though about it?Also, I've upgraded VSCode in the same MR so a new major release is triggered in case something was broken in the process.
And whilte I'm at it, I've updated every single dependencies, including eslint which I've switch to the default recommended configuration for now