Triple-T / gradle-play-publisher

GPP is Android's unofficial release automation Gradle Plugin. It can do anything from building, uploading, and then promoting your App Bundle or APK to publishing app listings and other metadata.
MIT License
4.13k stars 341 forks source link

Question about updating release note and other metadata #986

Closed ArcherEmiya05 closed 3 years ago

ArcherEmiya05 commented 3 years ago

Not defining a release note source will make GPP use the previous one from recent release. In the documentation it says that default.txt is being used across channels except beta which has its own text file but I tried it this month and do not get any default.txt file instead what I got is production.txt which is a specific channel.

Now my question is how can we update release note with GPP? It's a bit not clear to me whether GPP automatically use text file in src/[sourceSet]/play/release-notes/[language]/[track].txt whenever we publish new artifact and if no text file has been detected it will instead use the most recent release note from previous artifact.

Does ./gradlew publishListing reupload all metadata including images? What if screenshots and text like title and long description is not present? Will it use the most recent one just like with release note?

Does gradlew :app:publishReleaseBundle perform publishListing as well and update release note?

SUPERCILEX commented 3 years ago

default.txt is being used across channels except beta which has its own text

That's just an example. The point is to show you that GPP will always pick the local release notes if they are available, meaning there's a release notes file named after the track being operated on. So if you do something with the beta track, the release notes will come from the beta.txt file, but if you do something for another track, the release notes will come from default.txt. If you don't have a default, that's when we'll use release notes from existing releases.

publishListing won't touch aspects of your listing if you don't have those files present. So for example if you don't have tablet screenshots locally, whatever is on the play store will be left alone.

Publishing a bundle or APK uploads release notes, but will not update the listing. You'll have to call the listing task too if you want it all in one go.

github-actions[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

ArcherEmiya05 commented 3 years ago

Hi, I just want to verify if my understanding is correct. All we need is to call ./gradlew publishListing to update meta data on each release by using files stored in app\src\main\play. These include text files like contact-email.txt, contact-phone.txt, and contact-website.txt as well as all files inside listings and release-notes folder. All of these with such rule is being apply where publishListing won't touch aspects of your listing if you don't have those files present.

Also I want to know if there is a convention on naming release notes or we can name it whatever we want.

Example: Internal Release -> internal.txt Open Beta Release -> beta.txt Close (Alpha) Beta Release -> alpha.txt Production Release -> production.txt

SUPERCILEX commented 3 years ago

publishListing does not touch release notes. The release notes folder is only used when publishing a new artifact. And yes, publishListing won't touch things if the files aren't present (though I would recommend running boostrapListing just to be safe).

The release notes naming is explained here (it's not arbitrary).

ArcherEmiya05 commented 3 years ago

arbitrary

When you said publishing new artifact, do you mean by executing ./gradlew :app:publishReleaseBundle? We can only choose between beta and default text?

SUPERCILEX commented 3 years ago

executing ./gradlew :app:publishReleaseBundle

Yes

We can only choose between beta and default text?

If you're publishing to the beta track, then yes. Otherwise the name can be whichever track you're publishing to.

ArcherEmiya05 commented 3 years ago

executing ./gradlew :app:publishReleaseBundle Yes

We can only choose between beta and default text? If you're publishing to the beta track, then yes. Otherwise the name can be whichever track you're publishing to.

publishListing will touch only files inside listing folder, is that correct? Does this mean if one is releasing in beta track (open/close) then have 2 release-notes text file (default.txt, beta.txt) then beta.txt will be use?

ArcherEmiya05 commented 3 years ago

What if I want to release new artifact in internal release and I have these files?

Example: For our Internal Release -> internal.txt For our Open Beta Release -> beta.txt For our Close (Alpha) Beta Release -> alpha.txt For our Production Release -> production.txt

Which one will be use?

And if I want to promote this artifact to production track, what release note text file will be use cause I think it will just use the release note of the track from it was promoted which here is internal?

Same question with other tracks.

Maybe we can specify our release notes file explicitly when publishing and promoting?

SUPERCILEX commented 3 years ago

Correct, internal.txt will be used for both cases. If you want to take release notes from production.txt, you can run ./gradlew promoteRelease --update production.

Maybe we can specify our release notes file explicitly when publishing and promoting?

That could work, though does using --update should solve your problem.

ArcherEmiya05 commented 3 years ago

Correct, internal.txt will be used for both cases. If you want to take release notes from production.txt, you can run ./gradlew promoteRelease --update production.

Maybe we can specify our release notes file explicitly when publishing and promoting?

That could work, though does using --update should solve your problem.

./gradlew promoteRelease --update production the word production here is the track not the release text file correct?

SUPERCILEX commented 3 years ago

Yup.

ArcherEmiya05 commented 1 year ago

Hi @SUPERCILEX, if I have 6 screenshots in store listing and only provide 4 using publishListing. Is the other two screenshots will not be removed? If yes, does it mean we need to manually remove those in the console page?

SUPERCILEX commented 1 year ago

If they are in the same folder, they'll be removed. Otherwise, they won't (though I don't remember if I made incremental compilation behave differently).

ArcherEmiya05 commented 1 year ago

@SUPERCILEX does publishListing or store listing in general have a concept of track as well? If yes, then does promoting an internal track (with updates on store listing) to production track using promoteArtifact will also include the store listing updates or only the artifact itself?

SUPERCILEX commented 1 year ago

Store listings don't have tracks. Promotion will include release notes from less stable tracks.