www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Wiki article: Starting as a Contributor

reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
I had to set up dmd and friends on a fresh Ubuntu box, so I thought I'd 
document the step-by-step process:

http://wiki.dlang.org/Starting_as_a_Contributor

Along the way I also hit a small snag and fixed it at

https://github.com/D-Programming-Language/dlang.org/pull/1049

Further improvements are welcome.


Thanks,

Andrei
Aug 03 2015
next sibling parent reply Steven Schveighoffer <schveiguy yahoo.com> writes:
On 8/3/15 5:25 PM, Andrei Alexandrescu wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I thought I'd
 document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor
You should make sure there's no overlap with this: http://wiki.dlang.org/Get_involved I think it's a great idea to have a bootstrap for how to get your environment set up. It's been a long time since I did it. What I did is to download a dmd release zipfile, then delete the dmd, druntime, and phobos src, replacing it with cloned git repositories. I also deleted all the binaries/libraries under bin/os directory, and use symlinks to the built files from their appropriate source directories. This way I can test changes without having to create a new installation somewhere. -Steve
Aug 03 2015
next sibling parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 04-Aug-2015 01:30, Steven Schveighoffer wrote:
 On 8/3/15 5:25 PM, Andrei Alexandrescu wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I thought I'd
 document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor
You should make sure there's no overlap with this: http://wiki.dlang.org/Get_involved I think it's a great idea to have a bootstrap for how to get your environment set up. It's been a long time since I did it. What I did is to download a dmd release zipfile, then delete the dmd, druntime, and phobos src, replacing it with cloned git repositories.
 I also deleted all the binaries/libraries under bin/os directory, and
 use symlinks to the built files from their appropriate source
 directories. This way I can test changes without having to create a new
 installation somewhere.
Yes, it's fairly simple way that I used countless times with great success. -- Dmitry Olshansky
Aug 03 2015
prev sibling parent "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> writes:
On Monday, 3 August 2015 at 22:30:23 UTC, Steven Schveighoffer 
wrote:
 I also deleted all the binaries/libraries under bin/os 
 directory, and use symlinks to the built files from their 
 appropriate source directories. This way I can test changes 
 without having to create a new installation somewhere.
It's much cleaner to use $HOME/bin for that purpose and not touch the /usr/bin, which is supposed to be managed by the package manager. At least openSUSE prepends $HOME/bin at the front of PATH, I believe Ubuntu does the same.
Aug 04 2015
prev sibling next sibling parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 08/03/2015 02:25 PM, Andrei Alexandrescu wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I thought I'd
 document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor

 Along the way I also hit a small snag and fixed it at

 https://github.com/D-Programming-Language/dlang.org/pull/1049

 Further improvements are welcome.


 Thanks,

 Andrei
I am trying this now. I've already hit a problem. The wiki makes it sound like the bootstrapping is optional. As I already have dmd 2.067, I skipped that stepped and failed when making druntime as it apparently assumes the bootstrapped dmd: [druntime]$ make -f posix.mak ../dmd/src/dmd -conf= -c -o- -Isrc -Iimport -Hfimport/core/sync/barrier.di src/core/sync/barrier.d make: ../dmd/src/dmd: Command not found make: *** [import/core/sync/barrier.di] Error 127 A symbolic link to dmd 2.067 failed because it does not know about pragma(inline). Fine... Bootstrapping now... :) Ali
Aug 03 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 8/4/15 1:35 AM, Ali Çehreli wrote:
 I am trying this now. I've already hit a problem. The wiki makes it
 sound like the bootstrapping is optional. As I already have dmd 2.067, I
 skipped that stepped and failed when making druntime as it apparently
 assumes the bootstrapped dmd:
Yah, druntime requires the freshly-built dmd. I mentioned that in the wiki. -- Andrei
Aug 04 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 8/4/15 8:25 AM, Andrei Alexandrescu wrote:
 On 8/4/15 1:35 AM, Ali Çehreli wrote:
 I am trying this now. I've already hit a problem. The wiki makes it
 sound like the bootstrapping is optional. As I already have dmd 2.067, I
 skipped that stepped and failed when making druntime as it apparently
 assumes the bootstrapped dmd:
Yah, druntime requires the freshly-built dmd. I mentioned that in the wiki. -- Andrei
Now added similar mentions of prerequisites, and also a whole section on "Typical Contributor Workflow". -- Andrei
Aug 04 2015
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 08/04/2015 07:02 AM, Andrei Alexandrescu wrote:
  a whole section on
 "Typical Contributor Workflow". -- Andrei
In case there are others that don't know, "git co" in that section is an alias to "git checkout": http://stackoverflow.com/questions/14489109/how-to-alias-git-checkout-to-git-co Ali
Aug 04 2015
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 8/4/15 11:42 AM, Ali Çehreli wrote:
 On 08/04/2015 07:02 AM, Andrei Alexandrescu wrote:
  a whole section on
 "Typical Contributor Workflow". -- Andrei
