Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent condition generation #1552

Closed
sergey-tihon opened this issue Mar 28, 2016 · 30 comments
Closed

Inconsistent condition generation #1552

sergey-tihon opened this issue Mar 28, 2016 · 30 comments

Comments

@sergey-tihon
Copy link
Member

Almost each time when I call paket.exe install it change my paket.lock file from

CommonServiceLocator (1.3) - framework: >= net40, monoandroid, portable-net45+wp80+wpa81+win+MonoAndroid10+xamarinios10, xamarinios, winv4.5, winv4.5.1, wpv8.1, wpv8.0, sl50

to

CommonServiceLocator (1.3) - framework: >= net40, monoandroid, portable-net45+wp80+wpa81+win+MonoAndroid10+xamarinios10, xamarinios, winv4.5, wpv8.0, sl50

and vise versa.

What actually change most of my csproj files from

When Condition="($(TargetFrameworkIdentifier) == 'WindowsPhoneApp') Or ($(TargetFrameworkIdentifier) == '.NETCore') Or ($(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1')) Or ($(TargetFrameworkIdentifier) == 'Silverlight' And $(TargetFrameworkVersion) == 'v5.0') Or ($(TargetFrameworkIdentifier) == 'WindowsPhone' And $(TargetFrameworkVersion) == 'v8.0') Or ($(TargetFrameworkIdentifier) == 'MonoAndroid') Or ($(TargetFrameworkIdentifier) == 'Xamarin.iOS') Or ($(TargetFrameworkProfile) == 'Profile5') Or ($(TargetFrameworkProfile) == 'Profile6') Or ($(TargetFrameworkProfile) == 'Profile7') Or ($(TargetFrameworkProfile) == 'Profile14') Or ($(TargetFrameworkProfile) == 'Profile19') Or ($(TargetFrameworkProfile) == 'Profile24') Or ($(TargetFrameworkProfile) == 'Profile31') Or ($(TargetFrameworkProfile) == 'Profile32') Or ($(TargetFrameworkProfile) == 'Profile37') Or ($(TargetFrameworkProfile) == 'Profile42') Or ($(TargetFrameworkProfile) == 'Profile44') Or ($(TargetFrameworkProfile) == 'Profile47') Or ($(TargetFrameworkProfile) == 'Profile49') Or ($(TargetFrameworkProfile) == 'Profile78') Or ($(TargetFrameworkProfile) == 'Profile84') Or ($(TargetFrameworkProfile) == 'Profile92') Or ($(TargetFrameworkProfile) == 'Profile102') Or ($(TargetFrameworkProfile) == 'Profile111') Or ($(TargetFrameworkProfile) == 'Profile136') Or ($(TargetFrameworkProfile) == 'Profile147') Or ($(TargetFrameworkProfile) == 'Profile151') Or ($(TargetFrameworkProfile) == 'Profile157') Or ($(TargetFrameworkProfile) == 'Profile158') Or ($(TargetFrameworkProfile) == 'Profile225') Or ($(TargetFrameworkProfile) == 'Profile240') Or ($(TargetFrameworkProfile) == 'Profile255') Or ($(TargetFrameworkProfile) == 'Profile259') Or ($(TargetFrameworkProfile) == 'Profile328') Or ($(TargetFrameworkProfile) == 'Profile336') Or ($(TargetFrameworkProfile) == 'Profile344')"

to

When Condition="($(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1')) Or ($(TargetFrameworkIdentifier) == '.NETCore' And $(TargetFrameworkVersion) == 'v4.5') Or ($(TargetFrameworkIdentifier) == 'Silverlight' And $(TargetFrameworkVersion) == 'v5.0') Or ($(TargetFrameworkIdentifier) == 'WindowsPhone' And $(TargetFrameworkVersion) == 'v8.0') Or ($(TargetFrameworkIdentifier) == 'MonoAndroid') Or ($(TargetFrameworkIdentifier) == 'Xamarin.iOS') Or ($(TargetFrameworkProfile) == 'Profile5') Or ($(TargetFrameworkProfile) == 'Profile6') Or ($(TargetFrameworkProfile) == 'Profile7') Or ($(TargetFrameworkProfile) == 'Profile14') Or ($(TargetFrameworkProfile) == 'Profile19') Or ($(TargetFrameworkProfile) == 'Profile24') Or ($(TargetFrameworkProfile) == 'Profile31') Or ($(TargetFrameworkProfile) == 'Profile32') Or ($(TargetFrameworkProfile) == 'Profile37') Or ($(TargetFrameworkProfile) == 'Profile42') Or ($(TargetFrameworkProfile) == 'Profile44') Or ($(TargetFrameworkProfile) == 'Profile47') Or ($(TargetFrameworkProfile) == 'Profile49') Or ($(TargetFrameworkProfile) == 'Profile78') Or ($(TargetFrameworkProfile) == 'Profile84') Or ($(TargetFrameworkProfile) == 'Profile92') Or ($(TargetFrameworkProfile) == 'Profile102') Or ($(TargetFrameworkProfile) == 'Profile111') Or ($(TargetFrameworkProfile) == 'Profile136') Or ($(TargetFrameworkProfile) == 'Profile147') Or ($(TargetFrameworkProfile) == 'Profile151') Or ($(TargetFrameworkProfile) == 'Profile157') Or ($(TargetFrameworkProfile) == 'Profile158') Or ($(TargetFrameworkProfile) == 'Profile225') Or ($(TargetFrameworkProfile) == 'Profile240') Or ($(TargetFrameworkProfile) == 'Profile255') Or ($(TargetFrameworkProfile) == 'Profile259') Or ($(TargetFrameworkProfile) == 'Profile328') Or ($(TargetFrameworkProfile) == 'Profile336') Or ($(TargetFrameworkProfile) == 'Profile344')"

