> Le 28 août 2020 à 10:15, Sven Van Caekenberghe <[hidden email]> a écrit : > > > >> On 28 Aug 2020, at 10:13, Christophe Demarey <[hidden email]> wrote: >> >> Smalltalkhub is now to able to distinguish between raw and not raw mcz listing requests. >> Ex: >> http://smalltalkhub.com/mc/Seaside/Seaside30LGPL/main?format=raw >> http://smalltalkhub.com/mc/Seaside/Seaside30LGPL/main/ >> >> I already use the apache directory index for another page so I will not be able to modify this one. I guess the current index will « not work » because glass expect some HTML structure. >> Could you confirm and tell me what is the expected structure? > > See my earlier mail with code. Thanks Sven |
Christophe, I appreciate your effort, but I assume that you aren't finished yet? When I use the url from your message I get a `Not Found` error (note that I explicitly included a trailing slash in the url): This is a bug (or omission) as well, since other Monticello sites
produce the expected HTML output with or without a trailing slash. Without the trailing slash I get the same (non-html) response
that was causing a problem before ... although something must have
changed, because the GemStone command is now producing an error
instead of an empty list ... Once you get the static site to
produce the expected output, I'm confident that the GemStone
errors will go away (this code has been running for about a decade
on all Monticello html repositories). I suggest that you look at what is produced on SqueakSource (http://www.squeaksource.com/MooseSQL/) as an example of expected output of the mcz file listing ... this html page format has been used since 2003 for ALL (valid) monticello repositories. If it is not clear, the `?format=raw` option is a recent Pharo
only option and when the dynamic site was running and the
`?format-raw` option was OMITTED it produced output compatible
with (http://www.squeaksource.com/MooseSQL/) ... Restoring HTML is *REQUIRED* for the static site to be a faithful replacement of the dynamic site... the format that is produced today is only compatible with the Pharo only `?format=raw` option. Bug or omission ... the static site is currently in worse shape
than the dynamic site before the swap ... Dale On 8/28/20 2:12 AM, Christophe Demarey
wrote:
Le 28 août 2020 à 10:15, Sven Van Caekenberghe [hidden email] a écrit :On 28 Aug 2020, at 10:13, Christophe Demarey [hidden email] wrote: Smalltalkhub is now to able to distinguish between raw and not raw mcz listing requests. Ex: http://smalltalkhub.com/mc/Seaside/Seaside30LGPL/main?format=raw http://smalltalkhub.com/mc/Seaside/Seaside30LGPL/main/ I already use the apache directory index for another page so I will not be able to modify this one. I guess the current index will « not work » because glass expect some HTML structure. Could you confirm and tell me what is the expected structure?See my earlier mail with code.Thanks Sven |
I understand that he new site is unusable if tools do not get the expected input. Sorry for the inconvenience. I was just not aware of this as Pharo uses the raw format.
I had to set up a CGI to produce an html listing from the raw file. It should now be ok. Could you tell me if it works in GemStone now? Christophe
|
Thanks looks fine to me, Christophe, thank you for the great work.
The non format=raw case results in a redirect but that should be acceptable, both URL works both and without trailing / > On 29 Aug 2020, at 00:05, Christophe Demarey <[hidden email]> wrote: > > I understand that he new site is unusable if tools do not get the expected input. Sorry for the inconvenience. I was just not aware of this as Pharo uses the raw format. > I had to set up a CGI to produce an html listing from the raw file. > It should now be ok. Could you tell me if it works in GemStone now? > > Christophe > >> Le 28 août 2020 à 19:21, Dale Henrichs <[hidden email]> a écrit : >> >> Christophe, >> >> I appreciate your effort, but I assume that you aren't finished yet? >> >> When I use the url from your message I get a `Not Found` error (note that I explicitly included a trailing slash in the url): >> >> <dkbjiegjmlbelgio.png> >> >> This is a bug (or omission) as well, since other Monticello sites produce the expected HTML output with or without a trailing slash. >> >> Without the trailing slash I get the same (non-html) response that was causing a problem before ... although something must have changed, because the GemStone command is now producing an error instead of an empty list ... Once you get the static site to produce the expected output, I'm confident that the GemStone errors will go away (this code has been running for about a decade on all Monticello html repositories). >> >> I suggest that you look at what is produced on SqueakSource (http://www.squeaksource.com/MooseSQL/) as an example of expected output of the mcz file listing ... this html page format has been used since 2003 for ALL (valid) monticello repositories. >> >> If it is not clear, the `?format=raw` option is a recent Pharo only option and when the dynamic site was running and the `?format-raw` option was OMITTED it produced output compatible with (http://www.squeaksource.com/MooseSQL/) ... >> >> Restoring HTML is *REQUIRED* for the static site to be a faithful replacement of the dynamic site... the format that is produced today is only compatible with the Pharo only `?format=raw` option. >> >> Bug or omission ... the static site is currently in worse shape than the dynamic site before the swap ... >> >> Dale >> >> On 8/28/20 2:12 AM, Christophe Demarey wrote: >>>> Le 28 août 2020 à 10:15, Sven Van Caekenberghe <[hidden email]> >>>> a écrit : >>>> >>>> >>>> >>>> >>>>> On 28 Aug 2020, at 10:13, Christophe Demarey <[hidden email]> >>>>> wrote: >>>>> >>>>> Smalltalkhub is now to able to distinguish between raw and not raw mcz listing requests. >>>>> Ex: >>>>> >>>>> http://smalltalkhub.com/mc/Seaside/Seaside30LGPL/main?format=raw >>>>> >>>>> >>>>> http://smalltalkhub.com/mc/Seaside/Seaside30LGPL/main/ >>>>> >>>>> >>>>> I already use the apache directory index for another page so I will not be able to modify this one. I guess the current index will « not work » because glass expect some HTML structure. >>>>> Could you confirm and tell me what is the expected structure? >>>>> >>>> See my earlier mail with code. >>>> >>> Thanks Sven >>> >>> >>> > |
In reply to this post by demarey
Christophe, Again, I appreciate your effort, but you are not quite there. If you look at SqueakSource or GemSource html (attached), the
html uses <br /> to create newlines on the page and in the
Smalltalkhub page, you've inserted a newline as part of the href
filename, while SqueakSource and GemSource (and the other
monticello sites) do not include a newline in the href, so for
better or worse, in GemStone the method
MCReader>>canReadFileNamed: expects the filename to end with
`.mcz` not a newline and all of the filenames parsed from the
SmalltalkHub page are discarded as non-Monticello files. So if you eliminate the trailing newline in the href, the
GemStone code should finally be happy. Thanks for your effort! Dale On 8/28/20 3:05 PM, Christophe Demarey
wrote:
I understand that he new site is unusable if tools do not get the expected input. Sorry for the inconvenience. I was just not aware of this as Pharo uses the raw format. |
I hope this time it will be fine. I removed the newline characters.
I will also check if I can keep the original url in the browser rather than the redirected one. Regards, Christophe.
|
Sooooo close, the interactive tests are passing, but there is a
use case that is popping up in a travis job[1] where this url
http://smalltalkhub.com/mc/Swazoo/Swazoo/main is being used (no
trailing slash) and this form of the url still produces the `raw`
listing, on SqueakSource (and other sites) the trailing slash is
not required to get the html-based listing ... Again, I appreciate your effort, I hopeful that this is the last detail, Dale [1]
https://travis-ci.org/github/GsDevKit/GsDevKit_home/jobs/721523220 On 8/29/20 10:12 AM, Christophe Demarey
wrote:
I hope this time it will be fine. I removed the newline characters. |
Hi Dale,
Are you sure? For me, http://smalltalkhub.com/mc/Swazoo/Swazoo/main produces the html listing
|
> On 30 Aug 2020, at 12:07, Christophe Demarey <[hidden email]> wrote: > > Hi Dale, > >> Le 29 août 2020 à 19:40, Dale Henrichs <[hidden email]> a écrit : >> >> Sooooo close, the interactive tests are passing, but there is a use case that is popping up in a travis job[1] where this url http://smalltalkhub.com/mc/Swazoo/Swazoo/main is being used (no trailing slash) and this form of the url still produces the `raw` listing, >> > > Are you sure? For me, http://smalltalkhub.com/mc/Swazoo/Swazoo/main produces the html listing For me as well. |
In reply to this post by demarey
On 8/30/20 3:07 AM, Christophe Demarey
wrote:
Hi Dale, I am sure that the travis build is still failing[1] after having
passed 2 weeks ago, before the dynamic site was switched out. I am sure the a manual test (different code path than the travis
site) that was failing with the new site is now passing. I did discovered that that the reason I _thought_, that the html
page wasn't being displayed was because the old page for that url
was cached in my web browser:( Sorry for the red herring. Tomorrow I will dig a little deeper and let you know what is causing the travis test to fail ... I've seen this particular error with the Swazoo repository show up in production tests that I run locally, so I should be able to identify the cause of the failures. Dale [1]
https://travis-ci.org/github/GsDevKit/GsDevKit_home/jobs/721523220#L2354 |
Okay, I've finally sorted things out ... and it gets down to the
difference between
MCHttpRepository>>parseFileNamesFromStream: returning an
empty list (the original problem) and returning a list of the
wrong thing the current problem). When I reported that the "manual
test" was passing, that was true, but instead of listing the names
of the packages, the "manual test" was returning a list of urls,
and not a list of packageNames and I didn't recognize the
difference --- but the code that is executing in the travis test
does recognize the difference. The GemStone code does not special case SmalltalkHub, while Pharo does handle SmalltalkHub as a special case and to actually see the difference between the two, you have to use the following expression (the MCHttpRepository class>>location:user:password: is intercepted and creates an MCSqueaksourceRepository instance, which has different implementation of parseFileNamesFromStream:): (MCHttpRepository new location: 'http://smalltalkhub.com/mc/Swazoo/Swazoo/main'; user: ''; password: ''; yourself) allFileNames Both Pharo and GemStone, use the pretty much same code for MCHttpRepository>>parseFileNamesFromStream: (this is the GemStone version): parseFileNamesFromStream: aStream | names fullName | names := OrderedCollection new. [ aStream atEnd ] whileFalse: [ [ aStream upTo: $<. aStream atEnd ifTrue: [ true ] ifFalse: [ {$a. $A. nil} includes: aStream next ] ] whileFalse. aStream upTo: $". aStream atEnd ifFalse: [ fullName := aStream upTo: $". names add: fullName unescapePercents ] ]. ^ names and both return the same result when pointed at http://www.squeaksource.com/MooseSQL (you should recognize the EyeCollectionInspector from Pharo3.0:) and the other inspector is from tODE ... Note that both are producing a list of .mcz file names: And when the expression:
is used, both Pharo and GemStone produce the same (wrong) list of package names from SmalltalkHub: The
travis test is trying to scan for ConfigurationOfSwazoo2 package
names in the list and that algorithm is failing because it expects
only a list of .mcz file names as produced like that produced for
http://www.squeaksource.com/MooseSQL ... The difference boils down to how the `href` statements are formed. The Here is the relevant statement from SqueakSource:
and here is the statement from SmalltalkHub with the full url included in the href field):
So only the .mcz filename should be included in the href field as the code in MCHttpRepository>>parseFileNamesFromStream: _is parsing the package name from the href field_. Dale On 8/30/20 7:31 PM, Dale Henrichs
wrote:
|
Hi Dale,
Thanks for the very detailed explanation. I updated the href link to only include the mcz file name. I also took the opportunity to display a nicer URL and set up a permanent redirection to the current mc repository folder (else links would be broken : we must keep only file names, paths prohibited). Tell me if it is ok. Also, I will not reinvent the past but I think It was a mistake to use an html listing as input for tools. A raw list of files contained in the Monticello repository would have been better.It is also strange to use an href link value as the name of the mcz file. If the displayed text of the link was used, it would have allow to store mcz files at any place on the web server. But anyway, if things work fine now, we are done! Cheers, Christophe
|
Hi everyone, not quite sure what's happening yet, but bootstrapping Metacello in Squeak will attempt to download http://smalltalkhub.com/mc/dkh/metacello/main/Metacello-Base-dkh.109.mcz which currently returns a 302 to which just returns the index page's HTML instead of the mcz file. Is this possibly a slip in the matching rules you added recently? Best, Tom On Tue, Sep 1, 2020 at 10:52 AM Christophe Demarey <[hidden email]> wrote:
|
Hi Tom,
I think so. I did not see it while testing in my browser (probably because of its cache) but I can see it with curl. I will fix that ASAP. Thanks for reporting. Christophe |
Should be ok now. Let me know. |
Works perfectly, thank you for the rapid fix! Best, Tom On Tue, Sep 1, 2020 at 12:27 PM Christophe Demarey <[hidden email]> wrote:
|
In reply to this post by demarey
On 9/1/20 1:51 AM, Christophe Demarey wrote: > Hi Dale, > > Thanks for the very detailed explanation. > I updated the href link to only include the mcz file name. I also took > the opportunity to display a nicer URL and set up a permanent > redirection to the current mc repository folder (else links would be > broken : we must keep only file names, paths prohibited). > Tell me if it is ok. Christophe, Everything looks fine. The travis jobs that were failing because of the packageName issue are now failing because of test issues (you win some, you lose some:), so I think we are finally out of woods. > Also, I will not reinvent the past but I think It was a mistake to use > an html listing as input for tools. A raw list of files contained in > the Monticello repository would have been better.It is also strange to > use an href link value as the name of the mcz file. If the displayed > text of the link was used, it would have allow to store mcz files at > any place on the web server. The decision to use html for list packages was a decision made almost 20 years ago, when Avi and Colin first invented Monticello and once code gets written and people start relying on that code, it gets REAL hard to change without creating pain for all of the users. This gets even more complicated when there are multiple, independent sites implemented using the old scheme. > But anyway, if things work fine now, we are done! > I agree that it looks like we are done and I appreciate your patience and effort to resolve the issues. Dale |
> Le 1 sept. 2020 à 18:44, Dale Henrichs <[hidden email]> a écrit : > > > On 9/1/20 1:51 AM, Christophe Demarey wrote: >> Hi Dale, >> >> Thanks for the very detailed explanation. >> I updated the href link to only include the mcz file name. I also took the opportunity to display a nicer URL and set up a permanent redirection to the current mc repository folder (else links would be broken : we must keep only file names, paths prohibited). >> Tell me if it is ok. > > Christophe, > > Everything looks fine. The travis jobs that were failing because of the packageName issue are now failing because of test issues (you win some, you lose some:), so I think we are finally out of woods. >> Also, I will not reinvent the past but I think It was a mistake to use an html listing as input for tools. A raw list of files contained in the Monticello repository would have been better.It is also strange to use an href link value as the name of the mcz file. If the displayed text of the link was used, it would have allow to store mcz files at any place on the web server. > The decision to use html for list packages was a decision made almost 20 years ago, when Avi and Colin first invented Monticello and once code gets written and people start relying on that code, it gets REAL hard to change without creating pain for all of the users. This gets even more complicated when there are multiple, independent sites implemented using the old scheme. Yes, it is easy to say a decision was not so good afterwards. And, yes, when people use code in many places, it becomes harder to change this code. >> But anyway, if things work fine now, we are done! >> > I agree that it looks like we are done and I appreciate your patience and effort to resolve the issues. Sorry for the time GemStone tools were broken but I was not aware of te use of this HTML package listing this way. The goal of Smalltalk archive was / is to be a « smooth » substitution of Smalltalkhub, keeping existing URLs alive, even if redirected. This avoids a lot of changes in existing code. Regards, Christophe |
Free forum by Nabble | Edit this page |