Seal.Net

Indledning

Dette dokument beskriver hvordan man kommer i gang med at tilpasse eller videreudvikle Seal.Net.

Forudsætninger

Der forudsættes erfaring med .NET-udvikling og brug af open source projekter.

Afhængigheder

Seal.Net er bygget på '.NET Standard 2.0'.

Seal.Net

Koden findes i bitbucket:

https://git.nspop.dk/projects/LIB/repos/seal.net/browse

Projektstruktur

Seal.NET er et standard .NET library projekt og indeholder følgende:

Indeholder kildekode for selve biblioteket

Typer der beskriver alle security headers som er defineret i Den Gode Webservice.

Indeholder unit- og integrationstests

Indeholder ældre dokumentation. Findes af historiske årsager.


Installation af .NET

https://dotnet.microsoft.com/en-us/download

Der skal installeres en version 9 af .NET:

Start med at hente seneste version herfra:

https://dotnet.microsoft.com/en-us/download/dotnet/9.0

Installér herefter den downloadede gz-fil:

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-<version>-linux-x64.tar.gz -C $HOME/dotnet 
export DOTNET_ROOT=$HOME/dotnet 
export PATH=$PATH:$HOME/dotnet

Tilføj evt. de to sidste linjer til ~/.bashrc


Byg Seal.NET

Verificer at versionen af .NET er '9.x.y', som er den version SealTest projektet benytter - Seal projektet (som SealTest bruger) er “ligeglad”, da den compiler mod .NET Standard 2.0, som er kompatibel med alle versioner:

dotnet --version

Byg nu Seal.NET:

dotnet build

Kør tests

Inden testene kan afvikles skal følgende certifikater installeres i truststore:

Ubuntu:

sudo apt-get install -y ca-certificates
sudo cp SealTest/Resources/oces3/ca.cer /usr/local/share/ca-certificates/ca.crt
sudo cp SealTest/Resources/SelfSigned.crt /usr/local/share/ca-certificates
sudo update-ca-certificates

Windows:

Importer certifikaterne som Trusted Root Certification Authority med MMC.


Herefter kan alle tests nu afvikles:

dotnet test

Denne kommando bygger først alle projekter, og kører derefter tests.

Releases

Tjek at alle tests kører igennem, og få feature branch merged ind på main.

Herefter skal der laves et tag i git (på main branch) for den pågældende revision på formen 'release-<major>.<minor>.<patch>':

git tag -a release-X.Y.Z -m "SDS-XXXX"

Hvor X.Y.Z skal rettes til versionen, og beskeden til SDS-sagsnummer i Jira.

Opret herefter en release branch, og byg NuGet pakken - se nedenunder (det er denne pakke som uploades til nuget.org, som gør Seal.Net tilgængelig for andre).

Byg af NuGet pakke

En NuGet pakke kan bygges med følgende kommando:

dotnet pack -c release --include-symbols -p:Version=1.2.3

Lig den ind i "Release" mappen og commit denne mappe på tagget:

git add -f ./Seal/bin/Release/Seal.net.X.Y.Z.nupkg
git add -f ./Seal/bin/Release/Seal.net.X.Y.Z.symbols.nupkg

commit -m "SDS-XXXX: nuget pakker tilføjet"
git push

Release note for pakken skrives ind i 'ReleaseNotes.txt'. Projektfilen ('Seal.csproj') er konfigureret til at læse fra denne fil når den pakkes til en NuGet pakke. Der er ikke lavet en aftale om at dette skal gøres, så det er ikke et krav.