standard-webhooks / standard-webhooks

The Standard Webhooks specification

Home Page:https://www.standardwebhooks.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Separate repository per library

svenluijten opened this issue · comments

I couldn't find any previous discussion about this in the existing issues, so I'll ask here. What was the thought process behind publishing all the libraries in this one GitHub repository versus having a repository per library?

Some of the drawbacks I see to publishing it all in one repository (as is done now):

  • You have to do extra work (in the form of a GitHub Action) to publish the releases to the required package repositories (e.g. publishing the PHP library to Packagist).
  • Versioning is tied to the GitHub repository. If the Java lib has a bug that is fixed with an immediate bugfix, all other libraries also get a version bump.

Could you shed some light on the initial decision to put all the libraries in this one repository? Thanks in advance!

I could have sworn there was already a ticket about this, but I can't find one. :)

We had a discussion about it before launching, and while I don't think there was strong leaning towards one way or the other, we decided to keep it all in one repo. The main thinking was that having everything in the same place makes things much easier operationally. In most cases when we change the libs change is because we want to update something in the spec, or the issue affects more than one library. This is especially true given the fairly small surface area of the libs. It's also nice so that when we update something in the spec (and thus the libs) we can just open one PR instead of one for the spec and one for each library and then having to coordinate all of them.

On a personal note, we (@svix) switched from having a repo for each lib to just one for all of them because having multiple repos was a big pain.

Interesting! The small surface area you mention is a good point, I hadn't considered that. Thanks for the explanation! I wouldn't expect there to be a lot of pain maintaining a repo per language, but I also don't have direct experience with quite this many languages so I'll trust your guys' judgment 😄

FWIW it does complicate it for new contributors ("wait, where do I make this change?"), so it might be worth mentioning the expectations there are and/or tradeoffs that were made for the libs in the CONTRIBUTING.md.

What would you suggest we add to CONTRIBUTING.md? The background story about is more of a curiosity than contribution instructions, so I wouldn't put that there. Could potentially add a note about updating all of the libraries when issues are found or something like that.

Fair enough. My thought process was that more people are likely to have this question, so instead of fielding questions about it, it could be caught by a little note in either the README or CONTRIBUTING docs. But I suppose this issue would also serve that purpose 😄

Oh, I get what you mean now, you meant it as a sort of FAQ ("here's our philosophy about X"). Yeah, I think this ticket will now accomplish that. :P