Find Jobs
Hire Freelancers

CPAN Dependency Tree Project

$30-250 CAD

Dokončeno
Zveřejněno před více než 2 roky

$30-250 CAD

Zaplaceno při doručení
We have provided some sample data in the form of the [login to view URL] files that accompany most Perl libraries uploaded to CPAN. XXXXX for documentation on this format. This data does not contain circular references and you do not need to handle those in your program. For this project, the only important key in this metadata is the prereqs key. The files are located under data/ in a directory tree where each subdirectory corresponds to the name of a Perl distribution, like “DateTime”, "Eval-Closure", or "Module-Runtime". There are also some additional support files under data/. The first is a data/[login to view URL] that maps Perl module names to Perl distribution names. Note that the [login to view URL] files belong to a distribution (distro), but the prereqs themselves always specify individual modules. A distro can contain one or more modules. This means you will need to translate from module names to distro names when you are constructing your dependency tree. All of the files you need are in the data/ directory. You should not need to fetch additional data from CPAN or anywhere else on the Internet. The other is a data/[login to view URL] file. This contains an array of modules which are shipped with the Perl core. Your project requires reading this metadata and producing fully resolved dependency trees. In the metadata, dependencies are defined by phase ("runtime", "test", etc.) and by relationship ("requires", "recommends", "suggests"). We are only interested in "runtime" phase dependencies where the relationship is "requires". You can ignore everything else. The Program You will write a command line program that accepts the following command line arguments: --name - The name of a distribution for which dependencies should be resolved. May be specified more than once. The program should output a single JSON object to stdout. That JSON object should look like this: { "DateTime": { "DateTime-Locale": { "Params-ValidationCompiler": { "..." } } }, "..." } The object's keys are distribution names and the values are in turn objects where the keys are distribution names. You should completely resolve the dependency tree for all runtime prereqs. That means some distros may appear as an object key more than once. If your program is given multiple --name flags you should still produce a single JSON object. Each of the distro names given on the command line should be a top-level key in the JSON object you produce. If a module name (not a distro name) appears in the list of core modules in data/[login to view URL] then you can omit it from the output entirely. You can also ignore version numbers for the purposes of this project. You can also ignore "perl" as a prereq. (This specifies the minimum version of Perl that a distro needs.) If a particular distro has no dependencies, represent it as an empty object in the JSON. Example Output for Testing The Package-Stash distribution has a small dependency tree, consisting of the following: Package-Stash B Carp Dist::CheckConflicts Carp Exporter Module::Runtime perl base perl strict warnings Getopt::Long Module::Implementation Carp Module::Runtime perl Try::Tiny Carp Exporter constant perl strict warnings strict warnings Scalar::Util Symbol constant perl strict warnings This is the entire dependency tree for Package-Stash as modules, not distributions. Note that this example includes both "perl" and modules shipped with the Perl code. The terminal nodes do not have any dependencies of their own. You can use this to evaluate the output of your program.
IČ projektu: 31689568

O projektu

1 nabídka
Vzdálený projekt
Aktivní před 3 roky

Chcete si vydělat nějaké peníze?

Výhody podávání nabídek na Freelancer

Stanovte si rozpočet a časový rámec
Získejte za svou práci zaplaceno
Načrtněte svůj návrh
Registrace a podávání nabídek je zdarma
Uděleno:
Avatar uživatele
Already we have discussed...............................................................................
$30 CAD v 1 dni
4,9 (35 recenze)
5,4
5,4

O klientovi

Pochází z CANADA
Maple, Canada
0,0
0
Ověřená platební metoda
Členem od říj 3, 2021

Ověření klienta

Díky! Poslali jsme vám e-mailem odkaz pro získání kreditu zdarma.
Při odesílání e-mailu se něco pokazilo. Zkuste to prosím znovu.
Registrovaných uživatelů Zveřejněných projektů
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Načítání náhledu
Bylo uděleno povolení ke geolokaci.
Vaše doba přihlášení vypršela a byli jste odhlášeni. Přihlaste se znovu.