On Wednesday, 11 February 2015 at 16:16:41 UTC, Andrei Alexandrescu wrote:
On 2/11/15 5:48 AM, Dicebot wrote:
There seems to be a weird miscommunication here. I have asked your opinion about this specific proposal - does it seem useful to you, would
you be willing to endorse it as official starting point for D
development etc.

Problem is I don't know. That's why I submitted that task https://issues.dlang.org/show_bug.cgi?id=11792 "Investigate...". I'm not a git expert so I don't have answers to a bunch of questions.

That is perfectly fine - I can't guess what are questions are not clear without some non-expert feedback. It would be weird to do anything like that without ensuring you understand the rationale behind proposal.

Your list of questions was very insightful. I will relevant information to readme once it is nailed down in this discussion.

* What's going to happen with the commit history for our current projects?

* How about the pull requests history?

2 x "nothing changes". Important rationale I had in mind when choosing this specific layout is to make it purely additive change, without breaking anything in established development habits. Goal is to formalize existing working conventions into something that is stronger than convention,

* What are the changes in workflow compared to the current situation?

No mandatory changes - existing developers can keep their habits. In the long term I'd like to move makefile targets that make assumptions about external repos (like dlang.org phobos docs generation) into aggregated repos - but even that is optional and will happen only if no one objects.

* What tasks will be easier?

Getting working set of git master tools from scratch will be considerably easier.

git clone [email protected]:D-Programming-Language:dlang.git
cd dlang
./dlang.d update
./dlang.d build
# all done, just add ./bin to PATH and get all stuff
# available : dmd-dev, dub-dev, docs and whatever we add later
# same on all platforms

vs

mkdir dlang; cd dlang
git clone [email protected]:D-Programming-Language:dmd.git
git clone [email protected]:D-Programming-Language:druntime.git
git clone [email protected]:D-Programming-Language:phobos.git
git clone [email protected]:D-Programming-Language:dlang.org.git
git clone [email protected]:D-Programming-Language:tools.git
git clone [email protected]:D-Programming-Language:dub.git
# more and more
cd dmd
make -f posix.mak; cd ..
cd .druntime
make -f posix.mak; cd ..
# repeat something like that for each repo. sometimes different commands
# and for Windows entire flow is different
install -m 655 ./dmd/src/dmd /usr/local/bin/dmd-dev
# I am not even sure I haven't missed anything at this point

http://github.com/D-Programming-Language/installer contains some of needed automation but it misses important "cross-platform development uniformity" bit.

* What tasks will be more difficult?

Small added effort for release manager to update submodules in meta-repo upon new releases. Can't really imagine anything else right now.

And probably more questions I don't even know what they are. FWIW Martin Nowak is a key person to convince of the advantages of the change.

It will be next step. No point in discussing smaller details with Martin if I can't communicate general concept to you first.

- The "getting started" advantage can be achieved on top of our current layout with tactical tools such as documentation and tools/update.sh. There's work there, of course.

Consider this whole proposal as "tools/update.sh done right". It has similar goal but eliminations all possible conventions (which are inherent points of failure) and demands cross-platfrom uniformity as mandatory.

- I noticed people who contribute to dmd, druntime, and phobos are relatively specialized, i.e. Kenji seldom gets into phobos, H.S. Teoh seldom gets into dmd etc. That does seem to be an argument in favor of the current modularity. Furthermore they seem to have little friction getting into these projects if they do want to.

While I was regular Phobos reviewer my attention was focused there too. But I still had to build latest dmd to test changes, build latest dlang.org to check documentation updated and struggle each time proposed changes fail only on Windows for unclear reason.

Probably the main question is whether tooling with our layout is just fine.

Please ask more questions if I have not explained something in good enough details.

Reply via email to