From 3d6e45290e3ea49e3149eb5f832ab824efdd4061 Mon Sep 17 00:00:00 2001 From: gbaz Date: Mon, 19 Feb 2018 12:18:57 -0500 Subject: [PATCH 01/10] Modify upload guidelines as per the uncurated hackage proposal This PR changes the upload page to specify the `x-curation` field and its meaning. --- datafiles/templates/upload.html.st | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/datafiles/templates/upload.html.st b/datafiles/templates/upload.html.st index a41c2d8a5..a77350989 100644 --- a/datafiles/templates/upload.html.st +++ b/datafiles/templates/upload.html.st @@ -14,7 +14,7 @@ $hackagePageHeader()$
Upload and publish a package permanently: Upload
-

Uploading a package puts it in the main package index +

Uploading a package puts it in the package index so that anyone can download it and view information about it. You can only upload a package version once and this cannot be undone, so try to get it right the first time! To reduce the risk of mistakes it's recommended to use the package candidates feature described below. @@ -28,13 +28,6 @@ synopsis/description as well as ensuring your package is installable by helping with providing accurate meta-data.

-

In the course of the curation process, the -Hackage Trustees need to be -able to contact you, to inform you about and help you resolve issues with -your package (including its meta-data) which affect the Hackage -ecosystem. -

-

Packages must be in the form produced by Cabal's sdist command: a gzipped tar file package-version.tar.gz @@ -43,12 +36,26 @@ of that name and version, including package.cabal. See the notes at the bottom of the page.

-

Package versioning

+

Package versioning and curation

-

In order to ensure the integrity and well-functioning of the Hackage/Cabal ecosystem, all packages should follow Haskell's Package Versioning Policy (PVP).

+

By default, uploaded packages are curated which means that both maintainers and hackage trustees may revise their metadata (particularly involving version bouds) to guide build tools in producing install-plans. (For more information on revisions, see the FAQ). + +

In order to ensure the integrity and well-functioning of the Hackage/Cabal ecosystem, all curated packages should follow Haskell's Package Versioning Policy (PVP).

In particular, be aware that although the PVP and SemVer are based on the same concepts they differ significantly in structure and consequently are not compatible with each other. Please consult the PVP/SemVer FAQ section for more details about the differences and related issues.

+

In the course of the curation process, the +Hackage Trustees need to be +able to contact package maintainers, to inform them about and help to resolve issues with +their packages (including its meta-data) which affect the Hackage +ecosystem.

+ +

Package uploaders may choose to exclude individual package uploads from curation, by setting the x-curation: field of the package's cabal file to uncurated. Packages which are uncurated have no expectations on them regarding versioning policy. Trustees or maintainers may adopt uncurated packages into the curated layer through metadata revisions. Metadata revisions must not set the value of the x-curation field to any variant of uncurated.

+ +

Two varients of the uncurated property are supported. First, uncurated-no-trustee-contact, which indicates that maintainers do not wish to be contacted by trustees regarding any metadata issues with the package. (Contact may still occur over issues that are not related to curation, such as licensing, etc.). Second, uncurated-seeking-adoption, which indicates that maintainers would like their package to be adopted in the uncurated layer, but currently some issue prevents this, which they would like assistance with.

+ +

In the future, metadata regarding curation will be made available in the UI of Hackage, and different derived indexes will be provided for the uncurated and curated layers of packages.

+

Open source licenses

The code and other material you upload and distribute via this site must be From 64a59af3974c0b948c66728e14a7a8baa1d5ac4b Mon Sep 17 00:00:00 2001 From: gbaz Date: Mon, 19 Feb 2018 12:53:56 -0500 Subject: [PATCH 02/10] Update upload.html.st typos --- datafiles/templates/upload.html.st | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datafiles/templates/upload.html.st b/datafiles/templates/upload.html.st index a77350989..51e3c37bb 100644 --- a/datafiles/templates/upload.html.st +++ b/datafiles/templates/upload.html.st @@ -38,7 +38,7 @@ See the notes at the bottom of the page.

Package versioning and curation

-

By default, uploaded packages are curated which means that both maintainers and hackage trustees may revise their metadata (particularly involving version bouds) to guide build tools in producing install-plans. (For more information on revisions, see the FAQ). +

By default, uploaded packages are curated which means that both maintainers and hackage trustees may revise their metadata (particularly involving version bouds) to guide build tools in producing install-plans. (For more information on revisions, see the FAQ).

In order to ensure the integrity and well-functioning of the Hackage/Cabal ecosystem, all curated packages should follow Haskell's Package Versioning Policy (PVP).

@@ -52,7 +52,7 @@ ecosystem.

Package uploaders may choose to exclude individual package uploads from curation, by setting the x-curation: field of the package's cabal file to uncurated. Packages which are uncurated have no expectations on them regarding versioning policy. Trustees or maintainers may adopt uncurated packages into the curated layer through metadata revisions. Metadata revisions must not set the value of the x-curation field to any variant of uncurated.

-

Two varients of the uncurated property are supported. First, uncurated-no-trustee-contact, which indicates that maintainers do not wish to be contacted by trustees regarding any metadata issues with the package. (Contact may still occur over issues that are not related to curation, such as licensing, etc.). Second, uncurated-seeking-adoption, which indicates that maintainers would like their package to be adopted in the uncurated layer, but currently some issue prevents this, which they would like assistance with.

+

Two variants of the uncurated property are supported. First, uncurated-no-trustee-contact, which indicates that maintainers do not wish to be contacted by trustees regarding any metadata issues with the package. (Contact may still occur over issues that are not related to curation, such as licensing, etc.). Second, uncurated-seeking-adoption, which indicates that maintainers would like their package to be adopted in the curated layer, but currently some issue prevents this, which they would like assistance with.

