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