diff --git a/.github/ISSUE_TEMPLATE.txt b/.github/ISSUE_TEMPLATE.txt deleted file mode 100644 index 2404c33113..0000000000 --- a/.github/ISSUE_TEMPLATE.txt +++ /dev/null @@ -1,17 +0,0 @@ -Please include: - - 1) detailed steps on how to reproduce the bug, preferably with already - existing JUCE code such as the demo plugin or the demo code - 2) the expected behaviour - 3) the operating system - 4) the architecture (32-bit or 64-bit) - 5) a stack trace - if the bug causes a crash - 6) the plugin format (VST2, VST3, AU, AAX, RTAS) - if applicable - 7) which DAW you observed the bug in - if applicable - -Make sure you have pulled the latest commits from the `develop` branch of the -JUCE repo and have re-compiled the Projucer before you submit your bug. Often -we have already fixed the issue but it hasn't yet been released on the `master` -branch. If it's a major bug, which must be hot-fixed immediately, then we will -also accept bug reports for tagged release versions. - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..3b4a7bafab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,95 @@ +name: Bug Report +description: File a bug report +title: "[Bug]: " +body: + - type: markdown + attributes: + value: | + Thank you for reporting an issue with JUCE. + - type: textarea + id: repro + attributes: + label: Detailed steps on how to reproduce the bug + description: If possible please use already existing JUCE code such as the examples or the demo plug-in + validations: + required: true + - type: textarea + id: expected + attributes: + label: What is the expected behaviour? + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating system + description: What operating system do you see the bug on? + multiple: true + options: + - Windows + - macOS + - Linux + - iOS + - Android + - Other + validations: + required: true + - type: textarea + id: osversion + attributes: + label: What version of the operating system? + validations: + required: true + - type: dropdown + id: architecture + attributes: + label: Architecture + description: What type of machine do you see the bug on? + multiple: true + options: + - x86_64 + - ARM + - Other + - 64-bit + - 32-bit + validations: + required: true + - type: textarea + id: stacktrace + attributes: + label: Stacktrace + description: Please copy and paste any relevant stack trace. This will be automatically formatted into code, so no need for backticks. + render: shell + - type: dropdown + id: pluginformat + attributes: + label: Plug-in format (if applicable) + multiple: true + options: + - VST2 + - VST3 + - AU + - AUv3 + - AAX + - LV2 + - Standalone + - type: textarea + id: pluginhost + attributes: + label: Plug-in host application (DAW) (if applicable) + - type: checkboxes + id: developbranch + attributes: + label: Tested against the `develop` branch + description: We have often already fixed bugs on our `develop` branch. Please confirm if you have tested with the latest commit. + options: + - label: I can reproduce the bug on the `develop` branch + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://berlincodeofconduct.org/) + options: + - label: I agree to follow the Code of Conduct + required: true + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..42140a5295 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: JUCE Support + url: https://forum.juce.com/ + about: Please use the JUCE forum to ask questions. + - name: Feature Requests + url: https://forum.juce.com/c/feature-requests + about: Please submit feature requests on the JUCE forum. diff --git a/.github/contributing.md b/.github/contributing.md new file mode 100644 index 0000000000..9ceb06afcc --- /dev/null +++ b/.github/contributing.md @@ -0,0 +1,34 @@ +## Contributing + +#### Feature Requests + +Any feature requests should be posted to the [Feature +Requests](https://forum.juce.com/c/feature-requests/) section of the JUCE +forum. + +#### Bug Reports + +The [JUCE forum](https://forum.juce.com/) is also the best place to file bug +reports. The JUCE developers are very active there and will read every post and +respond accordingly. + +#### Pull Requests + +You must sign the [JUCE Contribution Licence Agreement](https://cla.juce.com/) +before your code can be considered for inclusion into JUCE. The automated build +of your Pull Request (PR) will fail if either the author or committer of any +commits in your PR has not signed the Contribution Licence Agreement. + +This repository contains just the public branches of the main JUCE development +repository. Any work in your PR will not be merged into any other branch in +this repository, but will instead be reproduced in our private repository. We +may refactor and rewite any code submitted to us in PRs. + +All work should be based on our `develop` branch. + +#### Code Of Conduct + +All interactions of any kind with the code in this repository or the +surrounding commentary in Issues or Pull Requests must abide by our [Code of +Conduct](https://berlincodeofconduct.org/). + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..b968c8c061 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,4 @@ +Thank you for submitting a pull request. + +Please make sure you have read and followed our contribution guidelines (.github/contributing.md in this repository). Your pull request will not be accepted if you have not followed the instructions. + diff --git a/.github/workflows/check-cla.yml b/.github/workflows/check-cla.yml new file mode 100644 index 0000000000..9298021f1f --- /dev/null +++ b/.github/workflows/check-cla.yml @@ -0,0 +1,30 @@ +name: check-CLA +on: [pull_request_target] +jobs: + check-cla: + runs-on: ubuntu-latest + env: + PR_NUMBER: ${{ github.event.number }} + steps: + - name: check-CLA + run: | + import urllib.request + import json + import itertools + import sys + def jsonRequest(url, data={}): + req = urllib.request.Request(url, + headers={'Content-Type': 'application/json'}, + data=json.dumps(data).encode('utf-8') if data else None) + with urllib.request.urlopen(req) as response: + return json.loads(response.read().decode('utf-8')) + prCommits = jsonRequest('https://api.github.com/repos/juce-framework/JUCE/pulls/${{ github.event.number }}/commits') + authors = map(lambda commit: [commit['author']['login'], commit['committer']['login']], prCommits) + uniqueAuthors = list(set(itertools.chain.from_iterable(authors))) + print(f'\nPR authors: {", ".join(uniqueAuthors)}') + claResult = jsonRequest('https://cla.juce.com/check', {'logins': uniqueAuthors}) + unsignedLogins = claResult['unsigned'] + if (len(unsignedLogins) != 0): + print(f'\nThe following GitHub users need to sign the JUCE CLA: {", ".join(unsignedLogins)}\n\nPlease go to https://cla.juce.com to sign the JUCE Contributor Licence Agreement\n') + sys.exit(1) + shell: python diff --git a/README.md b/README.md index 89bf552b5a..4198e9c87c 100644 --- a/README.md +++ b/README.md @@ -72,12 +72,7 @@ of the target you wish to build. ## Contributing -For bug reports and features requests, please visit the [JUCE Forum](https://forum.juce.com/) - -the JUCE developers are active there and will read every post and respond accordingly. When -submitting a bug report, please ensure that it follows the -[issue template](/.github/ISSUE_TEMPLATE.txt). -We don't accept third party GitHub pull requests directly due to copyright restrictions -but if you would like to contribute any changes please contact us. +Please see our [contribution guidelines](.github/contributing.md). ## License