Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatically release version #2422

Draft
wants to merge 55 commits into
base: develop
Choose a base branch
from

Conversation

validcube
Copy link
Contributor

@validcube validcube commented Oct 25, 2024

Description

This PR automates the release of Lawnicons by running a script written in Python on CI. The script triggers on the first day of the month at UTC time (customisable).

Here's what the script does, first the script will try to get a list of icons from the svgs folder, checkout the previous tag (release), and try to get a list of icons from the svgs folder again, then compare it from current to old tag to get a list of new icons. Not relevant anymore

Here's what the script does, first the script will get a list of drawable from appfilter.xml, checkout the previous tag, and does the same thing, then compare it together to get a list of new icons and linked.

image

image

TODO - P1:

  • Output to CI

TODO - P2:

  • Use appfilter.xml to get list of icons and links
  • Google Play Publishing

TODO - Advisory:

Type of change

❌ Bug fix (non-breaking change which fixes an issue)
✅ General change (non-breaking change that doesn't fit the above categories, such as copyediting)

List of bugs fixed by this PR

@validcube validcube changed the title Release helper Automatically release version Oct 25, 2024
@x9136
Copy link
Collaborator

x9136 commented Oct 25, 2024

Hey!

  1. How does it work according to your idea?
  2. What will it look like?

@validcube
Copy link
Contributor Author

Hey!

  1. How does it work according to your idea?
  2. What will it look like?

The script will do automated release validation on the first day of each month. It checks if there are over 100 new icons in the develop branch by comparing the latest commits to the previous release tag.

If this threshold is met and it’s the first run of the day, the release will be greenlit for publishing (unless the workflow is manually triggered).

https://www.figma.com/slides/KR4epX0MZpr34CmPHGmox8/auto-release?node-id=0-21&t=KfGiLKv5A6DpnnlT-1

On the technical side, the script is overengineered to support GitHub Actions, GitLab CI, and Forgejo; complete with documentation (could be jarring).

It doesn't work on CI yet as I don't know how to push script results to env

Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
@x9136
Copy link
Collaborator

x9136 commented Oct 25, 2024

I wonder what will happen to Lawnicons Nightly after the automatic release.

@validcube
Copy link
Contributor Author

I wonder what will happen to Lawnicons Nightly after the automatic release.

I'm sure that Nightly and automatic release can work together. Lawnicons Nightly will always be the canary branch built daily for users to test out features or (mostly) icons. While automated release will release a new stable version of Lawnicons every month when ready.

This is up to you, but personally, I think Nightly isn't needed, we can release pre-releases for testing as needed by manually triggering the workflow once.

@x9136
Copy link
Collaborator

x9136 commented Oct 25, 2024

I suggest using this template for automatic releases.


Lawnicons 2.13.0 is here!

This release includes ~350 new icons and additional support for ~237 apps thanks to previously added icons. See what icons have been added in the "New icons" section of Lawnicons.

Special thanks to our new contributors: 1, 2, 3.
Note: If there is at least 1 new contributor.

Full changelog: v2.12.0...v2.13.0

@x9136
Copy link
Collaborator

x9136 commented Oct 25, 2024

This is up to you, but personally, I think Nightly isn't needed, we can release pre-releases for testing as needed by manually triggering the workflow once.

I've also been thinking about how it's useful. If you added icons that were missing, or someone added them for you, then the easiest way to install the icons is to download *.apk. There is little point in waiting for the stable release in this case. At the same time, the nighly.link zip-file has several disadvantages. I regularly see how different people give positive reactions to the Lawnicons nightly release.

@validcube
Copy link
Contributor Author

validcube commented Nov 1, 2024

Ignore, vs-code moment

@github-actions github-actions bot added the docs Improvements or additions to documentation. label Nov 1, 2024
Signed-off-by: validcube <[email protected]>
Script Execution UTC Time: null

Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
Signed-off-by: validcube <[email protected]>
@SuperDragonXD
Copy link
Contributor

Just to note: Play Store Lawnicons uses a different signing key (it uses Lawnchair's Play Store signing key) compared to the GitHub version. I have yet to add the play store keys as new secrets in the repository, but I plan to do this soon when I have time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Improvements or additions to documentation.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automate releases
3 participants