From beb0c9e29907527abdd18ee58964561901210416 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Tue, 9 Jul 2024 14:18:33 -0600 Subject: [PATCH 01/30] adding in draft for the PyHC package tiering PHEP --- pheps/phep-9999.md | 112 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 pheps/phep-9999.md diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md new file mode 100644 index 0000000..dfefead --- /dev/null +++ b/pheps/phep-9999.md @@ -0,0 +1,112 @@ +``` +PHEP: 9999 +Title: PyHC Package Tiering +Author: Julie Barnum +Discussions-To: https://github.com/heliophysicsPy/standards/pull/25 +Revision: 1 +Status: Draft +Type: Process +Content-Type: text/markdown; charset=UTF-8; variant=CommonMark +Created: +Post-History: 09-July-2024 +``` + +# Abstract + +This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new four tiers of PyHC projects (Gold, Silver, Bronze, and Honorable Mention), as well as benefits accrued at each tier. + +# Motivation + +Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought—originating from bi-annual meeting discussions, telecon chats, and further sidebar converstaion—with regards to what PyHC is and should be: 1) a basic interpretation where PyHC is a collection, and listing, of open-soure Python packages with a relevance to Heliophysics and space physics, and 2) a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. There is utility and validity to both approaches. A new PyHC package tiering system is intended to find a "best of both worlds" with the two ideas. Older, out-of-date, unmaintained, or specific use-case code (e.g., associated with a publication) could still have a place for listing and findability, while also allowing nuance between other packages that are more robust, trustworthy, maintained, and work toward the standards-based interpretation of being a PyHC package. Further, this tiering system also allows users to get a clearer picture on what each PyHC package has to offer, and the state of the package's condition and development. Creation of a PyHC package tiering system also allows for justification for a myriad of benefits, for example, consideration for funding from a community travel fund, or extra help with improving a standards grouping grade. + +# Rationale + +Decisions for tiering levels, requirements for each tier, and benefits accrued at each tier are based on conversations with the community (bi-annual meetings, telecons, etc.), and are listed here as a starting point for more discussion, likely to be refined in the future. Initially, ideas were presented to the community in a pyramid format. To make the differences between tiers more visible and understandable, it has been transformed into a spreadsheet format. + +# PyHC Package Tiering Specifications + +There are four tiers proposed in this PHEP: Honorable Mention, Bronze, Silver, and Gold. See the table below for requirements associated with each tier: + +| Tier | Self Evaluation Status | PyHC Standard Grades | pyOpenSci Review Status | PyHC Env Installation Conflicts | DOI | Interoperability Status | pip Installable? | conda Installable? | +| :--: | :--------------------: | :------------------: | :---------------------: | :-----------------------------: | :-: | :---------------------: | :--------------: | :----------------: | +| **Gold** | Completed | Mostly green, some yellow allowed | Completed | No conflicts allowed | Required | Interoperable with all other PyHC core packages | Yes | Yes | +| **Bronze** | Completed | Several yellow, no red | In Progress | A couple conflicts exist | Required | Interoperable with most PyHC core packages | Yes | No | +| **Silver** | Completed | Red grades allowed | Not Completed | Major conflicts exist | Required | Interoperable with 1-2 PyHC core packages | Yes | No | +| **Honorable Mention** | Not Done | N/A | N/A | Major conflicts exist | Not required | Does not interoperate with core packages | No | No | + +Descriptions for each heading are as follows: + - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards + - PyHC Standard Grades: indicates status of each standards grouping within a package's self evaluation + - pyOpenSci Review Status: indicates status of a pyOpenSci review + - PyHC Env Installation Conflicts: indicates state of installation conflicts within the PyHC software environment + - DOI: indicates whether or not a package has a DOI (e.g., from Zenodo or a publication) + - Interoperability Status: indicates the level of interoperability a package has with PyHC core packages + - pip Installable: indicates whether a package is pip installable + - conda Installable: indicates whether a package is conda installable + +The following table shows the benefits that are associated with each tier: + +| Tier | Summer School Inclusion | PyHC Software Env Inclusion | PyHC-Chat Bot Inclusion | pyOpenSci Verified badge | Standards Compliance Assistance | Listing on Main PyHC Project Page | Listing on Secondary PyHC Project Page | Software Search Interface Inclusion | Consideration for Conference Travel Funding | +| :--: | :---------------------: | :-------------------------: | :---------------------: | :----------------------: | :-----------------------------: | :-------------------------------: | :------------------------------------: | :---------------------------------: | :-----------------------------------------: | +| **Gold** | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | +| **Bronze** | No | No | No | No | Yes | Yes | No | Yes | Yes | +| **Silver** | No | No | No | No | No | Yes | No | Yes | No | +| **Honorable Mention** | No | No | No | No | No | No | Yes | Yes | No | + +Descriptions for each heading are as follows: + - Summer School Inclusion: indicates whether a package will be included in summer school teaching materials + - PyHC Software Env Inclusion: indicates whether a package will be included within the PyHC software environment + - PyHC-Chat Bot Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot + - pyOpenSci Verified Badge: a badge that shows whether a package has completed the pyOpenSci review process + - Standards Compliance Assistance: indicates whether a package will receive extra help and/or advice from PyHC leadership in conforming to the PyHC standards + - Listing on Main PyHC Project Page: indictes whether a package's information will be displayed on a new, main PyHC Project page + - Listing on Secondary PyHC Project Page: indicates whetheer a package's information will be displayed on a new, secondary PyHC Project page + - Software Search Interface Inclusion: indicates whether a package will be included within a Heliophysics software search interface + - Consideration for Conference Travel Funding: indicates whether developers from a package will be considered for travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) + +Packages are evaluated against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. + +Once the tier specifications are set, the PyHC website will be updated to reflect the new tiers. Next, packages will self evaluate their PyHC package tier level. Similar to self evaluation of standards grading, packages will then submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io), modifying their package to fall under a certain tier. From there, the PyHC Leadership team-currently the PI (Julie Barnum) and the PyHC Tech Lead (Shawn Polson)-will give a final vote of approval and either merge the PR, or begin a discussion on the PR with reasons for a tier regrade. Note that a package is allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier updated. The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. Packages will receive ample notification before this takes place (no less than three months' notice), with opportunity given to rectify any issues with their current tier level. + + +# Backwards Compatibility + +This PHEP does not propose a direct change to PyHC package code, simply the inclusion or not of packages within the various tiers, thus it introduces no compatibility concerns. + +# Security Implications + +This PHEP raises no security implications as it does not interact with any executing code. + +# How to Teach This + +This PHEP's contents and changes will be presented on, discussed, and hacked at various PyHC bi-weekly telecons and PyHC bi-annual meetings. Additionally, explanations for tiering, the process of obtaining a PyHC tier, etc. will be posted on the new main Projects page, as well as communicated within a blog post under the PyHC Blog page. + +# Rejected Ideas + +None yet to note. + +# Open Issues + +None yet to note. + +# Footnotes + +None yet to note. + +# Revisions + +Revision 1 (pending): Initial draft. + +# Copyright + +This document is placed in the public domain or under the CC0-1.0-Universal license, whichever is more permissive. It should be cited as: +``` +@techreport(phep2, + author = {Julie I. Barnum}, + title = {PHEP Package Tiering}, + year = {2024}, + type = {PHEP}, + number = {9999}, + doi = {10.5281/zenodo.xxxxxxx} +) +``` From 4827407335f090421c3a0eef49684d1e89442e9c Mon Sep 17 00:00:00 2001 From: jibarnum Date: Tue, 9 Jul 2024 15:28:52 -0600 Subject: [PATCH 02/30] had wrong order for silver vs bronze --- pheps/phep-9999.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index dfefead..05fb5cb 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -30,8 +30,8 @@ There are four tiers proposed in this PHEP: Honorable Mention, Bronze, Silver, a | Tier | Self Evaluation Status | PyHC Standard Grades | pyOpenSci Review Status | PyHC Env Installation Conflicts | DOI | Interoperability Status | pip Installable? | conda Installable? | | :--: | :--------------------: | :------------------: | :---------------------: | :-----------------------------: | :-: | :---------------------: | :--------------: | :----------------: | | **Gold** | Completed | Mostly green, some yellow allowed | Completed | No conflicts allowed | Required | Interoperable with all other PyHC core packages | Yes | Yes | -| **Bronze** | Completed | Several yellow, no red | In Progress | A couple conflicts exist | Required | Interoperable with most PyHC core packages | Yes | No | -| **Silver** | Completed | Red grades allowed | Not Completed | Major conflicts exist | Required | Interoperable with 1-2 PyHC core packages | Yes | No | +| **Silver** | Completed | Several yellow, no red | In Progress | A couple conflicts exist | Required | Interoperable with most PyHC core packages | Yes | No | +| **Bronze** | Completed | Red grades allowed | Not Completed | Major conflicts exist | Required | Interoperable with 1-2 PyHC core packages | Yes | No | | **Honorable Mention** | Not Done | N/A | N/A | Major conflicts exist | Not required | Does not interoperate with core packages | No | No | Descriptions for each heading are as follows: @@ -49,8 +49,8 @@ The following table shows the benefits that are associated with each tier: | Tier | Summer School Inclusion | PyHC Software Env Inclusion | PyHC-Chat Bot Inclusion | pyOpenSci Verified badge | Standards Compliance Assistance | Listing on Main PyHC Project Page | Listing on Secondary PyHC Project Page | Software Search Interface Inclusion | Consideration for Conference Travel Funding | | :--: | :---------------------: | :-------------------------: | :---------------------: | :----------------------: | :-----------------------------: | :-------------------------------: | :------------------------------------: | :---------------------------------: | :-----------------------------------------: | | **Gold** | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | -| **Bronze** | No | No | No | No | Yes | Yes | No | Yes | Yes | -| **Silver** | No | No | No | No | No | Yes | No | Yes | No | +| **Silver** | No | No | No | No | Yes | Yes | No | Yes | Yes | +| **Bronze** | No | No | No | No | No | Yes | No | Yes | No | | **Honorable Mention** | No | No | No | No | No | No | Yes | Yes | No | Descriptions for each heading are as follows: From 10b6add51a79885caed26d7eb9f550b0c2057988 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Tue, 9 Jul 2024 15:35:27 -0600 Subject: [PATCH 03/30] Update pheps/phep-9999.md Changing Honorable Mention to Copper Co-authored-by: Angeline Burrell --- pheps/phep-9999.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index 05fb5cb..cdce6c3 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -32,7 +32,7 @@ There are four tiers proposed in this PHEP: Honorable Mention, Bronze, Silver, a | **Gold** | Completed | Mostly green, some yellow allowed | Completed | No conflicts allowed | Required | Interoperable with all other PyHC core packages | Yes | Yes | | **Silver** | Completed | Several yellow, no red | In Progress | A couple conflicts exist | Required | Interoperable with most PyHC core packages | Yes | No | | **Bronze** | Completed | Red grades allowed | Not Completed | Major conflicts exist | Required | Interoperable with 1-2 PyHC core packages | Yes | No | -| **Honorable Mention** | Not Done | N/A | N/A | Major conflicts exist | Not required | Does not interoperate with core packages | No | No | +| **Copper** | Not Done | N/A | N/A | Major conflicts exist | Not required | Does not interoperate with core packages | No | No | Descriptions for each heading are as follows: - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards From 0ebfa4bd99fae9632ec8d472e32a6ffb412ac125 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Mon, 26 Aug 2024 18:20:16 -0600 Subject: [PATCH 04/30] updating PHEP text to reflect comments, suggestions, and concerns from initial round of reviews on GitHub --- pheps/phep-9999.md | 114 ++++++++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 32 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index cdce6c3..b8cbe8d 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -17,7 +17,14 @@ This PHEP establishes a new tiering structure to PyHC projects, which will autom # Motivation -Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought—originating from bi-annual meeting discussions, telecon chats, and further sidebar converstaion—with regards to what PyHC is and should be: 1) a basic interpretation where PyHC is a collection, and listing, of open-soure Python packages with a relevance to Heliophysics and space physics, and 2) a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. There is utility and validity to both approaches. A new PyHC package tiering system is intended to find a "best of both worlds" with the two ideas. Older, out-of-date, unmaintained, or specific use-case code (e.g., associated with a publication) could still have a place for listing and findability, while also allowing nuance between other packages that are more robust, trustworthy, maintained, and work toward the standards-based interpretation of being a PyHC package. Further, this tiering system also allows users to get a clearer picture on what each PyHC package has to offer, and the state of the package's condition and development. Creation of a PyHC package tiering system also allows for justification for a myriad of benefits, for example, consideration for funding from a community travel fund, or extra help with improving a standards grouping grade. +Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought—originating from bi-annual meeting discussions, telecon chats, and further sidebar converstaion—with regards to what PyHC is and should be: + +- a basic interpretation where PyHC is a collection, and listing, of open-soure Python packages with a relevance to Heliophysics and space physics, or +- a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. + +There is utility and validity to both approaches. A new PyHC package tiering system is intended to find a "best of both worlds" with the two ideas. Older, out-of-date, unmaintained, or publication-specific code could still have a place for listing and findability, while also allowing nuance between other packages that are more robust, trustworthy, maintained, and work toward the standards-based interpretation of being a PyHC package. + +Further, this tiering system also allows users to get a clearer picture on what each PyHC package has to offer, and the state of the package's condition and development. Creation of a PyHC package tiering system also allows for justification for a myriad of benefits, for example, consideration for funding from a community travel fund, or extra help with improving a standards grouping grade. # Rationale @@ -25,49 +32,90 @@ Decisions for tiering levels, requirements for each tier, and benefits accrued a # PyHC Package Tiering Specifications -There are four tiers proposed in this PHEP: Honorable Mention, Bronze, Silver, and Gold. See the table below for requirements associated with each tier: - -| Tier | Self Evaluation Status | PyHC Standard Grades | pyOpenSci Review Status | PyHC Env Installation Conflicts | DOI | Interoperability Status | pip Installable? | conda Installable? | -| :--: | :--------------------: | :------------------: | :---------------------: | :-----------------------------: | :-: | :---------------------: | :--------------: | :----------------: | -| **Gold** | Completed | Mostly green, some yellow allowed | Completed | No conflicts allowed | Required | Interoperable with all other PyHC core packages | Yes | Yes | -| **Silver** | Completed | Several yellow, no red | In Progress | A couple conflicts exist | Required | Interoperable with most PyHC core packages | Yes | No | -| **Bronze** | Completed | Red grades allowed | Not Completed | Major conflicts exist | Required | Interoperable with 1-2 PyHC core packages | Yes | No | -| **Copper** | Not Done | N/A | N/A | Major conflicts exist | Not required | Does not interoperate with core packages | No | No | +There are four tiers proposed in this PHEP: Copper, Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". See the table below for requirements associated with each tier: + +| | **Gold** | **Silver** | **Bronze** | **Copper** | +| :-: | :----------: | :-----------: | :------------: | :-------------: | +| Self-Evaluation Status | Completed | Completed | Completed | Not Done | +| PyHC Standard Grades | Mostly green, some yellow | Several yellow, no red | A couple red | N/A | +| pyOpenSci Review Status | Completed | In progress | Not Started | Not Started | +| PyHC Env Installation Conflicts | No conflicts | A couple conflicts exist | Major conflicts exist | Major conflicts exist | +| HSSI Metadata Compliant | Fully Compliant | A couple issues exist | Major issues exist | Major issues exist | +| Software License | | | | +| DOI | Required | Required | Required | Not Required | +| pip installable? | Yes | Yes | Yes | No | +| conda installable? | Yes | No | No | No | Descriptions for each heading are as follows: - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards - PyHC Standard Grades: indicates status of each standards grouping within a package's self evaluation - pyOpenSci Review Status: indicates status of a pyOpenSci review - - PyHC Env Installation Conflicts: indicates state of installation conflicts within the PyHC software environment - - DOI: indicates whether or not a package has a DOI (e.g., from Zenodo or a publication) - - Interoperability Status: indicates the level of interoperability a package has with PyHC core packages - - pip Installable: indicates whether a package is pip installable - - conda Installable: indicates whether a package is conda installable - -The following table shows the benefits that are associated with each tier: - -| Tier | Summer School Inclusion | PyHC Software Env Inclusion | PyHC-Chat Bot Inclusion | pyOpenSci Verified badge | Standards Compliance Assistance | Listing on Main PyHC Project Page | Listing on Secondary PyHC Project Page | Software Search Interface Inclusion | Consideration for Conference Travel Funding | -| :--: | :---------------------: | :-------------------------: | :---------------------: | :----------------------: | :-----------------------------: | :-------------------------------: | :------------------------------------: | :---------------------------------: | :-----------------------------------------: | -| **Gold** | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | -| **Silver** | No | No | No | No | Yes | Yes | No | Yes | Yes | -| **Bronze** | No | No | No | No | No | Yes | No | Yes | No | -| **Honorable Mention** | No | No | No | No | No | No | Yes | Yes | No | + - PyHC Env Installation Conflicts: indicates state of installation conflicts within the PyHC software environment (i.e. does the Package comply with PHEP 3) + - HSSI Metadata Compliant: indicates state of compliance with the new Heliophysics Software Search Interface's metadata requirements + - Software License: indicates a package's software license status + - DOI: indicates whether or not a package's software repository has a DOI (e.g., from Zenodo) + - pip installable?: indicates whether a package is pip installable + - conda installable?: indicates whether a package is conda installable + +The following table shows the benefits that are associated with each tier: + +| | **Gold** | **Silver** | **Bronze** | **Copper** | +| :-: | :----------: | :-----------: | :------------: | :-------------: | +| Summer School Inclusion * | Yes | Yes** | No | No | +| PyHC-top-tier Env Inclusion * | Yes | Yes ** | No | No | +| PyHC-all Env Inclusion * | Yes | Yes | Yes | No | +| PyHC-Chat Bot Inclusion * | Yes | Yes ** | No | No | +| pyOpenSci Verified Badge | Yes | No | No | No | +| Standards Compliance Assistance * | Yes *** | Yes | Yes | Yes | +| Main Page Listing | Yes | Yes | Yes | No | +| Secondary Page Listing | No | No | No | Yes | +| HSSI Inclusion | Yes | Yes | Yes | Yes | +| Conference Travel Funding | Yes | Yes | Yes | No | + +* = can opt-in or opt-out of this + +** = conditional upon justification on importance/use of package (e.g. number of users, level of commitment within PyHC activities, or effort made for those items but gold level not yet achieved) + +*** = conditional upon justification that package is in danger of dropping down to a Silver tier Descriptions for each heading are as follows: - Summer School Inclusion: indicates whether a package will be included in summer school teaching materials - - PyHC Software Env Inclusion: indicates whether a package will be included within the PyHC software environment + - PyHC-top-tier Env Inclusion: indicates whether a package will be included within the current PyHC software environment used at the summer school (also included within env in Science Platforms Coordination group???) + - PyHC-all Env Inclusion: indicates whether a package will be included within the current PyHC software environment containing all packages Bronze and higher. (Does this make sense based on the ability or not of a package to be installed in a common software env???) - PyHC-Chat Bot Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot - pyOpenSci Verified Badge: a badge that shows whether a package has completed the pyOpenSci review process - - Standards Compliance Assistance: indicates whether a package will receive extra help and/or advice from PyHC leadership in conforming to the PyHC standards - - Listing on Main PyHC Project Page: indictes whether a package's information will be displayed on a new, main PyHC Project page - - Listing on Secondary PyHC Project Page: indicates whetheer a package's information will be displayed on a new, secondary PyHC Project page - - Software Search Interface Inclusion: indicates whether a package will be included within a Heliophysics software search interface - - Consideration for Conference Travel Funding: indicates whether developers from a package will be considered for travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) + - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC resources) for conforming to the PyHC standards + - Main Page Listing: indictes whether a package's information will be displayed on a new, main PyHC Project page + - Secondary Page Listing: indicates whetheer a package's information will be displayed on a new, secondary PyHC Project page + - HSSI Inclusion: indicates whether a package will be included within the Heliophysics Software Search Interface + - Conference Travel Funding: indicates whether developers from a package will be considered for travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) + +Packages are evaluated against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. -Packages are evaluated against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. +For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. -Once the tier specifications are set, the PyHC website will be updated to reflect the new tiers. Next, packages will self evaluate their PyHC package tier level. Similar to self evaluation of standards grading, packages will then submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io), modifying their package to fall under a certain tier. From there, the PyHC Leadership team-currently the PI (Julie Barnum) and the PyHC Tech Lead (Shawn Polson)-will give a final vote of approval and either merge the PR, or begin a discussion on the PR with reasons for a tier regrade. Note that a package is allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier updated. The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. Packages will receive ample notification before this takes place (no less than three months' notice), with opportunity given to rectify any issues with their current tier level. +# Package Tiering Implementation Process + +Following acceptance of this PHEP, the PyHC website will be updated to reflect the new tiers. The process is then as follows: +- Within six months of PyHC website update (written communication provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is + - need to include written justification on the PR for chosen tier +- Within three months of PR publish, PyHC Tech Lead reviews the package and asserts if self-evaluated level matches expectations + - again, providing written reasoning on the PR if a tier regrade is deemed necessary +- PyHC Lead reviews and gives final vote of approval on tier selection +- PyHC Lead then either merges the PR, or provides written justification on the PR if a tier upgrade is deemed necessary + +General comments: + +If a package does not submit a self evaluation within six months of PyHC website update, they are automatically placed into the Copper tier. They will be able to apply for a tier regrade if this occurs, using the same process listed above. + +Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier regraded. + +The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. Should this occur: +- Packages will receive six months' notification before a tier regrade is to take place through written e-mail communication (from the PyHC Lead) +- Packages then have the opportunity to rectify issues within the six-month period, through changes submitted in a PR + - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier regrade happens + - If changes do not result in continued compliance with current tier, a tier regrade happens; packages may later on apply for a tier regrade once more # Backwards Compatibility @@ -79,7 +127,9 @@ This PHEP raises no security implications as it does not interact with any execu # How to Teach This -This PHEP's contents and changes will be presented on, discussed, and hacked at various PyHC bi-weekly telecons and PyHC bi-annual meetings. Additionally, explanations for tiering, the process of obtaining a PyHC tier, etc. will be posted on the new main Projects page, as well as communicated within a blog post under the PyHC Blog page. +This PHEP's contents and changes will be presented on, discussed, and hacked at various PyHC bi-weekly telecons and PyHC bi-annual meetings. Additionally, explanations for tiering, the process of obtaining a PyHC tier, etc. will be posted on the new main Projects page, as well as communicated within a blog post under the PyHC Blog page. + +Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community). # Rejected Ideas From 5f6a9a6ad65df2d3ca119328d858671e67ac17d4 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Mon, 26 Aug 2024 18:29:42 -0600 Subject: [PATCH 05/30] forgot info on software licenses --- pheps/phep-9999.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index b8cbe8d..a73e46e 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -41,7 +41,7 @@ There are four tiers proposed in this PHEP: Copper, Bronze, Silver, and Gold. Th | pyOpenSci Review Status | Completed | In progress | Not Started | Not Started | | PyHC Env Installation Conflicts | No conflicts | A couple conflicts exist | Major conflicts exist | Major conflicts exist | | HSSI Metadata Compliant | Fully Compliant | A couple issues exist | Major issues exist | Major issues exist | -| Software License | | | | +| Software License | Fully compliant and excludes NOSA license | Fully compliant, allows NOSA license | Has non-recommended license (e.g., GPL) | Has no license | | DOI | Required | Required | Required | Not Required | | pip installable? | Yes | Yes | Yes | No | | conda installable? | Yes | No | No | No | @@ -52,7 +52,7 @@ Descriptions for each heading are as follows: - pyOpenSci Review Status: indicates status of a pyOpenSci review - PyHC Env Installation Conflicts: indicates state of installation conflicts within the PyHC software environment (i.e. does the Package comply with PHEP 3) - HSSI Metadata Compliant: indicates state of compliance with the new Heliophysics Software Search Interface's metadata requirements - - Software License: indicates a package's software license status + - Software License: indicates level of software license compliance with the [PyHC Standards Document](https://doi.org/10.5281/zenodo.2529131) - DOI: indicates whether or not a package's software repository has a DOI (e.g., from Zenodo) - pip installable?: indicates whether a package is pip installable - conda installable?: indicates whether a package is conda installable From 60620dd1011150777fb08983725708ad0eacdd67 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Tue, 27 Aug 2024 16:43:07 -0600 Subject: [PATCH 06/30] adding in some updates based on PR comments --- pheps/phep-9999.md | 53 +++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index a73e46e..1b7f82e 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -13,7 +13,7 @@ Post-History: 09-July-2024 # Abstract -This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new four tiers of PyHC projects (Gold, Silver, Bronze, and Honorable Mention), as well as benefits accrued at each tier. +This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new four tiers of PyHC projects (Gold, Silver, Bronze, and Copper), as well as benefits accrued at each tier. # Motivation @@ -39,8 +39,8 @@ There are four tiers proposed in this PHEP: Copper, Bronze, Silver, and Gold. Th | Self-Evaluation Status | Completed | Completed | Completed | Not Done | | PyHC Standard Grades | Mostly green, some yellow | Several yellow, no red | A couple red | N/A | | pyOpenSci Review Status | Completed | In progress | Not Started | Not Started | -| PyHC Env Installation Conflicts | No conflicts | A couple conflicts exist | Major conflicts exist | Major conflicts exist | -| HSSI Metadata Compliant | Fully Compliant | A couple issues exist | Major issues exist | Major issues exist | +| PHEP 3 Compliant? | Yes | Yes | Yes | No | +| HSSI Metadata Compliant? | Yes | Mostly | Partially | Bare Minimum Met | | Software License | Fully compliant and excludes NOSA license | Fully compliant, allows NOSA license | Has non-recommended license (e.g., GPL) | Has no license | | DOI | Required | Required | Required | Not Required | | pip installable? | Yes | Yes | Yes | No | @@ -50,8 +50,12 @@ Descriptions for each heading are as follows: - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards - PyHC Standard Grades: indicates status of each standards grouping within a package's self evaluation - pyOpenSci Review Status: indicates status of a pyOpenSci review - - PyHC Env Installation Conflicts: indicates state of installation conflicts within the PyHC software environment (i.e. does the Package comply with PHEP 3) - - HSSI Metadata Compliant: indicates state of compliance with the new Heliophysics Software Search Interface's metadata requirements + - PHEP 3 Compliant?: indicates state of installation conflicts within the PyHC software environment (i.e. does the Package comply with PHEP 3) + - HSSI Metadata Compliant?: indicates state of compliance with the new Heliophysics Software Search Interface's (HSSI) metadata requirements; more specifically: + - Copper: Name of package, link to repository + - Bronze: Copper + DOI, license, description, (publisher, publication year, authors -> needed to created DOI), mandatory fields for HSSI (TBD) + - Silver: Bronze + most recommended fields for HSSI (TBD) + - Gold: Silver + all recommended and some optional fields for HSSI (TBD) - Software License: indicates level of software license compliance with the [PyHC Standards Document](https://doi.org/10.5281/zenodo.2529131) - DOI: indicates whether or not a package's software repository has a DOI (e.g., from Zenodo) - pip installable?: indicates whether a package is pip installable @@ -61,27 +65,27 @@ The following table shows the benefits that are associated with each tier: | | **Gold** | **Silver** | **Bronze** | **Copper** | | :-: | :----------: | :-----------: | :------------: | :-------------: | -| Summer School Inclusion * | Yes | Yes** | No | No | -| PyHC-top-tier Env Inclusion * | Yes | Yes ** | No | No | -| PyHC-all Env Inclusion * | Yes | Yes | Yes | No | -| PyHC-Chat Bot Inclusion * | Yes | Yes ** | No | No | +| Summer School Inclusion \* | Yes | Yes** | No | No | +| PyHC-top-tier Env Inclusion \* | Yes | Yes ** | No | No | +| PyHC-all Env Inclusion \* | Yes | Yes | Yes | No | +| PyHC-Chat Bot Inclusion \* | Yes | Yes ** | No | No | | pyOpenSci Verified Badge | Yes | No | No | No | -| Standards Compliance Assistance * | Yes *** | Yes | Yes | Yes | +| Standards Compliance Assistance \* | Yes *** | Yes | Yes | Yes | | Main Page Listing | Yes | Yes | Yes | No | | Secondary Page Listing | No | No | No | Yes | | HSSI Inclusion | Yes | Yes | Yes | Yes | | Conference Travel Funding | Yes | Yes | Yes | No | -* = can opt-in or opt-out of this +\* = can opt-in or opt-out of this -** = conditional upon justification on importance/use of package (e.g. number of users, level of commitment within PyHC activities, or effort made for those items but gold level not yet achieved) +\** = conditional upon justification on importance/use of package (e.g. number of users, level of commitment within PyHC activities, or effort made for those items but gold level not yet achieved) -*** = conditional upon justification that package is in danger of dropping down to a Silver tier +\*** = conditional upon justification that package is in danger of dropping down to a Silver tier Descriptions for each heading are as follows: - Summer School Inclusion: indicates whether a package will be included in summer school teaching materials - - PyHC-top-tier Env Inclusion: indicates whether a package will be included within the current PyHC software environment used at the summer school (also included within env in Science Platforms Coordination group???) - - PyHC-all Env Inclusion: indicates whether a package will be included within the current PyHC software environment containing all packages Bronze and higher. (Does this make sense based on the ability or not of a package to be installed in a common software env???) + - PyHC-top-tier Env Inclusion: indicates whether a package will be included within the current PyHC software environment used at the summer school + - PyHC-all Env Inclusion: indicates whether a package will be included within the current PyHC software environment containing all packages Bronze and higher. - PyHC-Chat Bot Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot - pyOpenSci Verified Badge: a badge that shows whether a package has completed the pyOpenSci review process - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC resources) for conforming to the PyHC standards @@ -98,12 +102,15 @@ For example, if a package meets some requirements for the Silver tier, but other # Package Tiering Implementation Process Following acceptance of this PHEP, the PyHC website will be updated to reflect the new tiers. The process is then as follows: -- Within six months of PyHC website update (written communication provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is +- Within six months of PyHC website update (written communication of this provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is - need to include written justification on the PR for chosen tier -- Within three months of PR publish, PyHC Tech Lead reviews the package and asserts if self-evaluated level matches expectations - - again, providing written reasoning on the PR if a tier regrade is deemed necessary -- PyHC Lead reviews and gives final vote of approval on tier selection -- PyHC Lead then either merges the PR, or provides written justification on the PR if a tier upgrade is deemed necessary +- Within three months of PR publish, a member of the to-be-established technical steering committee (TSC; including the PyHC Tech Lead and volunteer members of the PyHC not involved with the submitted package) reviews the package and asserts if self-evaluated level matches expectations +- PyHC Lead reviews decision of TSC member and gives final vote of approval on tier selection +- PyHC Lead then either: + - 1) merges the PR if in agreement with the TSC member, or + - 2) meets with technical steering committee member to discuss dissenting opinion + - if consensus reached for previos tier selection, PyHC Lead then merges the PR, or + - PyHC Lead provides written justification on the PR if a tier upgrade is deemed necessary General comments: @@ -111,8 +118,10 @@ If a package does not submit a self evaluation within six months of PyHC website Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier regraded. -The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. Should this occur: -- Packages will receive six months' notification before a tier regrade is to take place through written e-mail communication (from the PyHC Lead) +The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. The TSC shall meet on an annual basis (likely tied to a bi-annual meeting) to review package tier status and determine if any are in danger of a tier downgrade. A package downgrade requires consensus of the technical steering committee. + +Should any package be flagged for downgrade, the follow will occur: +- Packages will receive six months' notification before a tier downgrade is to take place through written e-mail communication (from the PyHC Lead) - Packages then have the opportunity to rectify issues within the six-month period, through changes submitted in a PR - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier regrade happens - If changes do not result in continued compliance with current tier, a tier regrade happens; packages may later on apply for a tier regrade once more From c44670c1d36778d23ca4931ac21bd1cf1cb22596 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Wed, 4 Sep 2024 12:22:36 -0600 Subject: [PATCH 07/30] Update pheps/phep-9999.md quick update on pull # Co-authored-by: Jon Niehof --- pheps/phep-9999.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index 1b7f82e..1f7cca1 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -2,7 +2,7 @@ PHEP: 9999 Title: PyHC Package Tiering Author: Julie Barnum -Discussions-To: https://github.com/heliophysicsPy/standards/pull/25 +Discussions-To: https://github.com/heliophysicsPy/standards/pull/31 Revision: 1 Status: Draft Type: Process From fa310db1fafa42f6a5ab456bbe4557460515f8ec Mon Sep 17 00:00:00 2001 From: jibarnum Date: Wed, 11 Sep 2024 15:28:10 -0600 Subject: [PATCH 08/30] addressed review comments --- pheps/phep-9999.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index 1f7cca1..449c02b 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -37,21 +37,22 @@ There are four tiers proposed in this PHEP: Copper, Bronze, Silver, and Gold. Th | | **Gold** | **Silver** | **Bronze** | **Copper** | | :-: | :----------: | :-----------: | :------------: | :-------------: | | Self-Evaluation Status | Completed | Completed | Completed | Not Done | -| PyHC Standard Grades | Mostly green, some yellow | Several yellow, no red | A couple red | N/A | -| pyOpenSci Review Status | Completed | In progress | Not Started | Not Started | -| PHEP 3 Compliant? | Yes | Yes | Yes | No | +| PyHC Standards Grading | Complies with all "must" and many "should" requirements from applicable standards-track PHEPs | Complies with most "must" requirements from applicable standards-track PHEPs | Complies with some "must" requirements from applicable standards-track PHEPs | N/A | +| pyOpenSci Review Status | Completed | In progress or Completed | Not Started | Not Started | +| Installable in PyHC environment? | Yes | Yes | Yes | No | | HSSI Metadata Compliant? | Yes | Mostly | Partially | Bare Minimum Met | -| Software License | Fully compliant and excludes NOSA license | Fully compliant, allows NOSA license | Has non-recommended license (e.g., GPL) | Has no license | +| Software License | Fully compliant, allows NOSA/GPL license | Fully compliant, allows NOSA/GPL license | Has non-recommended license | Has non open-source license | | DOI | Required | Required | Required | Not Required | | pip installable? | Yes | Yes | Yes | No | | conda installable? | Yes | No | No | No | Descriptions for each heading are as follows: - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards - - PyHC Standard Grades: indicates status of each standards grouping within a package's self evaluation - - pyOpenSci Review Status: indicates status of a pyOpenSci review - - PHEP 3 Compliant?: indicates state of installation conflicts within the PyHC software environment (i.e. does the Package comply with PHEP 3) - - HSSI Metadata Compliant?: indicates state of compliance with the new Heliophysics Software Search Interface's (HSSI) metadata requirements; more specifically: + - PyHC Standards Grading: indicates status of compliance with each standard or standards-track PHEP replacement for a standard within a package's self evaluation + - pyOpenSci Review Status: indicates status of a PyHC-pyOpenSci review + - The exact specifications of this review process to come in a later PHEP defining the PyHC-pyOpenSci review process + - Installable in PyHC Environment?: indicates state of installation conflicts within the PyHC software environment + - HSSI Metadata Compliant?: indicates state of compliance with the new Heliophysics Software Search Interface's (HSSI) metadata requirements. The full metadata standards to be defined in a future PHEP for the HSSI and PyHC connection. For now, the abridged requirements for each level are as follows: - Copper: Name of package, link to repository - Bronze: Copper + DOI, license, description, (publisher, publication year, authors -> needed to created DOI), mandatory fields for HSSI (TBD) - Silver: Bronze + most recommended fields for HSSI (TBD) @@ -69,7 +70,6 @@ The following table shows the benefits that are associated with each tier: | PyHC-top-tier Env Inclusion \* | Yes | Yes ** | No | No | | PyHC-all Env Inclusion \* | Yes | Yes | Yes | No | | PyHC-Chat Bot Inclusion \* | Yes | Yes ** | No | No | -| pyOpenSci Verified Badge | Yes | No | No | No | | Standards Compliance Assistance \* | Yes *** | Yes | Yes | Yes | | Main Page Listing | Yes | Yes | Yes | No | | Secondary Page Listing | No | No | No | Yes | @@ -87,14 +87,13 @@ Descriptions for each heading are as follows: - PyHC-top-tier Env Inclusion: indicates whether a package will be included within the current PyHC software environment used at the summer school - PyHC-all Env Inclusion: indicates whether a package will be included within the current PyHC software environment containing all packages Bronze and higher. - PyHC-Chat Bot Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot - - pyOpenSci Verified Badge: a badge that shows whether a package has completed the pyOpenSci review process - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC resources) for conforming to the PyHC standards - Main Page Listing: indictes whether a package's information will be displayed on a new, main PyHC Project page - Secondary Page Listing: indicates whetheer a package's information will be displayed on a new, secondary PyHC Project page - HSSI Inclusion: indicates whether a package will be included within the Heliophysics Software Search Interface - - Conference Travel Funding: indicates whether developers from a package will be considered for travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) + - Conference Travel Funding: indicates whether developers from a package will be considered for PyHC travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) -Packages are evaluated against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. +Packages are evaluated (as described in 'Implementation Process' below) against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. @@ -138,7 +137,9 @@ This PHEP raises no security implications as it does not interact with any execu This PHEP's contents and changes will be presented on, discussed, and hacked at various PyHC bi-weekly telecons and PyHC bi-annual meetings. Additionally, explanations for tiering, the process of obtaining a PyHC tier, etc. will be posted on the new main Projects page, as well as communicated within a blog post under the PyHC Blog page. -Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community). +Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community and presented at either a telecon or bi-annual meeting, whichever comes first). + +Please note that the PyHC project submission process used thus far will be superseded by this PHEP's PyHC tier request submission. Further, the self evaluations relied upon previously will now serve as the 'starting point' for a package; Technical steering committee evaluation is required to fully verify a package's tier. Also, there are now additional requirement for package tiers that exist apart from the main PyHC standards (see this PHEP in its entirey for more information). PyHC leadership commits to updating the submission process to match this PHEP's specifications. # Rejected Ideas From 367748b25fe3faf520979640fbda54f940a696f5 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Fri, 13 Sep 2024 14:24:16 -0600 Subject: [PATCH 09/30] addressing rebecca comments --- pheps/phep-9999.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index 449c02b..8dab8d9 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -40,23 +40,23 @@ There are four tiers proposed in this PHEP: Copper, Bronze, Silver, and Gold. Th | PyHC Standards Grading | Complies with all "must" and many "should" requirements from applicable standards-track PHEPs | Complies with most "must" requirements from applicable standards-track PHEPs | Complies with some "must" requirements from applicable standards-track PHEPs | N/A | | pyOpenSci Review Status | Completed | In progress or Completed | Not Started | Not Started | | Installable in PyHC environment? | Yes | Yes | Yes | No | -| HSSI Metadata Compliant? | Yes | Mostly | Partially | Bare Minimum Met | -| Software License | Fully compliant, allows NOSA/GPL license | Fully compliant, allows NOSA/GPL license | Has non-recommended license | Has non open-source license | +| HSSI Metadata Compliant? | Silver + some optional fields and controlled vocabulary contribution\* | Bronze + all recommended fields\* | Copper + some recommended fields\* | All mandatory fields\* | +| Software License | Fully compliant, doesn't allow NOSA/GPL license | Fully compliant, allows NOSA/GPL license | Has non-recommended license | Has non open-source license | | DOI | Required | Required | Required | Not Required | | pip installable? | Yes | Yes | Yes | No | | conda installable? | Yes | No | No | No | +\* = See HSSI metadata schema for details + Descriptions for each heading are as follows: - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards - PyHC Standards Grading: indicates status of compliance with each standard or standards-track PHEP replacement for a standard within a package's self evaluation - pyOpenSci Review Status: indicates status of a PyHC-pyOpenSci review - The exact specifications of this review process to come in a later PHEP defining the PyHC-pyOpenSci review process - Installable in PyHC Environment?: indicates state of installation conflicts within the PyHC software environment - - HSSI Metadata Compliant?: indicates state of compliance with the new Heliophysics Software Search Interface's (HSSI) metadata requirements. The full metadata standards to be defined in a future PHEP for the HSSI and PyHC connection. For now, the abridged requirements for each level are as follows: - - Copper: Name of package, link to repository - - Bronze: Copper + DOI, license, description, (publisher, publication year, authors -> needed to created DOI), mandatory fields for HSSI (TBD) - - Silver: Bronze + most recommended fields for HSSI (TBD) - - Gold: Silver + all recommended and some optional fields for HSSI (TBD) + - HSSI Metadata Compliant?: indicates state of compliance with the new Heliophysics Software Search Interface's (HSSI) metadata requirements + - The full metadata standards to be defined in a future PHEP for the HSSI and PyHC connection. + - For Gold level packages, contributing to the controlled vocabularies can mean, for example, adding missing vocabularies - Software License: indicates level of software license compliance with the [PyHC Standards Document](https://doi.org/10.5281/zenodo.2529131) - DOI: indicates whether or not a package's software repository has a DOI (e.g., from Zenodo) - pip installable?: indicates whether a package is pip installable @@ -90,7 +90,9 @@ Descriptions for each heading are as follows: - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC resources) for conforming to the PyHC standards - Main Page Listing: indictes whether a package's information will be displayed on a new, main PyHC Project page - Secondary Page Listing: indicates whetheer a package's information will be displayed on a new, secondary PyHC Project page - - HSSI Inclusion: indicates whether a package will be included within the Heliophysics Software Search Interface + - HSSI Inclusion: indicates whether a package will be included within the Heliophysics Software Search Interface, further: + - Gold and Silver level packages have priority consideration in contributing to the controlled vocabularies used by the HSSI + - Gold and Silver level packages are also eligible, subject to review, to manage controlled vocabularies in a rotating fashion under HSSI metadata leadership - Conference Travel Funding: indicates whether developers from a package will be considered for PyHC travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) Packages are evaluated (as described in 'Implementation Process' below) against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. From 8fd88595f166cfa083644868b6babd556e3bf3ae Mon Sep 17 00:00:00 2001 From: jibarnum Date: Fri, 25 Apr 2025 17:49:58 -0600 Subject: [PATCH 10/30] Several updates to reflect community discussions and decisions from the PyHC Fall 2024 Meeting --- pheps/phep-9999.md | 75 ++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index 8dab8d9..eb92beb 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -13,7 +13,7 @@ Post-History: 09-July-2024 # Abstract -This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new four tiers of PyHC projects (Gold, Silver, Bronze, and Copper), as well as benefits accrued at each tier. +This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new four tiers of PyHC projects (Gold, Silver, and Bronze), as well as benefits accrued at each tier. # Motivation @@ -32,49 +32,29 @@ Decisions for tiering levels, requirements for each tier, and benefits accrued a # PyHC Package Tiering Specifications -There are four tiers proposed in this PHEP: Copper, Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". See the table below for requirements associated with each tier: - -| | **Gold** | **Silver** | **Bronze** | **Copper** | -| :-: | :----------: | :-----------: | :------------: | :-------------: | -| Self-Evaluation Status | Completed | Completed | Completed | Not Done | -| PyHC Standards Grading | Complies with all "must" and many "should" requirements from applicable standards-track PHEPs | Complies with most "must" requirements from applicable standards-track PHEPs | Complies with some "must" requirements from applicable standards-track PHEPs | N/A | -| pyOpenSci Review Status | Completed | In progress or Completed | Not Started | Not Started | -| Installable in PyHC environment? | Yes | Yes | Yes | No | -| HSSI Metadata Compliant? | Silver + some optional fields and controlled vocabulary contribution\* | Bronze + all recommended fields\* | Copper + some recommended fields\* | All mandatory fields\* | -| Software License | Fully compliant, doesn't allow NOSA/GPL license | Fully compliant, allows NOSA/GPL license | Has non-recommended license | Has non open-source license | -| DOI | Required | Required | Required | Not Required | -| pip installable? | Yes | Yes | Yes | No | -| conda installable? | Yes | No | No | No | +There are three tiers proposed in this PHEP: Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". See the table below for requirements associated with each tier: + +| | **Gold** | **Silver** | **Bronze** | +| :-: | :----------: | :-----------: | :------------: | +| Self-Evaluation | No | No | Yes | +| PyHC-pyOpenSci Review | Yes, defined in PyHC-pyOpenSci Gold-tier PHEP | Yes, defined in PyHC-pyOpenSci Silver-tier PHEP | No | +| PyHC Standards Compliance | Packages must comply with all applicable standards (as defined in standards-track PHEPs) | \* = See HSSI metadata schema for details Descriptions for each heading are as follows: - - Self Evaluation Status: indicates whether a package has completed a self evaluation against PyHC's standards - - PyHC Standards Grading: indicates status of compliance with each standard or standards-track PHEP replacement for a standard within a package's self evaluation - - pyOpenSci Review Status: indicates status of a PyHC-pyOpenSci review - - The exact specifications of this review process to come in a later PHEP defining the PyHC-pyOpenSci review process - - Installable in PyHC Environment?: indicates state of installation conflicts within the PyHC software environment - - HSSI Metadata Compliant?: indicates state of compliance with the new Heliophysics Software Search Interface's (HSSI) metadata requirements - - The full metadata standards to be defined in a future PHEP for the HSSI and PyHC connection. - - For Gold level packages, contributing to the controlled vocabularies can mean, for example, adding missing vocabularies - - Software License: indicates level of software license compliance with the [PyHC Standards Document](https://doi.org/10.5281/zenodo.2529131) - - DOI: indicates whether or not a package's software repository has a DOI (e.g., from Zenodo) - - pip installable?: indicates whether a package is pip installable - - conda installable?: indicates whether a package is conda installable + - Self Evaluation: indicates whether a package must complete a self evaluation against PyHC's standards + - pyOpenSci Review: indicates whether a package must engage in a PyHC-pyOpenSci review + - PyHC Standards Compliance: indicates necessary level of compliance with standards-track PHEPs (set to replace the current PyHC standards document: https://doi.org/10.5281/zenodo.2529131) The following table shows the benefits that are associated with each tier: -| | **Gold** | **Silver** | **Bronze** | **Copper** | -| :-: | :----------: | :-----------: | :------------: | :-------------: | -| Summer School Inclusion \* | Yes | Yes** | No | No | -| PyHC-top-tier Env Inclusion \* | Yes | Yes ** | No | No | -| PyHC-all Env Inclusion \* | Yes | Yes | Yes | No | -| PyHC-Chat Bot Inclusion \* | Yes | Yes ** | No | No | -| Standards Compliance Assistance \* | Yes *** | Yes | Yes | Yes | -| Main Page Listing | Yes | Yes | Yes | No | -| Secondary Page Listing | No | No | No | Yes | -| HSSI Inclusion | Yes | Yes | Yes | Yes | -| Conference Travel Funding | Yes | Yes | Yes | No | +| | **Gold** | **Silver** | **Bronze** | +| :-: | :----------: | :-----------: | :------------: | +| Summer School Inclusion \* | Invited to give a tutorial at the summer school | Invited to give a tutorial at the summer school if space allows\** | Can be brought in by higher-tier package, but not directly invited | +| PyHC-Chat Bot or PyHC Environment(s) Inclusion \* | Catch-all: higher-tier packages are higher priority for cross-PyHC projects | +| Standards Compliance Assistance \* | Yes\*** | Yes | Yes | +| Conference Travel Funding | Yes\* | Yes, if availability after gold-tier packages\*, \** | No | \* = can opt-in or opt-out of this @@ -84,18 +64,11 @@ The following table shows the benefits that are associated with each tier: Descriptions for each heading are as follows: - Summer School Inclusion: indicates whether a package will be included in summer school teaching materials - - PyHC-top-tier Env Inclusion: indicates whether a package will be included within the current PyHC software environment used at the summer school - - PyHC-all Env Inclusion: indicates whether a package will be included within the current PyHC software environment containing all packages Bronze and higher. - - PyHC-Chat Bot Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot - - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC resources) for conforming to the PyHC standards - - Main Page Listing: indictes whether a package's information will be displayed on a new, main PyHC Project page - - Secondary Page Listing: indicates whetheer a package's information will be displayed on a new, secondary PyHC Project page - - HSSI Inclusion: indicates whether a package will be included within the Heliophysics Software Search Interface, further: - - Gold and Silver level packages have priority consideration in contributing to the controlled vocabularies used by the HSSI - - Gold and Silver level packages are also eligible, subject to review, to manage controlled vocabularies in a rotating fashion under HSSI metadata leadership - - Conference Travel Funding: indicates whether developers from a package will be considered for PyHC travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM) - -Packages are evaluated (as described in 'Implementation Process' below) against level of compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. + - PyHC-Chat Bot or PyHC Environment(s) Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot or be prioritized for inclusion in future PyHC environment(s) + - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC Leadership resources) for conforming to the PyHC standards + - Conference Travel Funding: indicates whether developers from a package will be considered for PyHC travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM). All tiers are conditional upon availability of funds through PyHC Leadership. + +Packages are evaluated (as described in 'Implementation Process' below) against compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. @@ -115,8 +88,6 @@ Following acceptance of this PHEP, the PyHC website will be updated to reflect t General comments: -If a package does not submit a self evaluation within six months of PyHC website update, they are automatically placed into the Copper tier. They will be able to apply for a tier regrade if this occurs, using the same process listed above. - Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier regraded. The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. The TSC shall meet on an annual basis (likely tied to a bi-annual meeting) to review package tier status and determine if any are in danger of a tier downgrade. A package downgrade requires consensus of the technical steering committee. @@ -141,7 +112,7 @@ This PHEP's contents and changes will be presented on, discussed, and hacked at Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community and presented at either a telecon or bi-annual meeting, whichever comes first). -Please note that the PyHC project submission process used thus far will be superseded by this PHEP's PyHC tier request submission. Further, the self evaluations relied upon previously will now serve as the 'starting point' for a package; Technical steering committee evaluation is required to fully verify a package's tier. Also, there are now additional requirement for package tiers that exist apart from the main PyHC standards (see this PHEP in its entirey for more information). PyHC leadership commits to updating the submission process to match this PHEP's specifications. +Please note that the PyHC project submission process used thus far will be superseded by this PHEP's PyHC tier request submission. Further, the self evaluations relied upon previously will now only grant a package Bronze-tier status; Technical steering committee evaluation is required to fully verify a package's tier. Also, there are now additional requirement for package tiers that exist apart from the main PyHC standards (see this PHEP in its entirey for more information). PyHC leadership commits to updating the submission process to match this PHEP's specifications. # Rejected Ideas From 67667c96aacdca59cda4ee34e93703a9c6a888c3 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Fri, 25 Apr 2025 17:56:14 -0600 Subject: [PATCH 11/30] quick typo fixes --- pheps/phep-9999.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index eb92beb..7e86baf 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -19,7 +19,7 @@ This PHEP establishes a new tiering structure to PyHC projects, which will autom Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought—originating from bi-annual meeting discussions, telecon chats, and further sidebar converstaion—with regards to what PyHC is and should be: -- a basic interpretation where PyHC is a collection, and listing, of open-soure Python packages with a relevance to Heliophysics and space physics, or +- a basic interpretation where PyHC is a collection, and listing, of open-source Python packages with a relevance to Heliophysics and space physics, or - a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. There is utility and validity to both approaches. A new PyHC package tiering system is intended to find a "best of both worlds" with the two ideas. Older, out-of-date, unmaintained, or publication-specific code could still have a place for listing and findability, while also allowing nuance between other packages that are more robust, trustworthy, maintained, and work toward the standards-based interpretation of being a PyHC package. @@ -112,7 +112,7 @@ This PHEP's contents and changes will be presented on, discussed, and hacked at Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community and presented at either a telecon or bi-annual meeting, whichever comes first). -Please note that the PyHC project submission process used thus far will be superseded by this PHEP's PyHC tier request submission. Further, the self evaluations relied upon previously will now only grant a package Bronze-tier status; Technical steering committee evaluation is required to fully verify a package's tier. Also, there are now additional requirement for package tiers that exist apart from the main PyHC standards (see this PHEP in its entirey for more information). PyHC leadership commits to updating the submission process to match this PHEP's specifications. +Please note that the PyHC project submission process used thus far will be superseded by this PHEP's PyHC tier request submission. Further, the self evaluations relied upon previously will now only grant a package Bronze-tier status; Technical steering committee evaluation is required to fully verify a package's tier. Also, there are now additional requirement for package tiers that exist apart from the main PyHC standards (as detailed in this PHEP). PyHC leadership commits to updating the submission process to match this PHEP's specifications. # Rejected Ideas From e17796b3b69964c192a2df79ebdfc0e9b102bd90 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Thu, 5 Jun 2025 14:17:45 -0600 Subject: [PATCH 12/30] some updates based on PR comments and needed clarifications --- pheps/phep-9999.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pheps/phep-9999.md b/pheps/phep-9999.md index 7e86baf..c64f8ed 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-9999.md @@ -6,18 +6,18 @@ Discussions-To: https://github.com/heliophysicsPy/standards/pull/31 Revision: 1 Status: Draft Type: Process -Content-Type: text/markdown; charset=UTF-8; variant=CommonMark +Content-Type: text/markdown; charset=UTF-8; variant=myst Created: -Post-History: 09-July-2024 +Post-History: 09-July-2024, 26-August-2024, 27-August-2024, 4-September-2024, 11-September-2024, 13-September-2024, 25-April-2025, 05-June-2025 ``` # Abstract -This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new four tiers of PyHC projects (Gold, Silver, and Bronze), as well as benefits accrued at each tier. +This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new three tiers of PyHC projects (Gold, Silver, and Bronze), as well as benefits accrued at each tier. # Motivation -Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought—originating from bi-annual meeting discussions, telecon chats, and further sidebar converstaion—with regards to what PyHC is and should be: +Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought — originating from bi-annual meeting discussions, telecon chats, and further sidebar conversation — with regards to what PyHC is and should be: - a basic interpretation where PyHC is a collection, and listing, of open-source Python packages with a relevance to Heliophysics and space physics, or - a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. @@ -30,9 +30,11 @@ Further, this tiering system also allows users to get a clearer picture on what Decisions for tiering levels, requirements for each tier, and benefits accrued at each tier are based on conversations with the community (bi-annual meetings, telecons, etc.), and are listed here as a starting point for more discussion, likely to be refined in the future. Initially, ideas were presented to the community in a pyramid format. To make the differences between tiers more visible and understandable, it has been transformed into a spreadsheet format. +This PHEP intentionally violates the PHEP-1 requirement of being formatted in strict CommonMark markdown. CommonMark does not support tables and tabular presentation is the clearest means of communicating the tier structure. It uses [MyST markdown](https://mystmd.org/) for tables only, and the Content-Type indicates that. MyST is commonly used in the scientific Python community and is a strict superset of CommonMark, so is the most compatible means of supporting tabular information. + # PyHC Package Tiering Specifications -There are three tiers proposed in this PHEP: Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". See the table below for requirements associated with each tier: +There are three tiers proposed in this PHEP: Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". Extensive updates have been made to the following tiering specifications, based on discussions held at the [PyHC Fall 2024 meeting](https://doi.org/10.5281/zenodo.15080483). See the table below for requirements associated with each tier: | | **Gold** | **Silver** | **Bronze** | | :-: | :----------: | :-----------: | :------------: | @@ -79,12 +81,12 @@ Following acceptance of this PHEP, the PyHC website will be updated to reflect t - Within six months of PyHC website update (written communication of this provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is - need to include written justification on the PR for chosen tier - Within three months of PR publish, a member of the to-be-established technical steering committee (TSC; including the PyHC Tech Lead and volunteer members of the PyHC not involved with the submitted package) reviews the package and asserts if self-evaluated level matches expectations -- PyHC Lead reviews decision of TSC member and gives final vote of approval on tier selection +- PyHC Lead reviews decision of TSC member(s) and gives final vote of approval on tier selection - PyHC Lead then either: - - 1) merges the PR if in agreement with the TSC member, or - - 2) meets with technical steering committee member to discuss dissenting opinion + - 1) merges the PR if in agreement with the TSC member(s), or + - 2) meets with the TSC member(s) to discuss dissenting opinion - if consensus reached for previos tier selection, PyHC Lead then merges the PR, or - - PyHC Lead provides written justification on the PR if a tier upgrade is deemed necessary + - PyHC Lead provides written justification on the PR if a tier re-grade is deemed necessary General comments: @@ -95,8 +97,8 @@ The flip side is also true; should a package become defunct or drop in status, t Should any package be flagged for downgrade, the follow will occur: - Packages will receive six months' notification before a tier downgrade is to take place through written e-mail communication (from the PyHC Lead) - Packages then have the opportunity to rectify issues within the six-month period, through changes submitted in a PR - - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier regrade happens - - If changes do not result in continued compliance with current tier, a tier regrade happens; packages may later on apply for a tier regrade once more + - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier re-grade happens + - If changes do not result in continued compliance with current tier, a tier re-grade happens; packages may later on apply for a tier re-grade once more # Backwards Compatibility @@ -137,7 +139,7 @@ This document is placed in the public domain or under the CC0-1.0-Universal lice @techreport(phep2, author = {Julie I. Barnum}, title = {PHEP Package Tiering}, - year = {2024}, + year = {2025}, type = {PHEP}, number = {9999}, doi = {10.5281/zenodo.xxxxxxx} From bd1c71781fc1dd505dca2bdecd4ab0110b03fdd1 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 26 Jun 2025 09:51:06 -0600 Subject: [PATCH 13/30] Assign PHEP number --- pheps/{phep-9999.md => phep-0004.md} | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) rename pheps/{phep-9999.md => phep-0004.md} (98%) diff --git a/pheps/phep-9999.md b/pheps/phep-0004.md similarity index 98% rename from pheps/phep-9999.md rename to pheps/phep-0004.md index c64f8ed..c54605a 100644 --- a/pheps/phep-9999.md +++ b/pheps/phep-0004.md @@ -1,5 +1,5 @@ ``` -PHEP: 9999 +PHEP: 4 Title: PyHC Package Tiering Author: Julie Barnum Discussions-To: https://github.com/heliophysicsPy/standards/pull/31 @@ -7,8 +7,8 @@ Revision: 1 Status: Draft Type: Process Content-Type: text/markdown; charset=UTF-8; variant=myst -Created: -Post-History: 09-July-2024, 26-August-2024, 27-August-2024, 4-September-2024, 11-September-2024, 13-September-2024, 25-April-2025, 05-June-2025 +Created: 09-July-2024 +Post-History: 09-July-2024, 26-August-2024, 27-August-2024, 4-September-2024, 11-September-2024, 13-September-2024, 25-April-2025, 05-June-2025, 26-Jun-2025 ``` # Abstract @@ -136,12 +136,12 @@ Revision 1 (pending): Initial draft. This document is placed in the public domain or under the CC0-1.0-Universal license, whichever is more permissive. It should be cited as: ``` -@techreport(phep2, +@techreport(phep4, author = {Julie I. Barnum}, title = {PHEP Package Tiering}, - year = {2025}, + year = {2024--2025}, type = {PHEP}, - number = {9999}, - doi = {10.5281/zenodo.xxxxxxx} + number = {4}, + doi = {10.5281/zenodo.15747682} ) ``` From 042e382bfab07b1911a047cc63cdb014b2de28a3 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:57:27 -0500 Subject: [PATCH 14/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index c54605a..43981e3 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -13,7 +13,7 @@ Post-History: 09-July-2024, 26-August-2024, 27-August-2024, 4-September-2024, 11 # Abstract -This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new three tiers of PyHC projects (Gold, Silver, and Bronze), as well as benefits accrued at each tier. +This PHEP establishes a new tiering structure to PyHC projects, which will automatically affect PyHC packages once it goes into effect. Included herein is information on requirements for each of the new three tiers of PyHC projects (Gold, Silver, and Bronze), as well as benefits accrued at each tier. # Motivation From 688353945a1d43d1e6be6e8e8574ba792d9160a6 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:57:37 -0500 Subject: [PATCH 15/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 43981e3..3180e59 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -20,9 +20,9 @@ This PHEP establishes a new tiering structure to PyHC projects, which will autom Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought — originating from bi-annual meeting discussions, telecon chats, and further sidebar conversation — with regards to what PyHC is and should be: - a basic interpretation where PyHC is a collection, and listing, of open-source Python packages with a relevance to Heliophysics and space physics, or -- a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. +- a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. -There is utility and validity to both approaches. A new PyHC package tiering system is intended to find a "best of both worlds" with the two ideas. Older, out-of-date, unmaintained, or publication-specific code could still have a place for listing and findability, while also allowing nuance between other packages that are more robust, trustworthy, maintained, and work toward the standards-based interpretation of being a PyHC package. +There is utility and validity to both approaches. A new PyHC package tiering system is intended to find a "best of both worlds" with the two ideas. Older, out-of-date, unmaintained, or publication-specific code could still have a place for listing and findability, while also allowing nuance between other packages that are more robust, trustworthy, maintained, and work toward the standards-based interpretation of being a PyHC package. Further, this tiering system also allows users to get a clearer picture on what each PyHC package has to offer, and the state of the package's condition and development. Creation of a PyHC package tiering system also allows for justification for a myriad of benefits, for example, consideration for funding from a community travel fund, or extra help with improving a standards grouping grade. From 41b641b7e576e5a25745259ff49c7a4a9d52f085 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:57:50 -0500 Subject: [PATCH 16/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 3180e59..411cb70 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -28,7 +28,7 @@ Further, this tiering system also allows users to get a clearer picture on what # Rationale -Decisions for tiering levels, requirements for each tier, and benefits accrued at each tier are based on conversations with the community (bi-annual meetings, telecons, etc.), and are listed here as a starting point for more discussion, likely to be refined in the future. Initially, ideas were presented to the community in a pyramid format. To make the differences between tiers more visible and understandable, it has been transformed into a spreadsheet format. +Decisions for tiering levels, requirements for each tier, and benefits accrued at each tier are based on conversations with the community (bi-annual meetings, telecons, etc.), and are listed here as a starting point for more discussion, likely to be refined in the future. Initially, ideas were presented to the community in a pyramid format. To make the differences between tiers more visible and understandable, it has been transformed into a spreadsheet format. This PHEP intentionally violates the PHEP-1 requirement of being formatted in strict CommonMark markdown. CommonMark does not support tables and tabular presentation is the clearest means of communicating the tier structure. It uses [MyST markdown](https://mystmd.org/) for tables only, and the Content-Type indicates that. MyST is commonly used in the scientific Python community and is a strict superset of CommonMark, so is the most compatible means of supporting tabular information. From b44bd0ff26b1a13c85906bb3d94b6a95a2ecd1f2 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:58:03 -0500 Subject: [PATCH 17/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 411cb70..553dc21 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -37,8 +37,8 @@ This PHEP intentionally violates the PHEP-1 requirement of being formatted in st There are three tiers proposed in this PHEP: Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". Extensive updates have been made to the following tiering specifications, based on discussions held at the [PyHC Fall 2024 meeting](https://doi.org/10.5281/zenodo.15080483). See the table below for requirements associated with each tier: | | **Gold** | **Silver** | **Bronze** | -| :-: | :----------: | :-----------: | :------------: | -| Self-Evaluation | No | No | Yes | +| :-: | :----------: | :-----------: | :------------: | +| Self-Evaluation | No | No | Yes | | PyHC-pyOpenSci Review | Yes, defined in PyHC-pyOpenSci Gold-tier PHEP | Yes, defined in PyHC-pyOpenSci Silver-tier PHEP | No | | PyHC Standards Compliance | Packages must comply with all applicable standards (as defined in standards-track PHEPs) | From a09b690a8cd84c4c4c7ea0711c24edfada1d9f2a Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:58:37 -0500 Subject: [PATCH 18/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 553dc21..6e8259a 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -83,10 +83,10 @@ Following acceptance of this PHEP, the PyHC website will be updated to reflect t - Within three months of PR publish, a member of the to-be-established technical steering committee (TSC; including the PyHC Tech Lead and volunteer members of the PyHC not involved with the submitted package) reviews the package and asserts if self-evaluated level matches expectations - PyHC Lead reviews decision of TSC member(s) and gives final vote of approval on tier selection - PyHC Lead then either: - - 1) merges the PR if in agreement with the TSC member(s), or + - 1) merges the PR if in agreement with the TSC member(s), or - 2) meets with the TSC member(s) to discuss dissenting opinion - if consensus reached for previos tier selection, PyHC Lead then merges the PR, or - - PyHC Lead provides written justification on the PR if a tier re-grade is deemed necessary + - PyHC Lead provides written justification on the PR if a tier re-grade is deemed necessary General comments: From 445ba8a3abee5a48d7d08dadf720b115a7391fd7 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:59:21 -0500 Subject: [PATCH 19/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 6e8259a..05bc678 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -88,11 +88,11 @@ Following acceptance of this PHEP, the PyHC website will be updated to reflect t - if consensus reached for previos tier selection, PyHC Lead then merges the PR, or - PyHC Lead provides written justification on the PR if a tier re-grade is deemed necessary -General comments: +General comments: -Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier regraded. +Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier regraded. -The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. The TSC shall meet on an annual basis (likely tied to a bi-annual meeting) to review package tier status and determine if any are in danger of a tier downgrade. A package downgrade requires consensus of the technical steering committee. +The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. The TSC shall meet on an annual basis (likely tied to a bi-annual meeting) to review package tier status and determine if any are in danger of a tier downgrade. A package downgrade requires consensus of the technical steering committee. Should any package be flagged for downgrade, the follow will occur: - Packages will receive six months' notification before a tier downgrade is to take place through written e-mail communication (from the PyHC Lead) From 22ea91215cddb58897761f09a8887f5a7ac4217d Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:59:32 -0500 Subject: [PATCH 20/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 05bc678..0f4b0ac 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -94,11 +94,11 @@ Packages are allowed to move between tiers. If a package upgrades their status t The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. The TSC shall meet on an annual basis (likely tied to a bi-annual meeting) to review package tier status and determine if any are in danger of a tier downgrade. A package downgrade requires consensus of the technical steering committee. -Should any package be flagged for downgrade, the follow will occur: -- Packages will receive six months' notification before a tier downgrade is to take place through written e-mail communication (from the PyHC Lead) -- Packages then have the opportunity to rectify issues within the six-month period, through changes submitted in a PR - - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier re-grade happens - - If changes do not result in continued compliance with current tier, a tier re-grade happens; packages may later on apply for a tier re-grade once more +Should any package be flagged for downgrade, the follow will occur: +- Packages will receive six months' notification before a tier downgrade is to take place through written e-mail communication (from the PyHC Lead) +- Packages then have the opportunity to rectify issues within the six-month period, through changes submitted in a PR + - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier re-grade happens + - If changes do not result in continued compliance with current tier, a tier re-grade happens; packages may later on apply for a tier re-grade once more # Backwards Compatibility From bad536803416b907e846060bcfa53dce1413cbea Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:59:46 -0500 Subject: [PATCH 21/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 0f4b0ac..e7f13de 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -110,9 +110,9 @@ This PHEP raises no security implications as it does not interact with any execu # How to Teach This -This PHEP's contents and changes will be presented on, discussed, and hacked at various PyHC bi-weekly telecons and PyHC bi-annual meetings. Additionally, explanations for tiering, the process of obtaining a PyHC tier, etc. will be posted on the new main Projects page, as well as communicated within a blog post under the PyHC Blog page. +This PHEP's contents and changes will be presented on, discussed, and hacked at various PyHC bi-weekly telecons and PyHC bi-annual meetings. Additionally, explanations for tiering, the process of obtaining a PyHC tier, etc. will be posted on the new main Projects page, as well as communicated within a blog post under the PyHC Blog page. -Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community and presented at either a telecon or bi-annual meeting, whichever comes first). +Further, links to pages (and potentially recordings) that explain how to satisfy each requirement for each tier will be made and communicated through a PyHC blog post (link then emailed to the community and presented at either a telecon or bi-annual meeting, whichever comes first). Please note that the PyHC project submission process used thus far will be superseded by this PHEP's PyHC tier request submission. Further, the self evaluations relied upon previously will now only grant a package Bronze-tier status; Technical steering committee evaluation is required to fully verify a package's tier. Also, there are now additional requirement for package tiers that exist apart from the main PyHC standards (as detailed in this PHEP). PyHC leadership commits to updating the submission process to match this PHEP's specifications. From e7d8486e0edc0065ddd88b16e84b0f9892cdb61b Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sat, 18 Oct 2025 23:59:59 -0500 Subject: [PATCH 22/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index e7f13de..0acbff5 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -85,7 +85,7 @@ Following acceptance of this PHEP, the PyHC website will be updated to reflect t - PyHC Lead then either: - 1) merges the PR if in agreement with the TSC member(s), or - 2) meets with the TSC member(s) to discuss dissenting opinion - - if consensus reached for previos tier selection, PyHC Lead then merges the PR, or + - if consensus reached for previous tier selection, PyHC Lead then merges the PR, or - PyHC Lead provides written justification on the PR if a tier re-grade is deemed necessary General comments: From 61bd00ef400a52b8639a40de030f167cdd58db42 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Sun, 19 Oct 2025 00:00:22 -0500 Subject: [PATCH 23/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 0acbff5..1672016 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -17,7 +17,7 @@ This PHEP establishes a new tiering structure to PyHC projects, which will autom # Motivation -Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought — originating from bi-annual meeting discussions, telecon chats, and further sidebar conversation — with regards to what PyHC is and should be: +Currently, PyHC is at a crossroads for how to push forward as a community. There are two main schools of thought — originating from bi-annual meeting discussions, telecon chats, and further sidebar conversation — with regards to what PyHC is and should be: - a basic interpretation where PyHC is a collection, and listing, of open-source Python packages with a relevance to Heliophysics and space physics, or - a standards-based interpretation where PyHC strives for compliance with our set standards, package interoperability, and standardization around one or more tools. From 02111b435572c3f6712f71ded7df4ab12b5e290e Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Mon, 20 Oct 2025 00:38:55 -0500 Subject: [PATCH 24/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 1672016..b5d19dc 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -36,7 +36,7 @@ This PHEP intentionally violates the PHEP-1 requirement of being formatted in st There are three tiers proposed in this PHEP: Bronze, Silver, and Gold. These would replace the current structure of "Core Packages", "Other Packages", and "Un-evaluated Packages". Extensive updates have been made to the following tiering specifications, based on discussions held at the [PyHC Fall 2024 meeting](https://doi.org/10.5281/zenodo.15080483). See the table below for requirements associated with each tier: -| | **Gold** | **Silver** | **Bronze** | +| | **Gold** | **Silver** | **Bronze** | | :-: | :----------: | :-----------: | :------------: | | Self-Evaluation | No | No | Yes | | PyHC-pyOpenSci Review | Yes, defined in PyHC-pyOpenSci Gold-tier PHEP | Yes, defined in PyHC-pyOpenSci Silver-tier PHEP | No | From 1e185236f3e466c76a1e97f5a06e47bda6c434b6 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Mon, 20 Oct 2025 00:39:18 -0500 Subject: [PATCH 25/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index b5d19dc..d72daec 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -49,20 +49,20 @@ Descriptions for each heading are as follows: - pyOpenSci Review: indicates whether a package must engage in a PyHC-pyOpenSci review - PyHC Standards Compliance: indicates necessary level of compliance with standards-track PHEPs (set to replace the current PyHC standards document: https://doi.org/10.5281/zenodo.2529131) -The following table shows the benefits that are associated with each tier: +The following table shows the benefits that are associated with each tier: -| | **Gold** | **Silver** | **Bronze** | -| :-: | :----------: | :-----------: | :------------: | +| | **Gold** | **Silver** | **Bronze** | +| :-: | :----------: | :-----------: | :------------: | | Summer School Inclusion \* | Invited to give a tutorial at the summer school | Invited to give a tutorial at the summer school if space allows\** | Can be brought in by higher-tier package, but not directly invited | | PyHC-Chat Bot or PyHC Environment(s) Inclusion \* | Catch-all: higher-tier packages are higher priority for cross-PyHC projects | | Standards Compliance Assistance \* | Yes\*** | Yes | Yes | -| Conference Travel Funding | Yes\* | Yes, if availability after gold-tier packages\*, \** | No | +| Conference Travel Funding | Yes\* | Yes, if availability after gold-tier packages\*, \** | No | -\* = can opt-in or opt-out of this +\* = can opt-in or opt-out of this -\** = conditional upon justification on importance/use of package (e.g. number of users, level of commitment within PyHC activities, or effort made for those items but gold level not yet achieved) +\** = conditional upon justification on importance/use of package (e.g. number of users, level of commitment within PyHC activities, or effort made for those items but gold level not yet achieved) -\*** = conditional upon justification that package is in danger of dropping down to a Silver tier +\*** = conditional upon justification that package is in danger of dropping down to a Silver tier Descriptions for each heading are as follows: - Summer School Inclusion: indicates whether a package will be included in summer school teaching materials From 4cafcbb2b749ec89dccb4ed06ba605ece50a62e4 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Mon, 20 Oct 2025 00:39:36 -0500 Subject: [PATCH 26/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index d72daec..51c67ee 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -70,9 +70,9 @@ Descriptions for each heading are as follows: - Standards Compliance Assistance: indicates whether a package will receive extra help and/or funding (dependent on available PyHC Leadership resources) for conforming to the PyHC standards - Conference Travel Funding: indicates whether developers from a package will be considered for PyHC travel funding assistance to relevant science conferences (e.g. SHINE, CEDAR, or GEM). All tiers are conditional upon availability of funds through PyHC Leadership. -Packages are evaluated (as described in 'Implementation Process' below) against compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. +Packages are evaluated (as described in 'Implementation Process' below) against compliance with each requirement, as shown in the PyHC tiering chart. To be accepted for a tier, a package must meet **all** the requirements for said tier. Therefore, should a package fall into different tiers depending on the specific requirement, the package will be accepted at the lowest tier of requirements it meets. -For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. +For example, if a package meets some requirements for the Silver tier, but other requirements only meet the Bronze tier, the package will be considered a Bronze tier package. # Package Tiering Implementation Process From 99e07c21a3d948c336f70338a227e7f933fc62b2 Mon Sep 17 00:00:00 2001 From: Julie Barnum Date: Mon, 20 Oct 2025 00:39:49 -0500 Subject: [PATCH 27/30] Update pheps/phep-0004.md Co-authored-by: Jon Niehof --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 51c67ee..5841c7d 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -79,7 +79,7 @@ For example, if a package meets some requirements for the Silver tier, but other Following acceptance of this PHEP, the PyHC website will be updated to reflect the new tiers. The process is then as follows: - Within six months of PyHC website update (written communication of this provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is - - need to include written justification on the PR for chosen tier + - need to include written justification on the PR for chosen tier - Within three months of PR publish, a member of the to-be-established technical steering committee (TSC; including the PyHC Tech Lead and volunteer members of the PyHC not involved with the submitted package) reviews the package and asserts if self-evaluated level matches expectations - PyHC Lead reviews decision of TSC member(s) and gives final vote of approval on tier selection - PyHC Lead then either: From 2a92f460622781750028767905f81a26d6185f57 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Wed, 19 Nov 2025 21:32:08 -0700 Subject: [PATCH 28/30] removed unneeded line and added more info to TSC --- pheps/phep-0004.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 5841c7d..4c690ab 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -42,8 +42,6 @@ There are three tiers proposed in this PHEP: Bronze, Silver, and Gold. These wou | PyHC-pyOpenSci Review | Yes, defined in PyHC-pyOpenSci Gold-tier PHEP | Yes, defined in PyHC-pyOpenSci Silver-tier PHEP | No | | PyHC Standards Compliance | Packages must comply with all applicable standards (as defined in standards-track PHEPs) | -\* = See HSSI metadata schema for details - Descriptions for each heading are as follows: - Self Evaluation: indicates whether a package must complete a self evaluation against PyHC's standards - pyOpenSci Review: indicates whether a package must engage in a PyHC-pyOpenSci review @@ -79,26 +77,26 @@ For example, if a package meets some requirements for the Silver tier, but other Following acceptance of this PHEP, the PyHC website will be updated to reflect the new tiers. The process is then as follows: - Within six months of PyHC website update (written communication of this provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is - - need to include written justification on the PR for chosen tier -- Within three months of PR publish, a member of the to-be-established technical steering committee (TSC; including the PyHC Tech Lead and volunteer members of the PyHC not involved with the submitted package) reviews the package and asserts if self-evaluated level matches expectations -- PyHC Lead reviews decision of TSC member(s) and gives final vote of approval on tier selection -- PyHC Lead then either: - - 1) merges the PR if in agreement with the TSC member(s), or - - 2) meets with the TSC member(s) to discuss dissenting opinion - - if consensus reached for previous tier selection, PyHC Lead then merges the PR, or - - PyHC Lead provides written justification on the PR if a tier re-grade is deemed necessary + - need to include written justification on the PR for chosen tier +- Within three months of PR publish, members of the to-be-established technical steering committee (TSC)\* review the package and assert if self-evaluated tier matches expectations. If a conflict of interest during a review exists, that TSC member may be replaced during that specific review only. After the TSC review, the process is as follows: + - 1) The PR is merged if there's a simple majority of TSC member in agreement with the self-evaluated tier, or + - 2) The PR is rejected (and the TSC collectively craft and provide written reasoning through the PyHC Lead for a differing tier level) if a simple majority of TSC members do not agree with the self-evaluated tier. + +\* The TSC includes the PyHC Lead, PyHC Tech Lead, as well as volunteer members of the PyHC not involved with the submitted package, with a minimum of 4 members up to a maximum of 6 members. Volunteer members of the TSC will serve a one-year tenure, decided upon at the nearest telecon or bi-annual meeting following the written email communication of this PHEP's implementation and at a yearly cadence thereafter. After the year tenture ends, TSC volunteer members can choose to stay or cycle out with a new PyHC member. If a PyHC member is interested in being involved, but cannot attend that telecon or bi-annual meeting where TSC members are chosen, they may email the PyHC Lead with their request for candidacy at least one business day beforehand (to give the PyHC Lead time to see the email). General comments: -Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier regraded. +Packages that do not submit a self-evaluated tier will be automatically assigned a tier after review by the TSC. They may still be eligile later on for a tier re-grade. + +Packages are allowed to move between tiers. If a package upgrades their status to match that of Silver, instead of Bronze, tier, for example, they can submit a new PR to have their tier re-graded. The flip side is also true; should a package become defunct or drop in status, they may be downgraded to a lower tier. The TSC shall meet on an annual basis (likely tied to a bi-annual meeting) to review package tier status and determine if any are in danger of a tier downgrade. A package downgrade requires consensus of the technical steering committee. Should any package be flagged for downgrade, the follow will occur: - Packages will receive six months' notification before a tier downgrade is to take place through written e-mail communication (from the PyHC Lead) - Packages then have the opportunity to rectify issues within the six-month period, through changes submitted in a PR - - If changes result in continued compliance with current tier (as deemed by the PyHC Tech Lead and PyHC Lead), no tier re-grade happens - - If changes do not result in continued compliance with current tier, a tier re-grade happens; packages may later on apply for a tier re-grade once more + - If changes result in continued compliance with current tier (as deemed by the TSC), no tier re-grade happens + - If changes do not result in continued compliance with current tier (as deemed by the TSC), a tier re-grade happens; packages may later on apply for a tier re-grade once more. # Backwards Compatibility From 7f06d7933e1da273e93602dfb7b28a7dd4acc8c0 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Thu, 20 Nov 2025 13:04:20 -0700 Subject: [PATCH 29/30] small tweaks to the wording for the TSC --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 4c690ab..17acb1b 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -82,7 +82,7 @@ Following acceptance of this PHEP, the PyHC website will be updated to reflect t - 1) The PR is merged if there's a simple majority of TSC member in agreement with the self-evaluated tier, or - 2) The PR is rejected (and the TSC collectively craft and provide written reasoning through the PyHC Lead for a differing tier level) if a simple majority of TSC members do not agree with the self-evaluated tier. -\* The TSC includes the PyHC Lead, PyHC Tech Lead, as well as volunteer members of the PyHC not involved with the submitted package, with a minimum of 4 members up to a maximum of 6 members. Volunteer members of the TSC will serve a one-year tenure, decided upon at the nearest telecon or bi-annual meeting following the written email communication of this PHEP's implementation and at a yearly cadence thereafter. After the year tenture ends, TSC volunteer members can choose to stay or cycle out with a new PyHC member. If a PyHC member is interested in being involved, but cannot attend that telecon or bi-annual meeting where TSC members are chosen, they may email the PyHC Lead with their request for candidacy at least one business day beforehand (to give the PyHC Lead time to see the email). +\* The TSC includes the PyHC Lead, PyHC Tech Lead, as well as volunteer members of the PyHC not involved with the submitted package, with a minimum of 4 total members up to a maximum of 6 total members. Volunteer members of the TSC will serve a one-year tenure, decided upon at the nearest telecon or bi-annual meeting following the written email communication of this PHEP's implementation and at a yearly cadence thereafter. After the year tenture ends, TSC volunteer members can choose to stay or cycle out with a new PyHC member. If a PyHC member is interested in being involved, but cannot attend that telecon or bi-annual meeting where TSC members are chosen, they may email the PyHC Lead with their request for candidacy at least one business day beforehand (to give the PyHC Lead time to see the email). Lastly, future PHEPs may further define the TSC and may supersede this PHEP regarding the TSC without affecting other standards and processes in this PHEP. General comments: From 1f0eb7d6dd66f0564dcf82fde5b6267475b102f4 Mon Sep 17 00:00:00 2001 From: jibarnum Date: Thu, 20 Nov 2025 13:12:52 -0700 Subject: [PATCH 30/30] removed trailing whitespace --- pheps/phep-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pheps/phep-0004.md b/pheps/phep-0004.md index 17acb1b..b83df94 100644 --- a/pheps/phep-0004.md +++ b/pheps/phep-0004.md @@ -77,7 +77,7 @@ For example, if a package meets some requirements for the Silver tier, but other Following acceptance of this PHEP, the PyHC website will be updated to reflect the new tiers. The process is then as follows: - Within six months of PyHC website update (written communication of this provided in email form), packages must submit a PR to [the PyHC website GitHub](https://github.com/heliophysicsPy/heliophysicsPy.github.io) indicating what level they believe their package is - - need to include written justification on the PR for chosen tier + - need to include written justification on the PR for chosen tier - Within three months of PR publish, members of the to-be-established technical steering committee (TSC)\* review the package and assert if self-evaluated tier matches expectations. If a conflict of interest during a review exists, that TSC member may be replaced during that specific review only. After the TSC review, the process is as follows: - 1) The PR is merged if there's a simple majority of TSC member in agreement with the self-evaluated tier, or - 2) The PR is rejected (and the TSC collectively craft and provide written reasoning through the PyHC Lead for a differing tier level) if a simple majority of TSC members do not agree with the self-evaluated tier.