Re: Compile all-of-dub?

2015-09-11 Thread Martin Nowak via Digitalmars-d
On 09/11/2015 01:37 PM, ZombineDev wrote:
> On Wednesday, 9 September 2015 at 08:26:59 UTC, qznc wrote:
>> ...
> 
> https://github.com/MartinNowak/project_tester

Right, please contribute.


Re: Compile all-of-dub?

2015-09-11 Thread Martin Nowak via Digitalmars-d
On 09/09/2015 10:26 AM, qznc wrote:
> The Rust people have this Crater [0,1] tool, which essentially builds
> all Rust libraries with two compiler versions and compares for regressions.

I recently created a Jenkins project so that I can easily test many
projects with a particular DPL version or against PRs.

https://github.com/MartinNowak/project_tester
It's still much better when the actual author of a library tests the
latest beta, and beta are always available via Travis-CI.


Re: Compile all-of-dub?

2015-09-11 Thread ZombineDev via Digitalmars-d

On Wednesday, 9 September 2015 at 08:26:59 UTC, qznc wrote:

...


https://github.com/MartinNowak/project_tester


Re: Compile all-of-dub?

2015-09-09 Thread Rikki Cattermole via Digitalmars-d

On 09/09/15 8:26 PM, qznc wrote:

The Rust people have this Crater [0,1] tool, which essentially builds
all Rust libraries with two compiler versions and compares for regressions.

Since D has a central library repository as well, it would make sense to
do this broad testing as well. We don't have nightly builds (or do we?),
but release candidates. Is something like this already done?

For example, dfmt broke between 2.068 and 2.068.1 [2]. It is easily
possible to detect regressions like this automatically. The biggest
problem is probably that someone has to provide servers or pay for AWS
instances.

[0] https://internals.rust-lang.org/t/crater-plans/2206
[1] https://github.com/brson/taskcluster-crater
[2] https://github.com/Hackerpilot/dfmt/pull/184#issuecomment-138713802


Or use travis-ci.


Re: Compile all-of-dub?

2015-09-09 Thread Sebastiaan Koppe via Digitalmars-d

On Wednesday, 9 September 2015 at 08:26:59 UTC, qznc wrote:
The Rust people have this Crater [0,1] tool, which essentially 
builds all Rust libraries with two compiler versions and 
compares for regressions.


Since D has a central library repository as well, it would make 
sense to do this broad testing as well. We don't have nightly 
builds (or do we?), but release candidates. Is something like 
this already done?


I think this is a splendid idea. Limiting to just 
release-candidates allows the instances to be killed in between, 
thus saving costs.


Re: Compile all-of-dub?

2015-09-09 Thread Jacob Carlborg via Digitalmars-d

On 2015-09-09 10:26, qznc wrote:

The Rust people have this Crater [0,1] tool, which essentially builds
all Rust libraries with two compiler versions and compares for regressions.

Since D has a central library repository as well, it would make sense to
do this broad testing as well. We don't have nightly builds (or do we?),
but release candidates. Is something like this already done?

For example, dfmt broke between 2.068 and 2.068.1 [2]. It is easily
possible to detect regressions like this automatically. The biggest
problem is probably that someone has to provide servers or pay for AWS
instances.

[0] https://internals.rust-lang.org/t/crater-plans/2206
[1] https://github.com/brson/taskcluster-crater
[2] https://github.com/Hackerpilot/dfmt/pull/184#issuecomment-138713802


I think it's a great idea. This has been suggested before. The 
objections were that:


* If you do find a problem who should be responsible for figuring out if 
it's a regression or an intended change?


* Not all packages are maintained enough to keep up with all compiler 
changes


--
/Jacob Carlborg


Re: Compile all-of-dub?

2015-09-09 Thread Edwin van Leeuwen via Digitalmars-d
On Wednesday, 9 September 2015 at 08:56:56 UTC, Rikki Cattermole 
wrote:

On 09/09/15 8:26 PM, qznc wrote:
The Rust people have this Crater [0,1] tool, which essentially 
builds
all Rust libraries with two compiler versions and compares for 
regressions.


Since D has a central library repository as well, it would 
make sense to
do this broad testing as well. We don't have nightly builds 
(or do we?),

but release candidates. Is something like this already done?

For example, dfmt broke between 2.068 and 2.068.1 [2]. It is 
easily
possible to detect regressions like this automatically. The 
biggest
problem is probably that someone has to provide servers or pay 
for AWS

