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

What is nexus / nexus schema / nexus framework / nexus js / nexus experiment? #761

Closed
gustawdaniel opened this issue Dec 30, 2020 · 9 comments

Comments

@gustawdaniel
Copy link

Can anyone explain current and historic naming of these things?

I see this repository is called "nexus".

I is linked with page "nexusjs"

https://nexusjs.org/

But I know that "nexus graphql framework" was called in this way and is unmaintained and now called "nexus experiment".

I looking for "nexus schema" (without unmaintained framework) but after update of packages like "nexus plugin prisma" i see errors:

Cannot find module 'nexus' or its corresponding type declarations.

I expected that "nexus plugin prisma" will use now pure "nexus schema" without "framework" but I see imports like these

import { core } from 'nexus';

in node_modules/nexus-plugin-prisma/dist/utils.d.ts

But when I typed in google "nexus framework migration guide" I see working page:

https://nexusjs.org/docs/adoption-guides/neuxs-framework-prisma-users

that should be marked as depreciated / unmaintained

There is link to migration from nexus to nexus-schema

https://nexusjs.org/docs/adoption-guides/nexus-framework-users

but now it is called Nexus (without schema)

Screenshot from 2020-12-30 16-09-53

When in annoucment

https://github.com/prisma-labs/graphql-framework-experiment

It is called Nexus schema

Screenshot from 2020-12-30 16-10-05

Now nexus schema is depreciated:

https://www.npmjs.com/package/@nexus/schema

Screenshot from 2020-12-30 16-12-47

Sorry for this long issue, but somebody responsible for these decisions (of changes in naming) should not manage this project.

I initially loved it but now I do not want to use any tools with nexus in name because of terrible management of communication with programmers and outdated documentation.

Please imagine, how much chaos and confusion will it generate when you are searching for solution and you see materials with such many names and any of them should be matched with dates range to check what author mean by this name.

@Sytten
Copy link
Collaborator

Sytten commented Dec 30, 2020

Yeah this was not great and that is why I advised to stick to the @nexus/schema name.
Anyway long story short:

  1. Original package was called nexus
  2. Package was renamed nexus/schema and nexus was rebranded for the framework around v0.12 if I remember
  3. Framework is abandoned and moved to nexus-experiment
  4. Nexus schema is rerenamed nexus on the v1 release

Should be better getting forward, but lots of small places remain with old names.

@jdevng
Copy link

jdevng commented Dec 31, 2020

As green, i have a hard time telling what nexus does and how it fits in to something like apollo or a prisma interface.

@Sytten
Copy link
Collaborator

Sytten commented Dec 31, 2020

It defines the graphql schema using code instead of writing it in GraphQL directly. Honestly I would start with just a basic apollo server to start, add prisma after and then translate to nexus. Otherwise you will be lost in the concept. I don't even use the nexus prisma plugin.

@ahmedosama5200
Copy link
Contributor

ahmedosama5200 commented Jan 1, 2021

I don't even use the nexus prisma plugin.

Why ? What's wrong with it ?

@Sytten
Copy link
Collaborator

Sytten commented Jan 1, 2021

Nothing is wrong, I just don't like autogenerated resolvers were I don't control every security aspect of it. Proper access control in a multi-tenant architecture is hard enough without allowing the users to query anything on the DB.

@ahmedosama5200
Copy link
Contributor

I don't mean the experimental crud feature. I mean the model projection part of it using t.model.
If you don't use it, you should somehow make use of prisma autogenerated types using nexus sourceTypes. The plugin is doing pretty much the same thing.

@Sytten
Copy link
Collaborator

Sytten commented Jan 2, 2021

Agreed that is what I am doing. I still prefer it that way since I can easily override the models if need be and it forces a decoupling of the interface/user facing side from the storage side. I have not really look into the plugin a lot to be honest.

@bbbryan14
Copy link

I wish I could give a million thumbs up on this issue

@jasonkuhrt
Copy link
Member

Answered by @Sytten thanks. PRs to update old ID names are welcome if found.

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

No branches or pull requests

6 participants