In case there are others that don't know, "git co" in that section is an alias to "git checkout": http://stackoverflow.com/questions/14489109/how-to-alias-git-checkout-to-git-co Ali
Oops, my bad. Fixed now. -- Andrei
Aug 04 2015
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 03/08/15 23:25, Andrei Alexandrescu wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I thought I'd
 document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor

 Along the way I also hit a small snag and fixed it at

 https://github.com/D-Programming-Language/dlang.org/pull/1049

 Further improvements are welcome.
I recommend turning this wiki page into a new page, "Contribute", at dlang.org. Put it as a top level menu item (or possibly under "Community"). This page could also contain information how to make a pull request. -- /Jacob Carlborg
Aug 04 2015
parent reply "Gary Willoughby" <dev nomad.so> writes:
On Tuesday, 4 August 2015 at 19:56:42 UTC, Jacob Carlborg wrote:
 On 03/08/15 23:25, Andrei Alexandrescu wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I 
 thought I'd
 document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor

 Along the way I also hit a small snag and fixed it at

 https://github.com/D-Programming-Language/dlang.org/pull/1049

 Further improvements are welcome.
I recommend turning this wiki page into a new page, "Contribute", at dlang.org. Put it as a top level menu item (or possibly under "Community"). This page could also contain information how to make a pull request.
Ther are already articles covering this: http://wiki.dlang.org/Building_DMD http://wiki.dlang.org/Pull_Requests
Aug 05 2015
parent reply Jacob Carlborg <doob me.com> writes:
On 05/08/15 13:28, Gary Willoughby wrote:

 Ther are already articles covering this:

 http://wiki.dlang.org/Building_DMD
 http://wiki.dlang.org/Pull_Requests
My point was that I think it should not be on the wiki, instead it should be on dlang.org, clearly visible. -- /Jacob Carlborg
Aug 05 2015
parent "deadalnix" <deadalnix gmail.com> writes:
On Wednesday, 5 August 2015 at 17:27:40 UTC, Jacob Carlborg wrote:
 On 05/08/15 13:28, Gary Willoughby wrote:

 Ther are already articles covering this:

 http://wiki.dlang.org/Building_DMD
 http://wiki.dlang.org/Pull_Requests
My point was that I think it should not be on the wiki, instead it should be on dlang.org, clearly visible.
Let it be in the wiki. Once dust settle down, it can be moved to the website. Changing the wiki is easier than changing dlang.org, so the wiki seems like a better incubator.
Aug 05 2015
prev sibling next sibling parent reply ted <foo bar.com> writes:
I confess to being a bit confused overall - there is a bit of overlap and 
confusion for someone who wishes to venture into this area. Please bear 
with me:

From wiki.dlang.org -> 'Get involved'. So far so good. 

From here, I can go to 'Building DMD' and 'How to Fork and Build 
dlang.org', which both seem to build DMD - I'm unsure of the overlap 
aspects here.

There is also an issue with the set of instructions in 'How to Fork and 
Build dlang.org' - and I don't know what category to file the bug under in 
bugzilla !?). 



Now, where does 'Starting as a Contributor' fit?

--ted

-------------
$ git clone https://github.com/D-Programming-Language/dlang.org
$ git clone https://github.com/D-Programming-Language/dmd
$ cd dlang.org/
$ make -f posix.mak html
$ make -f posix.mak druntime-release
From https://github.com/D-Programming-Language/dmd
 * branch            HEAD       -> FETCH_HEAD
LATEST=2.068.0 <-- place in the command line to skip network traffic.
[ -d ../druntime-2.068.0 ] || git clone -b v2.068.0 --depth=1 
https://github.com/D-Programming-Language/druntime ../druntime-2.068.0/
Cloning into '../druntime-2.068.0'...
remote: Counting objects: 412, done.
remote: Compressing objects: 100% (372/372), done.
remote: Total 412 (delta 42), reused 154 (delta 30), pack-reused 0
Receiving objects: 100% (412/412), 959.29 KiB | 564.00 KiB/s, done.
Resolving deltas: 100% (42/42), done.
Checking connectivity... done.
Note: checking out '0ca25648947bb8f27d08dc618f23ab86fddea212'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

touch ../druntime-2.068.0/.cloned
make --directory=../dmd-2.068.0/src -f posix.mak -j 4
make[1]: *** ../dmd-2.068.0/src: No such file or directory.  Stop.
posix.mak:338: recipe for target '../dmd-2.068.0/src/dmd' failed
make: *** [../dmd-2.068.0/src/dmd] Error 2



Andrei Alexandrescu wrote:

 I had to set up dmd and friends on a fresh Ubuntu box, so I thought I'd
 document the step-by-step process:
 
 http://wiki.dlang.org/Starting_as_a_Contributor
 
 Along the way I also hit a small snag and fixed it at
 
 https://github.com/D-Programming-Language/dlang.org/pull/1049
 
 Further improvements are welcome.
 
 
 Thanks,
 
 Andrei
