id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	difficulty	ghcversion	platform
472	new field for version policy	duncan		"We would like packages to be able to describe what version policy they use. 

One common policy that we have been discussing is called the [http://haskell.org/haskellwiki/Package_versioning_policy Package versioning policy] or PVP for short. In particular we would like packages to be able to opt-in to following this policy. It would enable hackage to enforce the policy (with a suitable API-checking tool) which should provide a strong guarantee for client packages. In addition it would allow hackage and cabal to make suggestions for packages about dependencies on packages that follow the polciy. For example it could suggest not using upwardly open version ranges.

So we would like a reasonably extensible syntax for packages to specify what version policy they follow. One suggestion is:

{{{
version-policy: PVP-1
}}}

That is named (and versioned) policies. The names would have to be well known and defined elsewhere. Only known policies could only be enforced. As with other similar meta-data, the value should be parsed but allow unknown policies. Hackage could reject unknown policies, but it would enable people to make in-house modifications to add new policies."	enhancement	new	normal	Cabal-1.8	Cabal library	1.6.0.1	normal				unknown		
