Re: [Module-build-general] A mini-language for dependencies?
Status: Beta
Brought to you by:
kwilliams
|
From: Autrijus T. <aut...@au...> - 2003-03-06 03:50:58
|
On Tue, Feb 18, 2003 at 10:49:46PM -0600, Ken Williams wrote:
> I don't have a lot of experience designing mini-languages, but I'm=20
> thinking it should do at least the following:
>=20
> * Allow arbitrary boolean combinations of dependency on arbitrary
> versions of modules
>=20
> * Allow declarative branching based on perl version or OS
>=20
> * Allow dependency specification based on feature sets, similar
> to the way ExtUtils::AutoInstall groups things
>=20
> * Let the author specify *why* a certain dependency is necessary,
> especially in the case of optional dependencies
Below please find a sample of my current proposal of formalizing
EU::AI parameters into YAML so it can be written insite META.yml,
based on today's IRC discussion. I hope it to be self-descriptory.
The top-level "build_requires/recommends/requires" keys corresponds
with the -core feature in EU::AI parlance.
Comments welcome!
Thanks,
/Autrijus/
--- #YAML:1.0
build_requires:
Test::More: {}
recommends:
Acme::ComeFrom:
alternate:
Acme::ComeWith:
version: 0.05
reason: "I really likes it"
version: 0.02
requires:
Some::Module:
arch: MSWin32
perl: 5.6.0
version: 1.04
Other::Module:
version 1.53
arch: '!Solaris'
perl: 5.005
features:
- name: This is feature one
requires:
arch: MSWin32
Module::Foo:
perl: '<5.6.0'
version: 2.04
- name: Feature two
requires:
Lingua::ZH::TaBE: {}
recommends:
Lingua::EN::Inflect:
arch: '!MSWin32'
version: 3.03
|