www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Nightly Builds and Better Download Package

reply "nazriel" <spam dzfl.pl> writes:
Greetings.

1) Are there any plans in introducing Nightly Builds of 
DMD-master?
2) Are there any plans in splitting DMD release package for 
different OS versions? I really don't need those Windows, MacOSX, 
FreeBSD binaries while downloading DMD for my Linux box

Best regards,
Damian Ziemba
May 23 2013
next sibling parent reply "Jakob Ovrum" <jakobovrum gmail.com> writes:
On Thursday, 23 May 2013 at 17:32:42 UTC, nazriel wrote:
 1) Are there any plans in introducing Nightly Builds of 
 DMD-master?

The process of making the release zips isn't even open source. Probably because it includes a bunch of closed-source software. Still kind of ridiculous.
May 23 2013
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 5/23/2013 10:39 AM, Jakob Ovrum wrote:
 On Thursday, 23 May 2013 at 17:32:42 UTC, nazriel wrote:
 1) Are there any plans in introducing Nightly Builds of DMD-master?

The process of making the release zips isn't even open source. Probably because it includes a bunch of closed-source software. Still kind of ridiculous.

No, it isn't closed source any more than "zip" is closed source.
May 23 2013
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 5/23/2013 1:50 PM, nazriel wrote:
 Walter is there any way we could help with improving packaging?

Yes.
 I guess for the first one the fastest way will be to make pull request for
 pull-tester and make consultation with bradd.

 But AFAIK second one depends mostly on you.
 It's really pain to download 20MB each time I need to install DMD... 5MB would
 be the max package size if we split OS versions.

 And yeah, I move alot so downloading 20MB takes some time with my UMTS modem :)

I'm all for improving things so a 'make package' will work. Pull requests are welcome!
May 23 2013
parent Walter Bright <newshound2 digitalmars.com> writes:
On 5/24/2013 11:15 AM, nazriel wrote:
 I still don't know how do you issue commands.

 Do you use something like:
 make -f posix.mak/win32.mak zip in dmd/src
 make -f posix.mak/win32.mak zip in phobos

 on each platform then merge zips into one?

 I am wondering because I am willing to work on it but I am still not sure where
 should I put this make rule. DMD makefile?

 That would build DMD both 32bit and 64bit, then build druntime both 32bit and
 64bit also static and shared one, then phobos both 32bit and 64bit also static
 and shared one and then create tar.bz2 for certain platform, be it FreeBSD for
 example or zip for Windows.

 Also there would be need to still manually create meta-package with all those
 binaries for a bit of time to allow external tools migrate (as noted by Jacob)

 Is dmd's makefile the right place for this make rule?
 Or creating standalone makefile for creating releases both milestone and
nightly
 is better idea?

 I need a little bit of direction before I start working on it.
 It will be ready for monday if nobody beats me in creating such rule ;)

