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
Before contributing to any Open Source project, it's important to have basic understanding of what the project is about.
96
+
It is advised to try out the project as an end user. This project is a collection of Maven and Gradle plugins for [Kubernetes](https://kubernetes.io/)
97
+
and [Red Hat OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift), it's advised to learn about these
98
+
technologies if you're interested in seriously contributing to the project.
99
+
100
+
You can read some blogs about project or watch videos on [Eclipse JKube YouTube channel](https://www.youtube.com/@jkube) .
101
+
102
+
#### Finding an issue to work on
103
+
104
+
You're free to start with any type of contribution, whether it is documentation or some issue you faced while
105
+
trying out the project. From time to time we create new issues tagged with label [`good first issue`](https://github.com/eclipse-jkube/jkube/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22) .
106
+
107
+
If you're contributing for the first time, we advise to start with a [`first timers only`](https://github.com/eclipse-jkube/jkube/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Afirst-timers-only) issues.
108
+
109
+
These issues are a great way to getting started with project. They are divided into three categories at the moment.
110
+
111
+
##### First Timers Only Issues
112
+
[`first timers only`](https://github.com/eclipse-jkube/jkube/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Afirst-timers-only) issues are usually one line changes that are created for contributors who are contributing to the project for the
113
+
first time. Even if you are quite skilled, please consider doing one issue of this category, to get used to the process (e.g PR creation workflow, ECA commit signoff requirement). After that, you
114
+
are invited to move on up to the more difficult tasks, leaving some of the easy tasks to others so they can get involved and achieve change
115
+
themselves.
116
+
117
+
These issues are aimed for first-time contributors to get acquainted with the project and the Eclipse Foundation contributing policies.
118
+
Users are only allowed to take one of these issues and are also encouraged to tackle one of these before doing more complex code contributions.
119
+
These issues are extremely simple to solve. In general, the code changes are already described in the issue.
120
+
The main purpose is to ensure that contributors have signed an ECA and are familiar with the GitHub pull request procedures.
121
+
122
+
##### Good First Issues
123
+
[`good first issue`](https://github.com/eclipse-jkube/jkube/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22) issues are slightly involved issues that are created for contributors that have already contributed to the project.
124
+
These issues are aimed for users who have already tackled a first-timers-only and would like to continue their contributing journey on the project.
125
+
These issues are slightly more complicated and will require actual work from the contributor.
126
+
The main purpose is for contributors to gain confidence while working on the code-base and to keep them engaged in the project.
127
+
128
+
##### Help Wanted Issues
129
+
[`help wanted`](https://github.com/eclipse-jkube/jkube/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22help+wanted%22) issues are more complex issues created to be picked by contributors familiar with codebase.
130
+
131
+
These issues are more complex and are aimed for regular contributors of the project or people who are familiar with the code-base.
132
+
53
133
#### Code reviews
54
134
55
135
All reviews, including submissions by project members, need to be reviewed before being merged by the project official
# Testing Kubernetes Gradle Plugin in quickstarts/gradle
207
+
cd quickstarts/gradle/spring-boot
208
+
# Edit build.gradle to change Kubernetes Gradle Plugin version to 'x.yz-SNAPSHOT'
209
+
./gradlew k8sResource
210
+
```
211
+
212
+
#### Debugging Plugins
213
+
214
+
##### Maven
215
+
In order to debug Kubernetes Maven Plugin, use `mvnDebug` instead of `mvn` to start debug process:
216
+
```shell
217
+
mvnDebug k8s:resource
218
+
Preparing to execute Maven in debug mode
219
+
Listening for transport dt_socket at address: 8000
220
+
```
221
+
222
+
After starting this session, you would need to connect to this process from your IDE via remote JVM debugging configuration.
223
+
224
+
##### Gradle
225
+
In order to debug Kubernetes Gradle Plugin, use
226
+
```shell
227
+
./gradlew -Dorg.gradle.debug=true k8sResource
228
+
```
229
+
After starting this session, you would need to connect to this process from your IDE via remote JVM debugging configuration.
230
+
231
+
#### GitPod
232
+
65
233
You can also use [Gitpod](https://gitpod.io) to contribute without install anything on your computer. Click [here](https://gitpod.io/#https://github.com/eclipse/jkube) to start a workspace.
66
234
67
235
#### IDE Config and Code Style
@@ -90,3 +258,56 @@ Make sure the Optimize Imports box is ticked, and select the `eclipse.importorde
While working on issue, please try to align your changes with existing coding conventions. Here are some examples:
264
+
265
+
- When adding a new file, please don't forget to add the license header via `mvn -N license:format`
266
+
- Please configure your IDE to not add wildcard imports, we don't use wildcard imports.
267
+
- Please make sure you have verified that project compiles cleanly after running `mvn clean install -DskipTests` (skips tests) and `mvn clean install` (runs all tests).
268
+
- Please properly squash your pull requests before submitting them.
269
+
270
+
#### Commit SignOff
271
+
272
+
Commits should be atomic and semantic. We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
273
+
274
+
Please make sure you have added the `Signed-off-by:` footer in your git commit. In order to do it automatically, use the `--signoff` flag:
275
+
276
+
```shell
277
+
git commit --signoff
278
+
```
279
+
280
+
With this command, git would automatically add a footer by reading your name and email from git config.
281
+
282
+
### Documentation
283
+
284
+
Documentation for Maven/Gradle plugins is available at [Eclipse JKube Website](https://eclipse.dev/jkube/docs/) .
285
+
286
+
- Documentation for JKube core is present in [jkube-kit/doc](https://github.com/eclipse-jkube/jkube/tree/master/jkube-kit/doc)
287
+
- Maven Plugins related documentation is present in [kubernetes-maven-plugin/doc](https://github.com/eclipse-jkube/jkube/tree/master/kubernetes-maven-plugin/doc)
288
+
- Gradle Plugins related documentation is present in [gradle-plugin/doc](https://github.com/eclipse-jkube/jkube/tree/master/gradle-plugin/doc)
289
+
290
+
We convert AsciiDoc to HTML using [AsciiDoc Maven Plugin](https://docs.asciidoctor.org/maven-tools/latest/plugin/introduction/).
291
+
292
+
In order to generate documentation for a single module, run this command:
293
+
```shell
294
+
mvn -Phtml package
295
+
# Check Generated Documentation (Open in Browser)
296
+
ls target/generated-docs/index.html
297
+
target/generated-docs/index.html
298
+
```
299
+
We also have a bash script to generate documentation for all plugins together. You can use it like this:
300
+
301
+
```shell
302
+
sh scripts/generateDoc.sh
303
+
# Check Generated Documentation (Open in Browser)
304
+
ls docs-generated/index.html
305
+
```
306
+
307
+
### Frequently Asked Questions
308
+
309
+
-**Not able to compile project on Windows. Is there any workaround for this?**
310
+
311
+
Our existing test suite is not fully compatible with Windows. Check the [issue for test failures on Windows](https://github.com/eclipse-jkube/jkube/issues/1338).
312
+
In order to work around this, you can use `-DskipTests` flag to skip running tests while compiling project using `mvn clean install`. With this workaround, you should
0 commit comments