Issue 5103 in pharo: Better Gofer error messages

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Issue 5103 in pharo: Better Gofer error messages

pharo
Status: New
Owner: ----
Labels: Milestone-1.4 Type-Feature

New issue 5103 by [hidden email]: Better Gofer error messages
http://code.google.com/p/pharo/issues/detail?id=5103

Change:

     Error: Unable to resolve ConfigurationOFuel

to:
        "Error: Unable to find or resolve package ConfigurationOFuel, check
          the name. See Gofer class comment for more"

Review also other common error messages like incorrect MC URL, bad  
username/password etc.

Say you evaluate this script:

   Gofer new
     squeaksource: 'Fuel';
     package: 'ConfigurationOFuel';
     load.
   (Smalltalk at: #ConfigurationOfFuel) load.

Did you notice a typo in script? Hardly. Now see what exception look like:

   Error: Unable to resolve ConfigurationOFuel

   GoferPackageReference(Object)>>error:
   GoferPackageReference(GoferReference)>>resolveWith:
   [:each | each resolveWith: self] in Gofer>>resolved
   Array(SequenceableCollection)>>collect:
   Gofer>>resolved
   ...

My thinking: What is it unable to resolve, what is to be resolved
anyway? But if error will be something like:

        "Unable to find or resolve package ConfigurationOFuel, check
          the name. See Gofer class comment for more"

It will certainly lead me to check for the typo first and only if
failed, go to class comment and find a wiki page.




_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo

Comment #1 on issue 5103 by renggli: Better Gofer error messages
http://code.google.com/p/pharo/issues/detail?id=5103

Keep in mind that the proposed error message only applies to this  
situation. It could also be that the repository is mispelled, that the  
repository is gone, that you configured the wrong repository, that your  
constraints on the version/branch/author/package are too strong, ... There  
are probably many more reasons why Gofer cannot identify a version to load.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo

Comment #2 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Ok we will make it long :)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Labels: -Milestone-1.4

Comment #3 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Not a show stopper for  1.4


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Cc: [hidden email]

Comment #4 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Issue 6379 has been merged into this issue.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: Accepted
        Cc: [hidden email]
        Labels: -Type-Feature Type-Enh Milestone-2.0

Comment #5 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

MCFileBasedRepository>>goferReferences resignals all Errors as  
GoferRepositoryErrors:
     goferReferences
        | versionNames |
        versionNames := [ self allVersionNames ]
                on: Error
                do: [ :error | ^ GoferRepositoryError signal: error messageText  
repository: self ].
        ...

  This is one avenue resulting in opaque Metacello errors. I think that only  
certain domain-related errors should be GoferRepositoryErrors. For example,  
a DNU should never be caught by this handler, but percolate up to where it  
can be seen and fixed.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo

Comment #6 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Indeed that is rather strange behavior... and at least it should keep the  
previous error and keep it...

on: Error do: [ :error |
  ^ GoferRepositoryError
     on: error "maybe even freeze here"
     repository: self ]


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo

Comment #7 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

assertNonBinaryResponse: and MCHttpRepository>>loadAllFileNames seem to be  
the only two places within allVersionNames that signal repository-related  
errors. They do so generically via self error:... If we create custom error  
types for one/both, we can catch those and let all others pass through...


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo

Comment #8 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Until this issue is resolved, if you have to do any debugging of  
Gofer/Metacello, you can hack MCFileBasedRepository>>#goferReferences and  
comment out the error handler like so (fileout attached):
     goferReferences
        | versionNames |
        versionNames := "[" self allVersionNames "]
                on: Error
                do: [ :error | ^ GoferRepositoryError signal: error messageText  
repository: self ]".
        ^ versionNames
                collect: [ :each | GoferResolvedReference name: each repository: self

This way you can see and deal with e.g. DNUs

Attachments:
        MCFileBasedRepository-goferReferences.st  464 bytes


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo

Comment #9 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

To debug Metacello, you'll also have to hack  
#retryingResolvePackageSpecReferences:gofer: by changing the handler from
     on: Error , GoferRepositoryError
to
     on: GoferRepositoryError


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: FixReviewNeeded

Comment #10 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Fix in inbox. This may need to be tweaked, but I think it's better than  
what was there. Errors related to repositories should be distinguished from  
others e.g. DNUs, which will be passed through...

SLICE-Issue-5103-Better-Gofer-error-messages-SeanDeNigris.1
* Enhance Monticello error messages
        - Add MCRepositoryError instead of signalling generic Errors, so  
that "normal" errors, like a file not being found, can be distinguished  
from errors unrelated to repo operations e.g. a DNU
        - Update MCHttpRepository to use MCRepositoryError for binary/non-binary  
response checks
* In Gofer, only convert MCRepositoryErrors to GoferRepositoryErrors;  
otherwise pass through


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: MonkeyIsChecking

Comment #11 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c11

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: FixReviewNeeded

Comment #12 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: MonkeyIsChecking

Comment #13 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c13

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: WorkNeeded

Comment #14 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c14

Monkey went bananas:
--------------------
Error while loading  
SLICE-Issue-5103-Better-Gofer-error-messages-SeanDeNigris.1 from  
http://ss3.gemstone.com/ss/PharoInbox:
        Error: cannot remove non-empty category Monticello-Announcements
  1: SystemOrganizer(Object)>>error:
  2: SystemOrganizer(Categorizer)>>removeCategory:
  3: SystemOrganizer>>removeCategory:
  4: [:c | SystemOrganization removeCategory: c] in  
MCOrganizationDefinition>>unload
  5: Array(SequenceableCollection)>>do:
  6: MCOrganizationDefinition>>unload
  7: [:ea | ea unload] in [additions
                        do: [:ea | self loadClassDefinition: ea]
                        displayingProgress: 'Loading classes...'.
                additions
                        do: [:ea | self tryToLoad: ea]
                        displayingProgress: 'Compiling methods...'.
                removals
                        do: [:ea | ea unload]
                        displayingProgress: 'Cleaning up...'.
                self shouldWarnAboutErrors
                        ifTrue: [self warnAboutErrors].
                errorDefinitions
                        do: [:ea | ea addMethodAdditionTo: methodAdditions]
                        displayingProgress: 'Reloading...'.
                methodAdditions
                        do: [:each | each installMethod].
                methodAdditions
                        do: [:each | each notifyObservers].
                additions
                        do: [:ea | ea
                                        postloadOver: (self obsoletionFor: ea)]
                        displayingProgress: 'Initializing...'] in [[additions
                        do: [:ea | self loadClassDefinition: ea]
                        displayingProgress: 'Loading classes...'.
                additions
                        do: [:ea | self tryToLoad: ea]
                        displayingProgress: 'Compiling methods...'.
                removals
                        do: [:ea | ea unload]
                        displayingProgress: 'Cleaning up...'.
                self shouldWarnAboutErrors
                        ifTrue: [self warnAboutErrors].
                errorDefinitions
                        do: [:ea | ea addMethodAdditionTo: methodAdditions]
                        displayingProgress: 'Reloading...'.
                methodAdditions
                        do: [:each | each installMethod].
                methodAdditions
                        do: [:each | each notifyObservers].
                additions
                        do: [:ea | ea
                                        postloadOver: (self obsoletionFor: ea)]
                        displayingProgress: 'Initializing...']
                        on: InMidstOfFileinNotification
                        do: [:n | n resume: true]] in MCPackageLoader>>basicLoad
  8: [:each |
        | newLabel |
        (count = 0
                                or: [count + 1 = size
                                                or: [(Time millisecondsSince: lastUpdate)
                                                                >= msecs]])
                        ifTrue: [bar current: count.
                                oldLabel = (newLabel := (labelBlock cull: each)
                                                                        ifNil: [oldLabel])
                                        ifFalse: [ProgressNotification signal: '' extra: (oldLabel :=  
newLabel)].
                                lastUpdate := Time millisecondClockValue].
                aBlock value: each.
                count := count + 1] in [:bar |
        labelBlock := aStringOrBlock isString
                                        ifTrue: [bar label: aStringOrBlock.
                                                [:item | aStringOrBlock]]
                                        ifFalse: [aStringOrBlock].
                self
                        do: [:each |
                                | newLabel |
                                (count = 0
                                                or: [count + 1 = size
                                                                or: [(Time millisecondsSince: lastUpdate)
                                                                                >= msecs]])
                                        ifTrue: [bar current: count.
                                                oldLabel = (newLabel := (labelBlock cull: each)
                                                                                        ifNil: [oldLabel])
                                                        ifFalse: [ProgressNotification signal: '' extra: (oldLabel :=  
newLabel)].
                                                lastUpdate := Time millisecondClockValue].
                                aBlock value: each.
                                count := count + 1]] in  
OrderedCollection(Collection)>>do:displayingProgress:every:
  9: OrderedCollection>>do:
10: [:bar |
        labelBlock := aStringOrBlock isString
                                        ifTrue: [bar label: aStringOrBlock.
                                                [:item | aStringOrBlock]]
                                        ifFalse: [aStringOrBlock].
                self
                        do: [:each |
                                | newLabel |
                                (count = 0
                                                or: [count + 1 = size
                                                                or: [(Time millisecondsSince: lastUpdate)
                                                                                >= msecs]])
                                        ifTrue: [bar current: count.
                                                oldLabel = (newLabel := (labelBlock cull: each)
                                                                                        ifNil: [oldLabel])
                                                        ifFalse: [ProgressNotification signal: '' extra: (oldLabel :=  
newLabel)].
                                                lastUpdate := Time millisecondClockValue].
                                aBlock value: each.
                                count := count + 1]] in  
OrderedCollection(Collection)>>do:displayingProgress:every:
        ...
----------------------------------------------------------
Loaded Source: SLICE-Issue-5103-Better-Gofer-error-messages-SeanDeNigris.1  
from http://ss3.gemstone.com/ss/PharoInbox
Tested using Pharo-2.0-20277-a on CoInterpreter  
VMMaker-oscog-IgorStasenko.162 uuid: e4554f9a-cc90-4826-a807-ac282b782fe4  
Sep  3 2012
StackToRegisterMappingCogit VMMaker-oscog-IgorStasenko.162 uuid:  
e4554f9a-cc90-4826-a807-ac282b782fe4 Sep  3 2012
https://git.gitorious.org/cogvm/blessed.git Commit:  
aeb0705cde4b8fc57cb262dc051c5ee6dfa72a14 Date: 2012-07-26 16:38:48 +0200  
By: Igor Stasenko <[hidden email]>


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: FixReviewNeeded

Comment #15 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103

Fix in inbox: Same as v. 1; redid due to RPackage bug...
SLICE-Issue-5103-Better-Gofer-error-messages-SeanDeNigris.2


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: MonkeyIsChecking

Comment #16 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c16

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: ValidatedByTheMonkey
        Labels: CheckedIn20277

Comment #17 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c17

This Issue has been checked by Ulysse the Monkey
       
6455 tests passed in 00:02:23s:
===============================
        CollectionsTests-Arrayed (547)
        CollectionsTests-Atomic (12)
        CollectionsTests-Sequenceable (906)
        CollectionsTests-SplitJoin (27)
        CollectionsTests-Stack (16)
        CollectionsTests-Streams (37)
        CollectionsTests-Strings (596)
        CollectionsTests-Support (12)
        CollectionsTests-Unordered (1951)
        CollectionsTests-Weak (739)
        CompilerTests (179)
        KernelTests-Chronology (583)
        KernelTests-Classes (67)
        KernelTests-Exception (2)
        KernelTests-Methods (179)
        KernelTests-Numbers (276)
        KernelTests-Objects (86)
        KernelTests-Pragmas (3)
        KernelTests-Processes (31)
        SUnit-Core-Extensions (3)
        SUnit-Core-Utilities (3)
        SUnit-Tests-Core (78)
        Tests-Monticello (122)

----------------------------------------------------------
Loaded Source: SLICE-Issue-5103-Better-Gofer-error-messages-SeanDeNigris.2  
from http://ss3.gemstone.com/ss/PharoInbox
Tested using Pharo-2.0-20277-a on CoInterpreter  
VMMaker-oscog-IgorStasenko.162 uuid: e4554f9a-cc90-4826-a807-ac282b782fe4  
Sep  3 2012
StackToRegisterMappingCogit VMMaker-oscog-IgorStasenko.162 uuid:  
e4554f9a-cc90-4826-a807-ac282b782fe4 Sep  3 2012
https://git.gitorious.org/cogvm/blessed.git Commit:  
aeb0705cde4b8fc57cb262dc051c5ee6dfa72a14 Date: 2012-07-26 16:38:48 +0200  
By: Igor Stasenko <[hidden email]>


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: MonkeyIsChecking

Comment #18 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c18

The Monkey is currently checking this issue. Please don't change it!


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5103 in pharo: Better Gofer error messages

pharo
Updates:
        Status: ValidatedByTheMonkey
        Labels: CheckedIn20278

Comment #19 on issue 5103 by [hidden email]: Better Gofer error  
messages
http://code.google.com/p/pharo/issues/detail?id=5103#c19

This Issue has been checked by Ulysse the Monkey
       
6455 tests passed in 00:02:23s:
===============================
        CollectionsTests-Arrayed (547)
        CollectionsTests-Atomic (12)
        CollectionsTests-Sequenceable (906)
        CollectionsTests-SplitJoin (27)
        CollectionsTests-Stack (16)
        CollectionsTests-Streams (37)
        CollectionsTests-Strings (596)
        CollectionsTests-Support (12)
        CollectionsTests-Unordered (1951)
        CollectionsTests-Weak (739)
        CompilerTests (179)
        KernelTests-Chronology (583)
        KernelTests-Classes (67)
        KernelTests-Exception (2)
        KernelTests-Methods (179)
        KernelTests-Numbers (276)
        KernelTests-Objects (86)
        KernelTests-Pragmas (3)
        KernelTests-Processes (31)
        SUnit-Core-Extensions (3)
        SUnit-Core-Utilities (3)
        SUnit-Tests-Core (78)
        Tests-Monticello (122)

----------------------------------------------------------
Loaded Source: SLICE-Issue-5103-Better-Gofer-error-messages-SeanDeNigris.2  
from http://ss3.gemstone.com/ss/PharoInbox
Tested using Pharo-2.0-20278-a on CoInterpreter  
VMMaker-oscog-IgorStasenko.162 uuid: e4554f9a-cc90-4826-a807-ac282b782fe4  
Sep  3 2012
StackToRegisterMappingCogit VMMaker-oscog-IgorStasenko.162 uuid:  
e4554f9a-cc90-4826-a807-ac282b782fe4 Sep  3 2012
https://git.gitorious.org/cogvm/blessed.git Commit:  
aeb0705cde4b8fc57cb262dc051c5ee6dfa72a14 Date: 2012-07-26 16:38:48 +0200  
By: Igor Stasenko <[hidden email]>


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
12