Skip to content

Conversation

@PabloOQ
Copy link
Collaborator

@PabloOQ PabloOQ commented May 16, 2025

#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:

  • Look for gradle plugins/integration
  • Screen capture automation
    • Or at the very least, remove the frame from the current images
  • Modify tools/fixChangelogs.kts
  • Research if missing files are a problem (see)
  • Fix .github/workflows/release.yaml
  • Fix app/src/main/java/com/trianguloy/urlchecker/activities/AboutActivity.java
  • Check if the Changelog module works properly
  • Change store's metadata file mask to fastlane/metadata/android/* (and default to fastlane/metadata/android/en-US)

@github-actions github-actions bot added Github Changes to github thingies (set automatically) Core Change the core code (set automatically) Store file Changes store assets (set automatically) Automation Changes a worflow file (set automatically) labels May 16, 2025
@github-actions
Copy link
Contributor

github-actions bot commented May 16, 2025

This PR builds correctly, here is the generated apk.
This unsigned version can be installed alongside the original app and should only be used for testing the changes, not for daily usage.

Download testing apk

You must be logged in for the link to work.
The link will expire at 2025-10-15T21:59:15Z.


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

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.
@@ -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

Ensure top-level permissions are not set to write-all
Copy link

@github-advanced-security github-advanced-security bot left a 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.

@TrianguloY
Copy link
Owner

There are still things to do, but looks good for a first start! Thanks!

A couple things to clarify:

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

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.

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.

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).

Or at the very least, remove the frame from the current images

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).

Modify tools/fixChangelogs.kts

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.

@PabloOQ
Copy link
Collaborator Author

PabloOQ commented May 19, 2025

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).

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?

but I can do it myself if you prefer.

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.

@IzzySoft
Copy link
Contributor

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?

@PabloOQ
Copy link
Collaborator Author

PabloOQ commented Aug 19, 2025

Hi izzy!
thanks for stopping by. Yeah, sadly I lost all will to complete this 😥, I guess that's how FOSS works, relying on the drive of the developers. So, yours would be greatly appreciated. I apologize for any inconveniences. Thanks!

@IzzySoft
Copy link
Contributor

So, yours would be greatly appreciated.

Then there you go!

I apologize for any inconveniences.

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! 🤗

@TrianguloY
Copy link
Owner

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.
I think it's obvious that I'm very overprotective of my work, and even though I don't mind answering a couple emails or issues, or reviewing minor changes, when doing something feels like a full-time job...it's not fun, and I lose motivation. Your pr unfortunately matched that.
I do intend to merge it eventually, and I'm advancing from time to time, but as I said sometimes it feels like a job, and I already have one of those outside here.
Anyway, just wanted to make it clear, and again apologize for the past months.

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.

@IzzySoft
Copy link
Contributor

your pr only contains the english and german strings, are the other not supported? And what about the changelogs?

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.

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.

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 <br>, which might not entirely reflect what you hope for.

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…

@PabloOQ
Copy link
Collaborator Author

PabloOQ commented Aug 21, 2025

so first my apologies for being absent

No need to apologize, and don't worry, my lack of motivation is totally unrelated to your presence in the project.

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 1, 2025

@PabloOQ @TrianguloY is there any progress here – or get #513 merged? Would help us at IzzyOnDroid with our current repo reorg 🙏

@TrianguloY
Copy link
Owner

@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).
I will add an extra readme file to explain the situation though.

Would that be ok?

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 1, 2025

But I can merge #513 if it really helps you

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 fdroiddata, but we need to cleanup first. I've literally opened hundreds of PRs like that over the past few months, most of them have already been merged. Each merged "Fastlane PR" helps us forward to a "clean repo start".

(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).

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 full-description.txt would be overwritten with fastlane's full_description.txt, and e.g. screenshots would be merged from both ends, with those present in both taken from fastlane). So if you wish to update description or graphics then, better do that in the fastlane tree.

I will add an extra readme file to explain the situation though.

Cannot hurt – always good to have things documented!

Would that be ok?

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.

@TrianguloY
Copy link
Owner

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).
That's why I don't mind, even prefer, to have both triplet and fastlane at the same time, at least for now.

And for the other locales, if you can add the required files on the pr (without deleting the triplet ones) that would definitely help 🙏

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 1, 2025

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.

@TrianguloY
Copy link
Owner

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.

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 1, 2025

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

TrianguloY added a commit that referenced this pull request Oct 1, 2025
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
@TrianguloY
Copy link
Owner

I just noticed something.

For the english and german locales (the ones you made first) both the full and short descriptions were 'htmlified'.
The other locales were not.

Will this be an issue @IzzySoft? Is it possible to 'htmlified' automatically the other locales?

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 1, 2025

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 <br>, and thus had the very same issue already with your Triple-T).


  • 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]

versus


  • 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]

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 <b></b> (Markdown allows that; this is what we call "Markdown Lite" at IzzyOnDroid, as it is fully compatible Markdown, but also understood by e.g. F-Droid which does not support Markdown directly, and thus would render **bold** literally with the asterisks, while making <b>bold</b> indeed bold).

Just to make sure, let me generate a fresh index, so I can share a screenshot from our staging area…

image

I'd say that looks OK, and not to worry at the moment – guess you agree?

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 1, 2025

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.

@TrianguloY
Copy link
Owner

I'll convert them to markdown, yes, otherwise weblate will have a hard time with the translation 😅

Thanks for the report!
Btw: is there a way to see IzzyOndroid with a different locale without changing the computer/browser language? (any url parameter?) Just curious, nothing really necessary.

@IzzySoft
Copy link
Contributor

IzzySoft commented Oct 2, 2025

is there a way to see IzzyOndroid with a different locale without changing the computer/browser language? (any url parameter?)

lang=<locale-as-in-fastlane> – so e.g. for Spanish lang=es-ES, as that's what you've used for the directory name. The UI itself currently only has EN and DE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Automation Changes a worflow file (set automatically) Core Change the core code (set automatically) Github Changes to github thingies (set automatically) Store file Changes store assets (set automatically)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants