Proposed Improvements to CPython's new CLA Host
Mariatta opened this issue ยท 24 comments
It does not seem like we have found good alternative yet to cla-assistant. Let's start figuring out what we can do to improve our existing CLA host or build a new one.
Past discussions: https://discuss.python.org/t/cla-assistant-is-no-go/2066
Requirements
-
trigger webhook to notify that CLA for a user/org has been received.
So the pull request for the user/org can be automatically updated. Currently, user has to manually check the CLA after a day or two. -
When signing CLA, we need to be able to capture whether the CLA is signed on behalf of individual or an organization.
-
When someone made a pull request, check if the user has signed the CLA individually, or if the user belongs to an org, and if the org has signed the CLA.
3.1 A pull request can be made up of multiple commits by different git users. We should check CLA for each git users, not just the person who made the pull request. -
Those who have signed CLA before should not need to sign again under the new CLA system.
-
Folks should be able to sign the CLA ahead of time, instead of waiting until they made their first PR.
-
Folks should only need to sign the CLA one time, and it should be effective towards any pull requests under Python org.
-
bpo username should not be a requirement for signing CLA.
-
It should be easy to backup the signed CLAs daily.
-
Mobile friendly UI. We should be able to sign CLA from our phone.
-
People should still be able to sign CLA on real printed paper; Administrators should have the ability to input CLA record manually.
-
we should be able to define an "allowed users" list, where CLA check will not be needed. for example, PRs from miss-islington(bot) does not need CLA.
Personal wishlist: I'm intrigued to use EdgeDB for this project, if we do end up writing a new CLA host.
For org membership, it could either be by public membership of the org on GitHub or if the PR is coming from a repo that is under an org that has signed (I don't know which one we would prefer to support).
We could also use some help with UI design for this project.
We could also use some help with UI design for this project.
I can do the necessary graphical / UI design for this.
Thanks @Mariatta for this detailed writeup. Happy to help as well with documenting it. Using EdgeDB would be a cool thing to try.
Do we need a new repo to host the codebase of the new CLA system? If so, what should it be called?
Or are we going to add this in to the-knights-who-say-ni?
@Mariatta I say we use the-knights-who-say-ni and develop under a new branch. That repo doesn't any traffic so using to for a rewrite of itself isn't going to inhibit maintaining the current bot.
ok, I haven't done anything related to database and Heroku, so I don't know how it will all work ๐
@Mariatta depending on how we decide to handle this project it could be hosted on another cloud provider that Ernest sets us up on.
Hello everyone, I am one of the project maintainer of the cla-assistant and it is really great to see that you have considered cla-assistant for handling the CLA. Please let us know If you require any insights of the CLA Assistant. And as i can see, the cla-assistant has already fulfilled nearly 7 out of the 10 requirements if I am not wrong ๐ .
EdgeDB is interested in providing a tailor-made solution for this. We are able to host it in an HA manner backed up Amazon AWS.
What we'd need right now is to have a look at the existing database schema that we're using today. We'd like the migration from the current solution to be as smooth as possible. I reached out to @ewdurbin for that, I hope we'll get that soon so we can present something by PyCon US :-)
@ambv Please keep me updated and let me know how I can help.
Not sure how it works with EdgeDB, will the project be open source? Do you have a repo / issue tracker / project board for us who want to follow the progress?
Not sure how it works with EdgeDB, will the project be open source?
Yes, the project will be open source.
Do you have a repo / issue tracker / project board for us who want to follow the progress?
Not yet, but we'll create one soon. Getting last bits of the minimal cloud arch ready.
@1st1 @ambv can you share any progress/update on this project? Thanks.
We've implemented the bot, an admin panel for it, and all other necessary pieces. We are about to start testing it for our own github.com/edgedb repos. I'd say that we should be ready to start integrating it with Python repos early September.
As far as I know ลukasz is still waiting from the PSF staff (from @ewdurbin specifically?) to get back to us with details on the current infra and few other questions. Would be great to get the ball rolling.
Any update here?
@Mariatta We've implemented a new CLI bot and are using it for all edgedb repos. We can help the PSF to integrate it.
@ewdurbin The CLA bot will need a Postgres DB, preferably Amazon RDS and 2-3 instances on EC2 with reasonable amount of RAM. We'll need someone from the PSF to assist us with the migration:
- populate the CLA bot DB with all who already signed the CLA
- grant us temporary access to PSF's infra or someone who we can guide to do what needs to be done
- configure github.com/python repos to use the new CLA bot
We're ready to work on this when you guys are.
cc @elprans
That's amazing! Could we perhaps try on some of the smaller repos, like devguide, PEPs, bedevere, or miss-islington?
is this software open source somewhere?
@ewdurbin, yes over at https://github.com/edgedb/cla-bot/
Could we perhaps try on some of the smaller repos
@Mariatta, I'll set up a staging instance on our infra soon for testing and feedback.
Any progress in the staging instance? Anything I could help with?
@ambv was looking into this.
Only took two years but it happened.