dssg / aequitas

Bias Auditing & Fair ML Toolkit
http://www.datasciencepublicpolicy.org/aequitas/
MIT License
677 stars 113 forks source link

Add poetry #193

Closed valmik-patel closed 1 month ago

valmik-patel commented 4 months ago

I'm creating this request to start a conversation about adding Poetry to the project for dependency management.

Poetry allows for easy dependency management while ensuring there are no clashes. I've added the dependencies mentioned in requirements/management.txt as dev dependencies to poetry. Dependencies in requirements/cli.txt and requirements/webapp.txt have been added as optional extras dependencies. And finally, the dependencies in requirements/main.txt have been added as the main dependencies for the project.

You can test this locally through the following steps

We can do the following things easily through poetry

poetry run coverage run -m pytest --cov-report xml:cov.xml --cov-report term

In addition to all this, we can also automate testing when a PR is made using GitHub Actions. Using this method, we can block PRs from being merged if the unit tests fail. `GitHub Actions will also allow us to automatically build and publish packages when a PR is merged. Doing all this setup requires us to add PyPI credentials to GitHub secrets at minimum, and we might need to change some GitHub settings, too.

I wanted to start a conversation using this MR so we can get some opinions from the original maintainers. We will need someone with admin access to the repo to help us add secrets and block PRs from merging when the unit tests fail.

@sgpjesus FYI

sgpjesus commented 4 months ago

Hey @jesteria! Can you give your opinion on changing the setup of aequitas to Poetry? Thank you!

valmik-patel commented 1 month ago

@sgpjesus I accepted your suggestions and removed the old requirements. Let me know if you need me to do anything else.

sgpjesus commented 1 month ago

@valmik-patel Can you just update the .lock file, before merging? I think that will be the last thing! I can't add any commits from my side or else my approval will not be valid for the merge.

sgpjesus commented 1 month ago

I will actually open a new MR to try and relax some of the dependency versions