BayesianOptimization icon indicating copy to clipboard operation
BayesianOptimization copied to clipboard

Maintenance and new releases

Open bwheelz36 opened this issue 3 years ago • 10 comments

Hi all,

As many of you have noticed, the maintenance of this code has been somewhat lagging lately. The original developer of this code has very little to no time to maintain it. They have given me maintainer rights over the repository, and over the last few months I have been trying to close issues, fix bugs, merge pull requests, fix the CI, etc. I do not at this point have the rights to manage releases on PyPi and I'm not that confident I will get those rights any time soon. So, the question is how can we ensure this great code remains viable and useful moving forward.

  • does anyone else currently have maintainer rights? It would be ideal if there were more than one person managing this.
  • Would anyone be willing to take on a maintainer role? I cannot grant such a role myself, but we can ask fernando to do so.
  • For new releases: the only way I can release new code on pypi would be under a new name such as bayesian-optimization2. I don't love the idea but I'm not sure what else to do. I don't use conda so it would also be helpful to have some input from someone with experience releasing code on conda forge.

Thoughts?

bwheelz36 avatar Jul 26 '22 18:07 bwheelz36

Hi @bwheelz36,

First of all, thanks for maintaining this package. Your work here is much appreciated. As I understand, at least for PyPI, the author seems to be Fernando as well so presuming he can be contacted I don't quite understand why he can't grant you maintainer status. If he can't be reached, the process of taking over packages is governed by PEP541. You could file a request here.

As for conda-forge I think @volpatto managed the releases there. I'm not experienced with conda either, but it looks like conda currently just pulls the package from PyPI. Maybe it would be possible to point this URL to a github release instead? Not sure if it is a good idea but it might work as a band-aid. One can probably also request maintainer status for conda-forge in case @volpatto is not available or unwilling to take care of conda releases, for that see here.

I think reuploading under a different name is an option, but not very desirable and if another solution can be found, that'd be preferable.

EDIT: Actually, to keep conda-forge up-to-date with PyPI it might be enough to activate auto-merging for update PR's. Any maintainer on the feedstock should be able to do that by opening an issue with title @conda-forge-admin,please add bot automerge. If @volpatto is not available, I could try to get that sorted so that we can at least close #241.

till-m avatar Jul 27 '22 08:07 till-m

Hi folks,

Yes, as @till-m noticed, pure Python packages, when available in PyPI, are quite easy to maintain in conda-forge. In general, the maintainer just has to double-check the updates automatically done by a bot, then merge it (if the automerge is not enabled).

@bwheelz36 and @till-m, please let me know if you folks are interested in becoming one of the feedstock's maintainers. To be honest, I have been struggling with my maintainer duties in many repos. Any help would be appreciated! :)

volpatto avatar Jul 29 '22 01:07 volpatto

I think it's necessary that @bwheelz36 is a maintainer of the feedstock, if only so that he can delegate conda duties to other people :)

It's hard for me to say what my commitments will look like in the intermediate future. I'm happy to help out for what it's worth, I just can't promise anything. Nonetheless, if @bwheelz36 is not interested in dealing with the feedstock I can take care of conda for now. I suspect with auto-merging turned on there won't be too much to do for now anyways.

till-m avatar Jul 29 '22 06:07 till-m

thanks, yes that would probably be helpful :-)

bwheelz36 avatar Jul 29 '22 15:07 bwheelz36

Folks, it is quite easy to maintain the feedstock. If everyone here is a maintainer, the likelihood to have the feedstock up-to-date is increased. The automerge is already enabled, so only in a very few situations, we would have to take action. I'm updating the feedstock with a request to add you both as maintainers. No need to worry about the obligations. Nevertheless, if somehow you feel unable to take the role, please feel free to reject the invitation, no hard feelings :)

volpatto avatar Aug 01 '22 17:08 volpatto

Thanks - I am away from my computer for a week but in general happy to take on the maintainer role

bwheelz36 avatar Aug 02 '22 21:08 bwheelz36

@bwheelz36 all you need is a PyPI token with publishing rights. Then PyPI publish can be automated by a Github actions workflow with no action required from the original owner :+1:

fcakyon avatar Aug 14 '22 17:08 fcakyon

@fcakyon - thanks - the problem is that we currently don't have such a token!

bwheelz36 avatar Aug 14 '22 23:08 bwheelz36

So currently there is no way of contacting to PYPI owner in any way? Even if for only getting a token?

If that's the case, then requesting from pypi-team is the only option as you have already done :+1:

fcakyon avatar Aug 15 '22 07:08 fcakyon

@fcakyon Based on what's stated in the PEP541 request I'm thinking that the last few attempts at making contact via email unfortunately went nowhere.

This is a good segue into another problem though: I don't think one can even access the GitHub repository secrets as a maintainer -- meaning even if we get a token, we can't automate the publishing process. Accounting for this and a few other unchangable settings (workflows need to be run by a maintainer, Issue templates potentially don't work, etc.) I don't think keeping this repository under @fmfn's account is feasible in the long run. I doubt we can get him to transfer it though...

till-m avatar Aug 15 '22 08:08 till-m

OK, I now have the pypi rights. How should I do this:

  1. Make a release on github, download the release, and upload it to pypi.
    • this has the advantage of keeping the github releases up to date
    • I've never tried doing this before, I'm not 100% sure whether I can do it like this?
  2. Build the package locally using python -m build and upload the results to pypi
    • I know this works, but the github releases will no longer match the pypi version.
  3. Try and solve this issue more permanently, by forking this repo to a new home where we can update the github secrets so that we can automatically link github releases to pypi updates.
    • In this case I would put something in the readme stating that the actively developed version of the code now lives somewhere else
    • I don't like this solution much, I would prefer to keep the code here, but as @till-m said in the long term this may not be that viable.
    • I guess I would propose that I again try to get in touch with fernando before taking this step, and for now we just get an updated version of the package on pypi?

bwheelz36 avatar Oct 23 '22 22:10 bwheelz36

In my opinion, we should try to get an updated version to PyPI as quickly as possible and, if feasible, this version should match the GitHub release. I would assume that this should work as you described -- if not we can still go route 2.

till-m avatar Oct 24 '22 06:10 till-m

OK! We have a new pypi package!!

Now - @volpatto, for conda, do we need to update this feedstock? If I'm reading this correctly, it is currently setup to pull version 1.1.0 from pypi - we could probably remove this version step and just set it up to pull from the latest url?

Also, I can now add other people to the pypi page. that might be a good idea to avoid being in this situation again, @till-m do you have a pypi user name?

bwheelz36 avatar Oct 24 '22 09:10 bwheelz36

Great news!!

Now - @volpatto, for conda, do we need to update this feedstock? If I'm reading this correctly, it is currently setup to pull version 1.1.0 from pypi - we could probably remove this version step and just set it up to pull from the latest url?

I think this should happen automatically... like in conda-forge/bayesian-optimization-feedstock#2 and conda-forge/bayesian-optimization-feedstock#3. I tried to trigger the bot but failed. I'll give it a day or so and hopefully it will sort itself out :)

Also, I can now add other people to the pypi page. that might be a good idea to avoid being in this situation again, @till-m do you have a pypi user name?

Just made one -- till-m.

E: Looks like waiting was the trick: conda @ 1.3.0

till-m avatar Oct 24 '22 11:10 till-m