Buck support was merged as fd6bb9f. We decided to go ahead with this while Shawn was sleeping for two reasons:-It should make people at the hackathon and beyond more productive in the short term (especially those with slow laptops :).-Shawn was adding incremental features that really belonged in new changes. It was becoming difficult to review incremental patch sets.See the linked commit message for details about how to get started with Buck and what features are currently supported.Now, here are the exit criteria we came up with for accepting buck and removing Maven support, within a tentative time horizon of 3 months.
Consider these exit criteria in a draft state and up for discussion. That said, if you have objections to Buck as a whole, please try to state them in terms of specific exit criteria: rather than "this is why I will always hate Buck" or "this is why I will always love Maven," please suggest "in order to accept a Buck-based build, Buck and/or Gerrit need to support X."
1. Windows support.Facebook has an intern who will be working on this. Hopefully they succeed.
2. Bootstrap and stable version support.From a fresh Gerrit clone on a machine without Buck (but with some reasonable subset of Buck's dependencies, e.g. Python 2.7), a new Gerrit developer should be able to set up and start building with Buck by running approximately one command. There should also be some idea of a "stable" version of Buck, even if we just tie our build to specific known-good SHAs. Binary distributions are another plus, which I believe the Buck team has planned.
3. Eclipse support.Much of this is already there. The build needs to be at least as reliable as it is under Maven. (This is kind of a low bar, due to issues like Maven not handling generated Prolog source files or recompiling the GWT source.)
4. Fix all incidental issues.Things come up that don't work. Martin just ran out of file descriptors, which sounds like an upstream bug. I was having problems with non-{dbg,opt} gwtui in Eclipse. Shawn had that bug that he fixed in his fork. We need to fix all of these so that everything works reliably for all core contributors all the time. Also, there should be a consensus that new bugs like this in upstream Buck are not constantly being introduced.
I assumed as much. Again, it's not so much a problem as something I just wanted clarification on. Thanks for the clear answer.
-Chad
--
--
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
buck build apiBUILD FAILED: No directory api when resolving target //api:api in context FULLY_QUALIFIED
It must be possible to build against JARs that are derived from or follow the same path as a Maven-GAV compatible format, and that repository location must be able to be repointed from e.g. repo1.maven.org to an internal repository instead. For example, instead of having an absolute URL of the form ‘http://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar’ in the constructed downloads, it should be possible to use ‘${repo}/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar’ where ${repo} is externally configurable to the build and defaults to http://repo1.maven.org. To allow reproducible builds of upstream source with the same commitid, the overrides file must be settable externally to the files that are checked in to Git; for example, an overrides file in a .gitignore reference, an external Java system property or environment variable.
Alex
--
It must be possible to build against JARs that are derived from or follow the same path as a Maven-GAV compatible format, and that repository location must be able to be repointed from e.g. repo1.maven.org to an internal repository instead. For example, instead of having an absolute URL of the form ‘http://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar’ in the constructed downloads, it should be possible to use ‘${repo}/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar’ where ${repo} is externally configurable to the build and defaults to http://repo1.maven.org. To allow reproducible builds of upstream source with the same commitid, the overrides file must be settable externally to the files that are checked in to Git; for example, an overrides file in a .gitignore reference, an external Java system property or environment variable.
On Thursday, May 09, 2013 04:04:02 PM Dave Borowitz wrote:While I don't have a voice on this, I'd propose a criteria:
> Now, here are the exit criteria we came up with for accepting buck and
> removing Maven support, within a tentative time horizon of 3 months.
* Buck should be packaged in the Debian (and Fedora) archive.
Having Buck in the Debian archive is of course a good thing on its own for
everybody working on a Debian based distribution. An additional benefit are the
sanity checks involved in getting buck accepted in the Debian archive:
- License checks
- All source code of all dependencies available and free? (Remember json.org?)
- Bootstrapable (build Buck without a pre-existing version of Buck)
- Easy hackability of Buck. (If a Debian Maintainer is able to build it, so
are you :-)
> It must be possible to build against JARs that are derived from or follow the same path as a Maven-GAV compatible format, and that repository location must be able to be repointed from e.g. repo1.maven.org to an internal repository instead.
Support for this was merged today [1]. I suggest we can remove it from the list of open exit criteria [2].
While I was documenting how to build plugins I realized the buck build does not have any support for generating a plugin skeleton like Maven does with the archetype framework. Do we need buck to do that?