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

question - who owns or maintains this package? Do you need help with maintenance? #587

Open
fkiraly opened this issue Mar 12, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@fkiraly
Copy link

fkiraly commented Mar 12, 2024

I have been trying to contact the maintainers of this package for a while and would appreciate a reply.
It seems unclear to me who maintains this, or what the status is, and would also like to offer my help.

What I know so far:

  • Robert Martin (@robertmartin8) is the owner of GitHub and pypi, is listed as the single email contact on the landing page and readme.
  • Tuan Tran (is that @tuantp7?) is mentioned as "primary maintainer" on the readme, but does not seem to own any relevant assets, nor have they made any GitHub contributions in the last year
  • I contacted the email of Robert Martin from the readme, he advised I should get in contact with another package instead. Requests to put me in touch to maintainers of pyportfolioopt (instead of the other package) have now remained unanswered for more than a month.

I do find his odd - the matter I originally wanted to discuss is integration with sktime.

Now, I wonder: do you need any help with maintaining this package?
It would be a shame if this nice package died!

I'd be happy to help!

(and I'd be happy to discuss how to secure assets or maintain them jointly without "handing them away", in case security/safety of the owned package assets is a concern)

@fkiraly fkiraly added the enhancement New feature or request label Mar 12, 2024
@88d52bdba0366127fffca9dfa93895
Copy link
Collaborator

Hi @fkiraly, it's great to have your help. Since @robertmartin8 is currently busy with market activities, I am now the maintainer of this package, primarily focusing on bug fixes. Many issues with this package revolve around installation, often related to dependencies. While we can provide assistance and guidance, resolving these dependency-related issues may be beyond our control.

If you have any suggestions or contributions to make, please feel free to let me know. Your input and collaboration are highly valued.

@robertmartin8
Copy link
Owner

Hi! I have submitted a PR to remove my email from the readme, and apologies for the slow pickup on your emails – unfortunately it is difficult for me to spend any time on the package nowadays.

Fortunately, we have Tuan (@88d52bdba0366127fffca9dfa93895) as the maintainer and as far as I'm concerned he is doing an excellent job. I respect his judgment on decisions for the future of the package, though I am happy to provide input on major changes if that is desired!

Cheers,
Robert

@fkiraly
Copy link
Author

fkiraly commented Mar 12, 2024

Many issues with this package revolve around installation, often related to dependencies.

Thanks for the swift reply, @88d52bdba0366127fffca9dfa93895!

Could you perhaps explain what is going on with the dependencies and where you need help? It looks like pyproject.toml already manages these well, there are only a few. E.g., what's going on with installation, how can a contributor help?

If you have any suggestions or contributions to make, please feel free to let me know. Your input and collaboration are highly valued.

Gladly! I was thinking of integration with sktime, and improvements to pyportfolioopt proper, regarding, for instance:

  • portfolio optimization using forecasts (via sktime forecasters)
  • covariance forecasts and time series covariance estimators
  • time series clustering and hierarchical data integration, for hierarchical portfolios
  • extension of pipeline building and composition capabilities
  • integration with patterns of model tuning and automl
  • possibly, rearchitecture using scikit-base which would make a number of the above easier

I would be interested personally, and there are other developers from around sktime who would also be interested in some of the above.

@fkiraly
Copy link
Author

fkiraly commented Mar 12, 2024

Hi! I have submitted a PR to remove my email from the readme, and apologies for the slow pickup on your emails – unfortunately it is difficult for me to spend any time on the package nowadays.

If you would like to hear my advice, @robertmartin8, @88d52bdba0366127fffca9dfa93895, it might be good to clarify asset and legal ownership and stewardship going forward. If you remove your email from the readme, @robertmartin8, but remain the (technical and legal) owner of assets, it will be harder to find you if the need arises. I would advise the community to have a clear discussion on ownership and responsibilities, if you would like to retain - or enable - an open governance model.

There's basically two "stable" models here which you can end up with:

  • "open governance", which means you try to build a model where the package remains owned by the wider, distributed contributor base. Typically incorporated as a non-profit or similar to give this legal grounding. Profits/benefits go to the wider community and are managed by a board, and the primary aim is to keep the software open for the user base.
  • "closed/corporate governance", where assets are owned by a company, with the primary aim to monetize the user base. Decision making sits with a board, and profits/benefits go to shareholders. Here, the software typically moves towards a gated or pay-for-access, freemium or upsell model, or similar (e.g., anaconda or RedHat model).

As a project, you seem to be currently in a transition situation, and the de-facto decision power on which direction it goes sits with the person(s and/or incorporated entities) owning the key assets - the GitHub repository and the pypi project.

@fkiraly
Copy link
Author

fkiraly commented Mar 12, 2024

I also noticed that you do not seem to have dedicated social channels for your users and developers? Or maybe they are just not advertised, publicly? This would have been my primary guess on how you would get in contact with maintainers of a popular package like pyportfolioopt, but it seems like this does not exist.

Common tools to use here are slack or discord, and/or GitHub discussions. sktime, for instance, has an open discord: https://discord.com/invite/54ACzaFsn7, and a GitHub discussion forum.

Of course, I'd be happy to help out with setup and advice, here.

@fkiraly
Copy link
Author

fkiraly commented Mar 31, 2024

So, what's next, @88d52bdba0366127fffca9dfa93895, @robertmartin8?

You said,

Your input and collaboration are highly valued.

and I'd be happy to do either.

What's the status of this package?

@robertmartin8
Copy link
Owner

Hey @fkiraly, I really do appreciate the input; please accept my apologies for the poor response time (both on email and here).

Preamble

I think sktime is a marvellous open source project – I think you (plural) have done a great job on the package, docs, and community. So I am genuinely receptive to your suggestions, subject to the constraints mentioned below (the most unfortunate being my lack of bandwidth).

My philosophy on the package

My philosophy is that PyPortfolioOpt should provide a stable baseline implementation of standard portfolio optimisation in python that is user-friendly and well-documented.

This philosophy arises out of my conversations with institutional users of PyPortfolioOpt, as well as my personal observations having been on both the retail and institutional side. In my view, it is useful to have a simple, well-documented reference implementation of mean-variance optimisation, which has well-understood flaws.

I personally do not think that the package should attempt to incorporate the latest experimental/advanced methods, many of which have are there to keep journal editors busy rather than being practically useful, having pitfalls that are poorly understood.

In other words, if it were possible, I would happily "freeze" the package as is – I want the library to be in a stable phase without much active development. As Tuan points out however, python versioning stuff makes this tricky – like the red queen, we have to run just to stay in the same place.

This is all just my perspective, which I am open to change my mind on, especially if the people who are now maintaining the library (@88d52bdba0366127fffca9dfa93895) think differently – as time goes on, the library is as much theirs as it is "mine" (whatever that means).

Constraints

However, there are some things that I do feel strongly about:

  1. I do not want any form of closed/corporate governance model. This project has been MIT licensed from the start, and I would like it to remain so. PyPortfolioOpt has been through the wringer in terms of open-source "mis-use" (perhaps it's just the standard open source experience...): people wrapping it into consulting services, people bundling it into other software and selling it, plagiarism ranging from petty to "cloning-the-whole-project-and-changing-the-name". But apart from the plagiarism – which is not permitted by the MIT license – I don't actually have any complaint.

  2. Good documentation matters – one worry I have is that people often care more about adding features than adding good documentation. If people want to add more features, I think good documentation really matters.

  3. Time constraint: unfortunately, I have essentially zero bandwidth for PyPortfolioOpt nowadays, apart from chiming in on issues, or responding to emails once in a while (as you know I have not done a very good job even on this). This lack of bandwidth also extends to the immediate next steps – I simply don't see myself overcoming the activation energy to incorporate a non-profit or do anything like that.

Conclusion

It does seem to me that the package is basically working as intended (thanks to the maintenance of @88d52bdba0366127fffca9dfa93895). If suddenly it came to pass that people couldn't install the package, or there was persistent bugs, then I would probably be more inclined to action.

All this said, if there is low-hanging fruit that people feel would move this package to a significantly more stable solution, I will be able to carve out a few hours at some point to oversee the transition.

I will endeavour to be more responsive on this thread over the next couple of weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants