Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHEP 4: PyHC Package Tiering #31

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
162 changes: 162 additions & 0 deletions pheps/phep-9999.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
```
PHEP: 9999
Title: PyHC Package Tiering
Author: Julie Barnum <julie.barnum@lasp.colorado.edu> <https://orcid.org/0000-0001-8755-0694>
Discussions-To: https://github.com/heliophysicsPy/standards/pull/25
jibarnum marked this conversation as resolved.
Show resolved Hide resolved
Revision: 1
Status: Draft
Type: Process
Content-Type: text/markdown; charset=UTF-8; variant=CommonMark
Created:
Post-History: 09-July-2024
```

# Abstract
<a name="abstract"></a>
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe "Honorable Mention" should be renamed to "Copper" here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, thanks!


# Motivation
<a name="motivation"></a>
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
<a name="rationale"></a>
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
<a name="specification"></a>
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** |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PHEP-1 specifices "PHEPs must not use GitHub extensions" (We discussed this a little bit). An HTML block is a potential alternative.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TBH, I had to look up what those differences were (I just googled how to make a table in markdown and did it this way). What exactly needs to change? @jtniehof

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think requiring a html table is a good idea. it would make the source hard to read and almost impossible to comment on inline for review.

Copy link
Contributor

@jtniehof jtniehof Sep 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CommonMark doesn't support tables; they are a GitHub extension to the standard.

Discussions on that in the PHEP1 thread: 1, 2 ... this was not extensively discussed, which I took as "accepted right off" but might have been "lost in the noise".

Practically speaking, I checked and reText doesn't support tables. pandoc with -f commonmark doesn't. With -f markdown or -f gfm it does. (Although with gfm the table cells don't wrap, and it runs off the page). vscodium previews it fine. (EDIT: Google Docs imports it okay, too.)

The options as I see (no particular order) are:

  1. Remove the table and present in some other form
  2. Use an HTML table instead (I haven't checked that this renders properly in, say, pandoc!)
  3. Update / replace PHEP1 and switch to GitHub markdown (and update the Content-Type header)
  4. Don't update PHEP1 and just proceed with using GitHub markdown anyhow.

I don't know if we want to take this to a discussion outside of this PHEP.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jtniehof This might be a good question to bring up at the next telecon? My gut reaction is to either do steps 3 or 4. Presenting in anything other than a table seems less intuitive/easy to digest, and I'm hearing that using an HTML table is a bad idea.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion in #38

| :-: | :----------: | :-----------: | :------------: | :-------------: |
| 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 |
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a bit more defining. Hoping to get some input on that from you @rebeccaringuette if you have thoughts from the metadata perspective? Are we looking for packages to have a specific set of metadata included at time of tier submission?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure.

  • Copper: Name of package, link to repository.
  • Bronze: + DOI, license, description, (publisher, publication year, authors -> needed to create a DOI), mandatory fields for HSSI*
  • Silver: + most recommended fields for HSSI*
  • Gold: + all recommended and some optional fields for HSSI*
    *to be determined

Ideally, the PyHC package submission form should incorporate HSSI metadata fields.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is perfect, thank you!

| Software License | Fully compliant and excludes NOSA license | Fully compliant, allows NOSA license | Has non-recommended license (e.g., GPL) | Has no license |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure how I feel about relegating GPL packages to the third tier when they could be excellent in all other regards. I am aware of why we don't recommend copyleft licenses, but sometimes it can't be helped. GPL (etc) are very good licenses which people can have legitimate reasons for using. If we really had a package which that was it's only "bad" grade would we really want to relegate it to effectively the lowest tier when it's a real possibility the authors would be unable to fix it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm open to changing this. In your mind, what would the levels be @Cadair ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might lump GPL and NOSA in the same category...agreed that making GPL "worse" than NOSA seems a bit much.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would be fine with Jon's idea on this. So, NOSA + copyleft licenses would be bronze tier? Silver and gold would both require a recommended license (not to include those)?

Copy link
Author

@jibarnum jibarnum Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, these suggestions work for me, I'll update to allowing them at Silver, but not Gold, tier.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not convinced that we should be listing packages without a license at all.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The use case that comes to mind for this would be code associated with a publication, particularly in cases where the publisher demands a separate DOI for the code. Then again, should those be included in PyHC?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good points... I feel like this is a topic to talk with the community as a whole about.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"No license" would mean nobody actually has the right to distribute or use the code. Suggest "non open source license" as the lowest tier.

Copy link

@rebeccaringuette rebeccaringuette Sep 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm torn here, and this is related to another discussion above on the licenses. I agree that this would greatly benefit community discussion. Do we already have packages that have no license?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think what I'll do for now is put "non open source license" for copper tier. But I have a list of questions for the community to bring up at the next telecon (we're discussing PHEPs then).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current/(new?) license row doesn't look right. The gold level should not include GPL or NOSA licenses.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, I accidentally did an incorrect paste when modifying things. Fixing now.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

| 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:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend including links to pages that explain how to do each of these things, to make it easier for new people to fulfill each requirement.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea, I'll add that/include in the "How to Teach This" section.

- 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be standards, or PHEPs, or "standards and their replacements?"

As I noted in #33, #34, #35 it would be nice to replace our standards columns on the package page with PHEP compliance. More below.

Then instead of standards grades it would be more "compliance with standards-track PHEPs" and something like:

  • Gold: Complies with all "must" and many "should" requirements from applicable standards-track PHEPs (potentially exclude the "should"...)
  • Silver: Complies with most "must" requirements from applicable standards-track PHEPs
  • Bronze: Complies with some "must" requirements from applicable standards-track PHEPs
  • Copper: N/A

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the table approach so the requirements for each level are more specific and clearly laid out.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I am understanding correctly, in the end this would still be a kind of stoplight system like what we have now, but pointing to compliance to... PHEPs? I didn't see your issues before submitting my code here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, stoplight system but the columns are PHEPs instead of categories of standards.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to go along with that. But, does that also mean this PHEP has to sit in limbo until those other complimentary PHEPs get passed? @jtniehof

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, I like leaving the "many should requirements" in the Gold-level packages. We really should have only the cream of the crop and those putting in the effort to fully comply requiring our highest tier.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, put this in a related but different discussion thread, so now subjecting you to copy/paste:
I wouldn't think we need to hold this up until all standards PHEPs are done. If we have something like "when new standards-track PHEPs are approved packages have 6 (12?) months to self-evaluate and update their tiers", then we could in theory approve this with no new standards lined up. There's going to be a transition period regardless.

- pyOpenSci Review Status: indicates status of a pyOpenSci review
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this anything unique to PyHC, or just being in a pyOpenSci review? If the latter, can this link the appropriate pyOpenSci page?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be specifically for the PyHC-pyOpenSci pairing review process (checking against both pyOpenSci reqs + PyHC-specific reqs). No link for that, yet. That's part of why I'm trying to get the community to chat about what we'd need to define "yes, fits in with the PyHC" during the pyOpenSci process.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe explicitly say "to be defined in the future" or something? It feels a bit weird to be approving a standard that requires something that's not yet in place but I understand we can't do everything at once. Or this could be made more vague of "future collaborations" or something and the PHEP defining the pyOpenSci process would say "modifies PHEP 4 by adding...."

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That kind of modification plan could work nicely. In that pathway, this PHEP would become the skeleton (most of) the other PHEPs would map to using a stoplight or yes/no system as appropriate.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some items, we can flesh it out here and not wait for another PHEP. Others will need this approach or something similar.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I'm going to modify the wording a bit here based on this feedback.

- 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 level of software license compliance with the [PyHC Standards Document](https://doi.org/10.5281/zenodo.2529131)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be treated like any other standard instead of making it a separate bullet here? I'm not sure about calling out NOSA. It is OSI-compliant but not FSF-compliant. There might be some issues if a package needs a NOSA dependency (or ships it alongside)--is that an immediate "can't be gold"? How is NASA doing at getting things relicensed? The CDF license is somewhat ambiguous re DFSG and I don't know if it's been FSF or OSI evaluated (I don't think it has).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The process is ...interesting at NASA to get things relicensed. At Goddard, the leadership knows the problem in detail and is having significant problems moving forward. Hopefully a leap-frog moment is on the horizon.... With that said, NOSA is worth calling out because it prohibits contribution except through a long registration process.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was suggested by @rebeccaringuette to remove NOSA as a possibility due to the reasoning she gave here. It seems reasonable to me. Might even help NASA to improve that license (if that's a possibility) if a software community directly calls out not using it.

Perhaps this bullet could go away if we get standards PHEPs in to point to (where this NOSA issue could be put)? I do worry though about this taking a long time to enact though if it's dependent on other PHEPs all getting written, approved, etc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't think we need to hold this up until all standards PHEPs are done. If we have something like "when new standards-track PHEPs are approved packages have 6 (12?) months to self-evaluate and update their tiers", then we could in theory approve this with no new standards lined up. There's going to be a transition period regardless.

- 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This asterisk gets rendered as a bullet point. I think you have to escape it with a backslash.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

womp. Thanks for the note, I'll add that in.


** = 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-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???)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That question in the parentheses is once again for you @sapols :D

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd actually say the env being made for the Science Platforms Coordination group is out of scope here. It's not an explicitly PyHC thing; we're not even including all core PyHC packages in that env.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. Will remove.

- 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???)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That question in the parentheses is for you @sapols :D

Copy link
Contributor

@sapols sapols Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it makes sense. I'd say we can remove this question 🙂 Or replace it with a parenthetical like (provided the package is not the cause of a dependency conflict). It's currently possible to put ALL PyHC packages in the same env so no package is causing a conflict yet, but I recognize that could change in the future for lower-tier packages.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, one thing with the Silver and Bronze levels is that they are allowed to have installation conflicts. Maybe that should change then? Though, are there other kinds of issues that can occur with integrating a package into the environment other than an installation conflict? @sapols

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind on that one, I made a change to the previous chart that makes it make more sense. ha

- PyHC-Chat Bot Inclusion: indicates whether a packages will have up-to-date information included within the ChatGPT4-powered PyHC-Chat bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend having these be something people can opt in or out of.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't even think of that, that's a good idea. I'll modify to indicate that that would be an optional perk.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend dropping this from the table completely. I am sure there will be lots of smaller things like this that projects will or wont get pulled into. This feels very frivolous to include in a very formal specification document.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Cadair I disagree that it's frivolous. As PyHC-Chat improves, inclusion within it could be a carrot—not the only, or biggest, but still a carrot—for people to work to move tiers.

- 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a PyHC benefit or just part of submitting the correct HSSI metadata? Can PyHC put requiremnents on HSSI? Similar for pyOpenSci.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PyHC would be requiring PyHC packages at a given level to contribute a given list of metadata fields. PyHC and HSSI are working together on what those lists are. Similarly, PyHC and pyOpenSci are working together to figure out what the requirements should be in that review. Likely needs a PHEP for the pyOpenSci.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically, what @rebeccaringuette said.

Agreed on the PHEP for pyOpenSci. It'll need community discussion to come to terms with what reqs we want for a package being "PyHC-compliant" during a pyOpenSci review process.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So if something is otherwise compliant with pyOpenSci, but isn't doing something right on the PyHC side so it's silver, it won't be included in pyOpenSci? (HSSI inclusion is listed for all tiers so not as relevant).

It seems odd to say a benefit of a particular PyHC tier is being listed elsewhere.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Part of the pyOpenSci review process will have items or characteristics that are specific to PyHC, similar to that custom pyOpenSci/SunPy review process in development (or now realized, not sure). The point of going through that review process is not to be listed elsewhere, but to decrease the effort needed for PyHC leadership to review those same details of all PyHC packages by hand.
Or did you mean something else?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm starting to be convinced that the pyOpenSci badge being included with a package indeed should be separate from this PHEP. I think I'm going to remove it, and it can be a separate thing added to a package (but the standard of Gold/Silver for pyOpenSci would still stand, just not then the benefit of the badge being part of this PHEP).

As for the HSSI, I think it still makes sense to include here for PyHC-specific packages, if nothing else than to really encourage packages to get the proper metadata in for a software search interface dedicated to Heliophysics.

- 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)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really have control over this? Can it be "Community recommended for conference travel funding?"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, yes and yes. Personally, I would not want a lower level package even informally representing PyHC at a science conference. Preferably, those would be silver and gold.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jtniehof yes. Basically because of what Rebecca said. I also wrote into the next PyHC leadership grant some funding to send package leads to conferences, so I want some kind of guidelines for how to pick said packages. I think it makes sense to have packages that have put in the work to develop in line with PyHC needs to be the ones representing us at meetings.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Could this be "considered for PyHC travel funding assistance..."? Someone can put in their own TWSC proposal without this...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah @jtniehof I see now where the confusion came in. I'll add in PyHC so it's clear what travel funding money pot we're referring to.


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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth a forward reference to the implementation process..."are evaluated" by whom?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As in, mention the TSC that reviews packages?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TSC = ???

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rebeccaringuette Technical Steering Committee. Jon used it in a comment above so I just kept up with the acronym.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As in, mention the TSC that reviews packages?

Yeah, or "evaluated (as described in 'Implementation Process' below)"

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will update


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

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
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possible we could have a small technical steering committee to help Shawn and I out with this? Thoughts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd appreciate any help since this basically means re-evaluating every PyHC package, but I could also imagine it being manageable myself if there's not much else going on and if self-evals trickle in over a 6-month period.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds useful. I can serve from the metadata / open science perspective.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome; I'll modify to include the leadership team + a technical steering committee. The latter is something I wanted to bring up in any case come the Fall meeting.

- 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
<a name="backwards-compatibility"></a>
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
<a name="security-implications"></a>
This PHEP raises no security implications as it does not interact with any executing code.

# How to Teach This
<a name="how-to-teach-this"></a>
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).
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this need further definition with the PHEP, or is the promise of documentation sufficient?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A note that this will supersede the existing project submission process is probably helpful. Also potentially a list of differences:

  • Self evaluation is now just starting point, TSC evaluation is required
  • Additional requirements beyond the main PyHC standards

Plus, of course, a commitment to update the submission process.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noted!


# Rejected Ideas
<a name="rejected-ideas"></a>
None yet to note.

# Open Issues
<a name="open-issues"></a>
None yet to note.

# Footnotes
<a name="footnotes"></a>
None yet to note.

# Revisions
<a name="revisions"></a>
Revision 1 (pending): Initial draft.

# Copyright
<a name="copyright"></a>
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}
)
```