
Hi guys, i have some troubles to install hxt. My first naive attempt "cabal install hxt" fails with "cabal: cannot configure hxt-8.5.0. It requires base >=4.2 && <5". I guess that's because i use ghc 6.10.4, since "base-4.2.0.0" depends on "integer-simple" which seems to only come with ghc 6.12. I then tried to install hxt-8.3.2, which seems to be the last version supporting ghc 6.10.4. If fails with: " src/Text/XML/HXT/Parser/TagSoup.hs:292:8: Not in scope: `optLookupEntity' cabal: Error: some packages failed to install: hxt-8.3.2 failed during the building phase. The exception was: exit: ExitFailure 1 " I have no idea, what that means. What am i doing wrong? Thanks, Lenny

haskell:
Hi guys,
i have some troubles to install hxt.
My first naive attempt "cabal install hxt" fails with "cabal: cannot configure hxt-8.5.0. It requires base >=4.2 && <5".
I guess that's because i use ghc 6.10.4, since "base-4.2.0.0" depends on "integer-simple" which seems to only come with ghc 6.12.
Looks like the author of hxt has decided to support 6.12 only, at the moment. base (>=4.2 && <5) Ensures this will only work on the 6.12 series of compilers. -- Don

Looks like the author of hxt has decided to support 6.12 only, at the moment.
base (>=4.2 && <5)
Ensures this will only work on the 6.12 series of compilers.
Thanks. I know. My point is, i don't understand why hxt-8.3.2 (base >= 4 && <5) fails to install for me with: " src/Text/XML/HXT/Parser/TagSoup.hs:292:8: Not in scope: `optLookupEntity' cabal: Error: some packages failed to install: hxt-8.3.2 failed during the building phase. The exception was: exit: ExitFailure 1 "

haskell:
Looks like the author of hxt has decided to support 6.12 only, at the moment.
base (>=4.2 && <5)
Ensures this will only work on the 6.12 series of compilers.
Thanks. I know.
My point is, i don't understand why hxt-8.3.2 (base >= 4 && <5) fails to install for me with:
" src/Text/XML/HXT/Parser/TagSoup.hs:292:8: Not in scope: `optLookupEntity' cabal: Error: some packages failed to install: hxt-8.3.2 failed during the building phase. The exception was: exit: ExitFailure 1 "
That looks like an error relating to the versoin of tagsoup used? -- Don

Don Stewart
haskell:
Looks like the author of hxt has decided to support 6.12 only, at the moment.
base (>=4.2 && <5)
Ensures this will only work on the 6.12 series of compilers.
Thanks. I know.
My point is, i don't understand why hxt-8.3.2 (base >= 4 && <5) fails to install for me with:
" src/Text/XML/HXT/Parser/TagSoup.hs:292:8: Not in scope: `optLookupEntity' cabal: Error: some packages failed to install: hxt-8.3.2 failed during the building phase. The exception was: exit: ExitFailure 1 "
That looks like an error relating to the versoin of tagsoup used?
You're right, thanks. "optLookupEntity" is defined in tagsoup-0.6, but not in tagsoup-0.8. But hxt-8.3.2 broadly requires tagsoup [http://hackage.haskell.org/package/tagsoup-0.8] (>=0.6 && <1). I am no cabal expert. What is the best solution here?

haskell:
That looks like an error relating to the versoin of tagsoup used?
You're right, thanks. "optLookupEntity" is defined in tagsoup-0.6, but not in tagsoup-0.8. But hxt-8.3.2 broadly requires tagsoup (>=0.6 && <1).
I am no cabal expert. What is the best solution here?
I think the best bet is to: cabal install tagsoup-0.6 --reinstrall And perhaps send the HXT maintainer a cabal patch? -- Don

Am Sonntag 24 Januar 2010 00:38:44 schrieb haskell@kudling.de:
Don Stewart
hat am 24. Januar 2010 um 00:10 geschrieben: haskell:
Looks like the author of hxt has decided to support 6.12 only, at the moment.
base (>=4.2 && <5)
Ensures this will only work on the 6.12 series of compilers.
Thanks. I know.
My point is, i don't understand why hxt-8.3.2 (base >= 4 && <5) fails to install for me with:
" src/Text/XML/HXT/Parser/TagSoup.hs:292:8: Not in scope: `optLookupEntity' cabal: Error: some packages failed to install: hxt-8.3.2 failed during the building phase. The exception was: exit: ExitFailure 1 "
That looks like an error relating to the versoin of tagsoup used?
You're right, thanks. "optLookupEntity" is defined in tagsoup-0.6, but not in tagsoup-0.8. But hxt-8.3.2 broadly requires tagsoup [http://hackage.haskell.org/package/tagsoup-0.8] (>=0.6 && <1).
I am no cabal expert. What is the best solution here?
cabal unpack hxt-8.3.2 open hxt.cabal in kate, change the range of the required tagsoup to (>= 0.6 && < 0.7) cd hxt-8.3.2 cabal install perhaps not the _best_ solution, but quick and it usually works

