Nuget
Configuratie van Nuget packages
Automate365 maakt gebruik van twee verschillende Nuget package sources. De eerste is de standaard Nuget package source. De tweede is de Automate365 package source op GitHub. Deze laatste package source bevat alle benodigde packages voor het project.
Om "collitions" tussen de packages te voorkomen, is een package source mapping nodig. Als deze ontbreekt, kan de volgende foutmelding verschijnen:
De package source mapping is reeds gedefinieerd in de NuGet.config file. Deze file is te vinden in de root van het project. Maar voor het (lokaal) gebruik kunnen maken van de packahes op GitHub, moet een PAT (GitHub personal access token) beschikbaar zijn. en zal het volgende element moeten bevatten:
Voor meer info, zie:
https://docs.github.com/en/packages/learn-github-packages/introduction-to-github-packages#authenticating-to-github-packages
https://learn.microsoft.com/en-us/nuget/consume-packages/package-source-mapping
Maandelijkse package updates
De GitHub Actions workflow .github/workflows/monthly-nuget-update-reminder.yml draait op de 1e van elke maand en maakt automatisch een GitHub issue aan als herinnering om de NuGet packages bij te werken. Het issue krijgt een deadline van 14 dagen.
Tool: dotnet-outdated
Voor het scannen van verouderde packages wordt het .NET global tool dotnet-outdated gebruikt. Installeer het eenmalig via:
Solution filter: Automate.active.slnf
Gebruik het solution filter Automate.active.slnf in de root van de repository in plaats van de volledige AutoMate.slnx. Dit filter bevat alleen de actieve (niet-legacy) projecten: ManagementPortal.Website, StatusPage.Website, AutoMate.Api, de testprojecten, AutoMate.API.Shared, AutoMate.API.AFASConnector en de drie API Plugins. Zo worden de legacy Tasks-, Orchestrators- en Connectors-projecten buiten beschouwing gelaten.
Werkwijze
1. Voor-snapshot vastleggen
Exporteer de huidige staat van alle verouderde packages naar een JSON-bestand voordat er iets wordt bijgewerkt:
2. Interactief updaten
Met -u:prompt kan per package worden gekozen welke versie wordt bijgewerkt.
3. Na-snapshot vastleggen
Exporteer de staat na het updaten. Als alles bijgewerkt is, bevat dit bestand alleen nog packages die bewust zijn overgeslagen:
4. Versies bijwerken via Central Package Management
De package versies worden beheerd via Directory.Packages.props bestanden — één per actieve module (bijv. API/Directory.Packages.props). dotnet-outdated past deze bestanden direct aan.
5. Bouwen en testen
Na het updaten: controleer of de oplossing nog bouwt en alle tests slagen.
6. Pull request aanmaken
Maak een PR aan gericht op de develop branch met de bijgewerkte Directory.Packages.props bestanden én de before.json en after.json snapshots. Zo kunnen reviewers precies zien welke packages zijn bijgewerkt en welke bewust zijn overgeslagen.
Let op: breaking changes
Controleer bij major version bumps altijd de changelog van de betreffende package voordat de update wordt geaccepteerd.