Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Alle modeller som snakker sammen med backenden bliver genereret ud fra backendens OpenAPI specifikation.

Hvis udvikleren vil opdatere til en ny version af modellerne, skal man først opdatere models-version-config med den version af backenden, er der lavet som modellerne skal generares ud fra (Det er kun versionsnummer, "gm-api-" skal ikke med)
Herefter kører man et autogenererings script til MacOS, som køres ved at anvende følgende scriptfra roden af projektet på følgende måde:

Code Block
languagebash
./generatemodels.sh

Når man kører ./generatemodels.sh, så vil alle disse scriptets dependencies blive tjekket, og hvis at en dependency mangler vil man blive guidet til hvilke kommandoer der skal bruges for at få dem hentet.

...

Library versioner er defineret i dependencies.gradle


Versionering

Appen versioneres efter almindelig major.minor.patch (version code). Projektet er opdelt i moduler, så styring af disse er samlet i root project build.gradle i de to properties navngivet versionName  og versionCode .

Version name er tiltænkt man manuelt opdatere når man laver changes som er passende på en af de tre niveauer.
Version code er IKKE tiltænkt at blive opdateret manuelt, da denne skal opdateres med Fastlane vha. 

fastlane BumpReleaseVersion

(Se forklaring af lane under afsnittet Fastlane)

Tags

Releases af appen markeres med Git tags på formen release/major.minor.patch_versioncode 

Det er ikke tilladt at lave en release, uden der er et tilhørende tag på det commit man bygger fra (Dette er pt. ikke håndhævet ved manuelle byg, så dette er udviklerens eget ansvar at overholde).

Denne regel er indbygget i vores lanes i Fastlane, som et pre-check for at kunne køre de lanes som uploader appen - Heraf grunden til at Fastlane er anbefalt til ditribution.

Distribution

Distribution af test apps til ThePerfectApp (TPA)

...

For at versionen bliver synlig for dem som ønsker at tilgå test-appen, skal versionsnummeret (version code) være højere end det forrige. Denne bliver automatisk inkrementeret for hvert commit der er i git og kan tjekkes ved at bruge kommandoen

...

languagebash

...

Hvis versionsnummeret er lavere end den forrige version vil den blive gemt væk under "Browse all builds" og da TPA linket som set i installationsvejledningen kun bruger nyeste version, vil den aldrig kunne blive hentet .

Manuelt

Hvis man ønsker at uploade et byg manuelt, skal man lave et release-build af den variant man ønsker at uploade. Før dette gøres skal man have en bruger på insp.tpa.io med developer rettigheder.

...

Ved at bruge kommandoen fastlane før man alle de mulige mulige "lanes" frem, som også kan kaldes eksplicit; f.eks. "fastlane uploadTpa"hvor man får nedenstående output.

Code Block
languagebash
fastlane

[09:47:30]: Welcome to fastlane! Here's what your app is set up to do:
+--------+-------------------------------------+--------------------------------------------------------+
|                                        Available lanes to run                                         |
+--------+-------------------------------------+--------------------------------------------------------+
| Number | Lane Name                           | Description                                            |
+--------+-------------------------------------+--------------------------------------------------------+
| 1      | android test          | Runs all the tests         bumpReleaseVersion          | Bump, commit, tag and (optionally) push commit and tag |
| 2      | android uploadForProjectEnvironment | Upload Project Environment version to TPA              |
| 23      | android uploadDevelopuploadForInternalTest       | Upload developInternal Test version to TPA                    |
| 34      | android uploadMock uploadForTest1              | Upload mockTest1 version to TPA                            |
| 45      | android uploadTpauploadForTest2           | Upload all versions| ofUpload theTest2 appversion to TPA   |
| 5      | android deploy        | Deploy a new version to the Google Play |
| 0      | cancel                              | No selection, exit fastlane!                           |
+--------+-------------------------------------+--------------------------------------------------------+
Which number would you like run?


 Lanes

bumpReleaseVersion

Kører 4 operationer

  1. Opdaterer version code ud fra antallet af commits (På tværs af repositoriets branches) og skriver det ind i root projects ./build.gradle 
  2. Commiter koden
  3. Opretter et release tag i git
  4. Giver udvikleren valget om at pushe commitet og det oprettede tag til remote repository

Efter denne operation er kørt (såfremt man valgte at sige ja til pkt. 4), vil det commit man står på være klar til lave en release.

 Release lanes

Fælles for alle release lanes er at de kører en pre_release_actions lane, som sørger for at git er i et korrekt state for at bygge og uploade en release udgave af den valgte flavor.

  1. uploadForProjectEnvironment:
    • Flavor: ProjectEnv
    • TPA Track: ProjectEnv
  2. uploadForInternalTest
    • Flavor: internalTest
    • TPA Track: internalTest
  3. uploadForTest1
    • Flavor: Staging1
    • TPA Track: Test1
  4. uploadForTest2
    • Flavor: Staging2
    • TPA Track: Test2

Release

-