and vise versa.

It's annoying. Why this happens?

my paket.dependencies file

source https://nuget.org/api/v2

nuget CommandLineParser
nuget DocumentFormat.OpenXml
nuget DotNetZip
nuget MahApps.Metro 1.1.2
nuget MahApps.Metro.Resources 0.4.0
nuget Microsoft.Composition
nuget MvvmLightLibs
nuget NLog
nuget SharpShell
nuget WpfAnimatedGif
nuget squirrel.windows
nuget TaskScheduler

group Build
    source https://nuget.org/api/v2
    nuget FAKE

group Test
    source https://nuget.org/api/v2
    nuget NUnit
    nuget NUnit.Console

My paket.lock file:

NUGET
  remote: https://www.nuget.org/api/v2
  specs:
    CommandLineParser (1.9.71)
    CommonServiceLocator (1.3) - framework: >= net40, monoandroid, portable-net45+wp80+wpa81+win+MonoAndroid10+xamarinios10, xamarinios, winv4.5, wpv8.0, sl50
    DeltaCompressionDotNet (1.0.0)
    DocumentFormat.OpenXml (2.5)
    DotNetZip (1.9.8)
    MahApps.Metro (1.1.2)
    MahApps.Metro.Resources (0.4.0)
      MahApps.Metro (>= 1.0.0)
    Microsoft.Composition (1.0.30)
    Mono.Cecil (0.9.6.1)
    MvvmLightLibs (5.2.0)
      CommonServiceLocator (>= 1.0) - framework: net35, sl40
      CommonServiceLocator (>= 1.3) - framework: >= net40, monoandroid, portable-net45+wp80+wpa81+win+MonoAndroid10+xamarinios10, xamarinios, winv4.5, wpv8.0, sl50
    NLog (4.2.3)
    SharpShell (2.2.0)
    Splat (1.6.2)
    squirrel.windows (1.2.5)
      DeltaCompressionDotNet (>= 1.0.0)
      Mono.Cecil (>= 0.9.6.1)
      Splat (>= 1.6.2)
    TaskScheduler (2.5.16)
    WpfAnimatedGif (1.4.14)

GROUP Build
NUGET
  remote: https://www.nuget.org/api/v2
  specs:
    FAKE (4.22.6)

GROUP Test
NUGET
  remote: https://www.nuget.org/api/v2
  specs:
    NUnit (3.2.0)
    NUnit.Console (3.2.0.1)
      NUnit.ConsoleRunner (3.2.0)
      NUnit.Extension.NUnitProjectLoader (3.2.0)
      NUnit.Extension.NUnitV2Driver (3.2.0)
      NUnit.Extension.NUnitV2ResultWriter (3.2.0)
      NUnit.Extension.VSProjectLoader (3.2.0)
    NUnit.ConsoleRunner (3.2.0)
    NUnit.Extension.NUnitProjectLoader (3.2.0)
    NUnit.Extension.NUnitV2Driver (3.2.0)
    NUnit.Extension.NUnitV2ResultWriter (3.2.0)
    NUnit.Extension.VSProjectLoader (3.2.0)
@sergey-tihon
Copy link
Member Author

May it be because MvvmLightLibs has very interesting dependencies?

image

@forki
Copy link
Member

forki commented Mar 28, 2016

Can you please create an csproj, paket.dependencies + paket.lock
combination that has that issue? Thx
On Mar 28, 2016 13:42, "Sergey Tihon" notifications@github.com wrote:

May it be because MvvmLightLibs
https://www.nuget.org/packages/MvvmLightLibs/ has very interesting
dependencies?

[image: image]
https://cloud.githubusercontent.com/assets/1197905/14077343/405cbc7c-f4f3-11e5-8b82-48e8eaed312e.png


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#1552 (comment)

@sergey-tihon
Copy link
Member Author

Here it is https://github.com/sergey-tihon/paket-MvvmLightLibs

When I call

.paket\paket.bootstrapper.exe
.paket\paket.exe install

Using 2.56.1.0
image

I see
image

@forki
Copy link
Member

forki commented Mar 28, 2016

Thx. Will investigate tomorrow.
On Mar 28, 2016 5:58 PM, "Sergey Tihon" notifications@github.com wrote:

