Autotesting dub packages with dmd nightly

Basile B. via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Aug 6 13:00:53 PDT 2016


On Saturday, 6 August 2016 at 19:06:34 UTC, Sebastiaan Koppe 
wrote:
> - code.dlang.org has an api but doesn't provide an endpoint to 
> retrieve all packages/version. Now I just scrape the site 
> instead (thanks Adam for your dom implementation).

No endpoint but still possible in two steps. For example test 
this script:

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
import std.stdio;
import std.net.curl;
import std.json;
import std.format;

void main()
{
     auto allRaw = 
get(`https://code.dlang.org/packages/index.json`);
     auto allJson = parseJSON(allRaw);
     enum latestFmtSpec = 
`https://code.dlang.org/api/packages/%s/latest`;
     foreach(p; allJson.array)
     {
         auto ver = get(latestFmtSpec.format(p.str));
         writeln(p.str, " ", ver);
     }
}
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

To get the whole list with the json is faster than scrapping. To 
get the version will certainly be slower (even in paralell 
because of the get() for each package but it's cleaner since it 
uses the API.


More information about the Digitalmars-d-announce mailing list