The generated artifacts include source and java-docs. I am wondering if the rule is required for that purpose. We can test removing it and build artifacts and make sure the java-doc artifacts is ok to keep things simple.
If it is not required by artifacts, I feel we can consider removing it to keep things simple. On Sat, Jun 13, 2020 at 7:17 PM Josh Fischer <j...@joshfischer.io> wrote: > Hi All, > > Sending this again: > > * TLDR; > There is nothing wrong with the IDE setup script. We have a custom > java_doc rule in the code base that is broken since the java 11 upgrade. > We have several bazel targets in the code base that reference this java_doc > rule implemented in the heron code base which causes the setup IDE script > to fail. The build runs successfully, but the rule outputs get put in the > wrong package. My question is: Do we use these java_doc rules for > anything? The website build script generates java docs in a different > way. Can we remove this rule and corresponding targets that reference said > rule or do we try and fix the rule? What value do we get from fixing the > rule? What do we lose if we take the rule out of the code base? > > Basically we are requiring Bazel to generate java docs just to open Heron > in an IDE. I do not feel this right. > > > ** The longer explanation/rambling..... > > I did some looking into the setup script issue. Basically the java_doc > rule is referring to the "java" folder as one of the packages and causing > the IDE setup script to fail. So instead of seeing the package > "org.apache.heron" it sees "java.org.apache.heron" and etc. This > misalignment of packages causes the IDE setup script to run unsuccessfully. > > If you look below I'll copy and paste a few snippets of the build output > that show that it cannot find the correct class in the jar. All classes > not found are the ones in referenced in the pull request above. > > the command I executed was > > $ ./scripts/setup_intellij.sh > > Some of the failing targets were below. The setup script is not failing or > incorrect. It's the jar that is created from the javadocs that cause the > issue. The javadoc jar classes have "java" prepended in their package > names which is what I'm assuming is throwing off the reverse look up for > targets from outputs. The classes in the actual storm compatibility jar > have the correct packages. > > Couldn't get generating target for > > :/storm-compatibility/src/java/heron-storm-javadoc.zip.source/java/storm/trident/spout/ISpoutPartition.java > > scripts/get_all_heron_paths.sh: line 21: ./output/bazel: No such file or > directory > > scripts/get_all_heron_paths.sh: line 21: ./output/bazel: No such file or > directory > > Couldn't get generating target for > > :/storm-compatibility/src/java/heron-storm-javadoc.zip.source/java/storm/trident/state/Serializer.java > > sample classes from the storm compatibility jar is below: > > jar -tf libstorm-compatibility-java.jar > > META-INF/ > > META-INF/MANIFEST.MF > > backtype/ > > backtype/storm/ > > backtype/storm/Config.class > > backtype/storm/Constants.class > > backtype/storm/ILocalCluster.class > > backtype/storm/LocalCluster.class > > backtype/storm/StormSubmitter.classic.class > > backtype/storm/utils/ConfigUtils.class > > backtype/storm/utils/DefaultMaxSpoutPendingTuner.class > > backtype/storm/utils/ListDelegate.class > > backtype/storm/utils/Utils.class > > clojure/ > > clojure/lang/ > > clojure/lang/Atom.class > > org/ > > org/apache/ > > org/apache/storm/ > > org/apache/storm/Config.class > > org/apache/storm/Constants.class > > org/apache/storm/ILocalCluster.class > > org/apache/storm/LocalCluster.class > > org/apache/storm/StormSubmitter.class > > org/apache/storm/topology/ > > org/apache/storm/topology/BasicBoltExecutor.class > > org/apache/storm/topology/BasicOutputCollector.class > > org/apache/storm/topology/BoltDeclarer.class > > org/apache/storm/topology/BoltDeclarerImpl.class > > org/apache/storm/trident/spout/ > > org/apache/storm/trident/spout/ISpoutPart > > > > > output from the java_doc rule zip is below. If you look below the packages > "backtype", "storm", and "clojure" are under the "java" folder which is > incorrect. They should be structured like the files under the "org" > folder. > > heron-storm-javadoc.zip.dir joshfischer$ tree > > . > > ├── allclasses-index.html > > ├── allclasses.html > > ├── allpackages-index.html > > ├── constant-values.html > > ├── deprecated-list.html > > ├── element-list > > ├── help-doc.html > > ├── index-all.html > > ├── index.html > > ├── java > > │ ├── backtype > > │ │ └── storm > > │ │ ├── generated > > │ │ │ ├── package-summary.html > > │ │ │ └── package-tree.html > > │ │ ├── grouping > > │ │ │ ├── package-summary.html > > │ │ │ └── package-tree.html > > │ ├── clojure > > │ │ └── lang > > │ │ ├── package-summary.html > > │ │ └── package-tree.html > > │ └── storm > > │ └── trident > > │ ├── spout > > │ │ ├── package-summary.html > > │ │ └── package-tree.html > > │ └── state > > │ ├── package-summary.html > > │ └── package-tree.html > > > ├── org > > │ └── apache > > │ └── storm > > │ ├── Config.html > > │ ├── Constants.html > > │ ├── ILocalCluster.html > > │ ├── LocalCluster.html > > │ ├── StormSubmitter.html > > │ ├── clojure > > │ │ └── lang > > │ │ ├── Atom.html > > │ │ ├── package-summary.html > > │ │ └── package-tree.html > > On Thu, Jun 11, 2020 at 7:15 PM Josh Fischer <j...@joshfischer.io> wrote: > > > Hi All, > > > > * TLDR; > > There is nothing wrong with the IDE setup script. We have a custom > > java_doc rule in the code base that is broken since the java 11 upgrade. > > We have several bazel targets in the code base that reference this > java_doc > > rule implemented in the heron code base which causes the setup IDE script > > to fail. The build runs successfully, but classes get put in the wrong > > package. My question is: Do we use these java_doc rules for anything? > The > > website build script generates java docs in a different way. Can we > remove > > this rule and corresponding targets that reference said rule or do we try > > and fix the rule? What value do we get from fixing the rule? What do we > > lose if we take it out of the code base? Basically we are requiring > Bazel > > to generate java docs just to open Heron. I do not feel this right. > > > > > > ** The longer explanation/rambling..... > > > > I did some looking into the setup script issue. Basically the java_doc > > rule is referring to the "java" folder as one of the packages and causing > > the build to break. So instead of seeing the package "org.apache.heron" > it > > sees "java.org.apache.heron" and etc. This misalignment of packages > causes > > the IDE setup script to run unsuccessfully. > > > > If you look below I'll copy and paste a few snippets of the build output > > that show that it cannot find the correct class in the jar. All classes > > not found are the ones in referenced in the pull request above. > > > > the command I executed was > > > > $ ./scripts/setup_intellij.sh > > > > Some of the failing targets were below. The setup script is not failing > > or incorrect. It's the jar that is created from the javadocs that cause > > the issue. The javadoc jar classes have "java" prepended in their > package > > names which is what I'm assuming is throwing off the reverse look up for > > targets from outputs. The classes in the actual storm compatibility jar > > have the correct packages. > > > > Couldn't get generating target for > > > :/storm-compatibility/src/java/heron-storm-javadoc.zip.source/java/storm/trident/spout/ISpoutPartition.java > > > > scripts/get_all_heron_paths.sh: line 21: ./output/bazel: No such file or > > directory > > > > scripts/get_all_heron_paths.sh: line 21: ./output/bazel: No such file or > > directory > > > > Couldn't get generating target for > > > :/storm-compatibility/src/java/heron-storm-javadoc.zip.source/java/storm/trident/state/Serializer.java > > > > sample classes from the storm compatibility jar is below: > > > > jar -tf libstorm-compatibility-java.jar > > > > META-INF/ > > > > META-INF/MANIFEST.MF > > > > backtype/ > > > > backtype/storm/ > > > > backtype/storm/Config.class > > > > backtype/storm/Constants.class > > > > backtype/storm/ILocalCluster.class > > > > backtype/storm/LocalCluster.class > > > > backtype/storm/StormSubmitter.classic.class > > > > backtype/storm/utils/ConfigUtils.class > > > > backtype/storm/utils/DefaultMaxSpoutPendingTuner.class > > > > backtype/storm/utils/ListDelegate.class > > > > backtype/storm/utils/Utils.class > > > > clojure/ > > > > clojure/lang/ > > > > clojure/lang/Atom.class > > > > org/ > > > > org/apache/ > > > > org/apache/storm/ > > > > org/apache/storm/Config.class > > > > org/apache/storm/Constants.class > > > > org/apache/storm/ILocalCluster.class > > > > org/apache/storm/LocalCluster.class > > > > org/apache/storm/StormSubmitter.class > > > > org/apache/storm/topology/ > > > > org/apache/storm/topology/BasicBoltExecutor.class > > > > org/apache/storm/topology/BasicOutputCollector.class > > > > org/apache/storm/topology/BoltDeclarer.class > > > > org/apache/storm/topology/BoltDeclarerImpl.class > > > > org/apache/storm/trident/spout/ > > > > org/apache/storm/trident/spout/ISpoutPart > > > > > > > > > > output from the java_doc rule zip is below. If you look below the > > packages "backtype", "storm", and "clojure" are under the "java" folder > > which is incorrect. They should be structured like the files under the > > "org" folder. > > > > heron-storm-javadoc.zip.dir joshfischer$ tree > > > > . > > > > ├── allclasses-index.html > > > > ├── allclasses.html > > > > ├── allpackages-index.html > > > > ├── constant-values.html > > > > ├── deprecated-list.html > > > > ├── element-list > > > > ├── help-doc.html > > > > ├── index-all.html > > > > ├── index.html > > > > ├── java > > > > │ ├── backtype > > > > │ │ └── storm > > > > │ │ ├── generated > > > > │ │ │ ├── package-summary.html > > > > │ │ │ └── package-tree.html > > > > │ │ ├── grouping > > > > │ │ │ ├── package-summary.html > > > > │ │ │ └── package-tree.html > > > > │ ├── clojure > > > > │ │ └── lang > > > > │ │ ├── package-summary.html > > > > │ │ └── package-tree.html > > > > │ └── storm > > > > │ └── trident > > > > │ ├── spout > > > > │ │ ├── package-summary.html > > > > │ │ └── package-tree.html > > > > │ └── state > > > > │ ├── package-summary.html > > > > │ └── package-tree.html > > > > > > ├── org > > > > │ └── apache > > > > │ └── storm > > > > │ ├── Config.html > > > > │ ├── Constants.html > > > > │ ├── ILocalCluster.html > > > > │ ├── LocalCluster.html > > > > │ ├── StormSubmitter.html > > > > │ ├── clojure > > > > │ │ └── lang > > > > │ │ ├── Atom.html > > > > │ │ ├── package-summary.html > > > > │ │ └── package-tree.html > > > > On Wed, Jun 10, 2020 at 11:49 AM Ning Wang <wangnin...@gmail.com> wrote: > > > >> Thanks! > >> > >> On Wed, Jun 10, 2020 at 5:49 AM Josh Fischer <j...@joshfischer.io> > wrote: > >> > >> > Hi All, > >> > > >> > The javadoc issue should be fixed on both the website build and in the > >> code > >> > base build. I believe we have one more issue to fix before we start > the > >> > next release candidate vote. The last issue I can think of is fixing > >> the > >> > IDE setup scripts. I have an idea of how to fix them. It seems that > >> Bazel's > >> > behavior has changed over time resulting in the setup scripts to fail > >> while > >> > doing a reverse lookup on targets when looking at a source file. Once > >> we > >> > have this fixed I think we are good to go. > >> > > >> > Just a note, it might be helpful to note in the next vote to note in > the > >> > email that it takes anywhere from 30 - 45 minutes on a fresh build to > >> > setup eclipse or intellij with Heron. It might save some people some > >> time > >> > during the vote if they do not wish to wait that long to view the > >> codebase > >> > in an IDE. > >> > > >> > - Josh > >> > > >> > > >