dguest / pandamonium

Command line scripts to parse panda web api
BSD 3-Clause "New" or "Revised" License
27 stars 17 forks source link

Add CONTRIBUTING.md #31

Open matthewfeickert opened 4 years ago

matthewfeickert commented 4 years ago

Add a CONTRIBUTING.md file so that people know how to go about getting started with PRs. Some helpful project philosophy and advice is also great to have in there like this nice piece of feedback from @dguest in PR #29:

The idea here was that you should be able to run head -n100 README.md and get the basic instructions. If you're reading in a terminal it's sort of nice to have things wrap at 80.

Short, clear, and helpful! Exactly the stuff you want in a CONTRIBUTING.md.

dguest commented 4 years ago

Note for when I get around to actually writing a CONTRIUBTING file: I don't like dependencies. I can consider adding them but only if they have a relatively stable API. In general I'm happier to add 10 lines of workarounds than another dependency that might conflict with whatever other packages people are putting in their (virtual) environment.

Maybe this is a basic rule of SW design, but I guess it should be stated explicitly.

matthewfeickert commented 4 years ago

Note for when I get around to actually writing a CONTRIUBTING file: I don't like dependencies. I can consider adding them but only if they have a relatively stable API. In general I'm happier to add 10 lines of workarounds than another dependency that might conflict with whatever other packages people are putting in their (virtual) environment.

We should have another discussions RE: dependencies and specifically Click as I think they are something that should be embraced but with reason. The good news is that the scope of how I see pandamonium — a CLI utility that allows control over PanDA — doesn't have a broad enough scope to need many dependencies.

Maybe this is a basic rule of SW design, but I guess it should be stated explicitly.

I think being clear in what you do and don't want in a project is pretty important, so I think it is a good idea. I think there is discussion in the Python community on these things, but the general wisdom seems to be "if it is more than a few lines of code, don't roll your own and just contribute upstream if you need extra functionality". This is of course with the added caveat that if you're adding a whole dependency just for a single function or class with no clear way to use more of that dependency later then you're probably making a bad design decision.