Excuse me for the loaded language. This contains critics and hate vent that some nerds find inappropriate, so approach with caution if you're not prepared to handle that stuff of heavy content to correct me where I wrong.
For a couple of years I am trying not to reinvent the bicycle and just improve the things that already exist, it is not serious, it is just a toy activity for me, because you can learn a lot from past mistakes and approaches.
I must say that this is a distraction from actual work, so nobody approves me studying the code that is so ancient, and especially writing patches for it. I so much hate that atmosphere that I left my job and don't want to get back to it again. It is just too stressful. So imagine my envy and sadness when I see that people can happily spend their time for building such tools. But.. with more and more of there to appear, the envy changes to.. like.. anger? I know that management will likely to approve the work on new tools, but absolutely not interested in improving existing ones, because the challenge of making change to that codebase is usually too high for that company even if it provides benefits for everybody else.
Is that proliferation of build tools adds anything valuable to open source ecosystem? Like working for Google, with contract in which there is no payment - is it what a contribution agreement all about? Erasing people names and placing Google label there - is that the proper crediting for people's work. That's a non technical aspect on how Google participates in open source ecosystem.
Now to the technical side. How that is different from ANY OTHER BUILD TOOL THAT EXISTS in the wild? The mighty Google provides safety shelter for a thousands of most talented designers, user experience specialists, media and marketing, and of course, computer science guys (males and females). And this looks like something that is so weird - no any good comparison, blurred rationale, no presentation or pictures that convey the main idea and problem domain for this specific tool. "Correct, reproducible, fast builds for everyone.", well except for Windows users.
In 2015 if you're a >billion $$ corporation that is putting a new tool to the outside word, there should be some research done, especially if you're Google (because what are other reasons to work for this company?). Research or just user experience about common problem with other tools that this one is going to handle. The World is already using something like CMake, Autotools, premake etc. The honest comparison of advantages and disadvantages of chosen approach, list the key challenges in build tools and how things are handling them. Provide something that people can learn from, some diagrams and pictures that the people outside can not draw themselves in their free time, because there is no such time for you if you're a coder.
I would like to appreciate the benefits of Bazel and compare if the approach is beneficial for anything, but I spend a few minutes browsing the site and I really don't see anything exciting. The arguments like "their feature sets are different, so they aren't viable alternatives for us" leave the impression that it is just another NIH product, and I see no any good excuse to do that. Not anything that would suit Google.
Feel free to prove me that I am wrong.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To post to this group, send email to bazel-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/7900a245-e8b9-4bdd-9bc9-1f3300733c2b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
On Monday, March 30, 2015 at 5:07:54 AM UTC-7, Ulf Adams wrote:
> I'm sorry that our documentation isn't as clear as we'd like it to be.
I, for one, look forward to any sort of improvement in this area. Chief amongst my disappointments in Bazel's documentation is the hand-waving dismissal of (admittedly flawed) make, referring only to the necessity of perfect makefile construction and the famous document "Recursive Make Considered Harmful"; yet there isn't really an explanation of what Bazel does to improve upon make, and how that improvement is realized.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To post to this group, send email to bazel-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/CAFenBsbOa5Yt0o%2B%3DDsz3GQ07tDd-xAT5-aSQQ%2BvXx3PXRqAtbg%40mail.gmail.com.
On Monday, March 30, 2015 at 5:07:54 AM UTC-7, Ulf Adams wrote:
> I'm sorry that our documentation isn't as clear as we'd like it to be.
I, for one, look forward to any sort of improvement in this area. Chief amongst my disappointments in Bazel's documentation is the hand-waving dismissal of (admittedly flawed) make, referring only to the necessity of perfect makefile construction and the famous document "Recursive Make Considered Harmful"; yet there isn't really an explanation of what Bazel does to improve upon make, and how that improvement is realized.
At this time, I agree with Anatoly's assertion of WABT (whoopee! another build tool).
> - Blaze (internally) supports remote execution for everything, including full builds; this, in turn, powers our continuous integration system, static analysis pipeline, code search, and cross referencing systems. This is (close to) zero administration - we can simply use our existing data center machines, with no additional setup or maintenance required. Bazel doesn't support all of this, yet, but it contains much of the necessary infrastructure - it tracks exactly what files are needed for which build steps, it allows checking all required tools into source control, and it can usually determine exactly which build steps can be run independently and which depend on each other (local execution of genrules is very leaky in this respect, but sandboxing helps enforce it).
My casual reading of the unsearchable and unindexed online documentation tells me that perfect build file design and construction are NO less
important for Bazel than they are for make. The instructions (under http://bazel.io/docs/build-ref.html#packages_targets) explain a super simple way to screw up build configuration without knowing anything is wrong. It sure doesn't sound to me like improvement. It just sounds like Same Problem, Different System.
If, by mistake, you refer to testdepot.zip by the wrong label, such as //my/app:testdata/testdepot.zip or//my:app/testdata/testdepot.zip, you will get an error from the build tool saying that the label "crosses a package boundary". You should correct the label by putting the colon after the directory containing the innermost enclosing BUILD file, i.e., //my/app/testdata:testdepot.zip.
Time will tell. I'm neither convinced or even slightly impressed at this point. Many years of doing builds with many different systems just says this is YetAnotherBuild to me.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To post to this group, send email to bazel-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/8c54a0a7-350d-4d4a-973f-1c4d3094414c%40googlegroups.com.
On Tue, Mar 31, 2015 at 2:10 AM, <bocto...@gmail.com> wrote:My casual reading of the unsearchable and unindexed online documentation tells me that perfect build file design and construction are NO lessI'm not sure what you mean with unsearchable and unindexed. What can we change to improve that?
important for Bazel than they are for make. The instructions (under http://bazel.io/docs/build-ref.html#packages_targets) explain a super simple way to screw up build configuration without knowing anything is wrong. It sure doesn't sound to me like improvement. It just sounds like Same Problem, Different System.No system is foolproof, and I don't think that's the right criterium. We have hundreds of thousands of BUILD files, and we have only seen a few outliers which were particularly bad. I'm also not sure what possible screw-up you're referring to with that link.
a has an
actual but undeclared dependency on c."
a to c introduced in Step
2 was properly declared in the BUILD file."On Tuesday, March 31, 2015 at 1:23:13 AM UTC-7, Ulf Adams wrote:On Tue, Mar 31, 2015 at 2:10 AM, <bocto...@gmail.com> wrote:My casual reading of the unsearchable and unindexed online documentation tells me that perfect build file design and construction are NO lessI'm not sure what you mean with unsearchable and unindexed. What can we change to improve that?
Suggested improvment: Put a search tool on the main doc page, since there are multiple pages, so we don't have to search multiple times with browsers. With this, an index is not required. Lacking this, a standard index of clickable terms.
important for Bazel than they are for make. The instructions (under http://bazel.io/docs/build-ref.html#packages_targets) explain a super simple way to screw up build configuration without knowing anything is wrong. It sure doesn't sound to me like improvement. It just sounds like Same Problem, Different System.No system is foolproof, and I don't think that's the right criterium. We have hundreds of thousands of BUILD files, and we have only seen a few outliers which were particularly bad. I'm also not sure what possible screw-up you're referring to with that link.
I was referring to this one, specifically used as an example: "The declared dependencies no longer overapproximate the actual dependencies. This may build ok, because the transitive closures of the two graphs are equal, but masks a problem:ahas an actual but undeclared dependency onc."
Further down: "The declared dependency graph is now an underapproximation of the actual dependencies, even when transitively closed; the build is likely to fail. The problem could have been averted by ensuring that the actual dependency fromatocintroduced in Step 2 was properly declared in the BUILD file."
Again, this sounds like every build system ever introduced. Not a defect in your system, but rather, proof that reinventing the wheel still reveals that flat tires are problematic.
I don't deny Blaze's speed improvements. I see that these systems are heavily dependent on maven and ant, which are known to be problematic with make anyway. Maybe that's why I don't care; I don't work with any teams or projects that depend on them. Would be curious to see if Blaze realized similar speed gains in large builds involving Mono or Xcode. It seems to be a good thing for Google or any company that builds exactly like Google.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To post to this group, send email to bazel-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/2466b961-f8ea-430e-9591-55a492d2de0a%40googlegroups.com.