Skip to content

Conversation

@bengsfort
Copy link
Owner

@bengsfort bengsfort commented Sep 29, 2025

!! PR is still WIP -- each change will not be fully implemented in the effort to release this ASAP to resolve blocking issues with the library. Further improvements can be expected in future versions.

Fixes the most critical issues around library usage:

  • Installation error due to unresolved workspace:^ protocol. (npm install fails for irsdk-node #8)
    • Migrated to pnpm, as the workspace tooling is far more consistent, safe, and reliable. Yarn has issues with some cases of the workspace: protocol, for example using the protocol for optional dependencies, whereas pnpm does not have these issues and has a more well-rounded implementation regarding reliable resolution pre-publish.
  • 'Build error' during installation. (waitForData not getting data #9, fix build errors from electron #5)
    • While I have still not been able to replicate the build issues being mentioned, my hunch is that due to node-gyp the build process is being offloaded to every consumers PC. This is a flawed workflow that is difficult to make reliable, as it requires each consumer of the library to have all of the tooling installed. To resolve this, instead of using raw node-gyp the native library has been migrated to use prebuildify and node-gyp-build to ship pre-built binaries. This should resolve build issues as there is no build to be done on most systems.
    • Additionally, my 4-year old 'mock sdk' implementation was super naive and flawed. To resolve this, non-windows binaries will still compile but with a mock C++ implementation, that just returns dummy data. This should enable future versions of the SDK to remove large amounts of complexity, while maintaining the ability to have "development" versions of apps on platforms that iRacing is not supported on.

Additionally, adds example/test projects for educational purposes but also to have multiple batteries-included projects to test the library against, making it much easier to debug and make sure that future releases do not break anything.

PR is still in draft, due to the following:

  • Finish example/test projects to verify library runs as expected.
  • Improve CI build to ensure workspace commands are being replaced, and to ensure that as many pre-built native binaries are being bundled with the native package as possible to ensure a smooth usage experience for library consumers.

@bengsfort bengsfort self-assigned this Sep 29, 2025
@changeset-bot
Copy link

changeset-bot bot commented Sep 29, 2025

🦋 Changeset detected

Latest commit: 3258bd5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@irsdk-node/example-node-dump-sdk-data Major
@irsdk-node/example-node-sdk-server Major
@irsdk-node/native Minor
@irsdk-node/types Patch
irsdk-node Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@0xkalle
Copy link

0xkalle commented Oct 9, 2025

If I can help here somehow, just let me know. :)

@bengsfort
Copy link
Owner Author

@0xkalle hi!

Thanks for the interest, all that is really remaining in this pr is the CI step cause the current release flow is quite broken, which is part of the reason why everything is busted at the moment. I've been getting a workflow setup in this sandbox repo (bengsfort/irsdk-actions-sandbox) but it has unfortunately taken longer than anticipated due to life stuff.

The only thing remaining for the CI step is essentially automatic releasing when "release" commits hit main and then moving the entire workflows over into this repo and updating some of the paths/package names. I was planning on just moving what is there over to this repo tonight once I have some time and cutting a manual release, then adding the automatic releases in later, but if you are willing and have time you could feel free to take a look! Otherwise, I am planning on taking care of this tonight so a release can be made.

Really sorry for delays/inconvenience.

@0xkalle
Copy link

0xkalle commented Oct 11, 2025

No worries. I appreciate your work!

I think with that you are faster than I am. As soon as you pushed it I'll test and report back.

As I am new to this repo I'll dive deeper into it as soon I am have it initially running.

@bengsfort
Copy link
Owner Author

No worries. I appreciate your work!

I think with that you are faster than I am. As soon as you pushed it I'll test and report back.

As I am new to this repo I'll dive deeper into it as soon I am have it initially running.

Thanks so much! I will try to get this ready and then get a release out, and would be great to get any feedback if it is working. So far from my testing it has worked in all of my test projects, but that has always been the case with this library, so even though I have high confidence this PR will fix the major issues people are facing it is difficult to be 100% confident 😄

I am hoping to soon do a full toolchain overhaul on this project as well, and as part of that I will try to substantially improve the documentation which should hopefully help :)

@bengsfort bengsfort marked this pull request as ready for review October 11, 2025 15:24
@bengsfort bengsfort merged commit a6078d8 into main Oct 11, 2025
6 checks passed
@bengsfort bengsfort deleted the hotfix/unmodified-workspace-protocol branch October 11, 2025 15:29
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.

3 participants