-
Notifications
You must be signed in to change notification settings - Fork 25k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add copyright/scope configuration for intellij to Contributing Guide #29688
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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 | |
minimum version that we support is [Eclipse Oxygen][eclipse] (version 4.7). For | ||
IntelliJ, the minimum version that we support is [IntelliJ 2017.2][intellij]. | ||
|
||
### Configuring IDEs And Running Tests | ||
|
||
Eclipse users can automatically configure their IDE: `./gradlew eclipse` | ||
then `File: Import: Existing Projects into Workspace`. Select the | ||
option `Search for nested projects`. Additionally you will want to | ||
|
@@ -144,6 +146,9 @@ For IntelliJ, go to | |
For Eclipse, go to `Preferences->Java->Installed JREs` and add `-ea` to | ||
`VM Arguments`. | ||
|
||
|
||
### Java Language Formatting Guidelines | ||
|
||
Please follow these formatting guidelines: | ||
|
||
* Java indent is 4 spaces | ||
|
@@ -155,6 +160,32 @@ Please follow these formatting guidelines: | |
* 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. | ||
* 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. | ||
|
||
### License Headers | ||
|
||
We require license headers on all Java files. You will notice that all the Java files in | ||
the top-level `x-pack` directory contain a separate license from the rest of the repository. This | ||
directory contains commercial code that is associated with a separate license. It can be helpful | ||
to have the IDE automatically insert the appropriate license header depending which part of the project | ||
contributions are made to. | ||
|
||
#### Intellij: Copyright & Scope Profiles | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (nitpick) Intellij -> IntelliJ everywhere |
||
|
||
To have Intellij insert the correct license, it is necessary to create to copyright profiles. | ||
These may potentially be called `apache2` and `commercial`. These can be created in | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (nitpick) I think it's a bit clearer to use the names There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the existing names There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was hoping to keep the example names as close to the license/copyright they are representing. I think I will leave it to the contributor to decide which name to choose |
||
`Preferences/Settings->Editor->Copyright->Copyright Profiles`. To associate these profiles to | ||
their respective directories, two "Scopes" will need to be created. These can be created in | ||
`Preferences/Settings->Appearances & Behavior->Scopes`. Likewise, we can create a scope, `apache2` with | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In order to access them from the 'Copyright' tab, I had to make sure these scopes were 'shared' (as opposed to 'local'). |
||
the associated pattern of `!file[group:x-pack]:*/`. This pattern will exclude all the files contained in | ||
the `x-pack` directory. The other scope, `commercial`, will have the inverse pattern of `file[group:x-pack]:*/`. | ||
The two scopes, together, should account for all the files in the project. To associate the scopes | ||
with their copyright-profiles, go into `Preferences/Settings->Editor>Copyright` and use the `+` to add | ||
the associations `apache2:apach2` and `commercial:commercial`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. apach2 -> apache2 |
||
|
||
Configuring these options in Intellij can be quite buggy, so do not be alarmed if you have to open/close | ||
the settings window and/or restart Intellij to see your changes take effect. | ||
|
||
### Creating A Distribution | ||
|
||
To create a distribution from the source, simply run: | ||
|
||
```sh | ||
|
@@ -169,6 +200,8 @@ The archive distributions (tar and zip) can be found under: | |
`./distribution/archives/(tar|zip)/build/distributions/` | ||
|
||
|
||
### Running The Full Test Suite | ||
|
||
Before submitting your changes, run the test suite to make sure that nothing is broken, with: | ||
|
||
```sh | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if anyone has an equivalent configuration for Eclipse, that would be awesome to add too cc/ @colings86