Here it is https://github.com/sergey-tihon/paket-MvvmLightLibs

When I call

.paket\paket.bootstrapper.exe
.paket\paket.exe install

Using 2.56.1.0
[image: image]
https://cloud.githubusercontent.com/assets/1197905/14082103/e18c20b0-f516-11e5-845f-657088aa2ae0.png

I see
[image: image]
https://cloud.githubusercontent.com/assets/1197905/14082130/0080fa54-f517-11e5-8a50-772b5501e83f.png


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#1552 (comment)

@sergey-tihon
Copy link
Member Author

Thank you

@forki
Copy link
Member

forki commented Mar 29, 2016

this is fixed now, but install/update will still change it one more time to a now stable version.

@sergey-tihon
Copy link
Member Author

Thank you!

@forki
Copy link
Member

forki commented Mar 29, 2016

did it work?

@sergey-tihon
Copy link
Member Author

paket.exe install changed project files once, but after paket.exe update I see changes again
image

@forki
Copy link
Member

forki commented Mar 29, 2016

I think the green one after update is correct and should be stable
On Mar 29, 2016 12:38 PM, "Sergey Tihon" notifications@github.com wrote:

paket.exe install changed project files once, but after paket.exe update
I see changes again
[image: image]
https://cloud.githubusercontent.com/assets/1197905/14105304/71cbbb62-f5b3-11e5-981f-980305ac3ad3.png


You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
#1552 (comment)

@sergey-tihon
Copy link
Member Author

It looks strange...
image

@forki
Copy link
Member

forki commented Mar 29, 2016

True. Can you copy and break the existing Integration test?
On Mar 29, 2016 12:41 PM, "Sergey Tihon" notifications@github.com wrote:

It looks strange...
[image: image]
https://cloud.githubusercontent.com/assets/1197905/14105388/f3d32000-f5b3-11e5-8846-07d91c3e66df.png


You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
#1552 (comment)

@sergey-tihon
Copy link
Member Author

paket.exe install change it again
image

@forki
Copy link
Member

forki commented Mar 29, 2016

Sorry buddy. Please try to create yet another integration test. Will fix
asap
On Mar 29, 2016 12:43 PM, "Sergey Tihon" notifications@github.com wrote:

paket.exe install change it again
[image: image]
https://cloud.githubusercontent.com/assets/1197905/14105425/2a96fd46-f5b4-11e5-9282-8e11f886fa9a.png


You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
#1552 (comment)

sergey-tihon added a commit to sergey-tihon/Paket that referenced this issue Mar 29, 2016
@sergey-tihon
Copy link
Member Author

Here it is #1556

Expected string length 509 but was 517. Strings differ at index 230.
Expected: "...5, winv4.5.1, wpv8.0, wpv8.1, sl50\r\n MvvmLightLibs (5.2..."
But was: "...5, winv4.5.1, wpv8.0, wpv8.1, wpv8.1, sl50\r\n MvvmLightL..."
--------------------------------------------^

@forki
Copy link
Member

forki commented Mar 29, 2016

ok, please give it another try

@sergey-tihon
Copy link
Member Author

After paket.exe update I see
image
When I run paket.exe install again - wpav8.1 disappears
image

@forki
Copy link
Member

forki commented Mar 29, 2016

Please try with -f. Maybe now it's an issue with your cache

@sergey-tihon
Copy link
Member Author

Even after update/install steps I see short package versions in spec
image
Is it OK?

@forki
Copy link
Member

forki commented Mar 29, 2016

Making the dependencies requirement with 3 digits is expected and guards you against conflicting responses from multiple source feeds

@forki
Copy link
Member

forki commented Mar 29, 2016

So 3 digits should be stable

@sergey-tihon
Copy link
Member Author

paket.exe install -f:
image
paket.exe update -f:
image
& project files changes

The next paket.exe install removes wpav8.1 again
image

@forki
Copy link
Member

forki commented Mar 29, 2016

dead

sergey-tihon added a commit to sergey-tihon/Paket that referenced this issue Mar 29, 2016
@sergey-tihon
Copy link
Member Author

The good news is that I probably have repro again #1557

@sergey-tihon
Copy link
Member Author

New error (on my machine) is strange ...

Expected string length 515 but was 513. Strings differ at index 86.
Expected: "...\n CommonServiceLocator (1.3.0) - framework: >= net40, m..."
But was: "...\n CommonServiceLocator (1.3) - framework: >= net40, mon..."
---------------------------------------------^

@sergey-tihon
Copy link
Member Author

Ahhh, sorry, forgot to prepare scenarioName
I will try to come up with new repro ...

@forki
Copy link
Member

forki commented Mar 29, 2016

(reverting that change with 3 digits versions)

forki pushed a commit that referenced this issue Mar 29, 2016
@forki forki reopened this Mar 29, 2016
@sergey-tihon
Copy link
Member Author

One more integration test for this issue #1560

@sergey-tihon
Copy link
Member Author

Thank you @forki
It works now !!!

@forki
Copy link
Member

forki commented Mar 30, 2016

ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants