Skip to content

[Ready] Fix/refactor/improve framework restriction system, add performance metrics and pre-load requests - #2336

Merged
matthid merged 49 commits into
masterfrom
fix_restrictions
May 25, 2017
Merged

matthid merged 49 commits into
masterfrom
fix_restrictions

Conversation

@matthid

@matthid matthid commented May 13, 2017 •

Copy link
Copy Markdown
Member

start fixing #2317 because #2333 shows that its relevant.

Changes:

  • Remove all magic version strings
  • Restrictions can now be as complex as wanted - the simplifier almost always makes them look as "simple" as before
  • Changed Syntax in Lockfile from "Framework: " to "Restriction: " in order to be backwards compatible and allow new syntax (see below).
  • Restrictions now work nicely in combination with Portable profiles
  • Removed a various amount of hacks
  • Remove support for V4_Client -> if complains come up we need to find a general solution as -client and -full exists for all framework versions
  • Adds a performance overview.

TODO:

  • Fix tests (part of Parallel requests #2356)
  • Performance
  • Lots of Json Exceptions seem to happen in the background...
  • Write parser for the new syntax
  • Is Syntax OK?

Example:

NUGET
  remote: https://www.nuget.org/api/v2
    CommonServiceLocator (1.3) - restriction: || (== sl5) (>= net40) (>= portable-net45+monoandroid+xamarinios+win8+wp8+wpa81)
    MvvmLightLibs (5.2)
      CommonServiceLocator (>= 1.0) - restriction: || (== net35) (== sl4)
      CommonServiceLocator (>= 1.3) - restriction: || (== sl5) (>= net40) (>= portable-net45+monoandroid+xamarinios+win8+wp8+wpa81)

The general syntax is

  • OP (operand1) (operand2) ... for ||, NOT and && and
  • OP tfm for ==, >= and <.
  • operandN itself can be a operator again, for example || (&& (>= net3) (< net4)) (== sl4)

Future Work:

@forki

forki commented May 14, 2017 via email

Copy link
Copy Markdown
Member

@matthid

matthid commented May 14, 2017

Copy link
Copy Markdown
Member Author

I don't think I can finish this in the next days, it will be quite invasive in the code base (and remove so many hacks that it might hurt). These changes just show the direction it's going.... For now, I just demonstrate how the low-level code is currently broken (and quite a lot of code sits on top of this)

@matthid

matthid commented May 22, 2017

Copy link
Copy Markdown
Member Author

I think this is ready for review. Note that integration-tests probably need to be adapted, but I need some days break from this. If one of you wants to finish this let me know (like I said I think its just fixing the tests). Unittest-suite is green already. See my edited first post for more info.
/cc @cloudRoutine @forki

@forki

forki commented May 23, 2017

Copy link
Copy Markdown
Member

files changed: 80 +2,601 −1,895
ouch

@matthid matthid changed the title [Ready for Review] Fix/refactor/improve framework restriction system [Ready for Review] Fix/refactor/improve framework restriction system, add performance metrics and pre-load requests May 24, 2017
@matthid matthid changed the title [Ready for Review] Fix/refactor/improve framework restriction system, add performance metrics and pre-load requests [Ready] Fix/refactor/improve framework restriction system, add performance metrics and pre-load requests May 24, 2017
@matthid

matthid commented May 24, 2017

Copy link
Copy Markdown
Member Author

I can try to merge and release tomorrow.

@matthid
matthid merged commit e817322 into master May 25, 2017
@matthid
matthid deleted the fix_restrictions branch May 25, 2017 09:30
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

Successfully merging this pull request may close these issues.

2 participants