* stable-2.16:
CreateProject: Add @UsedAt annotation
ProjectConfig: Add @UsedAt annotation
Use bazelisk as first choice for api.sh
Change screen: Show abbreviated commit sha1 in patch set dropdown
ProjectConfig: Add method to read from repository
Remove buck related entries from .gitignore
Replace references to bazel-genfiles with bazel-bin
Set version to 2.14.21-SNAPSHOT
Change-Id: I45280689a579b0a411832410735ea82c545c8657
* stable-2.15:
Use bazelisk as first choice for api.sh
ProjectConfig: Add method to read from repository
Remove buck related entries from .gitignore
Replace references to bazel-genfiles with bazel-bin
Set version to 2.14.21-SNAPSHOT
Change-Id: Ia6d9fe13f43e85514b6c5dce8cee1670d5dd8f12
* stable-2.14:
Remove buck related entries from .gitignore
Replace references to bazel-genfiles with bazel-bin
Set version to 2.14.21-SNAPSHOT
Change-Id: I078eb9cfedfd1465437ab97af908061e950e35c8
Having a mechanism to discover, install and upgrade plugins
is an expected feature for a core distribution.
Plugin manager has been included since the very beginning in
the binary packages (RPMs and Debs) and in the famous Docker
image that has been pulled over 100k times.
The only place where the plugin-manager is not present is
the WAR package: this proposal fills the gap and aligns the
package with the rest of the current distributions.
Feature: Issue 10717
Change-Id: Ia5b9c74f177aac135100d3cf138a38697a2db0ca
.ijwb is used by bazel intellij plugin to store build status.
Plugin info at: https://github.com/bazelbuild/intellij
Change-Id: Idf4e80f55eb405833068ed8ae6c0cdc4d12d782c
Most references are in documentation and comments. The main
developer-visible behavior change is moving the downloaded artifact
cache from ~/.gerritcodereview/buck-cache to bazel-cache, which will
result in re-downloading dependencies on the next build; this had to
happen sooner or later. Alternatives, which are not worth the effort,
include teaching the scripts to accept both locations, or having it
rearrange and/or symlink directories behind the scenes.
There are just a few references remaining, all of which are intentional:
$ git grep -Pi '\bbuck(lets?)?\b' HEAD
HEAD:java/com/google/gerrit/httpd/raw/StaticModule.java: // https://gerrit-review.googlesource.com/#/c/57570/57/gerrit-httpd/BUCK@32
HEAD:resources/com/google/gerrit/server/mime/mime-types.properties:bucklet = text/x-python
HEAD:resources/com/google/gerrit/server/mime/mime-types.properties:BUCK = text/x-python
Change-Id: Idb93a483451ccf86ba96c379d38008a7894c3f95
* stable-2.15:
Documentation: Wrong field names in ChangeDetail JSON example
Add /.bazel_path to .gitignore
Add /plugins/cookbook-plugin/ to .gitignore
AccountManager: Don't try to lookup external IDs from account index
AccountManager#lookup: Don't use account index to resolve external ID
Change-Id: I97fa645bc007af7494e7a8139c657e0eef964be3
This folder pops up when switching between
master/stable-2.15/stable-2.14 and older stable branches.
Change-Id: I4c3c6e8835de8498a8a35b75eecd607de067eb55
Signed-off-by: Edwin Kempin <ekempin@google.com>
This left some otherwise-empty directories in my source tree after
releasing v2.15-rc2; I would rather have been forced to clean these up.
This only affects maintainers, and only rarely, so the burden of an
occasional "git clean -f -d" is not high.
Change-Id: I70cd8a081d18eed50af006c1ccce4178f0333633
bazel-gerrit depends on the repo's directory name. It is in fact:
bazel-$(basename $PWD).
Just ignore everything that starts with bazel- in the root directory.
Change-Id: I223bd684bff2ab3c25d8131a2cf0a3ccb14ce54f
Change I5fc96bf1f removed the generation of the .primary_build_tool
file and change I3d6b90320 removed the build system abstraction with
the motivation that we now only have one build tool.
However this broke launching the daemon from Eclipse on MacOS, which
now fails because bazel is not on the path and can't be found.
Restore the removed functionality, but rename the file to .bazel_path
Change-Id: Ibd0ec09d3bf47f383ca68a37cca4e81640960416
This was introduced to support both buck and bazel build tools, and
is no longer necessary since we completely dropped buck in favor of
bazel.
Change-Id: I5fc96bf1fc27f20180737fea954e150070e5302f
google-java-format is not uniformly available in package management
systems across OSes. More importantly, we want to make sure that all
contributors are using a standardized version, to avoid unnecessary
changes due to slight differences between versions.
While we're in the dev documentation, link to the Google Java Style
Guide, and remove some wording that is clearly redundant with the style
guide.
Change-Id: Ib14dab2e692339f836083fad08a7a435a2f24470
We still use Buck for the stable branches and when you switch from a
stable branch to the master branch it's annoying that '/buck-out' pops
up as untracked folder.
Change-Id: I2be21286706af6baa07e947cdef3a14666ce7cf2
Signed-off-by: Edwin Kempin <ekempin@google.com>
To guess what build system is used, we create now .primary_build_tool
file in the root of the project during the eclipse classpath generation.
Change the working directory for GWT SDM session to be .gwt_work_dir.
The reason for that Bazel doesn't allow to write to bazel-out.
Change-Id: I984068350244ee9d66807e4bc8c6779b34a26bab
To run the tests:
bazel test //...
To build the Gerrit plugin API, run:
bazel build gerrit-plugin-api:plugin-api_deploy.jar
To build the Gerrit extension API, run:
bazel build gerrit-extension-api:extension-api_deploy.jar
TODOs:
Licenses
Reduce visibility (all public for now)
Generate HTML Documentation
Core plugins
gerrit_plugin() rule to build plugins in tree and standalone modes
GWT UI (only gwt_module() skylark rule is provided, no gwt_binary())
PolyGerrit UI
WAR
Publish artifacts to Maven Central
Ask Bazel team to add Gerrit to their CI on ci.bazel.io
Contributed-By: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: I9a86e670882a44a5c966579cdeb8ed79b1590de3
eml files are generated by IntelliJ as a substitute for .iml files if
the workspace is organized in .classpath files. These should not be
pushed.
Change-Id: If47838a2a58b6d76cd6c68461d54929b0a732234
The new Buck version fixed annoying stdout spamming bug on unit test
failures: [1]. Now we can revert our monkey patching hack to prevent
that.
Since [2] Buck interferes with files in buck-out directory: [3]. Switch
to using eclipse-out directory as Eclipse output directory instead. For
this change it's necessary to clean up buck-out directory, otherwise
`buck test` would fail.
This version also fixed "Python client lost connection" bug: [4].
This reverts commit 94e93aaad22e67b5956627cff1a9cb84d03a29ec.
[1] https://github.com/facebook/buck/issues/505
[2] 35cb495b57
[3] https://github.com/facebook/buck/issues/527
[4] https://github.com/facebook/buck/issues/534
Change-Id: I4cd1a99ce9d0615713c235d873e6cdd61b1854bb
There is no reason to track .DS_Store files here: it's a metadata file
used by the Mac finder to hold info like where icons are located. Add
it to .gitignore to avoid cluttering "git status" output.
Change-Id: I2c59228e48ed8d5ef125d8a694ca05d20b622723
In Eclipse preferences under the Team -> Git -> Project section, if the
"Automatically ignore derived resources by adding them to .gitignore"
option is enabled (which is the default), Eclipse will automatically
add "/bin/" to the .gitignore file.
Update the .gitignore file with this change to prevent Eclipse from
causing unexpected modified files in the git status.
Change-Id: I0cce9dd40183ff93b01cd0b45c383607d48d1af1
The GWT compiler can output a report (or "story of your compile"),
describing the size of the JavaScript and which source classes
contributed to the overall download size. This is useful for
optimizing code splits in Dispatcher, and generally understanding
the impact of linking code together.
Only the "Split Point Report" is created.
The "Compiler Metrics" are not output.
The report is very slow to create, so it is not done by default.
Change-Id: I6ce86d65ee5f3e4bdba573d1f777ccc59767341d
AutoValue[1] is a lightweight annotation-processor-based library for
implementing classes with simple, obvious value semantics.
Add support for AutoValue to build rules and Eclipse project
generation. Buck does not currently have an officially-supported
interface for specifying annotation processor dependencies[2], so we
have to take the slightly ugly approach of monkey-patching
java_library and java_test to add annotation processor arguments to
each rule that requires annotation processing; hopefully this ugliness
can be reduced in the future.
[1] https://github.com/google/auto/tree/master/value
[2] https://github.com/facebook/buck/issues/85
Change-Id: I8b49d6f9f25d61688b667d964848c6ce106ae4ec
* stable-2.9:
Bash: Deploy plugin archetypes to Maven Central
Fix documentation of how to publish artifacts to Maven Central
Buck: Deploy plugin artifacts to Maven Central
Conflicts:
.gitignore
Change-Id: I72aca7e13b55fbbe34bbf00d799a8a05dc96a955
Switch deploying Gerrit extension and plugin API from Google storage
bucket to Maven Central.
To simplify the troubleshooting new trace option was added to
underlying python script. When environment variable VERBOSE=1
is set, then the mvn command is printed to stderr:
VERBOSE=1 buck build api_deploy_oss
Change-Id: I9ebe44ec8aca91aa6b5514f561209e7c50377927
Buck changed export_deps from a boolean to be exported_deps, a list of
dependencies that are to be added to deps and also exported. This
allows libraries to have dependencies for implementation use only, but
not expose them to callers for linkage.
exported_deps aren't transparently transitive anymore. This mostly
impacts the plugin-api:lib rule.
This is the first time Gerrit is using upstream Buck with no patches.
- Java memory settings for Buck can now be supplied in a project
specific file using `.buckjavaargs` in the root directory. The file
replaces the `.buckrc` previously supported by Gerrit's fork.
- Temporary directories for java_application() invoked from genrule()
is now supplied as part of the arguments using $TMP. This removes
one of the patches Gerrit had for Buck.
- Unit tests use the system temporary directory during testing. This
can be faster if the temporary directory is a tmpfs. Unfortunately
not all passing tests clean up after themselves, making it possible
to exhaust system memory and swap with useless tmpfs contents.
Using the system temporary directory for tests removes another patch
Gerrit had on top of Buck.
Change-Id: I3a9fe4aab0a33a8673df727e618122027a742638
genrule() can only produce one output. This is critical to the way
buck caching works for build results. The solution I learned from
the Buck team is to have the genrule() produce a ZIP file containing
all of the outputs, and use a unique genrule() to extract each
output from the ZIP.
Developers can now opt-into the buck cache by writing a local
config file:
cat >.buckconfig.local <<EOF
[cache]
mode = dir
dir = buck-cache
EOF
This can be very useful when switching commits around with GWT UI
code. If the UI code does not modify between commits there is no
rebuild time. If UI code does modify, rebuild time is reduced to
0 when switching back to a prior version you had previously built.
The cache needs local disk, so its not enabled by default.
Change-Id: If8f79637004fbc13ea37c419e5c9bb582a489ab5
Buck upstream now supports a daemon mode[1] which allows BUILD
files to be cached across invocations. This saves considerable
time on startup, especially for no-op incremental builds:
no-op without buckd: 10.6s
no-op with buckd: 5.2s
However the current daemon implementation is insecure. Users
should only run it on dedicated machines where they trust all
other running processes.
Buck now requires Java 7. If it is missing the build will fail.
[1] http://facebook.github.io/buck/command/buckd.html
Change-Id: I55dec63e467f8f4db5a799296fb7f588ce4b2aa1