AutoMate Technisch Help

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:

error NU1507: Warning As Error: There are 2 package sources defined in your configuration. When using central package management, please map your package sources with package source mapping (https://aka.ms/nuget-package-source-mapping) or specify a single package source.

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:

<packageSourceCredentials> <Innovative> <add key="Username" value="[jouw eigen Github handle]" /> <add key="Password" value="[De base64 encoded PAT]" /> </Innovative> </packageSourceCredentials>

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:

dotnet tool install -g dotnet-outdated-tool

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:

dotnet outdated Automate.active.slnf --output before.json

2. Interactief updaten

dotnet outdated Automate.active.slnf -u:prompt

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:

dotnet outdated Automate.active.slnf --output after.json

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.

dotnet build AutoMate.slnx dotnet test AutoMate.slnx

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.

Last modified: 10 June 2026