-
Notifications
You must be signed in to change notification settings - Fork 72
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
move pymssql back to an optional requirement #4581
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
4a69107
to
e56d1d2
Compare
Passing run #6125 ↗︎
Details:
Review all test suite changes for PR #4581 ↗︎ |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4581 +/- ##
=======================================
Coverage 86.81% 86.81%
=======================================
Files 330 330
Lines 19839 19839
Branches 2545 2545
=======================================
Hits 17223 17223
Misses 2150 2150
Partials 466 466 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me, I pushed some changes to the README that I think work!
Closes PROD-1558
Description Of Changes
Pull out the
pymssql
driver dependency into an optional requirements file that is not installed as part of our python package install by default. This is because the driver does not include functionality that's essential for our python package functionality, and it's known to cause problems and require workarounds on M1 macs. The optional dependency can still be installed as part of the python package by including an[all]
extras keyword in the package dependency reference, e.g.ethyca-fides[all]==2.28.1a3
.The pymssql dependency (and any others we decide to put in
optional-requirements.txt
) will still be installed as part of all of our docker image builds. It functions fine on linux containers, and it's important functionality for our deployed application (which is a different use case than our python package!)Code Changes
optional-requirements.txt
to separate out optional requirements not needed for basic python package/CLI usageoptional-requirements
are installed on our docker image builds via theDockerfile
, since they're needed for our images and there are no problem with these libraries on linux containersmssql
or via anall
keyword, e.g.pip install ethyca-fides[all]==2.28.1a3
Steps to Confirm
confirmed locally that i could install the
ethyca-fides
python package (and therefore runnox -s "fides_env(test)"
even withfreetds
uninstalled and no cached pymssql packages, i.e. our python package install and thefides_env
command do not require installing pymssql nor building its wheel on the host machine, while the package is installed and wheel is built on the docker image that's built byfides deploy up
. the following steps used to produce a build error on an M1 Mac locally, but now no longer do with this update:freetds
locally:brew uninstall --ignore-dependencies freetds
find ~/Library/Caches/pip/wheels/ | grep pymssql
to find and then remove./.nox
), e.g. from the repo root:rm -rf .nox/fides_env-slim/lib/python3.10/site-packages/pymssql*
nox -s "fides_env(test)"
. onmain
, this should fail on an M1 mac when it tries to build thepymssql
wheel. but on this branch, things should succeedmssql integration tests still seem to be running well in CI, since that's using the built docker image that has the package installed 👍 https://github.com/ethyca/fides/actions/runs/7727125996/job/21065508406?pr=4581
Pre-Merge Checklist
CHANGELOG.md