Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-14323

Improve IDE integration for Spark cross version builds

Details

    • Improvement
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 2.39.0
    • runner-spark
    • None

    Description

      With the current build setup, developer experience is fairly poor when working with cross version builds for Spark (but also similarly for Flink):

      • Sources for version specific overrides are copied to a new location and references as gradle sources from there. First of all, this is totally unnecessary. These sources are not shared and should be used in place. But much more troublesome, the actual sources won't be resolved / checked by any IDE anymore and can't be properly worked on that way. Sadly for no reason at all ...
      • The actual shared resources on the other hand are referenced (added to srcDirs) in place. The IDE will randomly assign them to one Spark version module. Typically, for IntelliJ at least, that's the first (lower) one and not the one developers are actively working on.

      The suggested changes is:

      • Don't copy version specific overrides
      • Only copy shared sources conditionally based on a flag. This allows developers to disable copying to pick a primary version they intend to work on.
        Note: This is primary a cosmetic flag to improve IDE integration and has no impact on builds, even if all modules disable copying.

      Attachments

        Issue Links

          Activity

            People

              mosche Moritz Mack
              mosche Moritz Mack
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 50m
                  1h 50m