public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Ken Brown <kbrown@cornell.edu>
To: cygwin-apps@cygwin.com
Subject: Re: [PATCH] make setup mirror list more like web page not just urls
Date: Mon, 20 Nov 2017 22:59:00 -0000	[thread overview]
Message-ID: <c4cc836f-8118-669e-c90b-f3ad2f7a503f@cornell.edu> (raw)
In-Reply-To: <53a8001e-10ae-6318-ba3d-31d0cfa18f14@SystematicSw.ab.ca>

On 11/20/2017 4:30 PM, Brian Inglis wrote:
> On 2017-11-17 06:53, Jon Turney wrote:
> On 11/17/2017 8:48 AM, Ken Brown wrote:
>> On 15/11/2017 21:35, Brian Inglis wrote:
> 
> Thanks for your comments, I understand all your points, and agree with them.
> I merged the posts and responses as they addressed the same issues.
> I also applied Ken's setup patch and rejigged mine where required.
> 
> KB> Ken Brown
> JT> Jon Turney
> 
> KB> I think this is a good idea in principle, but it still needs some work.
> 
> JT> use a grid control to present this information.
> 
> Don't think I want to learn that much about Windows controls!
> The width of the longest fields in each column would need to adjust the grid
> and dialogue box widths, and Add button position, dynamically, which I did
> manually, and the internal blank space may be a bit harder to scan for users
> who are interested only in their geographic region, country, or territory
> - these are pretty well aligned as strings.
> 
> KB> Adding the protocol to the key instead of the full url isn't enough to
> KB> guarantee uniqueness of the key.
> KB> Users can add their own sites for which that fails.
> KB> Also, you shouldn't be relying on the servername field being filled in.
> KB> For example, the function SiteSetting::registerSavedSite() explicitly
> KB> constructs a site 'tempSite' that has an empty servername.
> 
> JT> This code needs to handle manually added URLs with non-FQDNs.
> JT> - - url...'s going to need fixing.
> 
> If host name provided, use as servername, or default to localhost.
> 
> If at least two domain components:
> if CC TLD, use as area in uppercase, or
> if gTLD, use as area with init cap;
> if 2-3 char TLD and 2-3 char 2nd level domain, may be subTLD, so if 3rd level
> domain exists and does not start with (or contain?) "cygwin", "ftp", "mirror",
> "www", add space plus 2-3 char 2nd level domain with init cap to area.
> Use next level domain as location with init cap and uppercase after any "-".
> Otherwise default area to Local, and use servername as location with init cap.
> This adhoc approach seems to work well enough and avoids having to drag in and
> process the rules in the Public Suffix List (libpsl5 and
> publicsuffix-list-dafsa).
> 
> Examples:
> 
> Input	->
>      List
>      Displayed
>      Key
> 
> http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com		->
> http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/;mirror.cpsc.ucalgary.ca;CA;Ucalgary
> CA - Ucalgary - http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com
> CA Ucalgary ca ucalgary cpsc mirror
> http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/
> 
> [cyg]file://server/c$/usr/local/cygwin/var/cache/setup/packages	->
> [cyg]file://server/c$/usr/local/cygwin/var/cache/setup/packages/;server;Local;Server
> Local - Server - file://server/c$/usr/local/cygwin/var/cache/setup/packages
> Local Server server file://server/c$/usr/local/cygwin/var/cache/setup/packages/
> 
> cygfile:///var/cache/setup/packages		->
> cygfile:///var/cache/setup/packages/;localhost;Local;Localhost
> Local - Localhost - cygfile://var/cache/setup/packages
> Local Localhost localhost cygfile://var/cache/setup/packages/
> 
> file:///c|/usr/local/cygwin/var/cache/setup/packages		->
> file:///c|/usr/local/cygwin/var/cache/setup/packages/;localhost;Local;Localhost
> Local - Localhost - file:///c|/usr/local/cygwin/var/cache/setup/packages
> Local Localhost localhost file:///c|/usr/local/cygwin/var/cache/setup/packages/
> 
> Cygwin file:// does not appear to use /// or support anything but local files,
> so should always be treated as localhost; or does it support servers, but they
> can be treated as if directories under Windows, so we need to do a server or
> directory check, or that check is done at a lower level?
> 
> JT> you can also just add a path.
> 
> If UNC path with server, use as above, but include share name in display,
> otherwise default as above.
> 
> Examples:
> 
> \\server\c$\usr\local\cygwin\var\cache\setup\packages		->
> \\server\c$\usr\local\cygwin\var\cache\setup\packages/;server;Local;Server
> Local - Server - \\server\c$
> Local Server server \\server\c$\usr\local\cygwin\var\cache\setup\packages/
> 
> c:\usr\local\cygwin\var\cache\setup\packages			->
> c:\usr\local\cygwin\var\cache\setup\packages/;localhost;Local;Localhost
> Local - Localhost - c:\usr\local\cygwin\var\cache\setup\packages
> Local Localhost localhost c:\usr\local\cygwin\var\cache\setup\packages/
> 
> Where are the cached sites stashed - setup keeps showing my old test entries?
> 
> JT> if you add two URLs with the same protocol/host, they aren't distinguishable
> 
> Check for and eliminate duplicates after sort if same site_list fields.
> Handled by KB patch.
> Note on flag added by that patch - would is_current, is_good, or is_known be a
> better reflection of what that flag means?
> Should we add ==(string) to compare only the url member?
> Should we add a constructor(string,is_official) to refactor string to site
> conversions, and the url additions?
> 
> KB> If the saved url corresponds to a site in the list, I think setup should
> KB> recognize this rather than listing the same site again as " - - url".
> 
> JT> If the URL matches one in the list, that item should be selected.
> 
> Check for URL match with site list and use match as site:
> added for tempSite in RegisterSavedSites and newsite on Add;
> required as key now includes area and location, not just URL.
> Could we add a check to a string contructor to return only a reference to an
> existing entry, if the url matches, to refactor the above changes?
> 
> JT> Store area and location so we can populate those fields if it doesn't.
> 
> See above.
> 
> JT> Please, please use git-format-patch in future.
> 
> I can't tell from looking, does it differ from diff output, and is there a
> reason to use git-format-patch for review?
> I use diffs for feedback until it DTRT.
> I can manage one commit and one format-patch on a good day.
> I should just stick to using what Tortoise Git supports.
> My record with git includes a lot of rm -rf and re-clone, as the files, trees,
> and indices get out of whack when I forget some incantation and try to fix it!
> Very brittle and unfriendly - if it's going to bork itself, just don't do that!
> I never had a single problem with CVS or Hg in many years ;^>
> 
> JT> The patch also has some spurious changes to the mode of the manifest files.
> 
> Realized I shouldn't tidy up unnecessary x modes under git control - habit
> - gets me into trouble and I learn new things - checked out masters.

