Hacker News new | ask | show | jobs
by derefr 4505 days ago
You know, it just occurred to me: if instead of pull requests, they just accepted all pushes... that'd sort of make this the programmatic equivalent of a wiki, wouldn't it? A site anyone could edit, in a more literal sense: not just the content, but the features.

Oddly enough, you wouldn't necessarily require people to use the command-line for this, but nor would you need to build any editing UI; instead, the site could just, say, provide a context menu that contains links to the GitHub code-editor view of all the source files, and content files, that were used to render that particular element.

If you really wanted to do this, to be practical, you'd need a pretty good continuous integration server to block the deployed build from failing, but for the codebase itself, I think it'd be a fun experiment to just let people do whatever they like.

---

...or, on a different tangent, you could have something like a CI server that evaluates and accepts/rejects pull requests based on arbitrary criteria. This'd basically be a black box (not part of the editable codebase) serving the same purpose that the site administration currently does.

This process could have very specific rules, like, say, that not only does every test have to pass, but that the commit can't delete any code from a test. So features can be added to a codebase through this black box, but not removed.

Attaching such a black-box-evaluator + automatic CI deployment process to the public web would almost be like throwing a genetic algorithm at your codebase: it would "evolve" roughly according to the constraints of the algorithm, even though people are doing the work.

1 comments

> not only does every test have to pass, but that the commit can't delete any code from a test.

Good idea, but this is easily gamed by e.g. adding a test that starts failing on a certain date. I've thought about this before, and it's really hard to come up with mechanisms for a system to incorporate untrusted modifications without totally collapsing.

It would be hilarious to design a program that accepts Bitcoin payments, and automatically accepts merge requests from the highest bidder.