-
-
Notifications
You must be signed in to change notification settings - Fork 85
Migrate from Triple-T to Fastlane #476
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
base: master
Are you sure you want to change the base?
Conversation
|
This PR builds correctly, here is the generated apk.
You must be logged in for the link to work. This is an automatic comment created by a Github Action based on a previous Github Action |
| - name: Validate Triple-T files | ||
| uses: TrianguloY/action-validate-Triple-T@v1 | ||
| - name: Validate Fastlane files | ||
| uses: ashutoshgngwr/validate-fastlane-supply-metadata@v2 |
Check warning
Code scanning / Semgrep (reported by Codacy)
An action sourced from a third-party repository on GitHub is not pinned to a full length commit SHA. Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Warning
| @@ -1,11 +1,14 @@ | |||
| name: Validate Triple-T store files | |||
| # use it on your own project: https://github.com/TrianguloY/action-validate-Triple-T | |||
| # A Github Action to statically validate Fastlane metadata for Android (supply) using a simple validation logic written in Golang. | |||
Check notice
Code scanning / Checkov (reported by Codacy)
Ensure top-level permissions are not set to write-all Note
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Markdownlint (reported by Codacy) found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
|
There are still things to do, but looks good for a first start! Thanks! A couple things to clarify:
I would have made a script 😅 not sure if there are automatic tools, but could be worth a look. Still I'll probably check them myself, just in case.
It's true that I prefer a clean history, but in this case this will probably be squashed in the end (this seems like a single 'change' and I'm not sure if it's worth splitting) so don't worry about the branch, make as many commits as you want (the history can be 'cleaned' in the end if needed anyway).
You don't like them 🤔 I honestly don't mind, although the automation for the images would be a nice to have thing (previously they were updated by Ilithy).
Don't worry about this tool. This is an internal script I made to generate the changelog on my computer when I'm creating a release, I run it manually and I'll adapt it myself as needed, you can just ignore it. Btw, I plan to create a release in the following days now that the virustotal v3 branch is ready (I'll merge it on main soon), I don't think this will be ready before that, so probably this will need to be updated with the new version changelog, but I can do it myself if you prefer. |
No, I think it's fine, it's a suggestion from izzy, see last bullet point in formatting descriptions. Still, from what I understood, with fastlane we should be able to generate screenshots for any language automatically, that's why I want to look into gradle plugins. So I don't think the frame will stay even if we wanted to 😅. But I do agree, they look neat in the github readme, maybe another set of screenshots for github?
No worries, I don't expect another release before this is finished, but I'll wait until it is ready to merge to do that. |
|
I was just about opening a PR to send you the fastlane structures we have in place at IzzyOnDroid. Seeing this PR seems stuck a bit, would you want to have ours, even interim? |
|
Hi izzy! |
Then there you go!
None of it here. Took me less than 3 minutes to get the PR ready. Structures are already present on our end, so it's mostly routine. And if you check my activity here for the past 4 weeks or so, you'll find some 300 or so similar PRs 🙈 We're currently performing a huge overhaul at our repo, and getting these metadata upstream where they belong, is part of it. Glad to see it's appreciated, so thanks for the motivation! 🤗 |
|
Hi @IzzySoft, thank you for your help with the structure of fastlane, however I'm a bit confused, your pr only contains the english and german strings, are the other not supported? And what about the changelogs? I'm also concerned about the format of the texts itself, as mantaining them is honestly much harder than a multiline txt file. I've read your documentation and sort of understand it, but I wonder if there is a tool to convert them on-the-fly or something. Perhaps weblate will help with that? (it will need to be configured though). And @PabloOQ, I'm not sure what to say, so first my apologies for being absent (and unfortunately it's probably going to stay this way in the near future 😔) in the end I'm doing this for fun, to work on things I like just for the joy of it, and that means that motivation is a huge factor on whether I'm spending time here or in other projects. The thing is: I expect the rest to do the same. So please don't feel bad if you want to move to other things. You work will always be appreciated, even if it doesn't feel like it. As for this pr (or the one that Izzy prepared) I would like to migrate the format, but unfortunately as I see it now, fastlane provides little benefits and breaks basically everything. This pr description is the perfect example of the extra work that would be required. I'm the stopper, and the issue is: I probably won't spend all my time on this, and if someone else does, I'm not going to like spending time reviewing it. Perhaps the only approach would be to have small changes bit by bit, if that's even possible... Probably not the news you were expecting, but I think I owed you some explanation. |
My PR of course contains only what we have here at IzzyOnDroid. It serves as starter package, you're of course free (and even encouraged) to add other locales and/or elements.
As the documentation explains, we support multiple formats. Feel free switching to what it calls "Markdown Lite", our importer takes care for conversion then. Other places like e.g. F-Droid will probably not, but convert each line break to We might add support for Triple-T at some point here, but then certainly just by handling it as F-Droid does (so e.g. no support for Markdown there). I can however not even give a rough ETA for that… |
No need to apologize, and don't worry, my lack of motivation is totally unrelated to your presence in the project. |
|
@PabloOQ @TrianguloY is there any progress here – or get #513 merged? Would help us at IzzyOnDroid with our current repo reorg 🙏 |
|
@IzzySoft I'm afraid there is no progress, and probably won't be in a long time. Sorry. But I can merge #513 if it really helps you (even if you will be the only one using it for now...I just hope that fdroid doesn't break having both triplet and fastlane). Would that be ok? |
It would help us indeed! For some background: we're planning to make our metadata public in a git repository similar to F-Droid's
The process of fdroidserver in this regard is: first import Triple-T (if it exists), then overwrite it from what is in fastlane (if it exists). So it should not break anything. Just keep in mind that the content from the fastlane tree overrides what might have come from triple-t (e.g. triple-tee
Cannot hurt – always good to have things documented!
From our side: definitely, thanks! And you can add the other parts from this PR later (fastlane validation etc). One last question: are you currently using the triple-t publisher for release management? I don't want to cause you conflicts there. Also, migrating the remaining locales is as easy as moving the files over, so if it's just that, I could add that to my PR if you wish. |
Yes, I'm using it from android studio itself to make it faster than a manual upload. Although I'm still doing it manually on my other apps, so I'm not concerned about that. I'm more concerned about the validations and some files that are referenced in other places. (I think Pablo made a pretty good summary of the changes needed). And for the other locales, if you can add the required files on the pr (without deleting the triplet ones) that would definitely help 🙏 |
|
Would it be OK to simply create copies of the originals then? Easily done that way. You'd just need to remember to update those copies as well then, whenever you update one of the originals. Just asking in advance, to make sure we're on the same boat here. |
That's correct, the files will be duplicated for now, and that's why I'll add the readme. |
|
Done then "over there". For reference: #!/bin/bash
FASTLANE=fastlane/metadata/android
for dir in app/src/main/play/listings/*; do
loc="$(basename $dir)"
mkdir -p "${FASTLANE}/${loc}"
[[ -f "${dir}/title.txt" && ! -f "${FASTLANE}/${loc}/title.txt" ]] && cp "${dir}/title.txt" "${FASTLANE}/${loc}/title.txt"
[[ -f "${dir}/short-description.txt" && ! -f "${FASTLANE}/${loc}/short_description.txt" ]] && cp "${dir}/short-description.txt" "${FASTLANE}/${loc}/short_description.txt"
[[ -f "${dir}/full-description.txt" && ! -f "${FASTLANE}/${loc}/full_description.txt" ]] && cp "${dir}/full-description.txt" "${FASTLANE}/${loc}/full_description.txt"
[[ -f "${dir}/graphics/feature-graphic/featured.png" && ! -f "${FASTLANE}/${loc}/images/featureGraphic.png" ]] && {
mkdir -p "${FASTLANE}/${loc}/images"
cp "${dir}/graphics/feature-graphic/featured.png" "${FASTLANE}/${loc}/images/featureGraphic.png"
}
[[ -f "${dir}/graphics/icon/ic_launcher-playstore.png" && ! -f "${FASTLANE}/${loc}/images/icon.png" ]] && {
mkdir -p "${FASTLANE}/${loc}/images"
cp "${dir}/graphics/icon/ic_launcher-playstore.png" "${FASTLANE}/${loc}/images/icon.png"
}
[[ -d "${dir}/graphics/phone-screenshots" && ! -d "${FASTLANE}/${loc}/images/phoneScreenshots" ]] && {
mkdir -p "${FASTLANE}/${loc}//images/phoneScreenshots"
cp "${dir}/graphics/phone-screenshots/"* "${FASTLANE}/${loc}/images/phoneScreenshots/"
}
done |
this PR provides you with a "fastlane starter package" (as discussed in #476) – to give it into your hands to define how your app is presented, and make it easy to keep descriptions & graphics in sync with your development. Some notes to sum them up in a place easy to find for you: * the [IzzyOnDroid Fastlane Documentation](https://gitlab.com/IzzyOnDroid/repo/-/wikis/Fastlane) can guide you with maintaining the structures here * take special care for limits, e.g. per-release changelogs can have max 500 chars, `full_description.txt` max 4,000 chars, graphics must have specific aspect ratios etc. * you can have "bigger graphics" here; the IoD updater takes care to resize/optimize them as needed * for the `full_description.txt` here I've used HTML compressed into a single line, to prevent the fdroid software converting each line break to a `<br>`. The tags used for this are supported by F-Droid.org as well, and to my knowledge even by PlayStore. * whenever you add a new "type" of metadata that has not been there before (e.g. the first changelog, a featureGraphic if it wasn't yet present), please let us know so we can check and enable it. * Details on all this in the linked documentation. * Once merged, your changes will be synced whenever a new release is pulled in here – to make sure it stays up-to-date with the app itself. * Should you have questions, be welcome to ask 😉 And now: Enjoy! --------- Co-authored-by: TrianguloY <[email protected]>
# Conflicts: # app/src/main/play/release-notes/ar/default.txt # app/src/main/play/release-notes/cs-CZ/default.txt # app/src/main/play/release-notes/de-DE/default.txt # app/src/main/play/release-notes/en-US/default.txt # app/src/main/play/release-notes/es-ES/default.txt # app/src/main/play/release-notes/fa/default.txt # app/src/main/play/release-notes/fr-FR/default.txt # app/src/main/play/release-notes/id/default.txt # app/src/main/play/release-notes/it-IT/default.txt # app/src/main/play/release-notes/iw-IL/default.txt # app/src/main/play/release-notes/ja-JP/default.txt # app/src/main/play/release-notes/nl-NL/default.txt # app/src/main/play/release-notes/no-NO/default.txt # app/src/main/play/release-notes/pl-PL/default.txt # app/src/main/play/release-notes/pt-PT/default.txt # app/src/main/play/release-notes/ru-RU/default.txt # app/src/main/play/release-notes/ta-IN/default.txt # app/src/main/play/release-notes/tr-TR/default.txt # app/src/main/play/release-notes/uk/default.txt # app/src/main/play/release-notes/vi/default.txt # app/src/main/play/release-notes/zh-CN/default.txt # app/src/main/play/release-notes/zh-TW/default.txt # fastlane/metadata/android/de-DE/full_description.txt # fastlane/metadata/android/de-DE/short_description.txt # fastlane/metadata/android/en-US/full_description.txt # fastlane/metadata/android/en-US/images/featureGraphic.png # fastlane/metadata/android/en-US/images/icon.png # fastlane/metadata/android/en-US/short_description.txt
|
I just noticed something. For the english and german locales (the ones you made first) both the full and short descriptions were 'htmlified'. Will this be an issue @IzzySoft? Is it possible to 'htmlified' automatically the other locales? |
|
At IzzyOnDroid, we support Markdown. I've set the importer to use that for URLCheck – so it should work fine on the HTMLified ones, as well as on "plain text" that follows standard Markdown. Just checking some examples now: looks like a few minor additions would be due. For example, taking the spanish full description, the empty lines between the bullet points should be removed, as else each bullet point becomes its own list. Will look a bit "spacy", though not exactly break. Example now: * Desacortador: Utiliza https://unshorten.me/ para desacortar urls remotamente.
* Eliminador de parámetros: Muestra los parámetros individuales decodificados, que puede eliminar o comprobar.
* Módulo de patrones: Comprueba la url con patrones regex que avisa, sugiere o aplica sustituciones. Puede modificar o crear sus propios patrones, o incluso utilizar los creados por otros usuarios.
Los patrones incorporados incluyen:
- Advertencia cuando contiene caracteres no-ascii como letras griegas. Esto puede utilizarse para phishing: googĺe.com vs google.com
- Sugerir la sustitución de "http" por "https".
- Sugerir la sustitución de Youtube, Reddit o Twitter por alternativas respetuosas con la privacidad [desactivado por defecto]should become * Desacortador: Utiliza https://unshorten.me/ para desacortar urls remotamente.
* Eliminador de parámetros: Muestra los parámetros individuales decodificados, que puede eliminar o comprobar.
* Módulo de patrones: Comprueba la url con patrones regex que avisa, sugiere o aplica sustituciones. Puede modificar o crear sus propios patrones, o incluso utilizar los creados por otros usuarios.
Los patrones incorporados incluyen:
- Advertencia cuando contiene caracteres no-ascii como letras griegas. Esto puede utilizarse para phishing: googĺe.com vs google.com
- Sugerir la sustitución de "http" por "https".
- Sugerir la sustitución de Youtube, Reddit o Twitter por alternativas respetuosas con la privacidad [desactivado por defecto]That would also render fine at F-Droid then (which simply replaces each line break with
versus
You see, it's not a "deal breaker", but looks better when adjusted. So no urgency. Could even be a good "first task" for a non-dev contributor: it's rather diligence work, not needing much special knowledge 😉 And it seems to be the same for all locales. Nothing urgent (it still renders OK), but something maybe not to forget. At that task, "emphasizing" can be done as well, by including the corresponding phrases inside Just to make sure, let me generate a fresh index, so I can share a screenshot from our staging area…
I'd say that looks OK, and not to worry at the moment – guess you agree? |
|
PS: feel free to "markdown-ify" en+de if you prefer that (i.e. take the formatting currently used by the other locales). Should you use some translation service (e.g. Weblate), that might be preferable over one-lined-HTML, as it makes translation easier. HTML and Markdown will be handled the same here: we run it through a Markdown processor. So switching between the two is no issue. |
|
I'll convert them to markdown, yes, otherwise weblate will have a hard time with the translation 😅 Thanks for the report! |
|

#425
So, apologies for the delay, life happened the weekend I had planned to do this. After that I couln't finish it and now we are here.
Anyways, I moved the folders by hand, I don't know if there are any tools to do this, I didn't find any, and I wasn't feeling like doing a script. Hopefully there are no mistakes, although there are still things to be done, I'll research on how to solve the issues
Also, I know you don't like many commits on the same PR, but this way it is easier to keep track on what files moves to where.
Resources:
TODO:
tools/fixChangelogs.kts.github/workflows/release.yamlapp/src/main/java/com/trianguloy/urlchecker/activities/AboutActivity.javafastlane/metadata/android/*(and default tofastlane/metadata/android/en-US)