diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..7ea28d6 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +## Code of Conduct + +This project and the corresponding community is governed by the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct). Please make sure you read it. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..79db577 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,88 @@ +# Contributing Guidelines + +There are two main ways to contribute to the project — submitting issues and submitting +fixes/changes/improvements via pull requests. + +## Submitting issues + +Both bug reports and feature requests are welcome. +Submit issues [here](https://github.com/JetBrains/mcp-kotlin-sdk/issues). + +* Search for existing issues to avoid reporting duplicates. +* When submitting a bug report: + * Test it against the most recently released version. It might have already been fixed. + * Include the code that reproduces the problem. Provide a minimal, complete, and reproducible example. + * However, don't put off reporting any weird or rarely appearing issues just because you cannot consistently + reproduce them. + * If the bug is related to behavior, explain what behavior you expected and what you got. +* When submitting a feature request: + * Explain why you need the feature — what's your use-case, what's your domain. + * Explaining the problem you face is more important than suggesting a solution. + Even if you don't have a proposed solution, please report your problem. + * If there is an alternative way to do what you need, then show the code of the alternative. + +## Submitting PRs + +We love PRs. Submit PRs [here](https://github.com/JetBrains/mcp-kotlin-sdk/pulls). +However, please keep in mind that maintainers will have to support the resulting code of the project, +so do familiarize yourself with the following guidelines. + +* All development (both new features and bug fixes) is performed in the `main` branch. + * Please base your PRs on the `main` branch. + * PR should be linked with the issue, excluding minor documentation changes, adding unit tests, and fixing typos. +* If you make any code changes: + * Follow the [Kotlin Coding Conventions](https://kotlinlang.org/docs/reference/coding-conventions.html). + * [Build the project](#building) to ensure it all works and passes the tests. +* If you fix a bug: + * Write the test that reproduces the bug. + * Fixes without tests are accepted only in exceptional circumstances if it can be shown that writing the + corresponding test is too hard or otherwise impractical. +* If you introduce any new public APIs: + * All new APIs must come with documentation and tests. + * If you plan API additions, please start by submitting an issue with the proposed API design to gather community + feedback. + * [Contact the maintainers](#contacting-maintainers) to coordinate any great work in advance via submitting an + issue. +* If you fix documentation: + * If you plan extensive rewrites/additions to the docs, then + please [contact the maintainers](#contacting-maintainers) to coordinate the work in advance. + +## Style guides + +A few things to remember: + +* Your code should conform to + the official [Kotlin code style guide](https://kotlinlang.org/docs/reference/coding-conventions.html). + Code style is managed by [EditorConfig](https://www.jetbrains.com/help/idea/editorconfig.html), + so make sure the EditorConfig plugin is enabled in the IDE. +* Every public API (including functions, classes, objects and so on) should be documented, + every parameter, property, return types and exceptions should be described properly. + +## Commit messages + +* Commit messages should be written in English +* They should be written in present tense using imperative mood + ("Fix" instead of "Fixes", "Improve" instead of "Improved"). + Add the related bug reference to a commit message (bug number after a hash character between round braces). + +See [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/) + +## Building + +### Requirements + +* To build MCP Kotlin SDK, JDK version 21 or higher is required. Make sure this is your default JDK (`JAVA_HOME` is set + accordingly) +* The project can be opened in IntelliJ IDEA without additional prerequisites. + +### Building MCP Kotlin SDK from source + +* Run `./gradlew assemble` to build the project and produce the corresponding artifacts. +* Run `./gradlew test` to test the module and speed up development. +* Run `./gradlew build` to build the project, which also runs all the tests. + +## Contacting maintainers + +* If something cannot be done, not convenient, or does not work — submit an [issue](#submitting-issues). +* "How to do something" questions — [StackOverflow](https://stackoverflow.com). +* Discussions and general inquiries — use [KotlinLang Slack](https://kotl.in/slack). diff --git a/README.md b/README.md index 10402c0..19f6921 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ fun Application.module() { ## Contributing -Issues and pull requests are welcome on GitHub at https://github.com/JetBrains/mcp-kotlin-sdk. +Please see the [contribution guide](CONTRIBUTING.md) and the [Code of conduct](CODE_OF_CONDUCT.md) before contributing. ## License