December 05, 2013
On Thursday, 5 December 2013 at 07:58:10 UTC, Jacob Carlborg wrote:
> * Not a single person need to have all different platforms to create a release
>
We'll need to move to building linux distribution specific build to fix issues with shared library dependencies, so it's even more platforms.

> * We don't need to rely on someone else to build packages for a given platform. He/she may be away for a few days and suddenly we can't get a release for a given platform
>
Automation is definitely a good solution.

> * It's reproducible. We're creating the release on the same machines every time
>
I think a good solution would be to prepare clean virtualbox images that are used for building.
December 05, 2013
On 12/4/2013 12:18 AM, Jacob Carlborg wrote:
> I doubt he has a completely automated process of doing it. It has failed too
> many times.

The cause of those failures is that the product changes from release to release. There are new files to be added, old ones to be removed, directories change, targets change, everything is in flux.

A typical problem is adding a source file to a component but forgetting to add it to the manifest.
December 05, 2013
On 2013-12-05 09:02, Martin Nowak wrote:

> Conflating binaries for multiple platforms is the problem here.

Just send them to a single machine which assembles the cross-platform zip.

-- 
/Jacob Carlborg
December 05, 2013
On 2013-12-05 09:09, Martin Nowak wrote:

> We'll need to move to building linux distribution specific build to fix
> issues with shared library dependencies, so it's even more platforms.

Yes. Can we manage with Debian and Red Hat based system? Do we need others as well?

> I think a good solution would be to prepare clean virtualbox images that
> are used for building.

1. I don't think it matters that much if the releases are created on virtual machines or physical machines. As long as they're available

2. Due to EULA, you're only allowed to run Mac OS X as a virtual guest on a Mac OS X host. It's technically possible to run it on any host

-- 
/Jacob Carlborg
December 05, 2013
On 2013-12-05 09:32, Walter Bright wrote:

> The cause of those failures is that the product changes from release to
> release. There are new files to be added, old ones to be removed,
> directories change, targets change, everything is in flux.

What about all the times when the git tag and the release didn't contain the same code?

> A typical problem is adding a source file to a component but forgetting
> to add it to the manifest.

Is a manifest really needed?

-- 
/Jacob Carlborg
December 06, 2013
On 12/5/13, 3:09 AM, Martin Nowak wrote:
> On Thursday, 5 December 2013 at 07:58:10 UTC, Jacob Carlborg wrote:
>> * Not a single person need to have all different platforms to create a
>> release
>>
> We'll need to move to building linux distribution specific build to fix
> issues with shared library dependencies, so it's even more platforms.

Which ones specifically? Does Ubuntu and Fedora suffice or are there others that need to be included?

>> * We don't need to rely on someone else to build packages for a given
>> platform. He/she may be away for a few days and suddenly we can't get
>> a release for a given platform
>>
> Automation is definitely a good solution.
>
>> * It's reproducible. We're creating the release on the same machines
>> every time
>>
> I think a good solution would be to prepare clean virtualbox images that
> are used for building.

I crashed my system so I had to start over with a fresh installation/configuration. The following images are installed within VirtualBox:

	OS X 10.9
	Ubuntu 12.04
	Fedora 19
	FreeBSD 9.2
	Windows 7 [1]

All images are 64 bits and allotted 20.00 GB fixed storage, 32 MB Video Memory, and enabled Bridge network adapter. The base system is currently a MacMini running OSX 10.9 but will be upgraded to a Mac Pro in the near future. Are there any other OS's that should be included?

Not sure what the correct configuration should be but I do know that, at my current level of expertise, configuring them can be a pain in the arse.... Are there any scripts available to configure/secure these operating systems? Any suggestions regarding configuration to eliminate problems during build process?

[1] There is not yet a windows image installed as I do not have an installation CD.

Thanks,
Andrew
December 06, 2013
On 2013-12-06 17:45, Andrew Edwards wrote:

> I crashed my system so I had to start over with a fresh
> installation/configuration. The following images are installed within
> VirtualBox:
>
>      OS X 10.9
>      Ubuntu 12.04
>      Fedora 19
>      FreeBSD 9.2
>      Windows 7 [1]
>
> All images are 64 bits and allotted 20.00 GB fixed storage, 32 MB Video
> Memory, and enabled Bridge network adapter. The base system is currently
> a MacMini running OSX 10.9 but will be upgraded to a Mac Pro in the near
> future. Are there any other OS's that should be included?

I would have chosen Debian instead of Ubuntu and something like Red Hat or CentOS instead of Fedora. The reason for this is that they're older and more likely to work on more systems.

Have you verified that you can compile for 32bit on all of these systems. I tried PC-BSD (based on FreeBSD) and it had problems compiling 32bit. It can actually correctly generate code but the header files can't handle both 32 and 64bit. That means you can compile D code for 32bit but not C++.

> Not sure what the correct configuration should be but I do know that, at
> my current level of expertise, configuring them can be a pain in the
> arse.... Are there any scripts available to configure/secure these
> operating systems? Any suggestions regarding configuration to eliminate
> problems during build process?
>
> [1] There is not yet a windows image installed as I do not have an
> installation CD.

I'm wondering if you can use Wine or ReactOS. But if would be preferred to use real Windows.

-- 
/Jacob Carlborg
December 06, 2013
On 2013-12-06 17:45, Andrew Edwards wrote:

> I crashed my system so I had to start over with a fresh
> installation/configuration. The following images are installed within
> VirtualBox:
>
>      OS X 10.9
>      Ubuntu 12.04
>      Fedora 19
>      FreeBSD 9.2
>      Windows 7 [1]
>
> All images are 64 bits and allotted 20.00 GB fixed storage, 32 MB Video
> Memory, and enabled Bridge network adapter. The base system is currently
> a MacMini running OSX 10.9 but will be upgraded to a Mac Pro in the near
> future. Are there any other OS's that should be included?

Gentoo and Arch Linux perhaps? I don't remember if Arch uses its own package manager or not. Dicebot can answer this.

-- 
/Jacob Carlborg
December 06, 2013
On Friday, 6 December 2013 at 17:10:58 UTC, Jacob Carlborg wrote:
> Gentoo and Arch Linux perhaps? I don't remember if Arch uses its own package manager or not. Dicebot can answer this.

Gentoo does not have binary packages. Arch Linux has own package manager / package format but I'd prefer it to be ignored by official releases while I am maintainer - it will just cause me more troubles.

I think Fedora and Ubuntu LTS should cover majority of users for practical reasons. We can't support everything anyway so lets stop at some minimal base.
December 06, 2013
On Friday, 6 December 2013 at 17:09:34 UTC, Jacob Carlborg wrote:
> On 2013-12-06 17:45, Andrew Edwards wrote:
>
>> I crashed my system so I had to start over with a fresh
>> installation/configuration. The following images are installed within
>> VirtualBox:
>>
>>     OS X 10.9
>>     Ubuntu 12.04
>>     Fedora 19
>>     FreeBSD 9.2
>>     Windows 7 [1]
>>
>> All images are 64 bits and allotted 20.00 GB fixed storage, 32 MB Video
>> Memory, and enabled Bridge network adapter. The base system is currently
>> a MacMini running OSX 10.9 but will be upgraded to a Mac Pro in the near
>> future. Are there any other OS's that should be included?
>
> I would have chosen Debian instead of Ubuntu and something like Red Hat or CentOS instead of Fedora. The reason for this is that they're older and more likely to work on more systems.

Unfortunately it does not provide hard guarantees. Major version change may imply ABI breakage so using older distro / libraries buys you nothing.