-
Notifications
You must be signed in to change notification settings - Fork 527
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
Lock file should be more legible #123
Comments
A further example:
Should render as:
This allowed me to manually shrink my
by looking at the first batch |
I agree about the sorting. I thought I had this already fixed. Mhm will
|
I built from source at some point this morning IIRC. No other case-sensitivity issues observed, just sorting in the lock file. Won't get to do proper repro till later but knowing you; things will be long fixed by then! |
Cool, thanks. So, about the grouping idea... Want to keep this issue closed and the list short or want me to edit primary issue to talk only about that ? // cc @agross |
TBH didn't understand the grouping |
@forki GTG, will explain later but will try now. Within groups, you sort alpha. Roots are in first group. Direct deps of that group go into group 2. Recurse until all put into groups and save. |
@forki Right, let's try this... For me, direct references are a lot more interesting than indirect ones. If I'm using WebApi, and there's a top level package that I add, I don't care if there's a If I'm using If WebGrease is using Antlr, I might be interested in that. But not as much as the fact that it was The grouping above stores has the exact same data as the normal lock file, with an extra blank line between the 3-5 groups. Each indent is the same. Each package has the direct depends in the same format nested underneath. Within each group, the sorting is still case insensitive. The only difference is that items that are pulled in by others in earlier groups come later. The stuff at the top is ready to reason about / glance at and/or put at the top of your Questions? (Will be spiking the algorithm if you're not in a position to to/fro right now) |
Another example:
Breaks out as:
|
Actually I think this should be solved via #102 |
Yes, hence "The stuff at the top is ready to reason about / glance at and/or put at the top of your Paket.dependencies " - IOW I agree that the effect of But the Also, doing simplifys aggressively all the time can lose important constraints (you might want to pin a speciific json.net and/or consider something that n packages depend on to actually be a primary reference). |
... googling "legible" .... will be right back .... |
... or do you mean that the work/speccing of the sorting of the lock file should live under that issue? I semi agree but to be honest I'm not interested in complicating that feature unnecessarily - this feature on its own can
legible means "can be read" [by humans] |
Ok let's try to improve the lockfile. How can we make your idea really obvious? I don't think your proposal is atm. |
We kinda did this before... One tension is that trees have redundancy, which doesnt help either the humans or the computer If it's about emitting a treeset, that's probably best achieved by Having said that, one key thing is to have the rendering be stable so that diffs over time can be analysed as clearly as alpha sorting can Let me see if I can do something with nesting all the same though... No - won't work as far too often most stuff at bottom is referenced from very many parents (and the interelationships are not very interesting). Thinking... Tried inverting the tree, but that doesn't make sense either - each package that depends on a package has a versionspec. So yes, json.net is this version, but there are multiple dependees and we are interested in what they depended on etc. More thinking... |
That's what I wanted to hear. ;-) I don't think grouping is the way to go. |
It's looking good (though unexpected, and not a tree (which is not surprising as it's all a graph...)). Processing.... @forki Right, ready for review, grouping or not (please re-read from the top - I've edited each sample and added reasoning as to e.g. why a tree won't really make sense). Have left the workings at the top but I think it will be best to remove them and replace with a desc of the algorithm in English once you, @agross, @ilkerde, @theimowski, @isaacabraham and anyone else with an opinion are agreed. Def interested in getting this assessed and/or refined properly out as I believe this will help a lot to help the product explain itself out in the world without people needing to write (or worse: read :P) docs too much! Anyone have a |
@forki Can you review please when you get a chance? I can log a new issue with a fresh summary of the proposal once we've agreed the basics. |
I do like the idea to make the resolution process visible in the lockfile. But I don't have time to change the lockfile very soon. |
@forki Totally get that and not pushing for it now. And I'm going to add more to the issues list shortly :( However, some things I'll be posting will try to use similar patterns, i.e. if I'm proposing a syntax for adding a reference to a package and this shows that as My proposal will be retty close #125 and as a result has minor implications (really just making it more consistent) for the lockfile, e.g.:
Would change a bit and the So my question is really - at a high level, is there anything you don't like about the formatting:
If you can give that basic reaction, we can let this sit here closed and when it makes sense to revisit the lockfile and/or after it has been visited for a reason we can consider adding this in at that point. |
@forki Should I log a minimal WIP edition of this as an Open issue so others can review/comment? It's kinda in limbo now ? |
Will revise this in light of #154 - will prob do some examples of grouping based on the syntax in it later. |
@forki This one is def superseded by #165 now If you like (i.e., if you ask or if I don't get an ack at some stage), I can translate the other 2 examples into #165 - I think MVC+WebApi is a pretty good example of how much this can clarify matters but IMO the concept is already plenty clear based on the examples there. |
My lock file has:
STEP 1: Enrich with incoming and outgoing edges
(not shown)
STEP 2: Separate into ones with None outgoing edges vs Some (Q: what is best symbol? want an arrow effect like the pipes I have but dont want to clash with equality operators in version specs ...
->
/<-
? Gratuitous unicode symbols?>>
/<<
? @ReedCopsey :P)STEP 3: Distill second group:
(as in step 2, nodes with no outgoing edges)
(3A: direct depends from prev group with no path)
(3B: direct depends from prev group with no path)
(3C: direct depends from prev group with no path)
Proposal
Design Notes:
paket install
process only needs to read unindented lines->
and+
symbols are wide open for discussion. For me the key consideration is wehther whetherthey clash with the comparison symbols in the version specs.Other ideas:
paket simplify
d file produces a single flat group - the+
and->
relationships will give clues as to the nature of the relationships (e.g. can see if a component is top level by lack of->
)Original proposal for posterity / to make comments make sense
The text was updated successfully, but these errors were encountered: