digitalmars.D.internals - Dependency on dlang/tools
- Sebastian Wilzbach via Dlang-internal (48/58) Mar 04 2017 Hi all,
Hi all, recently there have been some discussions about our dependency on the tools repo. As Brad protested loudly and even I get lost in all the open PRs, I think it's better to have the discussion here. Checkwhitespace.d ----------------- - _only_ for the checkwhitespace target (= tools will only be cloned when explicitly requested) - we already use `grep` for this in the `style` target at Phobos (of course, I do prefer doing it in D as well) The regarding PRs are here: https://github.com/dlang/phobos/pull/5231 https://github.com/dlang/dmd/pull/6584 tl;dr: I think this case is less problematic because it's an optional target. osmodel.mak ----------- - the file was redundant over all repos - _not_ all instances of it were updated properly (despite the comment in the header!) Summary of the discussion so far: klickverbot: (after I proposed to use dmd/src/osmodel.mak as single source of truth)tools is also interesting built in isolation with other compilers (DMD=ldmd2, etc.), so this seems like a questionable suggestion. You wouldn't want to keep the DMD source around just for osmodel.mak (especially when building distro packages due to the non-free code it contains).Brad:Please no. I strongly object to the default build doing any network activity. Similarly I object to adding cross-package dependencies like this. I admit it's been a while since I checked, but it used to be and should be possible to checkout any one of the repos and built it stand alone.Remarks: - for phobos one needs at least druntime - for tools one needs druntime and phobos - for dlang.org one needs all repos (even the installer) The regarding PRs are here: https://github.com/dlang/dlang.org/pull/1596 https://github.com/dlang/tools/pull/227 https://github.com/dlang/phobos/pull/5228 https://github.com/dlang/druntime/pull/1780 So: A) Do we keep the status quo? B) Do we use dmd as single source of truth? C) Do we just require that a contributor checks out tools as well? For (C) we can help the contributor to do so automatically, e.g TOOLS_DIR = ../tools $(shell [ ! -d $(TOOLS_DIR) ] && git clone https://github.com/dlang/tools $(TOOLS_DIR)) include $(TOOLS_DIR)/osmodel.mak Personally I am in favor of (C) as keeping everything updated is much more work and annoying than automatically cloning a repo that changes infrequently. Cheers, Seb
Mar 04 2017