Thank you, that worked.
I wonder two things:
1) How to downgrade cabal packages? Just installing tagsoup-0.6 and removing
every trace of tagsoup-0.8 somehow didn't work for me. cabal still insisted that
there should be a tagsoup-0.8.
2) Is the commonly used version-scheming >= XYZ ideal? Maybe package maintainers
should depend on exactly one version they know that works? I mean how can you
guarantee, that every future version of a package will work?
Daniel Fischer
cabal unpack hxt-8.3.2
open hxt.cabal in kate, change the range of the required tagsoup to (>= 0.6 && < 0.7)
cd hxt-8.3.2 cabal install
perhaps not the _best_ solution, but quick and it usually works

Am Sunday 24 January 2010 12:24:37 schrieben Sie:
Thank you, that worked.
I wonder two things:
1) How to downgrade cabal packages? Just installing tagsoup-0.6 and removing every trace of tagsoup-0.8 somehow didn't work for me. cabal still insisted that there should be a tagsoup-0.8.
Hm, I'd think if there's no trace of tagsoup-0.8, cabal would use the installed versions to satisfy dependencies by preference. But maybe, because it sees version 0.8 available, it prefers to use the latest version available and allowed.
2) Is the commonly used version-scheming >= XYZ ideal?
No. Far from it. It's rotten, as you saw.
Maybe package maintainers should depend on exactly one version they know that works? I mean how can you guarantee, that every future version of a package will work?
You can't. Well, if you only use map, filter and arithmetics, build-depends: base is a pretty safe bet, but otherwise, adhere to the recommended dependency- scheme, build-depends: foo >= X.Y.Z && < U Specifying one exact version is too restrictive, you'll end up with everybody having umpteen versions of almost all packages installed. Minor version bumps which leave the API unchanged shouldn't break anything, small additions to the API should rarely break things, so if people adhere to http://www.haskell.org/haskellwiki/Package_versioning_policy , build-depends: foo >= X.Y.Z && < X.(Y+1) should be almost safe, build-depends: foo >= X.Y.Z && < (X+1) should be fine for relatively stable packages like base.

Specifying one exact version is too restrictive, you'll end up with everybody having umpteen versions of almost all packages installed.
I don't see this as a problem. Disk space is extremely cheap, but our time is precious. Aplications on Mac OS X provide necessary libraries in their .app folder. That's some waste but it relieves you from dependency hell.
Minor version bumps which leave the API unchanged shouldn't break anything, small additions to the API should rarely break things, so if people adhere to http://www.haskell.org/haskellwiki/Package_versioning_policy ,
Indeed. Neil, in this case i think, tagsoup's version shouldn't have changed from 0.6 to minor 0.8 while exported definitions such as "optLookupEntity" were removed. What do you think? I'd be glad if we could find a general solution. Currently everybody using ghc 6.10.4 and trying to install hxt will go through this hassle. Which would be almost everybody.

Minor version bumps which leave the API unchanged shouldn't break anything, http://www.haskell.org/haskellwiki/Package_versioning_policy
Neil, in this case i think, tagsoup's version shouldn't have changed from 0.6 to minor 0.8 while exported definitions such as "optLookupEntity" were removed.
Changing version number 0.6 -> 0.8 is a major release increment, not a minor one, according the package versioning policy linked to. Regards, Malcolm

Am Montag 25 Januar 2010 14:31:07 schrieb Malcolm Wallace:
Minor version bumps which leave the API unchanged shouldn't break anything, http://www.haskell.org/haskellwiki/Package_versioning_policy
Neil, in this case i think, tagsoup's version shouldn't have changed from 0.6 to minor 0.8 while exported definitions such as "optLookupEntity" were removed.
Changing version number 0.6 -> 0.8 is a major release increment, not a minor one, according the package versioning policy linked to.
Which I found rather irritating initially. I had 'learned' that version numbers go Major.Minor.Patchlevel[.optionalLineNoise] and then coming to terms with Major.major.Minor[.optionalStuff] took a couple of days.
Regards, Malcolm

Hi
Minor version bumps which leave the API unchanged shouldn't break anything, small additions to the API should rarely break things, so if people adhere to http://www.haskell.org/haskellwiki/Package_versioning_policy ,
Neil, in this case i think, tagsoup's version shouldn't have changed from 0.6 to minor 0.8 while exported definitions such as "optLookupEntity" were removed.
As Malcolm says, the rule is that 0.6 -> 0.8 I can do absolutely anything. If it's any consolation, I'm intending 0.9 to be perfectly compatible with 0.8. If there's anything I can do to make the hxt thing a bit easier I'm happy to do so. The change to remove optLookupEntity was necessary to support HTML 5 correctly, so I didn't really have a choice. In general I do try and keep the API as stable as possible. Thanks, Neil
participants (5)
-
Daniel Fischer
-
Don Stewart
-
haskell@kudling.de
-
Malcolm Wallace
-
Neil Mitchell