From owner-freebsd-mono@freebsd.org Tue Jul 5 16:06:30 2016 Return-Path: Delivered-To: freebsd-mono@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E8C4B719BA for ; Tue, 5 Jul 2016 16:06:30 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: from mail-vk0-x22f.google.com (mail-vk0-x22f.google.com [IPv6:2607:f8b0:400c:c05::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BAAD51771 for ; Tue, 5 Jul 2016 16:06:29 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: by mail-vk0-x22f.google.com with SMTP id v6so830912vkb.2 for ; Tue, 05 Jul 2016 09:06:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=xD67/IFW2aKYWaxJ1Gb9XPYfixgVbrov8AvyyHZnkQ8=; b=Ftx+g4JhW1I/MUObyv8XxGUFxz4elhZhCcgKUs0+NDlSE3tBmwUdc6J4lycpt2pz9z 19Jby8u1R/baIHer7lxrc0u9/Uy0reHH/g/y+hQiQSoNNs63FUERuuiqQrii3ZUWQlZ5 h4exFhRFXJad7Bx8J7+Hf+8/eR08cKcahHvsN40olHs3hhaZR8h5U/bcPZi0pOjiqDXp IHFYZdriDfbQyMVXTOJxanwfXNFIkRP/KedAimGS5AiN0N0iHpMVek5wKvoHUwBOF8xw 8kCIBeWQLFij0J0q6AazkfsPQZSNZwORFs/kmwpAwtN/X5QBv/CAiAYwTjizRVxaZDJg 3MyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=xD67/IFW2aKYWaxJ1Gb9XPYfixgVbrov8AvyyHZnkQ8=; b=MiK/z+EqX/3flOfyHGy5kiUvfqnRdrzLTzh6lrcceWz58ZA698lE3hcx4LpcwNuNMl 0BqkA2g9Bsd5z9oRrP4mCeiZtAPAnntYF5OY5pPVeJen2LcYtXwZsHILU9uOfZm2MVIp bXGAZm6S7Dy272x9YAqIzD/nAwopJFkJP2uNogGF52hidYbFJtpUBJlN2ByY65VdNEPV bv5QpGgsL74nZc+MRFLC0LAuojHTblpVGfZJim16nhUw7vuLvE9082p6KBxoHMJ4l9q4 8Qnlniz8LO+Dg8aJo3Z29o74H3G/Xsg4mTh4fPLRQ8Bj29wBmn3L8PjS6CGUrtA3Go4t 8vHw== X-Gm-Message-State: ALyK8tI2gNUx9enzM4HpQrMboFSCUtDRii/K25VxVOfzlIV0PeGlZbQiPYx8tWTzP9A2I8uTIiN3WkySvhAX+A== X-Received: by 10.31.96.70 with SMTP id u67mr8026497vkb.107.1467734788740; Tue, 05 Jul 2016 09:06:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.31.54.196 with HTTP; Tue, 5 Jul 2016 09:06:28 -0700 (PDT) In-Reply-To: <577BCCE9.10504@gmail.com> References: <20160628094307.bepxy46dp5igizeh@ivaldir.etoilebsd.net> <1526452.AT2qT6pE07@dragon.local> <20160629195854.4698194.67297.7966@gmail.com> <577BCCE9.10504@gmail.com> From: Russell Haley Date: Tue, 5 Jul 2016 09:06:28 -0700 Message-ID: Subject: Re: Maintaining mono/.net To: Ivan Radovanovic Cc: Freebsd-mono , Mathieu Prevot , Carsten Larsen , =?UTF-8?Q?Romain_Tarti=C3=A8re?= Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-mono@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Mono and C# applications on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jul 2016 16:06:30 -0000 On Tue, Jul 5, 2016 at 8:06 AM, Ivan Radovanovic wrote: > On 06/30/2016 06:31, Russell Haley wrote: >> >> ... >> Apparently I was mistaken, there is no way to "apply" to an >> organization. Please feel free to send me your handle like David, and >> I'll add you. >> >> And just in case anyone is fuzzy on GitHub access: There is no need to >> join the FreeBSD-DotNet organization to create pull requests (i.e. >> push patches) and our end products should wind up in the Ports tree >> when we are done. >> > > I had some spare time during weekend so I was playing little bit with mono - > I cloned mono repository, then branched "freebsd" from their 4.4 branch > (which is maybe also nice coincidence (freebsd and bsd4.4)), then I merged > all our changes in that branch - I added Romain's patches to eglib, I added > my implementation of FS watcher to System.dll, I also added test for FS > watcher to test cases (so hopefully it will be easier to spot errors), I > also fixed just couple of warning in C code they have in main mono source > (there are many warnings there, some look serious to me - my plan is to keep > reducing their number). > > Instead of changing their Kevent watcher implementation I added this one as > completely new FS watcher (FreeBSD watcher), and I modified > mono/metadata/filewatcher.c to always use this watcher when compiled on > FreeBSD (I don't know about kevent implementation on other BSDs - maybe > FreeBSD implementation should be used there as well). > > All mono tests pass (running gmake check), but those related to profiler > (they segfault in native code - I am planning to investigate that further). > > Btw, I am configuring mono with: > > ./configure --disable-dtrace --with-checked-build=yes > > since if I leave dtrace enabled I get billion linking errors later (I will > investigate that at certain point as well). > > Now, the question is how I push these changes to repository Russ created (is > that repository we want to use for this project)? I am also not familiar > enough with git to know if this setup now will work (we were talking to have > our local repositories to talk to main mono repository for reading, and our > (fbsd) repository for writing (to keep patches), now actual setup is that > repository Russ created is forked from mono (I don't know if that changes > anything)). Maybe somebody can clarify this? > > Kind regards, > Ivan That's awesome Ivan! That really kicks things up a notch. A git fork is really nothing more than a set of patches applied to the original repository. Therefore, we either manually maintain the patches through the ports tree (via someone with a commit bit), or we push to github and then everyone can share your work without centralized supervision. If mono decides to accept our pull requests, then fine, otherwise, 'to-hell-with-em'. The rub with GitHub is that there is no way to auto-magically keep a fork up to date, meaning as soon as you create a fork and apply patches, it becomes possible to get out of date without manual updates. That means it becomes the teams job to make sure we keep our repositories current (or get all patches pushed upstream). So, there are three ways that I know of to sync your changes *assuming they under git currently*: 1) via pull requests 2) via raw patches 3) switching the remote origin, pulling the changes, then switching again (?) I have to go now, so let us know where your changes are. I'm not sure if you can create pull requests between forks of the same repo, it will be neat to try. If you are unfamiliar with pushing your changes back to your remote repository, I always used this: https://rogerdudler.github.io/git-guide/ Cheers, Russ p.s. I have tried some things with MD but still can't get around the PCL error. I'll write about that later.