diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..20591a85 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,31 @@ +name: Bug Report +description: Create a report to help reproduce and fix the issue +title: "Bug: " +labels: [ bug ] +body: + - type: input + attributes: + label: Version + description: What version of imgui-java did you use? + validations: + required: true + - type: textarea + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: Tell us what you see! + value: A bug happened! + validations: + required: true + - type: textarea + attributes: + label: Reproduction + description: How did you manage to make the error happen? + placeholder: How did you do it? + validations: + required: true + - type: textarea + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: bash diff --git a/.github/ISSUE_TEMPLATE/missing_bindings.yml b/.github/ISSUE_TEMPLATE/missing_bindings.yml new file mode 100644 index 00000000..23c2488a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/missing_bindings.yml @@ -0,0 +1,38 @@ +name: Missing Bindings +description: Create a report to help reproduce and fix the issue +title: "Missing Bindings: " +labels: [ "missing binding" ] +body: + - type: input + attributes: + label: Version + description: What version of imgui-java did you use? + validations: + required: true + - type: dropdown + attributes: + label: What part of the binding has gaps? + options: + - Dear ImGui + - ImNodes + - imgui-node-editor + - ImGuizmo + - implot + - ImGuiColorTextEdit + - ImGuiFileDialog + - ImGui Club MemoryEditor + validations: + required: true + - type: textarea + attributes: + label: What is missing? + description: Tell us, what part of the API is missing? + placeholder: Tell us what you are missing! + value: Something is missing! + validations: + required: true + - type: markdown + attributes: + value: | + Please, provide additional references like links to a source code of the missing API. + If there are several ways to implement the API, provide a pov of yourself. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..c285db1b --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,26 @@ +# Description + +Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. + +Fixes # (issue) + +## Type of change + +Please check options that are relevant. + +- [ ] Minor changes or tweaks (quality of life stuff) +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +# Checklist: + +- [ ] My code follows the style guidelines of this project +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing unit tests pass locally with my changes +- [ ] Any dependent changes have been merged and published in downstream modules diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e623d479..d15b4fa0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,10 @@ name: CI -on: [push, pull_request] +on: [push] jobs: build-java: strategy: matrix: - os: [ubuntu-20.04, macos-10.15] + os: [ubuntu-latest, macos-latest] name: Build Java runs-on: ${{ matrix.os }} steps: @@ -25,7 +25,7 @@ jobs: FREETYPE_URL: https://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.gz strategy: matrix: - os: [ubuntu-20.04, macos-10.15] + os: [ubuntu-latest, macos-latest] type: [win, linux, mac] freetype: [true, false] include: @@ -36,11 +36,11 @@ jobs: - type: mac expected: /tmp/imgui/libsNative/macosx64/libimgui-java64.dylib exclude: - - os: ubuntu-20.04 + - os: ubuntu-latest type: mac - - os: macos-10.15 + - os: macos-latest type: win - - os: macos-10.15 + - os: macos-latest type: linux name: Build Native (type=${{ matrix.type }}, freetype=${{ matrix.freetype }}) runs-on: ${{ matrix.os }} @@ -58,22 +58,22 @@ jobs: - name: Ant Version run: ant -version - - if: matrix.os == 'ubuntu-20.04' + - if: matrix.os == 'ubuntu-latest' name: Install MinGW-w64/GCC/G++ run: sudo apt install mingw-w64 - - if: matrix.os == 'ubuntu-20.04' && matrix.type == 'linux' && matrix.freetype == true + - if: matrix.os == 'ubuntu-latest' && matrix.type == 'linux' && matrix.freetype == true name: FreeType - Install run: sudo apt install libfreetype6-dev - - if: matrix.os == 'ubuntu-20.04' && matrix.type == 'win' && matrix.freetype == true + - if: matrix.os == 'ubuntu-latest' && matrix.type == 'win' && matrix.freetype == true name: FreeType - Download run: | sudo wget -O /freetype.tar.gz ${{ env.FREETYPE_URL }} sudo mkdir /freetype sudo tar -xzf /freetype.tar.gz -C /freetype --strip-components=1 - - if: matrix.os == 'ubuntu-20.04' && matrix.type == 'win' && matrix.freetype == true + - if: matrix.os == 'ubuntu-latest' && matrix.type == 'win' && matrix.freetype == true name: FreeType - Compile & Install working-directory: /freetype run: | diff --git a/.github/workflows/update_natives.yml b/.github/workflows/update_natives.yml index b634591f..c42e6aa9 100644 --- a/.github/workflows/update_natives.yml +++ b/.github/workflows/update_natives.yml @@ -9,7 +9,7 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: workflow: ci.yml - branch: master + branch: main event: push path: /tmp/artifacts diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..7bb002cd --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +despsolver@gmail.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..080bbaed --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,43 @@ +# Contributing to imgui-java +We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's: + +- Reporting a bug +- Discussing the current state of the code +- Submitting a fix +- Proposing new features +- Becoming a maintainer + +## We Develop with Github +We use github to host code, to track issues and feature requests, as well as accept pull requests. + +## We Use [Github Flow](https://docs.github.com/en/get-started/quickstart/github-flow), So All Code Changes Happen Through Pull Requests +Pull requests are the best way to propose changes to the codebase (we use [Github Flow](https://docs.github.com/en/get-started/quickstart/github-flow)). We actively welcome your pull requests: + +1. Fork the repo and create your branch from `main`. +2. Make sure your code lints. +3. Issue that pull request! + +## Any contributions you make will be under the Apache License 2.0 +In short, when you submit code changes, your submissions are understood to be under the same [Apache-2.0 License](https://choosealicense.com/licenses/apache-2.0/) that covers the project. Feel free to contact the maintainers if that's a concern. + +## Report bugs using Github's [issues](https://github.com/SpaiR/imgui-java/issues) +We use GitHub issues to track public bugs. Report a bug by [opening a new issue](); it's that easy! + +## Write bug reports with detail, background, and sample code +**Great Bug Reports** tend to have: + +- A quick summary and/or background +- Steps to reproduce + - Be specific! + - Give sample code if you can. +- What you expected would happen +- What actually happens +- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) + +People *love* thorough bug reports. I'm not even kidding. + +## Use a Consistent Coding Style +You can run `./gradlew check` to verify your changes beforehand. + +## License +By contributing, you agree that your contributions will be licensed under its Apache-2.0 License.