instances.


Or use travis-ci.


One problem with relying on travis is that it doesn't rerun tests 
for the libraries when compiler is updated. Crater seems to 
automatically compile/test all libraries whenever there is a 
compiler upgrade. Maybe it could be integrated with the 
autotester?


https://auto-tester.puremagic.com/



Re: Compile all-of-dub?

2015-09-09 Thread Rikki Cattermole via Digitalmars-d

On 09/09/15 9:21 PM, Edwin van Leeuwen wrote:

On Wednesday, 9 September 2015 at 08:56:56 UTC, Rikki Cattermole wrote:

On 09/09/15 8:26 PM, qznc wrote:

The Rust people have this Crater [0,1] tool, which essentially builds
all Rust libraries with two compiler versions and compares for
regressions.

Since D has a central library repository as well, it would make sense to
do this broad testing as well. We don't have nightly builds (or do we?),
but release candidates. Is something like this already done?

For example, dfmt broke between 2.068 and 2.068.1 [2]. It is easily
possible to detect regressions like this automatically. The biggest
problem is probably that someone has to provide servers or pay for AWS
instances.


Or use travis-ci.


One problem with relying on travis is that it doesn't rerun tests for
the libraries when compiler is updated. Crater seems to automatically
compile/test all libraries whenever there is a compiler upgrade. Maybe
it could be integrated with the autotester?

https://auto-tester.puremagic.com/


You would need to update the travis configuration file for the new 
compiler. That would trigger a new build.


Where is this problem?



Re: Compile all-of-dub?

2015-09-09 Thread Jack Stouffer via Digitalmars-d
On Wednesday, 9 September 2015 at 12:02:55 UTC, Jacob Carlborg 
wrote:
I think it's a great idea. This has been suggested before. The 
objections were that:


* If you do find a problem who should be responsible for 
figuring out if it's a regression or an intended change?


* Not all packages are maintained enough to keep up with all 
compiler changes


A good compromise is to whitelist libraries created by language 
contributors, e.g. vibed, cerealed, dfmt, etc.


Re: Compile all-of-dub?

2015-09-09 Thread qznc via Digitalmars-d
On Wednesday, 9 September 2015 at 08:56:56 UTC, Rikki Cattermole 
wrote:

Or use travis-ci.


They have that as well: http://rust-ci.org/


Re: Compile all-of-dub?

2015-09-09 Thread qznc via Digitalmars-d
On Wednesday, 9 September 2015 at 12:02:55 UTC, Jacob Carlborg 
wrote:
I think it's a great idea. This has been suggested before. The 
objections were that:


* If you do find a problem who should be responsible for 
figuring out if it's a regression or an intended change?


It does raise the bar for language changes. Most changes should 
be backwards compatible. For intended changes it forces us to 
come up with a way to automatically detect and ideally fix it 
(dfix?).


In an ideal world, I would imagine it like this: Tester finds a 
package breaks. Package is on Github, so Tester can file an issue 
there. Tester checks out the source from repo, runs dfix, sends 
pull request referencing the issue.


* Not all packages are maintained enough to keep up with all 
compiler changes


Then it would be quite interesting to know about this and provide 
this information at code.dlang.org, like "broken for 2.068.0 and 
above".


Re: Compile all-of-dub?

2015-09-09 Thread ponce via Digitalmars-d

On Wednesday, 9 September 2015 at 13:48:16 UTC, qznc wrote:
On Wednesday, 9 September 2015 at 12:02:55 UTC, Jacob Carlborg 
wrote:
I think it's a great idea. This has been suggested before. The 
objections were that:


* If you do find a problem who should be responsible for 
figuring out if it's a regression or an intended change?


It does raise the bar for language changes. Most changes should 
be backwards compatible. For intended changes it forces us to 
come up with a way to automatically detect and ideally fix it 
(dfix?).


In an ideal world, I would imagine it like this: Tester finds a 
package breaks. Package is on Github, so Tester can file an 
issue there. Tester checks out the source from repo, runs dfix, 
sends pull request referencing the issue.


* Not all packages are maintained enough to keep up with all 
compiler changes


Then it would be quite interesting to know about this and 
provide this information at code.dlang.org, like "broken for 
2.068.0 and above".


There was a thread in announce in the last 12 months that 
announced a site (was it ddocs.org?) that had documentation for 
every package in the DUB registry, for each tag. I think it also 
reported build problems. Don't know why it went offline.