-
Notifications
You must be signed in to change notification settings - Fork 66
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
Crazy Idea: git backend registry #97
Comments
Looks fun, @josh The impractical side birdsnest not running any code is that it won't record usage statistics. Otherwise, manually registering packages via pull request would prove to be more work than what we already have (and cause delays in package registration). These seem like blockers to me right now, sorry to rain on your parade… I think the idea is pretty cool, but I'd be interested to know your response to these concerns. Any plans? |
I'd argue the registry is a poor place to track downloads since it isn't even offering them. Git clone and release downloads are recorded in the GitHub traffic graphs and even includes downloads that don't go through name resolution. In terms of stats, do you have numbers on how much people care about this hit data? I imagine most people don't know it exists nor care. I think we should value decentralization and mirroring over any centralization analytics system for an open registry. (Footnote: No one looks at their DNS queries to tell how much traffic their sites get)
Automatic merge of new packages is trivial to setup with a bot. The situation today for disputing package names and removal is a complete mess and pretty much nothing gets resolved. 1) because the process is manual for us maintains to ssh into the db and remove packages and 2) theres no way structured process to have a public discussion about removals. Things like delisted your own packages can be automated by a merge bot. A full author history would give us an audit log to track down the original person that submitted a package or proposed a rename. Today the database is completely anonymous and completely fails us here. |
I don't have usage analytics for http://bower.io/stats/, @rayshan does though.
👍 SGTM.
YES! |
So I still think there would be a place for separate "bower package index services". http://customelements.io would be a good example here. Community sites can handle niche curation and nicely displayed metadata and more extension full text search over package readmes. Potentially "install" hits could still be managed by a standalone service that would be optional to participant in. Keeping it separate from the core registry solves many of the security and service availability issues. Definitely a good question. I do feel a little biased because I'd personally like to be opt-ed from download tracking and choose privacy instead. |
Pros:
Cons:
I propose middle-ground solution, and use github repository as storage for registry, instead redis. Advantages:
|
Couldn't Also, what OS's filesystem has a limit anywhere near that low? On Mon, Oct 13, 2014 at 3:10 PM, Adam Stankiewicz notifications@github.com
patrick |
I meant already implemented Also, I'm pretty sure it's not possible to automatically open pre-filled PR on GitHub. |
Isn't that the case for anyone that doesn't update it now? I would think
'course it is. On Mon, Oct 13, 2014 at 3:24 PM, Adam Stankiewicz notifications@github.com
patrick |
You need to fork registry, clone it, commit change, push it, authorize with GitHub API, and send PR via API. That's pretty hard to implement. Also I still don't see how to instead sending PR, show pre-filled PR. Other issues are with too many e-mail notifications and writing auto-accepting bot. I think it's easier and cleaner to write script that commits new entry instead accepting PR. Or course one could send new entry via PR, but it wouldn't be necessary given |
Existing registry can be proxy to the new API to preserve compatibility with old clients.
I'd probably suggest no one directly watch the "repo" but setup a team for people to mention when it requires direct review. Its a pretty typical GitHub workflow for repos with high volume issue trackers.
Well, luckily I'm just the person to make that happen.
If we cared about FAT32 its 65,534. I'd say we wouldn't and every other modern FS supports trillions. Most length limits are on the file name itself. This is more of a format issue, but you can also shard off the first letter.
Pretty unlikely. The current registry is about 4MB. Even with git history, gzip is amazing at compressing this stuff. To put performance in perspective, a cold |
On Mon, Oct 13, 2014 at 3:39 PM, Adam Stankiewicz notifications@github.com
As far as emails go - why would anyone subscribe to it? Even if someone did |
Web flow baby. Something like https://github.com/josh/birdsnest/new/gh-pages/packages/foo?body=https://github.com/josh/foo.git could prefill the filename and body and you just have to it submit. |
Here are the routes:
Only It's hard to proxy GET
POST Or should we drop support for some endpoints and make someone angry? :)
Still, currently if you want to install only jquery, there's one ~1KB request to
Bower usually downloads packaged .zip tags. For jquery it's 750KB, just one file. |
Just FYI I'm not against this. I just want to list possible issues. |
Bower's search-server uses GET |
Haha for sure. Theres room for some debate just around the storage format alone. Originally I had just a single File values could potentially be a full json object with other metadata, but I really don't know what else would need to be a core concern. Keywords and dependencies are described in the package's metadata which works better since the author can just change it. Theres also an interesting issue about package name validation in regards to the FS. I mostly blame @maccman for the original poor validation. For an example, he removed a package from the registry that managed to register its name as an empty string |
The file format could be JSON:
It allows for tricks like following, even with current bower version:
Theoretically one could host their own bower repo even now, just by forking birdsnest. |
What needs to be done:
Did I miss something? Is it really worth it? |
I think it needs more buy in from other involved peeps. |
why the closure? |
I believe because there's not enough engineering interest currently. So |
@maccman and I had a pretty crazy, but I think genius, idea to just have the registry in a git repo.
https://github.com/josh/birdsnest
It addresses many of the concerns in #73 and requires very little maintenance and upkeep from the bower team. Making the infrastructure more complex instead of less seems like a setup for failure given our current maintainership and budget issues. I think we can turn our limited resources into an advantage here.
/cc @paulirish @sheerun @rayshan @benschwarz
The text was updated successfully, but these errors were encountered: