Skip to content

Conversation

JohnnyTheTank
Copy link

@JohnnyTheTank JohnnyTheTank commented Aug 15, 2025

Replaced the old Makefile with a Node.js build system that reads library metadata from a centralized config file.

Changes:

  • Removed: Makefile (bash-based build system)
  • Added: build-libs.js (Node.js build script) and libs-config.json (metadata for 19 OpenSCAD libraries)
  • Updated: package.json with new build scripts

Benefits:

  • All library info (repos, branches, includes/excludes) now lives in one JSON file
  • Cleaner npm scripts: npm run build:libs, npm run build:libs:wasm, etc.
  • Better error handling
  • Easier to add new libraries or modify existing ones

The CI still works with make public but now uses the new Node.js system under the hood.

Fixes #122

@t-paul
Copy link
Member

t-paul commented Aug 15, 2025

A more concise configuration is always good, but I have to ask: Is there not any (at least somewhat) standard build system which could do this too? Maintaining a custom build system is probably fine as long as it's just a small group of people using it. But when trying to (just as example) get the project included in Debian it could make things more complicated simply by not being "standard" and could mean extra maintenance burden. I guess a good thing from core technical side is that it's using only dependencies the application has already.

@JohnnyTheTank
Copy link
Author

@t-paul Good morning. I replaced the custom built system with webpack.

@t-paul
Copy link
Member

t-paul commented Aug 16, 2025

Thanks for the update, I suppose webpack is a good choice following #102.

Do you have an idea why the tests fail? It looks unrelated to the build change as it reports a timeout, but I'm not deep enough in the project that merging with failing tests feels comfortable.

@JohnnyTheTank
Copy link
Author

@t-paul You are right. I fixed the failing test :)

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.

Replace Makefile w/ something that reads the libs metadata
2 participants