diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000000..746e26a227 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,86 @@ +name: Bug report for the Element X Android app +description: Report any issues that you have found with the Element X app. Please [check open issues](https://github.com/vector-im/element-x-android/issues) first, in case it has already been reported. +labels: [T-Defect] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + Please report security issues by email to security@matrix.org + - type: textarea + id: reproduction-steps + attributes: + label: Steps to reproduce + description: Please attach screenshots, videos or logs if you can. + placeholder: Tell us what you see! + value: | + 1. Where are you starting? What can you see? + 2. What do you click? + 3. More steps… + validations: + required: true + - type: textarea + id: result + attributes: + label: Outcome + placeholder: Tell us what went wrong + value: | + #### What did you expect? + + #### What happened instead? + validations: + required: true + - type: input + id: device + attributes: + label: Your phone model + placeholder: e.g. Samsung S6 + validations: + required: false + - type: input + id: os + attributes: + label: Operating system version + placeholder: e.g. Android 10.0 + validations: + required: false + - type: input + id: version + attributes: + label: Application version and app store + description: You can find the version information in Settings -> Help & About. + placeholder: e.g. Element X version 1.7.34, olm version 3.2.3 from F-Droid + validations: + required: false + - type: input + id: homeserver + attributes: + label: Homeserver + description: | + Which server is your account registered on? If it is a local or non-public homeserver, please tell us what is the homeserver implementation (ex: Synapse/Dendrite/etc.) and the version. + placeholder: e.g. matrix.org or Synapse 1.50.0rc1 + validations: + required: false + - type: dropdown + id: rageshake + attributes: + label: Will you send logs? + description: | + Did you know that you can shake your phone to submit logs for this issue? Trigger the defect, then shake your phone and you will see a popup asking if you would like to open the bug report screen. Click YES, and describe the issue, mentioning that you have also filed a bug (it's helpful if you can include a link to the bug). Send the report to submit anonymous logs to the developers. + options: + - 'Yes' + - 'No' + validations: + required: true + - type: dropdown + id: pr + attributes: + label: Are you willing to provide a PR? + description: | + Providing a PR can drastically speed up the process of fixing this bug. Don't worry, it's still OK to answer 'No' :). + options: + - 'Yes' + - 'No' + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml new file mode 100644 index 0000000000..0e51d5155e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement.yml @@ -0,0 +1,47 @@ +name: Enhancement request +description: Do you have a suggestion or feature request? +labels: [T-Enhancement] +body: + - type: markdown + attributes: + value: | + Thank you for taking the time to propose an enhancement to an existing feature. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas). + - type: textarea + id: usecase + attributes: + label: Your use case + description: Please feel welcome to include screenshots or mock ups. + placeholder: Tell us what you would like to do! + value: | + #### What would you like to do? + + #### Why would you like to do it? + + #### How would you like to achieve it? + validations: + required: true + - type: textarea + id: alternative + attributes: + label: Have you considered any alternatives? + placeholder: A clear and concise description of any alternative solutions or features you've considered. + validations: + required: false + - type: textarea + id: additional-context + attributes: + label: Additional context + placeholder: Is there anything else you'd like to add? + validations: + required: false + - type: dropdown + id: pr + attributes: + label: Are you willing to provide a PR? + description: | + Don't worry, it's still OK to answer 'No' :). + options: + - 'Yes' + - 'No' + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 0000000000..431c018fdd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,57 @@ + + +## Type of change + +- [ ] Feature +- [ ] Bugfix +- [ ] Technical +- [ ] Other : + +## Content + + + +## Motivation and context + + + +## Screenshots / GIFs + + + + + +## Tests + + + +- Step 1 +- Step 2 +- Step ... + +## Tested devices + +- [ ] Physical +- [ ] Emulator +- OS version(s): + +## Checklist + + + +- [ ] Changes has been tested on an Android device or Android emulator with API 21 +- [ ] UI change has been tested on both light and dark themes +- [ ] Accessibility has been taken into account. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#accessibility +- [ ] Pull request is based on the develop branch +- [ ] Pull request includes a new file under ./changelog.d. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#changelog +- [ ] Pull request includes screenshots or videos if containing UI changes +- [ ] Pull request includes a [sign off](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#sign-off) +- [ ] You've made a self review of your PR diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 3d34d74184..d8a954d0f7 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -15,6 +15,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - name: Install towncrier + run: | + python3 -m pip install towncrier + - name: Prepare changelog file + run: | + mv towncrier.toml towncrier.toml.bak + sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml + rm towncrier.toml.bak + yes n | towncrier build --version nightly - name: Build and upload Nightly APK run: | ./gradlew assembleNightly appDistributionUploadNightly $CI_GRADLE_ARG_PROPERTIES diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9cd7597c84..01b36f2bd4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -93,7 +93,8 @@ android { firebaseAppDistribution { artifactType = "APK" - // releaseNotesFile = TODO + // This file will be generated by the GitHub action + releaseNotesFile = "CHANGES_NIGHTLY.md" groups = "external-testers" // This should not be required, but if I do not add the appId, I get this error: // "App Distribution halted because it had a problem uploading the APK: [404] Requested entity was not found." diff --git a/changelog.d/.gitignore b/changelog.d/.gitignore new file mode 100644 index 0000000000..b722e9e13e --- /dev/null +++ b/changelog.d/.gitignore @@ -0,0 +1 @@ +!.gitignore \ No newline at end of file diff --git a/tools/danger/dangerfile.js b/tools/danger/dangerfile.js index a9be0171d7..ab6495b0c7 100644 --- a/tools/danger/dangerfile.js +++ b/tools/danger/dangerfile.js @@ -43,7 +43,6 @@ if (requiresChangelog) { "doc", "feature", "misc", - "sdk", "wip", ] if (!changelogFiles.every(file => validTowncrierExtensions.includes(file.split(".").pop()))) { @@ -68,13 +67,10 @@ const signOff = "Signed-off-by:" // Please add new names following the alphabetical order. const allowList = [ - "amitkma", "aringenbach", "BillCarsonFr", "bmarty", - "Claire1817", "dependabot[bot]", - "ericdecanini", "fedrunov", "Florian14", "ganfra", @@ -86,7 +82,6 @@ const allowList = [ "manuroe", "mnaturel", "onurays", - "ouchadam", "stefanceriu", "yostyle", ] diff --git a/tools/towncrier/template.md b/tools/towncrier/template.md new file mode 100644 index 0000000000..4e5e96a4ac --- /dev/null +++ b/tools/towncrier/template.md @@ -0,0 +1,36 @@ +{% if top_line %} +{{ top_line }} +{{ top_underline * ((top_line)|length)}} +{% elif versiondata.name %} +{{ versiondata.name }} {{ versiondata.version }} ({{ versiondata.date }}) +{{ top_underline * ((versiondata.name + versiondata.version + versiondata.date)|length + 4)}} +{% else %} +{{ versiondata.version }} ({{ versiondata.date }}) +{{ top_underline * ((versiondata.version + versiondata.date)|length + 3)}} +{% endif %} +{% for section, _ in sections.items() %} +{% set underline = underlines[0] %}{% if section %}{{section}} +{{ underline * section|length }}{% set underline = underlines[1] %} +{% endif %} + +{% if sections[section] %} +{% for category, val in definitions.items() if category in sections[section]%} +{{ definitions[category]['name'] }} +{{ underline * definitions[category]['name']|length }} +{% if definitions[category]['showcontent'] %} +{% for text, values in sections[section][category].items() %} + - {{ text }} ({{ values|join(', ') }}) +{% endfor %} +{% else %} + - {{ sections[section][category]['']|join(', ') }} +{% endif %} +{% if sections[section][category]|length == 0 %} +No significant changes. +{% else %} +{% endif %} + +{% endfor %} +{% else %} +No significant changes. +{% endif %} +{% endfor %} diff --git a/towncrier.toml b/towncrier.toml new file mode 100644 index 0000000000..c9be3af199 --- /dev/null +++ b/towncrier.toml @@ -0,0 +1,31 @@ +[tool.towncrier] + directory = "changelog.d" + filename = "CHANGES.md" + name = "Changes in Element X" + template = "tools/towncrier/template.md" + issue_format = "[#{issue}](https://github.com/vector-im/element-x-android/issues/{issue})" + + [[tool.towncrier.type]] + directory = "feature" + name = "Features ✨" + showcontent = true + + [[tool.towncrier.type]] + directory = "bugfix" + name = "Bugfixes 🐛" + showcontent = true + + [[tool.towncrier.type]] + directory = "wip" + name = "In development 🚧" + showcontent = true + + [[tool.towncrier.type]] + directory = "doc" + name = "Improved Documentation 📚" + showcontent = true + + [[tool.towncrier.type]] + directory = "misc" + name = "Other changes" + showcontent = true