Title: To cross build, or not to cross build Ingestion · Issue #517 · feast-dev/feast · GitHub
Open Graph Title: To cross build, or not to cross build Ingestion · Issue #517 · feast-dev/feast
X Title: To cross build, or not to cross build Ingestion · Issue #517 · feast-dev/feast
Description: In #451 we upgraded outright to Java 11 for master / Feast v0.5+. Subsequently in #473 we restored support for v0.3 and v0.4 maintenance branches to be tested on CI with Java 8 (thanks!). I believe that has been broken by later updates t...
Open Graph Description: In #451 we upgraded outright to Java 11 for master / Feast v0.5+. Subsequently in #473 we restored support for v0.3 and v0.4 maintenance branches to be tested on CI with Java 8 (thanks!). I believe...
X Description: In #451 we upgraded outright to Java 11 for master / Feast v0.5+. Subsequently in #473 we restored support for v0.3 and v0.4 maintenance branches to be tested on CI with Java 8 (thanks!). I believe...
Opengraph URL: https://github.com/feast-dev/feast/issues/517
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"To cross build, or not to cross build Ingestion","articleBody":"In #451 we upgraded outright to Java 11 for master / Feast v0.5+. Subsequently in #473 we restored support for v0.3 and v0.4 maintenance branches to be tested on CI with Java 8 (thanks!). I believe [that has been broken][1] by later updates to CI scripts, I'll consider that part of this issue.\r\n\r\nThe upgrade could pose problems for Feast's Beam-based Ingestion component. Beam itself [does not build with Java 11 yet][2], and the scope of that issue is only the DirectRunner. Other runners could lag further behind, as for example Spark does not build or run on Java 11 until its version 3.0, which is in preview. Thus I presume Beam's SparkRunner will not build with Java 11 until a GM Spark release can.\r\n\r\nFeast does not support any runners other than GC Dataflow (and DirectRunner), so there may be no immediate issue if these are working so far. But, supporting additional runners—if anticipated (#362)—could be blocked if Ingestion does not remain Java 8-compatible.\r\n\r\nI wanted to raise the question of whether we should (cross?) build Ingestion with Java 8 to ensure it remains compatible for awhile longer.\r\n\r\nThe bug report that follows applies to current status quo, regardless of the question above.\r\n\r\n[1]: https://github.com/gojek/feast/pull/516#issuecomment-596076642\r\n[2]: https://issues.apache.org/jira/browse/BEAM-2530\r\n\r\n## Expected Behavior \r\n\r\n1. Feast master gives a helpful error about Java requirement if a developer attempts to build with an older version than is supported.\r\n1. Feast v0.3-branch and v0.4-branch can build \u0026 test on CI with Java 8. (Appears fixed by #523 🎉)\r\n\r\n## Current Behavior\r\n\r\n $ jenv version\r\n openjdk64-1.8.0.242 (set by /Users/cmartin/.jenv/version)\r\n $ mvn compile\r\n \u003cSNIP\u003e\r\n [ERROR] Fatal error compiling: invalid flag: --release\r\n\r\nThis stems from:\r\n\r\nhttps://github.com/gojek/feast/blob/7633912cd8209cece2a21ebe344600342ef1ff9b/pom.xml#L408\r\n\r\nbecause the flag was added to `javac` in Java 9. Maven Enforcer will catch this, proposed below.\r\n\r\nFor the second problem, CI fails with:\r\n\r\n```\r\n.prow/scripts/test-end-to-end-batch.sh only supports Debian stretch.\r\nPlease change your operating system to use this script.\r\n```\r\n\r\n## Steps to reproduce\r\n\r\n1. As above demo\r\n1. Submit a PR to v0.3-branch as in #516 \r\n\r\n## Possible Solution\r\n\r\nThe unhelpful error from Maven would be improved by reverting 190e605, resulting in output like\r\n\r\n```\r\n[WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:\r\nDetected JDK Version: 1.8.0-242 is not in the allowed range [11.0,).\r\n\r\n[ERROR] Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.\r\n```\r\n\r\nFor the CI environment problem, restore compatibility of the test scripts with `maven:3.6-jdk-8` Docker image. Prow always builds using master versions of scripts \u0026 config, I think? Ideally then, ensure a build is run on the maintenance branches when Prow scripts are changed, for as long as those Feast versions are supported.\r\n\r\nFor the Java 8 matter, a quick test seems to tell me that maven-compiler-plugin can compile select modules in a Reactor build with `\u003crelease\u003e8\u003c/release\u003e` while the others compile with 11. So I'm suggesting that it could be straightforward to _only_ build Ingestion for 8, instead of cross-building for two versions and having a more complicated CI matrix. Note then that `datatypes-java` ought to also build with 8 to be safe.","author":{"url":"https://github.com/ches","@type":"Person","name":"ches"},"datePublished":"2020-03-07T15:55:52.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":8},"url":"https://github.com/517/feast/issues/517"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:0aab1225-0ded-7ba9-612f-393e7a101140 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DFB0:15F350:1262EFB:19F93DF:697A0AB2 |
| html-safe-nonce | e0ec14072562081ab1515e7224f23780364bec7bdc4ab3ea50dfc73748a76459 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERkIwOjE1RjM1MDoxMjYyRUZCOjE5RjkzREY6Njk3QTBBQjIiLCJ2aXNpdG9yX2lkIjoiNjEwMDE5MjgwMTYxMTk3NTM0NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 04b6adafaf5030199d265467ed021ea05190bc17da5f4c8cc371d48e08153a1b |
| hovercard-subject-tag | issue:577353742 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/feast-dev/feast/517/issue_layout |
| twitter:image | https://opengraph.githubassets.com/86a183ba0f80ecbbfe3099f90d8050e252e961e10c35a14ed2e7fc37fc38c67f/feast-dev/feast/issues/517 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/86a183ba0f80ecbbfe3099f90d8050e252e961e10c35a14ed2e7fc37fc38c67f/feast-dev/feast/issues/517 |
| og:image:alt | In #451 we upgraded outright to Java 11 for master / Feast v0.5+. Subsequently in #473 we restored support for v0.3 and v0.4 maintenance branches to be tested on CI with Java 8 (thanks!). I believe... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ches |
| hostname | github.com |
| expected-hostname | github.com |
| None | 24021c77440f544078f9cbe80d78a2fb16ccff65fca92deda9da3c51d1cdc5fc |
| turbo-cache-control | no-preview |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | bd34d6cb576e14ec8da51f144ef82b621f68256d |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width