Hi Brian,

The issue of recognizing a URL that's already in the list is not fixed. 
Here's what I tried:

I ran setup with the last mirror (as stored in /etc/setup/setup.rc) 
being http://mirrors.kernel.org/sourceware/cygwin/.  The resulting 
mirror list display contained the following, highlighted:

   Org - Kernel - http://mirrors.kernel.org

So setup didn't recognize that 
http://mirrors.kernel.org/sourceware/cygwin/ was already in the list, 
displayed as

   United States - California - http://mirrors.kernel.org

Also, I don't like the fake 'area' and 'location' fields for user-added 
URLs.  For example, "Org" and "Kernel" are startling in the display 
above and add no information to the plain URL.  Another example is my 
own personal repository, http://sanibeltranquility.com/cygwin, which 
displays as

   Com - Sanibeltranquility - http://sanibeltranquility.com

I would rather see the area and location left blank, or perhaps replaced 
by "Unknown".  A third alternative would be to replace "Area - Location" 
by "User-added" or something similar.

Ken

  reply	other threads:[~2017-11-20 22:59 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-15 21:35 Brian Inglis
2017-11-17 13:48 ` Ken Brown
2017-11-19 20:24   ` Ken Brown
2017-11-17 13:53 ` Jon Turney
2017-11-20 21:30   ` Brian Inglis
2017-11-20 22:59     ` Ken Brown [this message]
2017-11-20 23:02       ` Ken Brown
2017-11-22 16:48         ` Brian Inglis
2017-11-22 16:42       ` Brian Inglis
2017-11-23 21:07         ` Ken Brown
2017-11-24  6:23           ` Brian Inglis
2017-11-24 16:21             ` Ken Brown
2017-11-24 21:48               ` Brian Inglis
2017-11-25 16:49                 ` Ken Brown
2017-11-25 17:44                   ` Brian Inglis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c4cc836f-8118-669e-c90b-f3ad2f7a503f@cornell.edu \
    --to=kbrown@cornell.edu \
    --cc=cygwin-apps@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).