Sist endret: 10. nov. 2024

Oppdatere avhengigheter i app

Hvordan oppdatere avhengigheter i en app.

Appen er avhengig av flere ressurser som ligger utenfor selve appen. Dette inkluderer støttebiblioteker med felles funksjonalitet for alle apper og referanse til appen sin frontend.

Disse avhengighetene er definert noen forskjellige steder i appen, og hver avhengighet refereres til med en spesifikk versjon. Når ressursene oppdateres, publiseres de på nytt som en ny versjon. En ny versjon kommer ofte med ny funksjonalitet eller forbedringer. For at appen skal kunne ta dette i bruk, må man oppdatere hvilken versjon av ressursene appen henter.

Nuget

Nuget er .NET sin package manager, hvor vi publiserer kodebibliotek som brukes av alle appene.

Appen bruker flere støttebiblioteker, som oppdateres fortløpende med forbedringer og ny funksjonalitet. En app refererer til konkrete versjoner av de forskjellige bibliotekene, og disse referansene må oppdateres for å hente inn siste versjon.

Oppgradere til nyeste versjon

Tips: Installer Version Lens-utvidelsen for Visual Studio Code.
Da kan du automatisk se hva som er nyeste versjon av alle pakker når du åpner App.csproj. Støtter også npm.

    • Finn fram referansene til bibliotekene i appen. Referansene til biblioteker ligger i filen App/App.csproj i appens repo.

    F.eks.:

    <ItemGroup>
      <PackageReference Include="Altinn.App.Api" Version="7.15.1" />
      <PackageReference Include="Altinn.App.Core" Version="7.15.1" />
    </ItemGroup>
    
    • Sjekk om det har kommet en oppdatert versjon av bibliotekene:
    • Oppdater de aktuelle referansene til den siste versjonen og lagre filen.
    • Sjekk om det er noen breaking changes ifm endringer i bibliotekene, og gjør ev. endringer som beskrives for å løse ev. problemer. Dette gjelder når det er major-versjonen (det første tallet i versjonen) som er oppdatert.
    • Bygg og deploy appen på nytt.
    • Finn fram referansene til bibliotekene i appen. Referansene til biblioteker ligger i filen App/App.csproj i appens repo.

    F.eks.:

    <ItemGroup>
      <PackageReference Include="Altinn.App.Api" Version="3.0.0" />
      <PackageReference Include="Altinn.App.Common" Version="3.0.0" />
      <PackageReference Include="Altinn.App.PlatformServices" Version="3.0.0" />
      <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.3" />
      <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.2" />
    </ItemGroup>
    

    App frontend

    App frontend lastes inn av appen runtime, via en lenke til javascript-filen som er app frontend. Denne javascript-filen versjoneres ihht. Semantic Versioning:

    Given a version number MAJOR.MINOR.PATCH, increment the:

    MAJOR version when you make incompatible API changes,
    MINOR version when you add functionality in a backwards compatible manner, and
    PATCH version when you make backwards compatible bug fixes.

    Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

    App’en refererer som standard til en major versjon av app frontend, f.eks. versjon 1.x.y. Med mindre det kommer en ny major versjon vil alle oppdateringer med ny minor eller patch versjoner komme med automatisk. Om det kommer en ny major versjon må man eksplisitt oppdatere appen til å referere til denne.

    Dersom man ønsker å referere til en spesifikk versjon av app frontend (f.eks. 1.2.3) så kan dette spesifiseres direkte i url’en som peker på app frontend.

    Oppgradere til nyeste versjon / spesifisere versjon

    Referansen til app frontend ligger i App/views/Home/Index.cshtml.

    Det er 2 referanser som må oppdateres:

    • Referansen til altinn-app-frontend.js-filen som er app frontend koden.
    <script src="https://altinncdn.no/toolkits/altinn-app-frontend/<VERSJONSNUMMER>/altinn-app-frontend.js"></script>
    
    • Referansen til altinn-app-frontend.css som inneholder styling for app frontend.
    <script src="https://altinncdn.no/toolkits/altinn-app-frontend/<VERSJONSNUMMER>/altinn-app-frontend.css"></script>
    

    Søk etter filnavnet (altinn-app-frontend.js eller altinn-app-frontend.css) og erstatt versjonsnummeret (f.eks. 1) med ønsket versjonsnummer (f.eks. 2).

    Husk: Dersom man setter kun major versjon (f.eks. 2), så vil alle oppdateringer innenfor denne major versjoner (bugfix, ny funksjonalitet som ikke er breaking) komme med automatisk. Dersom man setter en spesifikk versjon (f.eks. 2.0.0) så vil appen hente akkurat denne versjonen, helt til referansen evt. oppdateres til å bruke en annen versjon.

    Deployment

    Deployment utføres ved hjelp av helm charts. Standard deployment oppsett for apps hentes fra altinn-studio sitt helm repository.

    Er du i tvil om du benytter siste deployment strategi kan du følge migreringsguiden her

    For å finne siste versjon av helm-charten kan du enten sjekke releases av charten deployment her eller legge inn helm repoet lokalt og søke i dette på følgende måte:

    # Legg til helm altinn-studio helm repo
    helm repo add altinn-studio https://charts.altinn.studio
    
    # Søk for versjoner av altinn-studio/deployment charten
    helm search repo -l altinn-studio/deployment
    

    Hvis det er ny versjon av helm charten sjekk changelog for å se hva som er oppdatert i versjonen.

    For å ta i bruk en ny versjon oppdater versjon under dependencies i deployment/Chart.yaml

    apiVersion: v1
    description: A Helm chart for Kubernetes
    name: deployment
    version: 1.1.0
    
    dependencies:
    - name: deployment
      repository: https://charts.altinn.studio/
      version: 2.8.0                                <--- Oppdater her