You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit introduces a section discussing the ability to define
copyright rules in intellij for inserting the appropriate copyright
headers into files across both apache2-Elasticsearch, as well as the
commercial code under `x-pack`.
Some other re-organization was made to create more sub-structure
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+33Lines changed: 33 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,6 +107,8 @@ We support development in the Eclipse and IntelliJ IDEs. For Eclipse, the
107
107
minimum version that we support is [Eclipse Oxygen][eclipse] (version 4.7). For
108
108
IntelliJ, the minimum version that we support is [IntelliJ 2017.2][intellij].
109
109
110
+
### Configuring IDEs And Running Tests
111
+
110
112
Eclipse users can automatically configure their IDE: `./gradlew eclipse`
111
113
then `File: Import: Existing Projects into Workspace`. Select the
112
114
option `Search for nested projects`. Additionally you will want to
@@ -144,6 +146,9 @@ For IntelliJ, go to
144
146
For Eclipse, go to `Preferences->Java->Installed JREs` and add `-ea` to
145
147
`VM Arguments`.
146
148
149
+
150
+
### Java Language Formatting Guidelines
151
+
147
152
Please follow these formatting guidelines:
148
153
149
154
* Java indent is 4 spaces
@@ -155,6 +160,32 @@ Please follow these formatting guidelines:
155
160
* IntelliJ: `Preferences/Settings->Editor->Code Style->Java->Imports`. There are two configuration options: `Class count to use import with '*'` and `Names count to use static import with '*'`. Set their values to 99999 or some other absurdly high value.
156
161
* Don't worry too much about import order. Try not to change it but don't worry about fighting your IDE to stop it from doing so.
157
162
163
+
### License Headers
164
+
165
+
We require license headers on all Java files. You will notice that all the Java files in
166
+
the top-level `x-pack` directory contain a separate license from the rest of the repository. This
167
+
directory contains commercial code that is associated with a separate license. It can be helpful
168
+
to have the IDE automatically insert the appropriate license header depending which part of the project
169
+
contributions are made to.
170
+
171
+
#### Intellij: Copyright & Scope Profiles
172
+
173
+
To have Intellij insert the correct license, it is necessary to create to copyright profiles.
174
+
These may potentially be called `apache2` and `commercial`. These can be created in
175
+
`Preferences/Settings->Editor->Copyright->Copyright Profiles`. To associate these profiles to
176
+
their respective directories, two "Scopes" will need to be created. These can be created in
177
+
`Preferences/Settings->Appearances & Behavior->Scopes`. Likewise, we can create a scope, `apache2` with
178
+
the associated pattern of `!file[group:x-pack]:*/`. This pattern will exclude all the files contained in
179
+
the `x-pack` directory. The other scope, `commercial`, will have the inverse pattern of `file[group:x-pack]:*/`.
180
+
The two scopes, together, should account for all the files in the project. To associate the scopes
181
+
with their copyright-profiles, go into `Preferences/Settings->Editor>Copyright` and use the `+` to add
182
+
the associations `apache2:apach2` and `commercial:commercial`.
183
+
184
+
Configuring these options in Intellij can be quite buggy, so do not be alarmed if you have to open/close
185
+
the settings window and/or restart Intellij to see your changes take effect.
186
+
187
+
### Creating A Distribution
188
+
158
189
To create a distribution from the source, simply run:
159
190
160
191
```sh
@@ -169,6 +200,8 @@ The archive distributions (tar and zip) can be found under:
0 commit comments