<div dir="ltr">Hi<div><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
<br>
</span>I believe at a minimum we should plan on two new actions, port “snapshot” and “migrate”. A snapshot will the installed ports, their variants and if the port was “requested”.<br>
<br>
The migrate action will call the snapshot action to create and/or use snapshots to rebuild ports on the new platform.<br></blockquote><div><br></div><div>This looks quite a plan.</div><div>So, what snapshot action will do is to take a "snapshot" of each installed port and keep a list of these snapshots having a name, requested boolean and other required info (will try to figure it out soon) additionally. </div><div><br></div><div>A variants table will help to specify the appropriate variants, so basically an indirect version of this: `sudo port install port_name +variant1 +variant2`.</div><div><br></div><div>Migrate action will take these snapshots and use the original guidelines in the migration docs to rebuild acc to the specifications we now have. Correct me if I'm wrong.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
</span>I think it is a good idea to include snapshot as an early milestone.</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
<br>
</span>Does the migrate and snapshot actions help you divide the work?<br></blockquote><div><br></div><div>Yes, thanks, this gives a lot of direction to my work.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
The snapshot action is basically an inventory of what is installed along with meta data like requested and variants. We will store snapshots in our sqlite database. <br></blockquote><div><br></div><div>I hope I understood it well as above.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class="gmail-"><br>
> I don't know if we'll allow Tcl to run in the new environment. Otherwise, it seems to implement port with a bash script calling on sqlite3 on the macports registry/registry.d to get the relevant data.<br>
<br>
</span>I think we can require any version of port that includes the migrate action, I do not think we will need bash. Clemens, others, do you concur?<br></blockquote><div><br></div><div><span style="font-size:12.8px">That time, I was trying to say that for a more general scenario, it'll take to implement port with a bash front-end that invoked sqlite3 directly upon the MacPorts registry (located in ${prefix}/var/macports/</span><wbr style="font-size:12.8px"><span style="font-size:12.8px">registry/registry.d) (not anymore) and extracting the required data. </span><span style="font-size:12.8px">Yes, the above seems an elegant solution but still migrate action needs more implementation detailing. Let me work on it.</span></div><div><span style="font-size:12.8px"><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
> Also, will the project phasing out dependency on XCode tools affect this one anytime soon?<br>
</span>Good question, I cannot give you a definitive answer at the moment but we should keep this in mind.<br></blockquote><div><br></div><div>will include this as stretch goal or something like "Plans after GSoC" :D</div><div><br></div><div>An additonal point of thought would be to resolve the conflicts arising if there are conflicting ports in the list and I guess, order of reinstalling ports could also be one such factor for conflict if not the default variants? </div><div><br></div><div>Thanks,</div></div><div class="gmail_signature"><div dir="ltr">Umesh</div></div>
</div></div></div>