Repository navigation
fix(ruby,node,python): declare supported runtimes in package metadata - #2084
Merged
Merged
Conversation
…pport The gemspec named no Ruby floor although the code targets 2.7 and the e2e matrix starts there. The Node package.json had no engines field although undici 6 requires Node 18.17, so older runtimes installed it and failed at load. The Python classifiers stopped at 3.12 while the e2e matrix also runs 3.13.
🟢 Tier S · Ready to mergeThis change declares Ruby, Node, and Python runtime metadata in the generated package manifests. It also adds generation tests that check the declared runtime floors and interpreter classifiers.
📂 Walkthrough · 6
🔇 Filtered out · 1Findings Hansi considered but did not post.
Reviewed |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Declares the runtimes the generated Ruby, Node and Python packages actually support.
required_ruby_version. The code targets Ruby 2.7 (TargetRubyVersion: 2.7in the RuboCop config) and the e2e matrix starts atruby:2.7-alpine, so the gemspec now declares>= 2.7.package.jsonhad noengines. The SDK depends onundici ^6.27.0, whose ownenginesisnode >= 18.17, so older Node installed the SDK and then failed at load.package.jsonand the lock template now declare"node": ">=18.17". Only the rootenginesentry was added to the lock template; the update script's unrelated transitive bumps were left out.setup.pyandpyproject.tomlclassifiers stopped at 3.12 while the e2e matrix also runs Python 3.13. 3.13 is now listed. There is no 3.14 e2e job, so 3.14 is not claimed.React Native's
expo-file-system: 18.*.*pin is deliberately left alone. 18.x (Expo SDK 52/53) has noexpo-file-system/legacyexport, and from 19.x (SDK 54) on the top-levelreadAsStringAsync/writeAsStringAsyncthrow at runtime and onlyexpo-file-system/legacyworks. No single import covers both, so widening the range needs the #1691 import change plus a decision to drop SDK 52/53.Test Plan
testPackageMetadataIsDeclaredtable intests/generation/GenerationTest.phpasserts the Ruby floor, the Nodeenginesinpackage.jsonandpackage-lock.json, and the Python 3.9 to 3.13 classifiers in bothsetup.pyandpyproject.toml. It fails onmain(3 failures) and passes here.vendor/bin/phpunit --testsuite Generation: 113 tests pass.format:check,lint,analyseall clean.composer lint-twig,composer refactor:check,composer lint, max-line-length check: clean.Related PRs and Issues
expo-file-system/legacyimport), which the React Native range change depends on.Closes #2088