Moving druntime into the DMD repository

Jonathan M Davis newsgroup.d at jmdavisprog.com
Fri Jul 27 15:52:04 UTC 2018


On Friday, July 27, 2018 6:28:07 AM MDT Seb via Digitalmars-d wrote:
> On Friday, 27 July 2018 at 12:04:18 UTC, Jonathan M Davis wrote:
> > On Friday, July 27, 2018 5:03:50 AM MDT Seb via Digitalmars-d
> >
> > wrote:
> >> What do you think?
> >> ------------------
> >>
> >> - Has the dmd/druntime split being annoying you too?
> >> - Do you have a better suggestion?
> >> - Would this break your workflow in a drastic way?
> >
> > It would break all existing tools and scripts that are used to
> > build the existing repos - many of which are not official
> > tools. So, yes, it would be very annoying.
>
> FWIW I don't think this would be the case. All build scripts I
> have seen call the Makefile (except for LDC/GDC, of course). The
> Makefile build would continue to work at any stage.

I'd be _very_ surprised if it doesn't break the tools that I use to build
the repos and keep them in sync. The biggest ones to look at though would
probably be DVM and digger.

I'd probably be okay with the build process being changed if we were
switching to something that was more maintainable than the makefiles, but to
rearrange repos? Not so much. In general, the build process is one thing
that I'd very much not like to see touched without something that's going to
significantly improve it, because pretty every time someone mucks with it, I
have to waste time fixing stuff so that it will build for me again, and
usually, the changes don't seem like they really improved things, just moved
them around.

> > If the repos are merged, then we're forced to either give some
> > of those folks dmd merge rights or make the smaller pool of
> > folks who have merge rights for dmd deal with those PRs.
>
> This shouldn't be a problem either as GitHub's CODEOWNERS files,
> are made for this use case and
> all we need would be sth. this:
>
> * @team-dmd
> src/druntime @team-druntime

Well, that would certainly help, but it still seems like things that should
be separate are being shoved together. dmd and druntime are separate beasts
and IMHO should be kept as such. Also, even if the codeowners thing deals
with the permissions, it still makes it harder for folks to look through the
PR list for stuff that's relevant to what they might be merging, since the
dmd and druntime PR queues would presumably be the same one at that point.
Anyone who works on druntime but not dmd would have to deal with a ton of
dmd PRs, whereas currently, they don't.

_Maybe_ it would make sense if we were talking about putting all three repos
in one with clear subdirectories for the three projects, since then the
repos could be completely in sync at all times, and it would be easier for
folks to figure out how to build everything, whereas right now, it's a bit
of a pain to deal with it (hence when a number of us have written scripts or
tools to deal with the process), but I don't know if that really makes sense
when everything is considered - especially with how the PRs would all be in
one bucket. We have enough problems with PRs being properly reviewed in a
timely manner as it is. Either way, just putting two of them in a single
repo seems like it's causing all of the problems that merging them all
together would cause without really getting any of the benefits.

> > The dependencies between the three repos do occasionally cause
> > problems, but overall, I think that the separation makes a lot
> > of sense.
>
> It causes A LOT of problems in terms of maintaining the CI and
> build scripts,
> moving things between DMD and adding test for druntime features
> to the dmd testsuite.

Does it really cause that many problems? If so, I'd honestly rather that we
look into adjusting how the CI works than merging repos. And if the problem
si that we have a lot of PRs where we need a dmd and druntime PR at the same
time, then I think that that's something to be concerned about. I'd be
worried if the compiler API needs to be changed that frequently.

And from a code cleanliness and maintenance standpoint, I really don't think
that it makes sense to merge dmd and druntime. Some pieces are
interconnected, yes, but most of druntime is a very separate thing, and for
the most part, it should be treated as separate.

- Jonathan M Davis





More information about the Digitalmars-d mailing list