Skip to content

Commit e612a65

Browse files
aepflitoddbaert
andauthored
build: change checkstyle to google code format, plus adding spotless (#1121)
Signed-off-by: Simon Schrottner <[email protected]> Co-authored-by: Todd Baert <[email protected]>
1 parent 334b5c2 commit e612a65

File tree

185 files changed

+3955
-3996
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+3955
-3996
lines changed

.editorconfig

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
9+
tab_width = 4
10+
trim_trailing_whitespace = true
11+
12+
ij_continuation_indent_size = 8
13+
14+
[*.md]
15+
max_line_length = off
16+
trim_trailing_whitespace = false
17+
18+
# Following the rules of the Google Java Style Guide.
19+
# See https://google.github.io/styleguide/javaguide.html
20+
[*.java]
21+
max_line_length = 120
22+
23+
ij_java_do_not_wrap_after_single_annotation_in_parameter = true
24+
ij_java_insert_inner_class_imports = false
25+
ij_java_class_count_to_use_import_on_demand = 999
26+
ij_java_names_count_to_use_import_on_demand = 999
27+
ij_java_packages_to_use_import_on_demand = unset
28+
ij_java_imports_layout = $*,|,*
29+
ij_java_doc_align_param_comments = true
30+
ij_java_doc_align_exception_comments = true
31+
ij_java_doc_add_p_tag_on_empty_lines = false
32+
ij_java_doc_do_not_wrap_if_one_line = true
33+
ij_java_doc_keep_empty_parameter_tag = false
34+
ij_java_doc_keep_empty_throws_tag = false
35+
ij_java_doc_keep_empty_return_tag = false
36+
ij_java_doc_preserve_line_breaks = true
37+
ij_java_doc_indent_on_continuation = true
38+
ij_java_keep_control_statement_in_one_line = false
39+
ij_java_keep_blank_lines_in_code = 1
40+
ij_java_align_multiline_parameters = false
41+
ij_java_align_multiline_resources = false
42+
ij_java_align_multiline_for = true
43+
ij_java_space_before_array_initializer_left_brace = true
44+
ij_java_call_parameters_wrap = normal
45+
ij_java_method_parameters_wrap = normal
46+
ij_java_extends_list_wrap = normal
47+
ij_java_throws_keyword_wrap = normal
48+
ij_java_method_call_chain_wrap = normal
49+
ij_java_binary_operation_wrap = normal
50+
ij_java_binary_operation_sign_on_next_line = true
51+
ij_java_ternary_operation_wrap = normal
52+
ij_java_ternary_operation_signs_on_next_line = true
53+
ij_java_keep_simple_methods_in_one_line = true
54+
ij_java_keep_simple_lambdas_in_one_line = true
55+
ij_java_keep_simple_classes_in_one_line = true
56+
ij_java_for_statement_wrap = normal
57+
ij_java_array_initializer_wrap = normal
58+
ij_java_wrap_comments = true
59+
ij_java_if_brace_force = always
60+
ij_java_do_while_brace_force = always
61+
ij_java_while_brace_force = always
62+
ij_java_for_brace_force = always
63+
ij_java_space_after_closing_angle_bracket_in_type_argument = false
64+
65+
[{*.json,*.json5}]
66+
indent_size = 2
67+
tab_width = 2
68+
ij_smart_tabs = false
69+
70+
[*.yaml]
71+
indent_size = 2
72+
tab_width = 2

CONTRIBUTING.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,38 @@ Sample pom.xml:
6666
Any published modules must have documentation in their root directory, explaining the basic purpose of the module as well as installation and usage instructions.
6767
Instructions for how to develop a module should also be included (required system dependencies, instructions for testing locally, etc).
6868

69+
## Code Styles
70+
71+
### Overview
72+
Our project follows strict code formatting standards to maintain consistency and readability across the codebase. We use [Spotless](https://github.com/diffplug/spotless) integrated with the [Palantir Java Format](https://github.com/palantir/palantir-java-format) for code formatting.
73+
74+
**Spotless** ensures that all code complies with the formatting rules automatically, reducing style-related issues during code reviews.
75+
76+
### How to Format Your Code
77+
1. **Before Committing Changes:**
78+
Run the Spotless plugin to format your code. This will apply the Palantir Java Format style:
79+
```bash
80+
mvn spotless:apply
81+
```
82+
83+
2. **Verify Formatting:**
84+
To check if your code adheres to the style guidelines without making changes:
85+
```bash
86+
mvn spotless:check
87+
```
88+
89+
- If this command fails, your code does not follow the required formatting. Use `mvn spotless:apply` to fix it.
90+
91+
### CI/CD Integration
92+
Our Continuous Integration (CI) pipeline automatically checks code formatting using the Spotless plugin. Any code that does not pass the `spotless:check` step will cause the build to fail.
93+
94+
### Best Practices
95+
- Regularly run `mvn spotless:apply` during your work to ensure your code remains aligned with the standards.
96+
- Configure your IDE (e.g., IntelliJ IDEA or Eclipse) to follow the Palantir Java format guidelines to reduce discrepancies during development.
97+
98+
### Support
99+
If you encounter issues with code formatting, please raise a GitHub issue or contact the maintainers.
100+
69101
## Testing
70102

71103
Any published modules must have reasonable test coverage.
@@ -106,4 +138,4 @@ The following vscode settings are recommended (create a workspace settings file
106138
"java.format.settings.url": "${workspaceFolder}/eclipse-java-google-style.xml",
107139
"java.format.enabled": false
108140
}
109-
```
141+
```

0 commit comments

Comments
 (0)