soneta / Soneta.MsBuild.SDK

Sdk stworzone przez firmę Soneta pozwalające automatycznie skonfigurować oraz uzupełnić projekty dodatków o niezbędne elementy potrzebne do współpracy z oprogramowaniem enova.
MIT License
8 stars 12 forks source link

Informacja o posiadaniu starej wersji SDK #35

Closed swiato closed 4 years ago

swiato commented 4 years ago

Issue: #19 Analiza wykonalności - prototyp I.

W poszukiwaniu bardziej optymalnego rozwiązania, znalazłem PR do msbuild'a, który dodaje logikę, która sprawdza numer wersji SDK w pliku global.json, tzw. NuGet-based SDK resolver. Niestety brakuje mi wiedzy, żeby stwierdzić, czy jesteśmy w stanie jakoś wykorzystać to co oni napisali w naszym rozwiązaniu. Jeśli ktoś kompetentniejszy ode mnie chciałby się temu przyjrzeć, poniżej zamieszczam link:

https://github.com/microsoft/msbuild/pull/2850/files

SebastianWabnik commented 4 years ago

w sprawie wydajności - zamienić exe na taska

SebastianWabnik commented 4 years ago
  1. Mechanizm sprawdzania wersji oprzeć o property ( wymyślić nazwę ) - wyłączania i definiowania interwału
  2. Sprawdzamy na modyfikacji pliku
bartcho commented 4 years ago

Parsowanie do System.Version to chyba nie jest dobre rozwiązanie. Wersjonowanie pakietów nuget rządzi się trochę innymi prawami i w wersjach prerelease, a już szczególnie z użyciem gitversioning parsowanie do System.Version kończy się wyjątkami.

swiato commented 4 years ago

@bartcho, a czy masz może jakiś pomysł jak podejść do tego tematu i czym zastąpić podejście z parsowaniem do System.Version?

swiato commented 4 years ago

Ok. Dokonałem korekty wzorca, wg którego będzie parsowany numer wersji:

swiato commented 4 years ago

Na potrzeby mechanizmu weryfikacji wersji Soneta.Sdk wprowadzono dwa nowe parametry:

Oba parametry razem tworzą interwał czasowy, po przekroczeniu którego, podczas builda ponownie nastąpi wykonanie zapytania do serwera (nuget api) o aktualny numer wersji Soneta.Sdk.

swiato commented 4 years ago

Mechanizm weryfikacji wersji zadziała tylko w przypadku, gdy istnieje plik global.json z odpowiednim wpisem dla Soneta.Sdk, zawierającym jego numer wersji. To z nim, porównywany jest numer Sdk pobrany z serwera (nuget api).