Hi, Here's the summary of the previous community meeting.
--- COMMUNITY MEETING Place: #openvpn-devel on irc.freenode.net List-Post: openvpn-devel@lists.sourceforge.net Date: Thursday, 20th May 2010 Time: 18:00 UTC Planned meeting topics for this meeting were on this page: <https://community.openvpn.net/openvpn/wiki/Topics-2010-05-20> Next meeting next week, same place, same time. Your local meeting time is easy to check from services such as <http://www.timeanddate.com/worldclock> or with $ date -u SUMMARY Discussed the possibility of users offering bounties for development tasks (e.g. adding features or fixing bugs). Agreed that having a bounty system would be a good idea. The ideas brought up in the IRC discussion before and during the meeting are here: <https://community.openvpn.net/openvpn/wiki/Topics-2010-05-20#Developerbounties> Discussed building a continuous integration server. It would spot build problems early on, allow testing the code for problems (e.g. with Coverity) and allow automatic packaging and releasing of Openvpn-testing packages. Agreed that this is a good idea. More details here: <https://community.openvpn.net/openvpn/wiki/Topics-2010-05-20#Continuousintegrationserver> Discussed creating a Beaker automated test framework for OpenVPN. It would allow automated verification of OpenVPN's external behavior using various OS/application configurations. This would in turn reduce manual testing effort considerably and improve code quality. More details here: <https://community.openvpn.net/openvpn/wiki/Topics-2010-05-20?version=8#Beakertestframework> <https://fedorahosted.org/beaker> --- Full chatlog as an attachment -- Samuli Seppänen Community Manager OpenVPN Technologies, Inc irc freenode net: mattock
(21:08:32) jamesyonan: hi (21:08:38) ecrist: hello (21:09:10) mattock: hi james! (21:09:37) mattock: today's topics: https://community.openvpn.net/openvpn/wiki/Topics-2010-05-20 (21:09:39) vpnHelper: Title: Topics-2010-05-20 â OpenVPN (at community.openvpn.net) (21:09:51) mattock: no bugs or anything today as dazo is not here... and I guess it's been a quiet week (21:10:19) mattock: anything else somebody would like to add to the topic list before we start? (21:10:21) ecrist: jamesyonan: FYI, openvpn-devel port is going to be default in pfSense 2.0 (21:10:46) jamesyonan: cool (21:11:11) ecrist: talked with their lead developer over some beer last week. (21:11:36) ecrist: as of friday last week, they were going to be using week 19 snapshot (last week) (21:12:47) mattock: should we begin from the bottom this time :)? " Developer bounties" (21:14:21) mattock: I think the idea is covered pretty well in the description... so what do you think about it? Props for this go to ecrist, btw (21:16:18) mattock: the only issue I can think of is with features which can't be included to main source tree. But that affects the payments more than anything else (21:16:56) mattock: ecrist: do you have ideas how the money transfer etc. would be implemented? (21:17:00) mattock: the bureaucracy I mean (21:17:39) waldner: are there prior examples of this in other open source projects? To get an idea of the effects it could have (21:17:42) ecrist: what do you mean? (21:17:58) ecrist: waldner: lots of them. freeswitch has done it. pfSense does it (21:18:04) waldner: ah thanks (21:18:20) ecrist: some projects have it, on an unofficial level (21:18:39) mattock: funambol also has quite a few of these, for example https://phonesniper.forge.funambol.org/ (21:18:41) vpnHelper: Title: phonesniper: Home (at phonesniper.forge.funambol.org) (21:19:04) mattock: so there is prior art (21:19:12) waldner: thanks, I guess then it was just that I hadn't heard of them (21:19:33) mattock: I think this is a very good idea... do we all agree on that? (21:20:06) jamesyonan: bounty seems like potentially a good idea, but would need volunteers to manage it -- i.e. vetting of code, insuring that requirements are met, etc. (21:20:13) ecrist: mattock: as far as money transfer/handling (21:20:41) mattock: jamesyonan: the idea is to integrate it to the development process... so that all written features have to pass the normal development process (21:20:53) ecrist: I think the process could be as follows: user submits a bounty request, and deposits their money via paypal to a holding fund. (21:20:56) mattock: so that no crap can get in (21:21:23) ecrist: the holding fund helps to assure that 1) the money gets paid and 2) the developer does the work (21:21:58) ecrist: the creator/subscriber can set a timeout, at which point the funds are refunded and the bounty dropped. (21:22:30) ecrist: the timeout would not apply to work in progress, given a reasonable time (21:22:59) mattock: is this all (e.g. timeouts) achievable using paypal or is it manual work? (21:23:03) waldner: sounds reasonable (21:23:15) ecrist: mattock: it could be accomplished automatically with cron jobs (21:23:25) ecrist: I (21:23:31) mattock: ecrist: ok, sounds good (21:23:42) ecrist: 've done development with Paypal's API, so I'm familiar with how to handle that system (21:24:18) ecrist: I do think the fund needs to be a non-developer and non-openvpn technologies entity, however (21:24:48) waldner: I have a question though (21:25:03) jamesyonan: how is copyright handled by other open source projects that use bounties? Does the developer hold the copyright or the bounty-payer? (21:25:14) agi: hi all, sorry for being late (21:25:17) waldner: wouldn't this system kind of "hold back" people from implementing new features when there's no bounty? (21:25:21) mattock: hi agi, no probs (21:25:43) waldner: ie, features they want to add, but noone requested? (21:26:26) mattock: waldner: I thought of that too... however, developers tend to do things are important to them. So if you, say, want ipv6 support, you'll work on it, bounty or no bounty... (21:26:37) waldner: just asking, eh, I'm not against it in principle (21:26:53) waldner: yes, I suppose that is at least partly true (21:26:54) mattock: waldner: I didn't mean to be rude or anything :) (21:26:55) ecrist: jamesyonan: good question. I would posit that we could force a BSD license upon the code generated during a bounty (21:27:03) waldner: me neither :) (21:27:17) mattock: ecrist: I think GPLv2 and BSD licenses are incompatible, or are they? (21:27:35) ecrist: depends on the direction (21:27:48) ecrist: you can include BSD licensed code in GPL, but not vice-versa (21:28:54) agi: ecrist: not always (21:29:18) agi: the original BSD license is not GPL compatible (21:29:51) agi: 'cos it has and 'advertisement' clause (21:29:59) mattock: I'd say requiring GPLv2 would make most sense, given OpenVPN is GPLv2 licensed anyways... or what benefit would we get by using a BSD license? (21:30:19) ecrist: BSD is 'really' free, GPLv2 requires GPLv2+ (21:30:30) mattock: ok, now we get to religious issues :) (21:30:53) mattock: GPL protects the code's freedom, whereas BSD license does not :) (21:30:58) ecrist: you can take BSD licensed code, as long as you mention the original author, can relicense it as GPLv2 with your changes. (21:30:59) mattock: but let us not go into this (21:31:14) ecrist: you can't enfoce GPLv2 on the code you didn't write, as the original source still maintains BSD (21:31:55) ecrist: the reason I recommend BSD for bounties, is either party (payer or payee) can take the code and do with it as they please, with the code remaining available to the project at large. (21:32:26) jamesyonan: agreed -- I think BSD makes sense for bounties (21:32:27) mattock: ecrist: ok, sounds reasonable (21:33:13) mattock: ok, so for the OpenVPN project use we'd relicense the BSD-licensed code under GPLv2 and mention the author (21:33:14) mattock: ? (21:34:05) mattock: and the developer and payer could use the BSD-licensed version any way they please? (21:34:13) ecrist: essentially (21:34:22) mattock: ok, sounds good (21:35:09) mattock: ecrist: are you thinking about volunteering for this job? :) (21:35:18) ecrist: the thing to remember is the original source remains BSD licensed, you can't enfoce another license upon code that's available already (21:35:24) ecrist: mattock: I could, sure. (21:35:37) ecrist: I had me in mind, but wouldn't mind someone stepping up. (21:35:53) mattock: what if we send mail to -users mailinglist about this (21:36:12) mattock: to verify the licensing issues and to ask if somebody wants to take part in this (21:36:17) ecrist: before we get the community at large involved, I think we need more legwork. (21:36:26) mattock: how come? (21:36:51) ecrist: for one, where there is money involved, there needs to be some organization (21:37:43) ecrist: I was thinking that we could create, ala FreeBSD, The OpenVPN Foundation, to hold the monies and potentially, in the future, benefit further development in the future. (21:38:17) ecrist: i.e. people donate money to open source projects, nobody wants to donate money to an evil corporation (no offense OpenVPN Technologies, Inc) (21:38:30) agi: we could also 'use' SPI (21:38:33) ecrist: we could use that foundation to hold those donations, in addition to the bounties. (21:38:55) agi: if we want to save the hassle of creating a NPO (21:39:02) ecrist: what is SPI? (21:39:16) agi: http://www.spi-inc.org/ (21:39:18) vpnHelper: Title: Welcome to SPI Welcome to SPI (at www.spi-inc.org) (21:39:32) agi: SPI is a non-profit organization which was founded to help organizations develop and distribute open hardware and software (21:39:53) krzee: sorry im late (21:40:06) mattock: hi krzee! (21:40:12) krzee: hey =] (21:40:17) mattock: agi: so SPI takes care of the bureaucracy stuff? (21:40:28) agi: right (21:40:41) agi: http://www.spi-inc.org/projects (21:40:42) vpnHelper: Title: Projects Welcome to SPI (at www.spi-inc.org) (21:42:32) astrophy [~astrophy@95.211.87.139] è entrato nel canale. (21:42:55) agi: there's also 3rd party sites devoted to free software bounties (21:42:58) mattock: agi: is there a way to link a SPI donation to a specific feature? (21:43:35) agi: yes, when donations are made, they can be marked for a project (21:43:51) krzee: how about for a feature for that project? (21:44:07) krzee: like "ipv6 in openvpn" (21:44:07) mattock: yep, that's what I meant (21:44:14) agi: so I guess, it could be marked at 'feature level' too (21:44:34) agi: but I guess contacting SPI for those details would be better than my word (21:44:59) mattock: ok, I think we need to check out SPI and similar services... creating a foundation at this point is probably an overkill (21:45:45) mattock: that is, if we don't have to do that... (21:46:55) mattock: should we crowdsource this SPI/foundation/whatever thing by sending mail to -users... we'd also see what kind of feedback this plan would get (21:47:00) astrophy ha abbandonato il canale (quit: Ping timeout: 252 seconds). (21:48:50) mattock: let me rephrase that... any objections against sending mail about this to -users mailinglist? ;) (21:49:42) ecrist: no (21:49:57) mattock: ok, anything else we'd need to discuss regarding bounties? (21:50:15) ecrist: until we resolve WHERE to keep the money, no. (21:50:38) ecrist: so far, I've been keeping money donated to the community (21:50:53) ecrist: http://www.secure-computing.net/wiki/index.php/OpenVPN/Donations (21:50:54) vpnHelper: Title: OpenVPN/Donations - Secure Computing Wiki (at www.secure-computing.net) (21:52:09) mattock: ok, shall we move to next topic: "Continuous integration server" (https://community.openvpn.net/openvpn/wiki/Topics-2010-05-20) (21:52:11) vpnHelper: Title: Topics-2010-05-20 â OpenVPN (at community.openvpn.net) (21:53:20) mattock: ok, so in a nutshell the idea is to a) spot build problems a.s.a.p. b) create and publish openvpn-testing packages (source+binary) (21:53:24) mattock: automagically (21:54:06) ecrist: I'm guessing something with virtualization? (21:54:15) mattock: it could also probably be used a centralized place to review the code with automated tools (21:55:17) jamesyonan: I should also mention that the OpenVPN project has an account with Coverity to use their commercial, compile-time bug-finding tool (21:55:52) mattock: ecrist: the idea with continuous integration is to check that no commits cause the build to break... but if this would be integrated with beaker then the build could be tested with multiple OS'es / setups (21:57:04) mattock: jamesyonan: how does coverity work? is it a standalone app? (21:58:14) jamesyonan: it's a web app -- you basically upload the source code to the web app, run it, and it produces a list of source code warnings (21:59:04) mattock: does it have an API that could be used? e.g. to launch the check automatically from the CI server? (21:59:25) mattock: and mail the results to -devel (22:00:09) ecrist: any non-javascript/java/flash site should be scriptable (22:00:28) ecrist: and for the others, there are plugins for firefox to work around that (22:00:44) mattock: a clean API would be nicer, though :) (22:01:02) ecrist: HTTP POST *is* an API. ;) (22:02:10) mattock: guess so, but the web pages are not guaranteed to remain the same... anyways, this is worth checking out (22:02:26) jamesyonan: not sure -- I haven't used it extensively (22:02:51) mattock: ok, let's check if it's programmable... if not, we can / should still use it periodically (22:04:01) mattock: so do you think the whole idea with continuous integration / openvpn-testing packaging+publishing server worth the effort? (22:04:51) mattock: I think we need to publish openvpn-testing packages anyways, so the CI stuff is basically cream on top of that (22:05:18) mattock: and it should be relatively trivial to setup (22:06:50) ***ecrist on phone with Coverity (22:06:56) ecrist: they have an API (22:07:02) mattock: great! (22:07:17) ecrist: jamesyonan: can you get me the login info? (22:07:30) jamesyonan: sure (22:07:53) krzee: [12:06] <mattock> so do you think the whole idea with continuous integration / openvpn-testing packaging+publishing server worth the effort? (22:07:54) krzee: i do (22:08:03) krzee: takes a human step out of the process (22:08:12) ecrist: I was told by sales that there is an API and it's covered under the documentation within the account (22:08:21) krzee: which makes it easier and therefor more likely for people to test stuff in -testing (22:08:53) ecrist: krzee: pfSense 2.0 is going to use my openvpn-devel freebsd port by default. :P (22:08:58) krzee: besides, afaik ecrist has that most of the way done (22:09:01) mattock: ok, then we could integrate coverity checks into the CI server... (22:09:03) krzee: ecrist, ya thats coolness! (22:09:38) mattock: I'll start working on the CI stuff once I get my backlog a little shorter :) (22:09:38) ecrist: now if only I can con openvpn tech into paying my way to BSDCan next year. muahaha (22:10:51) mattock: shall we move on to "Beaker test framework"... this is originally dazo's idea which was discussed already in November/December I think (22:11:41) mattock: so the basic idea with Beaker is to automatically test an application with various setups... for example, on different OS'es, with different settings, etc. (22:11:58) mattock: so that problems with the external functionality of the application can be spotted early on (22:12:40) mattock: the only downside here is that a) it requires quite a lot of VM's, b) takes a while to setup so that it does something useful (22:13:19) mattock: also, if we want to test OpenVPN in "extreme" conditions, we'd need VM's from community members with really crappy connections :) (22:13:44) krzee: i have crappy connection (22:13:52) ecrist: me too (22:13:53) krzee: its normal MTU, but its shitty bw (22:13:57) ecrist: :P (22:13:59) krzee: ecrist, liar! (22:14:07) mattock: in general, providing VM's for Beaker would be an easy way for community members to contribute to the project (22:14:25) mattock: krzee, ecrist: do you have incredible packet loss percentage, too? (22:14:26) krzee: interestingly enough i dont need to adjust MTU over a sat link even (22:14:42) krzee: nope, actually i dont have packet loss (22:14:45) ecrist: mattock: I was kidding, I have a good connection. (22:14:51) krzee: even over the aforementioned sat link (22:14:59) mattock: ecrist: how can I believe anything you say anymore? :) (22:15:13) jamesyonan: re: crappy connections -- OpenVPN has some code (look for "gremlin" in the source) to simulate crappy connections and packet corruption. (22:15:17) krzee: ecrist's link is so good i have a colo in his basement (22:15:17) krzee: lol (22:15:24) ecrist: recall the wiki/forums and such currently reside on my connection. (22:16:01) ecrist: I'm sure it wouldn't be too difficult to simulate some of that within a series of vms and firewall foo (22:16:18) ecrist: be a bit of work to setup, but once you have the test environment, it's easy to do the tests (22:16:31) waldner: AFAIR with netem or dummynet it should be possible to emulate arbitrary packet loss, latency, etc (22:16:49) waldner: I have to refresh that, it was much time ago (22:17:08) mattock: jamesyonan, waldner: interesting... so this packet loss testing thingy has been taken care of already :) (22:17:55) jamesyonan: the code is there to do the testing, but we don't have an automated system in place to exercise it (22:17:57) waldner: yes, it's a fairly common requirement for emulated networks...vde has facilities for that too (22:18:19) mattock: jamesyonan: you mean the gremlin stuff? (22:18:24) jamesyonan: yes (22:19:29) mattock: perhaps we should take a good look into Beaker and what it can do... as it can test connectivity between the tested VM's, it might be able to test it with simulated packet loss, too (22:20:57) mattock: so this Beaker stuff _may_ be possible to integrate with the CI stuff - as dazo put it - "with some creative scripting" (22:21:55) mattock: does anyone have anything to add to this CI/Beaker mess? Or shall we call it a day and start working on these a.s.a.p.? (22:23:05) mattock: anything else to discuss today? (22:23:17) ecrist: not for me (22:24:56) mattock: ok, I'll summarize the meeting tomorrow and send mail regarding the bounty system to -users