The only directive you have is so that "make package" will generate the release package on the platform the command is run on. Here is the "install" script I use. It runs under Windows and uses ssh to gather the builds from the individual platforms and write them to the \dmd2 directory, and the dmd2 directory is then zipped and uploaded to the digitalmars.com server. ---------------------------------------------------- make install cd phobos make html make install cd ..\doc make make install cd phobos make install cd ..\.. cd druntime make install cd .. copy ..\rdmd\dman.exe \dmd2\windows\bin copy ..\rdmd\rdmd.exe \dmd2\windows\bin copy ..\rdmd\ddemangle.exe \dmd2\windows\bin copy ..\VERSION \dmd2\src\ copy \dm\lib\snn.lib \dmd2\windows\lib \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/mars/dmd32 \dmd2\linux\bin32\dmd \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/mars/dmd \dmd2\linux\bin64\ \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/mars/phobos/generated/linux/release/32/libphobos2.a \dmd2\linux\lib32 \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/mars/phobos/generated/linux/release/64/libphobos2.a \dmd2\linux\lib64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/mars/phobos/generated/linux/release/32/libphobos2.so \dmd2\linux\lib32 \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/mars/phobos/generated/linux/release/64/libphobos2.so \dmd2\linux\lib64 rem \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/shell32 \dmd2\linux\bin32\shell \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/obj2asm32 \dmd2\linux\bin32\obj2asm \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/dumpobj32 \dmd2\linux\bin32\dumpobj \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/rdmd/rdmd32 \dmd2\linux\bin32\rdmd \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/rdmd/ddemangle32 \dmd2\linux\bin32\ddemangle \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/dman32 \dmd2\linux\bin32\dman rem \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/shell \dmd2\linux\bin64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/obj2asm \dmd2\linux\bin64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/dumpobj \dmd2\linux\bin64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/rdmd/rdmd \dmd2\linux\bin64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:cbx/rdmd/ddemangle \dmd2\linux\bin64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:./bin/dman \dmd2\linux\bin64 \putty\pscp -i \.ssh\colossus.ppk walter mercury:./dpl/dmd/docs/man/man1/dmd.1 \dmd2\man\man1\ \putty\pscp -i \.ssh\colossus.ppk walter mercury:./dpl/dmd/docs/man/man1/dmd.conf.5 \dmd2\man\man1\ \putty\pscp -i \.ssh\colossus.ppk walter mercury:./dpl/dmd/docs/man/man1/dumpobj.1 \dmd2\man\man1\ \putty\pscp -i \.ssh\colossus.ppk walter mercury:./dpl/dmd/docs/man/man1/obj2asm.1 \dmd2\man\man1\ \putty\pscp -i \.ssh\colossus.ppk walter mercury:./dpl/dmd/docs/man/man1/rdmd.1 \dmd2\man\man1\ \putty\pscp -i \.ssh\colossus.ppk walter goblin:cbx/mars/dmd \dmd2\freebsd\bin32 \putty\pscp -i \.ssh\colossus.ppk walter goblin:cbx/mars/phobos/generated/freebsd/release/32/libphobos2.a \dmd2\freebsd\lib32 \putty\pscp -i \.ssh\colossus.ppk walter goblin:/usr/local/bin/shell32 \dmd2\freebsd\bin32\shell \putty\pscp -i \.ssh\colossus.ppk walter goblin:/usr/local/bin/obj2asm32 \dmd2\freebsd\bin32\obj2asm \putty\pscp -i \.ssh\colossus.ppk walter goblin:/usr/local/bin/dumpobj32 \dmd2\freebsd\bin32\dumpobj \putty\pscp -i \.ssh\colossus.ppk walter goblin:cbx/rdmd/rdmd32 \dmd2\freebsd\bin32\rdmd \putty\pscp -i \.ssh\colossus.ppk walter goblin:cbx/rdmd/ddemangle32 \dmd2\freebsd\bin32\ddemangle \putty\pscp -i \.ssh\colossus.ppk walter goblin:/usr/local/bin/dman32 \dmd2\freebsd\bin32\dman \putty\pscp -i \.ssh\colossus.ppk ming pluto:cbx/mars/dmd \dmd2\osx\bin \putty\pscp -i \.ssh\colossus.ppk ming pluto:cbx/mars/phobos/generated/osx/release/libphobos2.a \dmd2\osx\lib \putty\pscp -i \.ssh\colossus.ppk ming pluto:./bin/shell \dmd2\osx\bin \putty\pscp -i \.ssh\colossus.ppk ming pluto:./bin/obj2asm \dmd2\osx\bin \putty\pscp -i \.ssh\colossus.ppk ming pluto:./bin/dumpobj \dmd2\osx\bin \putty\pscp -i \.ssh\colossus.ppk ming pluto:./bin/dman \dmd2\osx\bin \putty\pscp -i \.ssh\colossus.ppk ming pluto:cbx/rdmd/rdmd \dmd2\osx\bin \putty\pscp -i \.ssh\colossus.ppk ming pluto:cbx/rdmd/ddemangle \dmd2\osx\bin pushd \dmzip make putbeta2 popd
May 24 2013
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2013-05-23 22:50, nazriel wrote:

 But AFAIK second one depends mostly on you.
 It's really pain to download 20MB each time I need to install DMD... 5MB
 would be the max package size if we split OS versions.

