Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Jul 2016 09:06:28 -0700
From:      Russell Haley <russ.haley@gmail.com>
To:        Ivan Radovanovic <radovanovic@gmail.com>
Cc:        Freebsd-mono <freebsd-mono@freebsd.org>, Mathieu Prevot <mathieu.prevot@gmail.com>, Carsten Larsen <cs@innolan.dk>, =?UTF-8?Q?Romain_Tarti=C3=A8re?= <romain@blogreen.org>
Subject:   Re: Maintaining mono/.net
Message-ID:  <CABx9NuROES85Q=r%2B9EF1d31LpHhnkKMk%2Bu51wq9snwkrTb_VKQ@mail.gmail.com>
In-Reply-To: <577BCCE9.10504@gmail.com>
References:  <CABx9NuSwbf2jwyqcGNGeyWjJ4pbVFmCiGO=i172UDFy2=yGPOw@mail.gmail.com> <20160628094307.bepxy46dp5igizeh@ivaldir.etoilebsd.net> <CABx9NuTPgGqansvnFNxRUhsagh3x=o4W7%2B7UUxORkGpzZVTJUA@mail.gmail.com> <1526452.AT2qT6pE07@dragon.local> <20160629195854.4698194.67297.7966@gmail.com> <CABx9NuQrDjqr2rUDsLY7g7fVO1b-3o_=SLR5A0FAYbt37K3t-Q@mail.gmail.com> <577BCCE9.10504@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 5, 2016 at 8:06 AM, Ivan Radovanovic <radovanovic@gmail.com> 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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABx9NuROES85Q=r%2B9EF1d31LpHhnkKMk%2Bu51wq9snwkrTb_VKQ>