In the future, metadata regarding curation will be made available in the UI of Hackage, and different derived indexes will be provided for the uncurated and curated layers of packages.

From 11151c89d0559c3293e812eeb7e12134daee6b09 Mon Sep 17 00:00:00 2001 From: gbaz Date: Mon, 19 Feb 2018 12:57:56 -0500 Subject: [PATCH 03/10] Update index.html.st --- datafiles/templates/index.html.st | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/datafiles/templates/index.html.st b/datafiles/templates/index.html.st index 329568ae5..a2cacc24f 100644 --- a/datafiles/templates/index.html.st +++ b/datafiles/templates/index.html.st @@ -33,9 +33,10 @@ $hackagePageHeader()$

Guidelines for Hackage Packages:

In addition to the main package list page, there are a few other package indices:

Guidelines for Hackage Packages:

Guidelines for Hackage Packages:

diff --git a/datafiles/templates/upload.html.st b/datafiles/templates/upload.html.st index 750310a17..101d69ff0 100644 --- a/datafiles/templates/upload.html.st +++ b/datafiles/templates/upload.html.st @@ -36,9 +36,9 @@ of that name and version, including package.cabal. See the notes at the bottom of the page.

-

Package versioning and curation

+

Package versioning and curation

-

By default, uploaded packages are curated which means that both maintainers and hackage trustees may revise their metadata (particularly involving version bounds) to guide build tools in producing install-plans. (For more information on revisions, see the FAQ). +

By default, uploaded packages are curated which means that both maintainers and hackage trustees may revise their metadata (particularly involving version bounds) to guide build tools in producing install-plans. (For more information on revisions, see the FAQ).

In order to ensure the integrity and well-functioning of the Hackage/Cabal ecosystem, all curated packages should follow Haskell's Package Versioning Policy (PVP).

@@ -52,7 +52,7 @@ able to contact package maintainers, to inform them about and help to resolve is their packages (including its meta-data) which affect the Hackage ecosystem.

-

Package uploaders may choose to exclude individual package uploads from curation, by setting the x-curation: field of the package's cabal file to uncurated. Packages which are uncurated have no expectations on them regarding versioning policy. Trustees or maintainers may adopt uncurated packages into the curated layer through metadata revisions. Metadata revisions must not set the value of the x-curation field to any variant of uncurated.

+

Package uploaders may choose to exclude individual package uploads from curation, by setting the x-curation: field of the package's cabal file to uncurated. Packages which are uncurated have no expectations on them regarding versioning policy. Trustees or maintainers may adopt uncurated packages into the curated layer through metadata revisions. Metadata revisions must not set the value of the x-curation field to any variant of uncurated.

Two variants of the uncurated property are supported. First, uncurated-no-trustee-contact, which indicates that maintainers do not wish to be contacted by trustees regarding any metadata issues with the package. (Contact may still occur over issues that are not related to curation, such as licensing, etc.). Second, uncurated-seeking-adoption, which indicates that maintainers would like their package to be adopted in the curated layer, but currently some issue prevents this, which they would like assistance with.

From 22119d27b5305e33f85942528b0f76a3699fec6d Mon Sep 17 00:00:00 2001 From: Herbert Valerio Riedel Date: Sun, 18 Mar 2018 23:21:23 +0100 Subject: [PATCH 09/10] Try to emphasize the importance of the transitive contractual property ...as saying something along the lines of "the theorem provides stronger guarantees if its pre-conditions are satisfied" is kind of a tautology... :-) --- datafiles/templates/upload.html.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafiles/templates/upload.html.st b/datafiles/templates/upload.html.st index 101d69ff0..d09ac1d48 100644 --- a/datafiles/templates/upload.html.st +++ b/datafiles/templates/upload.html.st @@ -44,7 +44,7 @@ See the notes at the bottom of the page.

In particular, be aware that although the PVP and SemVer are based on the same concepts they differ significantly in structure and consequently are not compatible with each other. Please consult the PVP/SemVer FAQ section for more details about the differences and related issues.

-

Further, the PVP provides stronger guarantees if it is followed not only by an individual package, but also by that package's transitive dependencies. Packages which are curated should aim to depend only on other curated packages.

+

Further, an important property of the PVP contract is that it can only be effective and provide strong enough guarantees if it is followed not only by an individual package, but also by that package's transitive dependencies. Consequently, packages which are curated should aim to depend only on other curated packages.

In the course of the curation process, the Hackage Trustees need to be From ddddf0250d93efa6f7f4587228c304b162d6a27e Mon Sep 17 00:00:00 2001 From: gbaz Date: Sun, 18 Mar 2018 22:06:34 -0400 Subject: [PATCH 10/10] Update index.html.st --- datafiles/templates/index.html.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafiles/templates/index.html.st b/datafiles/templates/index.html.st index a9d109cac..18065a0fb 100644 --- a/datafiles/templates/index.html.st +++ b/datafiles/templates/index.html.st @@ -33,7 +33,7 @@ $hackagePageHeader()$

Guidelines for Hackage Packages:

    -
  • Packages cannot be deleted, so you should consider uploading new package versions as package candidates and testing before publishing it to the main index.
  • +
  • Packages cannot be deleted, so you should consider uploading new package versions as package candidates and testing before publishing to the main index.
  • All curated packages should follow the Package Versioning Policy (PVP).
  • Packages uploads may opt-out of curation through use of the x-curation field
  • Please consult the documentation for uploading packages for more in-depth information about Hackage's policies, including the usage of the x-curation field.