

Crossroads I/O is a fork of the ZeroMQ project - dochtman
http://www.crossroads.io/

======
psadauskas
From the FAQ:

 _Why do you not accept pull requests?

Pull requests can change while being reviewed. This makes it impossible to
ensure that the code being merged is the same code that has been reviewed and
discussed, which compromises integrity of the codebase._

If only Git had some sort of cryptographically secure token that would
uniquely identify commits, and make tampering evident.

~~~
mato
It does. But to my knowledge, no one submits pull requests as a set of SHA1
hashes.

~~~
storborg
What is a pull request if not an ordered list of SHA1 hashes and comments?

~~~
technoweenie
GitHub pull requests are tracked by a base and a head commit. Usually, base is
master, and head is some feature branch. This allows the pull request on
GitHub to pull in new changes to the commit as a discussion forms around it.

So in that sense, he is correct. There's no way to ensure that clicking the
merge button is indeed merging what I think it's merging. Now that I type
that, we could easily just include the latest SHA in the form and check that.
Problem solved!

Alternatives to this are:

* Merge manually from the command line. This is typically what we do at GitHub. * Request that people file pull requests with a SHA as the pull request head. This makes it impossible to update the pull request with future commits. * Don't use pull requests.

~~~
snprbob86
> we could easily just include the latest SHA in the form and check that

Please do! I've accidentally merged the wrong code on a few occasions.

While we're making feature requests:

* The order of commits on the "Commits" tab sometimes shuffle around, especially when a history contains a merge.

* Would be nice to let me annotate code (with comments) before "Send Pull Request". Sometimes I want to make some comments to guide a reviewer.

* Browser-push updates of comment threads!

* Let me comment on a file, not just a particular line, particularly empty ones.

* Discussions are often hard to follow via email because insufficient or misleading context is included.

* 100 other things I can't think of at the moment :-)

I love GitHub; it's critical to the way we work. Thanks!

~~~
nixme
Wow, this is exactly the list of improvements IMO that would make GitHub a
perfect code review platform. Especially push on comment threads.

------
jameskilton
So I can't find the reason _why_ this project exists instead of just
contributing to 0MQ directly.

~~~
to3m
From the web site (<http://www.crossroads.io/faq>):

```Why was Crossroads I/O forked from ZeroMQ?

The contribution and trademark policies of the ZeroMQ project were, as of
March 2012, incompatible with our long-term goals.

Who is behind the fork?

The main work on the fork was done by two of the original developers of
ZeroMQ, Martin Sustrik and Martin Lucina, with help and advice from other
members of the ZeroMQ community.'''

~~~
Ecio78
I've read it, and yet not understood which are those incompatibilities in the
goals

~~~
yk_42
As I understand it (as a regular on the ZeroMQ and Crossroads mailing lists),
the reasons are as follows:

1) Trademark issues - the original developers of ZMQ have been prohibited from
using the ZeroMQ trademark and, thus, from making official releases.

2) The new ZeroMQ contribution policy[1], in which pull requests are merged
without review and then later reverted/enhanced if necessary, is seen as
incompatible with the goals of some of the lead developers. These developers
prefer a more rigorous review policy.

There are more reasons, but from what I can tell, those are the main ones that
haven't fully been covered here.

[1]: <http://www.zeromq.org/docs:contributing> (see "Philosophy").

~~~
mato
If you want more background to what led up to our fork of ZeroMQ, read the
flamewar on zeromq-dev from February carefully hidden in a "C++ assertion"
thread at [http://lists.zeromq.org/pipermail/zeromq-
dev/2012-February/0...](http://lists.zeromq.org/pipermail/zeromq-
dev/2012-February/015675.html), or from
[http://lists.zeromq.org/pipermail/zeromq-
dev/2012-February/0...](http://lists.zeromq.org/pipermail/zeromq-
dev/2012-February/015758.html) which relates directly to the trademark
question.

~~~
DennisP
I noticed there's a compatibility library with 0mq. What are the technical
changes that require a compatibility library?

This seems to imply there are API differences, rather than just the same code
with different development policies going forward.

~~~
obtu
The compatibility configure flag seems to be used to also install the
crossroads library as libzmq.so.

------
SoftwareMaven
The real question for me, since I very recently brought 0MQ into my project:
should I stay with that or switch to Crossroads? I don't want to get stuck on
the lagging branch.

~~~
astrodust
My vote is for the first one that can handle TLS over a special type of
connection pair.

~~~
ishbits
+1

------
arjn
Can someone please elaborate ? I very recently started an investigation (proof
of concept) into zeromq for my team. What are the long term implications ?

~~~
dripton
Probably none. You can still use ZeroMQ. If Crossroads ends up better than
ZeroMQ, you can switch.

~~~
jrockway
Especially as the ZMQ API is so simple. init/send/recv. That's about it.

