Skip to content
This repository has been archived by the owner on Apr 19, 2023. It is now read-only.

Python port of Nailgun client #80

Merged
merged 1 commit into from
Nov 12, 2015

Conversation

bhamiltoncx
Copy link
Contributor

We have a lot of Buck users who struggle to compile the native Nailgun C client.

This ports the client to pure Python instead. I tested this with the Buck
Nailgun server on Linux 3.10.75 with Python 2.6 and OS X 10.10.4 with Python 2.7.

This client doesn't yet work on Windows, since Python select.select() doesn't
handle a mix of sockets and file handles on Windows.

@bhamiltoncx bhamiltoncx force-pushed the nailgun-client-py branch 4 times, most recently from 974c267 to ec7826d Compare November 12, 2015 07:18
We have a lot of Buck users who struggle to compile the native Nailgun C client.

This ports the client to pure Python instead. I tested this with the Buck
Nailgun server on Linux 3.10.75 with Python 2.6 and OS X 10.10.4 with Python 2.7.

This client doesn't yet work on Windows, since Python `select.select()` doesn't
handle a mix of sockets and file handles on Windows.
jimpurbrick added a commit that referenced this pull request Nov 12, 2015
@jimpurbrick jimpurbrick merged commit 1ad9ad9 into facebookarchive:master Nov 12, 2015
bhamiltoncx added a commit to facebook/buck that referenced this pull request Nov 16, 2015
Summary:
We've constantly struggled with building the native Nailgun C
client as part of distributing Buck.

Adding the requirement of a C compiler is a lot to ask for people
building pure Java projects. We often run into users who have to deal
with things like accepting Xcode license agreements as root just to
build Buck, which seems silly.

This diff adds a pure Python port of the Nailgun client so we can
distribute a pure Java distribution of Buck that works with `buckd`.

I made sure the Python code worked both with Python 2.6 and 2.7.

This doesn't yet work on Windows, but we don't support `buckd`
on Windows yet, so it's not a net loss of functionality.

I sent this pull request upstream as well:

facebookarchive/nailgun#80

Test Plan:
Tested on Linux 3.10.75 with Python 2.6 and OS X 10.10.4 with Python 2.7.

Started `buckd` with `buck build buck`. Connected Python
client and built again by running:

  python third-party/nailgun/nailgun-client/ng.py --nailgun-server=local:.buckd/sock com.facebook.buck.cli.Main build buck
shs96c pushed a commit to shs96c/buck that referenced this pull request Dec 26, 2015
Summary:
We've constantly struggled with building the native Nailgun C
client as part of distributing Buck.

Adding the requirement of a C compiler is a lot to ask for people
building pure Java projects. We often run into users who have to deal
with things like accepting Xcode license agreements as root just to
build Buck, which seems silly.

This diff adds a pure Python port of the Nailgun client so we can
distribute a pure Java distribution of Buck that works with `buckd`.

I made sure the Python code worked both with Python 2.6 and 2.7.

This doesn't yet work on Windows, but we don't support `buckd`
on Windows yet, so it's not a net loss of functionality.

I sent this pull request upstream as well:

facebookarchive/nailgun#80

Test Plan:
Tested on Linux 3.10.75 with Python 2.6 and OS X 10.10.4 with Python 2.7.

Started `buckd` with `buck build buck`. Connected Python
client and built again by running:

  python third-party/nailgun/nailgun-client/ng.py --nailgun-server=local:.buckd/sock com.facebook.buck.cli.Main build buck
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants