Looking To Get Started Contributing to PV Modeling - What Improvements Do You Want To See In pvlib?

28 views
Skip to first unread message

Mason Mahaffey

unread,
Jul 7, 2026, 9:05:20 PM (5 days ago) Jul 7
to pvlib-python
Hello all,

This is Mason. You all may know me from previous IEEE PVSCs or the PV community at-large. I'm interested in contributing to pvlib to maintain my skills in Python and make meaningful contributions to PV modeling (and maybe make some other open-source projects in addition). My questions to the community:
  1. What do you see as the biggest needs in improving pvlib? Anything goes, including code/documentation/examples/guides.
  2. What's one thing that takes you a large amount of time computationally?
    1. I'm seeing the recent discussion on the rust port of pvlib, but at the moment I'd like to contribute to pvlib in Python
  3. Are there libraries or dependencies which you commonly use which you think need more improvement than pvlib itself to make a meaningful impact on your work?
Looking forward to the discussion this generates!

Best,
Mason Mahaffey, PhD

Will Hobbs

unread,
Jul 8, 2026, 8:29:59 AM (5 days ago) Jul 8
to pvlib-python
Hi Mason,

Great questions! Here are some of my thoughts based on my own interests and what first came to mind:
  1. I *think* this pvlib issue on AOI/IAM and soiling is ready to be addressed with a PR: https://github.com/pvlib/pvlib-python/issues/1955
  2. Consider looking at pvanalytics in addition to pvlib. This issue (and the related ones) is something I've been interested in for a while, and I think could be useful to a lot of plant operators: https://github.com/pvlib/pvanalytics/issues/224
  3. Here's a pvlib community "wish list" that Mark Mikofski compiled during the 2022 PVPMC meeting (not sure a similar list came out of more recent meetings?): https://groups.google.com/g/pvlib-python/c/9AN9qHc6v4c/m/PCaakk-nDgAJ
I always appreciate good gallery examples in pvlib, so there might be some useful work that could be done there. 

Will

cwh...@sandia.gov

unread,
Jul 8, 2026, 10:40:40 AM (5 days ago) Jul 8
to pvlib-python
Mason,

Two things I'd bring up:
- the organization of webpages at https://pvlib-python.readthedocs.io/en/stable/. The top level is fine, it's the next layer down (the User Guide and API Reference) that look (to me) like a pile of pages. It would be great if the page ordering and organization was more intuitive.
- A PVSystem is currently defined as a single inverter and the arrays that feed that inverter. We frequently get the question "my system has X inverters, how do I represent this?" The only answer is to set up parallel calculations and add the results. Maybe there's a slick way to add a layer, or to extend the existing PVSystem to have multiple inverters, without upsetting how pvlib currently works.

Cliff

Mason Mahaffey

unread,
Jul 10, 2026, 12:32:03 PM (3 days ago) Jul 10
to cwh...@sandia.gov, pvlib-python
Hi everyone,

Thanks for your replies! I think I'll start on the docs, because:
  • I view that as a good entry point and fast way to improve things
  • I'll be able to read more about each part of pvlib (including the parts I don't use often)
  • And from there I can make meaningful functional improvements
I see the docs are currently written in sphinx. I'll work with this as-is/edit directly. I know of others, with different pros/cons.

Question: Has the community considered building a Model Context Protocol (MCP) server for pvlib? This allows any coding assistants to better interact with pvlib by having descriptions of the functions & their use/purpose. What is the Model Context Protocol (MCP)? - Model Context Protocol

Best,
Mason

--
You received this message because you are subscribed to the Google Groups "pvlib-python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pvlib-python...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pvlib-python/02fdc612-92de-432a-8816-963561be6c70n%40googlegroups.com.

cwh...@sandia.gov

unread,
Jul 10, 2026, 1:00:38 PM (2 days ago) Jul 10
to pvlib-python
Hi Mason,

We'd welcome proposals to improve the documentation. I'd suggest using the Discussion tab on github.com/pvlib/pvlib-python.

Someone else (who actually knows what a MCP looks like in code) could advise on that question. My reaction is that code for the server would go to its own repo, not in pvlib-python.

Best,

Cliff

Echedey

unread,
Jul 10, 2026, 3:18:19 PM (2 days ago) Jul 10
to pvlib-...@googlegroups.com

Hi Mason,

Thanks for showing interest in contributing.

Regarding MCP, my understanding (disclaimer: I've never used it) is that it is a server-hosted application (therefore it needs a daemon -or runner-, not like static file serving ReadTheDocs does for our documentation, nor GitHub provides in any way) so it's outside of the scope and tools pvlib has used historically. My opinion is that it makes sense if you are developer, to set it up locally - or have a repo (as Cliff stated) that provides what you want to run locally. I guess we could somehow find a free-tier server to save setting up the MCP server to users thou. But keeping it 1:1 to main may be an extraordinary effort.

In any case, pvlib has (almost) always been developed by humans for humans; there aren't any quirks, complexities, that you as a person can't handle, even if it feels overwhelming at the start. So my recommendations regarding LLMs in general are (a) keep it at minimum so you can really learn from your contributions and (b) always (emphasis on "always") review what they propose. We are a bit fed up of bots (or human-in-the-loop bots) that just copy&paste their interaction with an LLM. LLMs may propose convoluted ways of solving things, not debug the root cause of problems, or plainly hallucinate the fixes. We will kindly guide you through required steps, suggest tools and link to relevant information. But we won't do that for LLMs.

I agree documentation is a great starting point.

Best,
Echedey.

Reply all
Reply to author
Forward
0 new messages