You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pyportfolioopt has joined GC.OS, this issue outlines integration into an umbrella maintenance model.
This issue is to plan urgent maintenance items and handover.
Community input on todos and wishlist is also appreciated, e.g., what are "burning" items, suggested priorities.
Ensure the package is currently stable and installable
Move to current best practices for installation (though I would like to retain backwards compatibility with simple pip and requirements.txt). Happy to move to uv instead of poetry though.
Generally speaking, I am quite agnostic and uneducated on the devops side of python packages, so I defer to the expertise of you and @tschm who have much more experience here
I have no experience with conda and it's not needed these days. I have also observed over the years tons of issues with all those solvers cvxpy comes out of the box with. There's today cvxpy-base which is like cvxpy but has no solvers! Modern versions of cvxpy use clarabel as standard solver. I would therefore suggest to move to cvxpy-base and clarabel (as an explicit dependency). I am also not keen on Matplotlib. I would move to plotly. Shall we support 3.10? It has started to die...
Ensure the package is currently stable and installable
Move to current best practices for installation (though I would like to retain backwards compatibility with simple pip and requirements.txt). Happy to move to uv instead of poetry though.
agreed with pip compatibility, that is crucial.
requirements.txt I would have removed, but I will add it back - backwards compatibility with workflows is important (though it impacts only the developer workflow).
I have no experience with conda and it's not needed these days.
conda is losing ground, but I think it is still an important distribution channel. Also, in some professional communities it is still primary channel or substantial.
I do not have exact numbers though - for our packages at GC.OS, conda usually amounts for around 5-15% of downloads, though this is declining.
@tschm, yes, but you need to distinguish two setups: (a) maintaining a package that many people are using, and (b) maintaining an end-to-end pipeline in deployment for your company.
With (a), you want the package to be as useable as possible and as compatible as possibly with different preferences of different people. That often means going for the "most compatible" solution, and maintaining multiple compatibilities, such as with windows, unix; or pypi and conda; or being compatible with pip, uv, etc.
For (b), one prefers a narrower set of compatibilities, to increase maintainability and stability for yourself. Going for less compatibility and more maintainability or performance makes much more sense here - since you do not need to be compatible with any downstream usually.
(b) is probably the setup where you operate in with great experience and/or success - but my point is, some "best practices" do not translate, and sometimes even contradict those in (a).
Activity
fkiraly commentedon Nov 10, 2025
WDYT, @robertmartin8?
robertmartin8 commentedon Nov 11, 2025
Hi, I agree with your priorities:
pipandrequirements.txt). Happy to move touvinstead ofpoetrythough.Generally speaking, I am quite agnostic and uneducated on the devops side of python packages, so I defer to the expertise of you and @tschm who have much more experience here
tschm commentedon Nov 11, 2025
I have no experience with conda and it's not needed these days. I have also observed over the years tons of issues with all those solvers cvxpy comes out of the box with. There's today cvxpy-base which is like cvxpy but has no solvers! Modern versions of cvxpy use clarabel as standard solver. I would therefore suggest to move to cvxpy-base and clarabel (as an explicit dependency). I am also not keen on Matplotlib. I would move to plotly. Shall we support 3.10? It has started to die...
fkiraly commentedon Nov 14, 2025
agreed with
pipcompatibility, that is crucial.requirements.txtI would have removed, but I will add it back - backwards compatibility with workflows is important (though it impacts only the developer workflow).fkiraly commentedon Nov 14, 2025
condais losing ground, but I think it is still an important distribution channel. Also, in some professional communities it is still primary channel or substantial.I do not have exact numbers though - for our packages at GC.OS,
condausually amounts for around 5-15% of downloads, though this is declining.tschm commentedon Nov 16, 2025
The bad performance of conda was the reason we moved to poetry in 2021 :-) We love a good lock file
fkiraly commentedon Nov 16, 2025
@tschm, yes, but you need to distinguish two setups: (a) maintaining a package that many people are using, and (b) maintaining an end-to-end pipeline in deployment for your company.
With (a), you want the package to be as useable as possible and as compatible as possibly with different preferences of different people. That often means going for the "most compatible" solution, and maintaining multiple compatibilities, such as with windows, unix; or pypi and conda; or being compatible with pip, uv, etc.
For (b), one prefers a narrower set of compatibilities, to increase maintainability and stability for yourself. Going for less compatibility and more maintainability or performance makes much more sense here - since you do not need to be compatible with any downstream usually.
(b) is probably the setup where you operate in with great experience and/or success - but my point is, some "best practices" do not translate, and sometimes even contradict those in (a).
kpj2006 commentedon Aug 25, 2026
@tschm is this still relevant for us (cc: @fkiraly ) ?
tschm commentedon Aug 25, 2026
I guess the plan is still relevant for you. Good luck.
kpj2006 commentedon Aug 31, 2026
WDYM by "stale PR review and triage - highest priority" ? is it about to add https://github.com/actions/stale workflow in codebase or anything else?