Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

github: dependencies are not supported (uWebSockets.js) #102

Open
pi0 opened this issue Mar 1, 2024 · 6 comments
Open

github: dependencies are not supported (uWebSockets.js) #102

pi0 opened this issue Mar 1, 2024 · 6 comments

Comments

@pi0
Copy link

pi0 commented Mar 1, 2024

Hi. Today I noticed an issue when trying to publish an existing npm package that has optional peer dependency on uWebSockets.js which is officially only published on Github.

package.json:

{
  "peerDependencies": {
    "uWebSockets.js": "*"
  },
  "peerDependenciesMeta": {
    "uWebSockets.js": {
      "optional": true
    }
  }
}

deno.json: (I guess it is not picked btw)

{
  "imports": {
    "uWebSockets.js": "https://esm.sh/gh/uNetworking/uWebSockets.js"
  }
}

Deno publish (1.41.1)

deno publish --dry-run
error: npm package 'uWebSockets.js' does not exist.
@pi0 pi0 changed the title github: dependencies are not supported uWebSockets.js github: dependencies are not supported (uWebSockets.js) Mar 1, 2024
@lucacasonato
Copy link
Member

We will likely not support depending on github: NPM packages - they are too unstable and not well lockable. It breaks our immutability model in some ways.

@pi0
Copy link
Author

pi0 commented Mar 1, 2024

I see. Trying to find a middle ground here. https://github.com/uNetworking/uWebSockets.js/issues/1026#issuecomment-1973260549 the mentioned library also aims not to opt into any registry.

Besides this particular case, i guess it might happen in the future. For the sake of jsr usage increase, would you consider gh releases with (content) digest? (gh:repo/name#ref+hash)

Or another alternative: Perhaps just skip error when optional peer dependency is specified? It seems deno is not picking on that meta right now.

Or another alternative: Support import maps in this case as escape hatch?

@lucacasonato
Copy link
Member

I suggest you either vendor the dependency into your package, or publish it to JSR yourself for the time being :)

@pi0
Copy link
Author

pi0 commented Mar 1, 2024

Yeah probably would do 👍 (mainly waiting for blessing of the author)

How shall we followup these two:

  • Possibility of immutable github deps with inline content hash
  • Possibility of deno/jsr to respect/ignore optional peer deps

My understanding is thst these two would be still viable to discuss even if could workaround uwsjs.

BTW feel free to simply say or close this issue if too much. I understand you might have more priorities than this for jsr and don’t want to put extra pressure.

@lucacasonato
Copy link
Member

So feel free to open another issue for 2 - it seems useful to figure this out, but unless there is another compelling reason for 1, I'm not inclined to explore that right now.

@zephraph
Copy link

#301 exists for resolving the peer deps issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Needs Triage
Development

No branches or pull requests

3 participants