mirror of https://github.com/apache/druid.git
More TeamCity and Structural Search inspection instructions (#7275)
* More TeamCity and Structural Search inspection instructions * the -> a * an e-mail
This commit is contained in:
parent
0c5dcf5586
commit
a4270da5f3
|
@ -17,16 +17,16 @@
|
|||
~ under the License.
|
||||
-->
|
||||
|
||||
## Overview
|
||||
### Overview
|
||||
TeamCity is a continuous integration and deployment server responsible for
|
||||
static analysis of Druid source code. Each Github PR request for
|
||||
[Druid](https://teamcity.jetbrains.com/project.html?projectId=OpenSourceProjects_Druid)
|
||||
is checked by TeamCity automatically.
|
||||
|
||||
## Login
|
||||
### Login
|
||||
One can log in to TeamCity either via credentials or as a guest to check static analysis result of any PR.
|
||||
|
||||
## Becoming a Project Administrator
|
||||
### Becoming a Project Administrator
|
||||
Druid committers shall obtain a status of a [Druid project](
|
||||
https://teamcity.jetbrains.com/project.html?projectId=OpenSourceProjects_Druid)
|
||||
administrator. First, the Druid committer needs to log in teamcity.jetbrains.com using his Github account.
|
||||
|
@ -39,5 +39,60 @@ Then, somebody who is already a project administrator needs to do the following:
|
|||
5. Press the "Assign roles" button in the bottom of the page
|
||||
6. Select "Role: Project administrator" and "Scope: Open-source project -> Druid" in the inputs, press "Assign"
|
||||
|
||||
## Restarting a Build
|
||||
### Restarting a Build
|
||||
A project administrator could restart a build by pressing the "Run" button on the build page.
|
||||
|
||||
### Contacting TeamCity support regarding problems with builds
|
||||
|
||||
Regarding any build problems, feel free to contact TeamCity support by writing an e-mail at
|
||||
teamcity-support@jetbrains.com. There is an automatic system behind this e-mail address that creates a ticket and sends
|
||||
you an e-mail with a link to the ticket. Note that:
|
||||
|
||||
- Contacting TeamCity support regarding problems with open-source Druid project builds is *free*. Don't hestitate doing
|
||||
that if you don't see how to resolve some problem with a build.
|
||||
- You don't need to be a Druid committer to do this. Any Druid contributor can contact TeamCity support.
|
||||
|
||||
### Creating a custom inspection from a Structural Search pattern
|
||||
|
||||
1. Open a structural search dialog: `Edit` -> `Find` -> `Search Structurally...`
|
||||
|
||||
2. Enter a pattern that you want to make an inspection, for example:
|
||||
![Structural Search dialog](structural_search_dialog.png)
|
||||
|
||||
3. Press the `Find` button to test your pattern:
|
||||
![Structural Search find results](structural_search_find.png)
|
||||
|
||||
Note that even if currently the pattern finds nothing, it might still be a good idea to add it as an inspection to
|
||||
prevent bugs creeping in the codebase in the future. However, test that your pattern doesn't contain mistakes by
|
||||
deliberately adding code with a mistake that should be spotted by the pattern in any existing Druid class and testing
|
||||
that your Structural Search pattern finds that newly added dummy mistake.
|
||||
|
||||
4. Open `Preferences...` -> `Inspections`, navigate to `General` -> `Structural Search inspection`:
|
||||
![Structural Search inspection](structural_search_inspection.png)
|
||||
|
||||
5. Click a button with a plus sign (`+`) in the bottom of the Options window, `Add Search Template...`:
|
||||
![Structural Search inspection add](structural_search_inspection_add.png)
|
||||
|
||||
6. Click `OK`. Then you will see a dialong window with title `Save Template` and a field to enter a "template name".
|
||||
Enter in this field something reasonably short that yet would serve as a good message for people who add code that
|
||||
is caught by this pattern, e. g. "Use Map.putIfAbsent() instead of containsKey() + put()", in this example case. Press
|
||||
`OK` again.
|
||||
|
||||
7. Move focus anywhere, e. g. by choosing any other inspection. Upon doing this, the `Apply` botton should become
|
||||
active:
|
||||
![Inspections change apply](inspections_change_apply.png)
|
||||
|
||||
8. Press the `Apply` button, then `OK` to exit the inspection preferences.
|
||||
|
||||
9. If you did everything right, file `.idea/inspectionProfiles/Druid.xml` should be updated with a new
|
||||
`searchConfiguration` entry, in this example case, the following:
|
||||
```xml
|
||||
<searchConfiguration name="Use Map.putIfAbsent() instead of containsKey() + put()" text="if (!$m$.containsKey($k$)) { $m$.put($k$, $v$); }" recursive="true" caseInsensitive="true" type="JAVA">
|
||||
<constraint name="__context__" target="true" within="" contains="" />
|
||||
<constraint name="m" within="" contains="" />
|
||||
<constraint name="k" within="" contains="" />
|
||||
<constraint name="v" within="" contains="" />
|
||||
</searchConfiguration>
|
||||
```
|
||||
|
||||
Don't forget to include this change in your commit when making a pull-request.
|
Binary file not shown.
After Width: | Height: | Size: 690 KiB |
Binary file not shown.
After Width: | Height: | Size: 208 KiB |
Binary file not shown.
After Width: | Height: | Size: 532 KiB |
Binary file not shown.
After Width: | Height: | Size: 605 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.0 MiB |
Loading…
Reference in New Issue