Thread overview
Nightly Builds and Better Download Package
May 23, 2013
nazriel
May 23, 2013
Jakob Ovrum
May 23, 2013
Walter Bright
May 23, 2013
nazriel
May 23, 2013
Brad Roberts
May 23, 2013
Walter Bright
May 24, 2013
nazriel
May 24, 2013
Walter Bright
May 24, 2013
Jacob Carlborg
May 23, 2013
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
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
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
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
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
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 24, 2013
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
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
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