Hello, I recently made a pull request for an exact knn algorithm, and have been considering to start on the approximate knn algorithm and had an issue with updating the master branch of Flink.
I am curious to know what best practices are in terms of keeping up to date with the master branch to avoid the issue I had (to be explained below) Some background: -- I forked another Flink commiter's branch of Flink since he had done other work on knn (namely https://github.com/chiwanpark/flink) -- I imported that master branch into IntelliJ -- I wrote code on a separate branch FLINK-1745, and that built fine. -- I made the mistake in not using Travis CI from the start, but that was not a huge issue since only a single import needed to be changed and my Travis CI build goes through now. I then checked out the master branch, and updated master via `git pull apache master` The master branch no longer builds, I get the following error in IngelliJ: Error:scalac: Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-core/target/classes is shared between: Module 'flink-storm-compatibility-core' production, Module 'flink-storm-compatibility-core (1)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-kafka/target/classes is shared between: Module 'flink-connector-kafka' production, Module 'flink-connector-kafka (1)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-spargel/target/classes is shared between: Module 'flink-spargel' production, Module 'flink-spargel (2)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/target/classes is shared between: Module 'flink-streaming (2)' production, Module 'flink-streaming-parent' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-examples/target/test-classes is shared between: Module 'flink-storm-compatibility-examples' tests, Module 'flink-storm-compatibility-examples (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-rabbitmq/target/test-classes is shared between: Module 'flink-connector-rabbitmq' tests, Module 'flink-connector-rabbitmq (2)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-elasticsearch/target/classes is shared between: Module 'flink-connector-elasticsearch' production, Module 'flink-connector-elasticsearch (2)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/target/classes is shared between: Module 'flink-streaming-connectors (1)' production, Module 'flink-streaming-connectors-parent' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-elasticsearch/target/test-classes is shared between: Module 'flink-connector-elasticsearch' tests, Module 'flink-connector-elasticsearch (2)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-core/target/test-classes is shared between: Module 'flink-storm-compatibility-core' tests, Module 'flink-storm-compatibility-core (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-scala/target/test-classes is shared between: Module 'flink-streaming-scala' tests, Module 'flink-streaming-scala (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/target/test-classes is shared between: Module 'flink-storm-compatibility (1)' tests, Module 'flink-storm-compatibility-parent' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly/target/test-classes is shared between: Module 'flink-gelly' tests, Module 'flink-gelly (4)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-rabbitmq/target/classes is shared between: Module 'flink-connector-rabbitmq' production, Module 'flink-connector-rabbitmq (2)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-spargel/target/test-classes is shared between: Module 'flink-spargel' tests, Module 'flink-spargel (2)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-twitter/target/test-classes is shared between: Module 'flink-connector-twitter' tests, Module 'flink-connector-twitter (2)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-twitter/target/classes is shared between: Module 'flink-connector-twitter' production, Module 'flink-connector-twitter (2)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly/target/classes is shared between: Module 'flink-gelly' production, Module 'flink-gelly (4)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-kafka/target/test-classes is shared between: Module 'flink-connector-kafka' tests, Module 'flink-connector-kafka (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/target/test-classes is shared between: Module 'flink-streaming-connectors (1)' tests, Module 'flink-streaming-connectors-parent' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-flume/target/test-classes is shared between: Module 'flink-connector-flume' tests, Module 'flink-connector-flume (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-examples/target/classes is shared between: Module 'flink-streaming-examples' production, Module 'flink-streaming-examples (1)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-core/target/test-classes is shared between: Module 'flink-streaming-core' tests, Module 'flink-streaming-core (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-examples/target/test-classes is shared between: Module 'flink-streaming-examples' tests, Module 'flink-streaming-examples (1)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/target/classes is shared between: Module 'flink-storm-compatibility (1)' production, Module 'flink-storm-compatibility-parent' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-core/target/classes is shared between: Module 'flink-streaming-core' production, Module 'flink-streaming-core (1)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/target/test-classes is shared between: Module 'flink-streaming (2)' tests, Module 'flink-streaming-parent' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly-scala/target/classes is shared between: Module 'flink-gelly-scala' production, Module 'flink-gelly-scala (4)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-flume/target/classes is shared between: Module 'flink-connector-flume' production, Module 'flink-connector-flume (1)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly-scala/target/test-classes is shared between: Module 'flink-gelly-scala' tests, Module 'flink-gelly-scala (4)' tests Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-scala/target/classes is shared between: Module 'flink-streaming-scala' production, Module 'flink-streaming-scala (1)' production Output path /Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-examples/target/classes is shared between: Module 'flink-storm-compatibility-examples' production, Module 'flink-storm-compatibility-examples (1)' production Please configure separate output paths to proceed with the compilation. TIP: you can use Project Artifacts to combine compiled classes if needed. What is the most seamless way to (1) pull master branch + build --- > (2) create new branch ---> (3) make pull request ---> (4) update master ---> (5) create new branch ----> repeat I was able to do steps (1)-(3), but got an error on step (4). The only solution I can think of is a hack: import a whole new project into IntelliJ using the most up-to-date version of master, but that sounds silly to do that each time I want to repeat step (4) Thanks! Dan