Aug 22 2015
parent reply anonymous <anonymous example.com> writes:
On Saturday 22 August 2015 11:05, ted wrote:

 From here, I can go to 'Building DMD' and 'How to Fork and Build
 dlang.org', which both seem to build DMD - I'm unsure of the overlap
 aspects here.
The 'dlang.org' project is the website. It deals with building dmd only insofar as you need a compiler to build the website. If your goal is to build dmd, don't bother with anything 'dlang.org'.
 There is also an issue with the set of instructions in 'How to Fork and
 Build dlang.org' - and I don't know what category to file the bug under in
 bugzilla !?).
Component: dlang.org
 make --directory=../dmd-2.068.0/src -f posix.mak -j 4
 make[1]: *** ../dmd-2.068.0/src: No such file or directory.  Stop.
 posix.mak:338: recipe for target '../dmd-2.068.0/src/dmd' failed
 make: *** [../dmd-2.068.0/src/dmd] Error 2
This is issue 14915, a regression in 2.068: https://issues.dlang.org/show_bug.cgi?id=14915 As a workaround, you can manually revert the changes done in PR #1050. Though, repeating myself, if your goal is to build dmd, don't bother with dlang.org.
Aug 22 2015
parent ted <foo bar.com> writes:
cheers for that - that differentiation/distinction wasn't clear (to me).


anonymous wrote:

 On Saturday 22 August 2015 11:05, ted wrote:
 
 From here, I can go to 'Building DMD' and 'How to Fork and Build
 dlang.org', which both seem to build DMD - I'm unsure of the overlap
 aspects here.
The 'dlang.org' project is the website. It deals with building dmd only insofar as you need a compiler to build the website. If your goal is to build dmd, don't bother with anything 'dlang.org'.
 There is also an issue with the set of instructions in 'How to Fork and
 Build dlang.org' - and I don't know what category to file the bug under
 in bugzilla !?).
Component: dlang.org
 make --directory=../dmd-2.068.0/src -f posix.mak -j 4
 make[1]: *** ../dmd-2.068.0/src: No such file or directory.  Stop.
 posix.mak:338: recipe for target '../dmd-2.068.0/src/dmd' failed
 make: *** [../dmd-2.068.0/src/dmd] Error 2
This is issue 14915, a regression in 2.068: https://issues.dlang.org/show_bug.cgi?id=14915 As a workaround, you can manually revert the changes done in PR #1050. Though, repeating myself, if your goal is to build dmd, don't bother with dlang.org.
Aug 22 2015
prev sibling parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Monday, 3 August 2015 at 21:25:35 UTC, Andrei Alexandrescu 
wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I 
 thought I'd document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor
Due to a realization that there were three places were contributing info was held on the wiki, I have merged the pages into this one as best as I could. This page now holds everything someone should need to get started.
Dec 01 2015
next sibling parent Jon D <jond noreply.com> writes:
On Tuesday, 1 December 2015 at 18:58:37 UTC, Jack Stouffer wrote:
 On Monday, 3 August 2015 at 21:25:35 UTC, Andrei Alexandrescu 
 wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I 
 thought I'd document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor
Due to a realization that there were three places were contributing info was held on the wiki, I have merged the pages into this one as best as I could. This page now holds everything someone should need to get started.
I suggest also having the description of the legal aspects of contributing identified in an easier to find location. There is a brief summary of copyright assignment in the Starting as a Contributor page (http://wiki.dlang.org/Starting_as_a_Contributor#Copyright_assignment), but it's not particularly easy to find. Similarly regarding licensing. I was able to find two statements in the FAQ page ("Is D open source", "Why does the standard library use the boost license? Why not public domain", but wasn't especially easy to find these. Could be I'm just looking in the wrong places for this info, but a clear link from the home page might be worthwhile. --Jon
Dec 03 2015
prev sibling parent bachmeier <no spam.com> writes:
On Tuesday, 1 December 2015 at 18:58:37 UTC, Jack Stouffer wrote:
 On Monday, 3 August 2015 at 21:25:35 UTC, Andrei Alexandrescu 
 wrote:
 I had to set up dmd and friends on a fresh Ubuntu box, so I 
 thought I'd document the step-by-step process:

 http://wiki.dlang.org/Starting_as_a_Contributor
Due to a realization that there were three places were contributing info was held on the wiki, I have merged the pages into this one as best as I could. This page now holds everything someone should need to get started.
IMO this is a lot better. Thanks for doing it. I don't have the knowledge, but recently there was discussion in a different thread about guidelines for contributing to the documentation. It would be good to have that info on this page. Here are some examples of things that arose as I tried to contribute: 1. Coding style (line width no more than 80 characters, no trailing whitespace, ...) 2. This is what you can assume the reader knows. Otherwise you should explain or link to a good explanation providing that information. 3. Some guidelines on good and bad examples. 4. ddoc has lots of things like See_Also. When should they be used? I'd do it if I could.
Dec 04 2015