purescript / registry-dev

Development work related to the PureScript Registry
https://github.com/purescript/registry
97 stars 80 forks source link

jelly 0.10.0 broken in package set 14.2.0 #590

Open considerate opened 1 year ago

considerate commented 1 year ago
Error 1 of 2:

  in module Jelly.Hydrate
  at /nix/store/s296s0x5m1b2asx3w6ihbvrra3gzfg3r-jelly-0.10.0//src/Jelly/Hydrate.purs:19:1 - 19:80 (line 19, column 1 - line 19, column 80)

    Module Jelly.Hooks was not found.
    Make sure the source file exists, and that it has been provided as an input to the compiler.

  See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
  or to contribute content related to this error.

Error 2 of 2:

  in module Jelly.Render
  at /nix/store/s296s0x5m1b2asx3w6ihbvrra3gzfg3r-jelly-0.10.0//src/Jelly/Render.purs:13:1 - 13:49 (line 13, column 1 - line 13, column 49)

    Module Jelly.Hooks was not found.
    Make sure the source file exists, and that it has been provided as an input to the compiler.

  See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
  or to contribute content related to this error.

Hydrate.purs in jelly-0.10.0 depends on Jelly.Hooks but the manifest on the index doesn't list jelly-hooks as a dependency.

https://github.com/purescript/registry-index/commit/b4c1ff0447871a5386f9cb392c7af06d53b310a0

considerate commented 1 year ago

This is the contents of purs.json

{
  "name": "jelly",
  "version": "0.10.0",
  "license": "MIT",
  "location": {
    "githubOwner": "yukikurage",
    "githubRepo": "purescript-jelly"
  },
  "dependencies": {
    "aff": ">=7.1.0 <8.0.0",
    "arrays": ">=7.1.0 <8.0.0",
    "effect": ">=4.0.0 <5.0.0",
    "either": ">=6.1.0 <7.0.0",
    "free": ">=7.0.0 <8.0.0",
    "jelly-signal": ">=0.4.0 <0.5.0",
    "maybe": ">=6.0.0 <7.0.0",
    "prelude": ">=6.0.1 <7.0.0",
    "refs": ">=6.0.0 <7.0.0",
    "safely": ">=4.0.1 <5.0.0",
    "tailrec": ">=6.1.0 <7.0.0",
    "transformers": ">=6.0.0 <7.0.0",
    "tuples": ">=7.0.0 <8.0.0",
    "web-dom": ">=6.0.0 <7.0.0",
    "web-events": ">=4.0.0 <5.0.0",
    "web-html": ">=4.1.0 <5.0.0"
  }
}

Line 19 in Hydrate.purs looks like this:

import Jelly.Hooks (class MonadHooks, useEvent, useHooks, useHooks_, useUpdate)
considerate commented 1 year ago

I believe that either

  1. jelly and all packages that depend on jelly should be removed from the package set.
  2. jelly should be downgraded to a version that doesn't break.
  3. The 14.2.0 package set should be removed and a new package set should be published when all packages build correctly.
considerate commented 1 year ago

Meta question: Is this the correct repo for reporting these kind of issues?

yukikurage commented 1 year ago

This is a bug caused by a module name conflict when integrating jelly-hooks functionality into jelly-signal.

Removing jelly-hooks from the package-set should work properly.

e.g. https://github.com/purescript/registry/issues/65

I think only a Registry Trustees can do these tasks...

f-f commented 1 year ago

@considerate yes this is the right place for reporting this! This is clearly a bug - every package in the set should compile.

@yukikurage thanks for the further details! I opened https://github.com/purescript/registry/issues/197 for removing jelly-hooks.

considerate commented 1 year ago

@f-f Thank you.

@yukikurage Thank you for the information. The jelly-signal-0.3.1 package from 14.2.0 doesn't seem to include the Jelly.Hooks module but 0.4.0 from 15.0.0 includes it. I have now confirmed that the 15.0.0 build jelly fine on my end.

@f-f Is there anything we can do about 14.2.0? Since it breaks the guarantee that all packages compiles together could it be revoked and unpublished?

thomashoneyman commented 1 year ago

IMO we should delete any broken package sets. We very likely will replace them all when the registry leaves alpha and start fresh as well.