rubyjs / mini_racer

Minimal embedded v8
MIT License
585 stars 91 forks source link

gemspec: Exclude *.bundle (follow-up #281) #285

Closed tisba closed 1 year ago

tisba commented 1 year ago

Follow-Up for https://github.com/rubyjs/mini_racer/pull/281 Addresses https://github.com/rubyjs/mini_racer/pull/283#issuecomment-1572578821

I don't quite fully understand why this breaks, but building locally using bundle exec rake compile broke with #281. It works fine in CI though, which might be worth investigating. What worked for me to fix this (please have a look @Fayti1703) is to make sure *.bundle files are excluded. With this bundle install && bundle exec rake works (compiles and runs tests).

My experience with native extensions is limited. I'd appreciate hints how to make local compilation consistent with CI.

-cc @Fayti1703 -cc @lloeki

Fayti1703 commented 1 year ago

I've done some tests on my end... interestingly I see no change in behavior with the commits on this branch. However, I have noticed that the problem doesn't even occur on a clean clone, which might explain why CI doesn't run into it.

Fayti1703 commented 1 year ago

Oh, this is interesting: Checking Gemfile.lock, my clean clone ends up with "PLATFORMS: x86_64-linux"[^1], where-as the existing worktree has a "PLATFORMS: ruby"[^1] declaration.

Can you verify if this is similar on your end?

[^1]: In the original file, these are separated by newline + indentation. I've elected to replace this with a colon for readability.

tisba commented 1 year ago

I've done some tests on my end... interestingly I see no change in behavior with the commits on this branch. However, I have noticed that the problem doesn't even occur on a clean clone, which might explain why CI doesn't run into it.

I think that the clean & clobber tasks were not properly cleaning up everything. I added {ext,lib}/**/*.{o,so,bundle} and pkg to CLEAN so that with rake clean clobber you should get a clean environment again. I did some testing locally and it looks like a fresh clone. I think that should help somewhat.

tisba commented 1 year ago

Oh, this is interesting: Checking Gemfile.lock, my clean clone ends up with "PLATFORMS: x86_64-linux"1, where-as the existing worktree has a "PLATFORMS: ruby"1 declaration.

Can you verify if this is similar on your end?

Footnotes

  1. In the original file, these are separated by newline + indentation. I've elected to replace this with a colon for readability. ↩2

Not sure I follow 100%: For me it's always PLATFORM: arm64-darwin-22 in Gemfile.lock when it's generated.

SamSaffron commented 1 year ago

this is great, thanks.