bluesky-social / atproto

Social networking technology created by Bluesky
Other
5.79k stars 412 forks source link

Unideal distribution for ATP client library #1238

Open intrnl opened 1 year ago

intrnl commented 1 year ago

a little unusual issue so I think it might be best if I skip the issue template here, sorry for that.

the way @atproto/api is being bundled and distributed for use by users is unideal, maybe more than unideal.

there are several @atproto/* packages marked as a regular dependency, even though they've been bundled in, and the corresponding npm packages aren't being updated at all

https://github.com/bluesky-social/atproto/blob/0ee6dc45a5d8d4a90665662261c76d0c1bc37051/packages/api/package.json#L24-L26

these dependencies shouldn't be bundled as they aren't internal packages, if one happens to also use zod or graphemer in other parts of their application/project then they'd end up having a duplicate copy thanks to @atproto/api bundling them in, these should be marked as external on esbuild

https://github.com/bluesky-social/atproto/blob/0ee6dc45a5d8d4a90665662261c76d0c1bc37051/packages/api/package.json#L27-L28

including these dependencies from @atproto/common-web

https://github.com/bluesky-social/atproto/blob/0ee6dc45a5d8d4a90665662261c76d0c1bc37051/packages/common-web/package.json#L27-L30


I'm having issues with cloning and getting the monorepository to work at all at the moment, but to top this off, the way @atproto/common-web is being depended by @atproto/api and @atproto/common seems to make it a hassle if the dependencies above were to be made peer dependencies, I'm not sure if there's a better way to work around this.

intrnl commented 1 year ago

anyone having the same concerns with size can use @intrnl/bluesky-client