I hope we can keep the existing packages as well. This will otherwise break existing tools like DVM. -- /Jacob Carlborg
May 24 2013
prev sibling next sibling parent "nazriel" <spam dzfl.pl> writes:
On Thursday, 23 May 2013 at 20:45:31 UTC, Walter Bright wrote:
 On 5/23/2013 10:39 AM, Jakob Ovrum wrote:
 On Thursday, 23 May 2013 at 17:32:42 UTC, nazriel wrote:
 1) Are there any plans in introducing Nightly Builds of 
 DMD-master?

The process of making the release zips isn't even open source. Probably because it includes a bunch of closed-source software. Still kind of ridiculous.


 No, it isn't closed source any more than "zip" is closed source.

Back to the main topic. Walter is there any way we could help with improving packaging? I guess for the first one the fastest way will be to make pull request for pull-tester and make consultation with bradd. But AFAIK second one depends mostly on you. It's really pain to download 20MB each time I need to install DMD... 5MB would be the max package size if we split OS versions. And yeah, I move alot so downloading 20MB takes some time with my UMTS modem :)
May 23 2013
prev sibling next sibling parent Brad Roberts <braddr puremagic.com> writes:
On 5/23/13 1:50 PM, nazriel wrote:
 On Thursday, 23 May 2013 at 20:45:31 UTC, Walter Bright wrote:
 On 5/23/2013 10:39 AM, Jakob Ovrum wrote:
 On Thursday, 23 May 2013 at 17:32:42 UTC, nazriel wrote:
 1) Are there any plans in introducing Nightly Builds of DMD-master?

The process of making the release zips isn't even open source. Probably because it includes a bunch of closed-source software. Still kind of ridiculous.


 No, it isn't closed source any more than "zip" is closed source.

Back to the main topic. Walter is there any way we could help with improving packaging? I guess for the first one the fastest way will be to make pull request for pull-tester and make consultation with bradd. But AFAIK second one depends mostly on you. It's really pain to download 20MB each time I need to install DMD... 5MB would be the max package size if we split OS versions. And yeah, I move alot so downloading 20MB takes some time with my UMTS modem :)

Ignore the auto-tester.. it's a non-issue until there's make targets that do the job. Having it run make install a few times and uploading the results somewhere are easy.
May 23 2013
prev sibling parent "nazriel" <spam dzfl.pl> writes:
On Thursday, 23 May 2013 at 23:34:12 UTC, Walter Bright wrote:
 On 5/23/2013 1:50 PM, nazriel wrote:
 Walter is there any way we could help with improving packaging?

Yes.
 I guess for the first one the fastest way will be to make pull 
 request for
 pull-tester and make consultation with bradd.

 But AFAIK second one depends mostly on you.
 It's really pain to download 20MB each time I need to install 
 DMD... 5MB would
 be the max package size if we split OS versions.

 And yeah, I move alot so downloading 20MB takes some time with 
 my UMTS modem :)

I'm all for improving things so a 'make package' will work. Pull requests are welcome!

I still don't know how do you issue commands. Do you use something like: make -f posix.mak/win32.mak zip in dmd/src make -f posix.mak/win32.mak zip in phobos on each platform then merge zips into one? I am wondering because I am willing to work on it but I am still not sure where should I put this make rule. DMD makefile? That would build DMD both 32bit and 64bit, then build druntime both 32bit and 64bit also static and shared one, then phobos both 32bit and 64bit also static and shared one and then create tar.bz2 for certain platform, be it FreeBSD for example or zip for Windows. Also there would be need to still manually create meta-package with all those binaries for a bit of time to allow external tools migrate (as noted by Jacob) Is dmd's makefile the right place for this make rule? Or creating standalone makefile for creating releases both milestone and nightly is better idea? I need a little bit of direction before I start working on it. It will be ready for monday if nobody beats me in creating such rule ;) Regards
May 24 2013