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
The Pymssql Project is Being Discontinued #668
Comments
FWIW, sqlalchemy_pyodbc_mssql is up on PyPI and has been used in one of our largest apps for several months without concerns. The intent there was to wrap up the pain points of using pyodbc with MSSQL. Operationally, pairing pyodbc with the custom dialect ended up being close to a drop-in replacement for pymssql. |
FWIW, turbodbc offers a much faster alternative to pyodbc now in 2019, so can also recommend it for cases where bulk export performance matters a lot |
And, for an open-source, pure Python alternative, adodbapi, |
I'm sorry to hear this. I have one request:
Please don't do that. If anyone decides in the future that they want to try to resurrect the project, having a list of known bugs is useful information. Or, depending on how you look at it, having a list of known bugs might encourage prospective ressurectors to work on one of those alternative projects instead. ;) |
The error message on the new version should say |
@RadixSeven thanks for reporting. Sorry for the confusion. That is fixed now. |
@rsyring what do you think about merge of #659? This minor change of code will give opportunity to use the library with the latest Python version. I see there are side packages appear (https://pypi.org/project/pymssql-py38/ for example) and there is no control under source code of them. |
@decaz on it's face it seems like a reasonable request. The problem though isn't the merge. It's the release. I no longer have a system that builds all the various wheels to make a pymssql release across supported versions. |
For those using Alpine, pyodbc does not appear to be a drop in replacement as MS does not provide an ODBC driver for Alpine: Upvote the issue here to help get the Alpine support prioritized: |
I use this module in automated docker builds.and would prefer not to go rebuild code with another module at this time. is there a way to ignore the deprecation errors with pip? my requirements.txt is set to pymssql==2.1.4 |
@jason-brian-anderson: the error message upon install as well as the readme here and on pypi all say:
|
Set max version for pymssql ``` DeprecationWarning: The pymssql project has been discontinued. To install the last working released version, use a version specifier like \"pymssql<3.0\". For details and alternatives see: pymssql/pymssql#668 ```
If not, we get: DeprecationWarning: The pymssql project has been discontinued. To install the last working released version, use a version specifier like "pymssql<3.0". For details and alternatives see: pymssql/pymssql#668
pymssql does not work with python 3.8 and the project is discontinued pymssql/pymssql#668 Let's move to the recommended (and already used) pyodbc
pymssql does not work with python 3.8 and the project is discontinued pymssql/pymssql#668 Let's move to the recommended (and already used) pyodbc
Hi @wesm , will this project still be accepting PRs? |
It will accept PRs. I'll need some volunteers to help with automating the building and collecting of wheel packages for PyPI, otherwise it will be difficult to make releases |
@stjudeaa we've worked things out so that This project is currently in need of maintainers to help with testing and merging PRs and to help with packaging to make new release. If you'd like to help with this please get in touch with me offline |
I dunno how to do it on Github, I'm a Gitlab user. .deploy_pipy: &deploy_pipy
image: python:latest
before_script:
- rm -rf dist
- pip3 install wheel twine
script:
- echo "Publishing to ${PYPI_REPO}"
- sed -i "s/CURRENT_VERSION/$CI_COMMIT_REF_NAME/g" ${CI_PROJECT_DIR}/setup.py
- echo "[distutils]" >> ~/.pypirc
- echo "index-servers =" >> ~/.pypirc
- echo " nexus" >> ~/.pypirc
- echo "" >> ~/.pypirc
- echo "[nexus]" >> ~/.pypirc
- echo "${PYPI_REPO}" >> ~/.pypirc
- echo "${PYPI_USER}" >> ~/.pypirc
- echo "${PYPI_PASSWORD}" >> ~/.pypirc
- python3 setup.py check sdist bdist
- python3 setup.py sdist bdist_wheel
- twine upload -r nexus dist/*.tar.gz
artifacts:
paths:
- "dist/*.tar.gz"
- "dist/*.whl"
expire_in: 1 week And I also automate the release (Patchnotes+auto-version increment) using a semantic-release CI/CD. |
If it is helpful either to the current maintainer of this repo or to folks trying to get pymssql working, my fork at https://github.com/noisycomputation/pymssql-linux builds successfully (can be verified by following CircleCI status badge on top of the README). The resulting source distribution and wheels for several versions of Python have been pushed to https://pypi.org/project/pymssql-linux, and can thus be installed with pip. Notably, the CircleCI test config from the upstream (i.e. this) repo is broken. Rather dangerously so, since failed tests show up as passed in CircleCI. As a result, they are not currently even being run in my fork's builds, because it is safer to transparently run no tests than to give the false appearance of passing tests. I have tested the Python 3.7 and 3.8 wheels in usage, and that satisfies me for my relatively narrow use case. I know that this is not the best way to contribute, but unfortunately I do not currently have the bandwidth to do much more than this. The code at my fork compiles, and the CircleCI workflow is valid for Linux, which may at least give someone a starting point to fix up the build process in this repo and to bring it under test. That being said, @wesm, if you'd like to stage direct me and give me some narrow tasks, I can bring over some of my changes as a PR. |
I'm afraid I can't offer much at this point other than to oversee the adoption of this project by new maintainers. A lot of people use this project (~1M installs per month according to https://pypistats.org/packages/pymssql) but no one has stepped forward to commit to maintaining it. Such is the tragedy of the commons. I am only here because I felt that crippling the project on PyPI was inappropriate. |
Can you add python-tds to the list of alternatives? I found is pretty much a drop-in replacement for pymssql |
@wesm @noisycomputation @rsyring I am currently working on a large academic project which is in need of porting into professional production (or at least taking working practices from it). It is highly likely we will be using MS SQL Server and our users would give us push-back on having to install ODBC drivers - if you are positive there will be interest then I will add a note to possibly take on a fork/adoption as an option (or at least be a contributor in the short term). It is likely our use case will involve large HPC clusters on at least 7 different operating systems, so I might be able to provide a good test case if you all develop something instead. We currently use I'm fairly new to the GitHub community (as previous commercial work was closed-source), but it appears there's something to salvage here. |
@wesm Hi, could you please add me as a maintainer. I'm an old time user of pymssql and now I've got some spare time to give back to the project. I'm planning to fix CI and update it for the last python release. |
Done. |
good day all - i am trying to use Orange3 via anaconda to connect to MSSQL server. apparently ONLY pymssql works with it? is anyone currently using Orange3 / python 3.8 in windows 10 to connect?? what have you installed to get this to work. i have google'd the entire web for 3 days and have found zero help. |
@fredderf81 Google is you friend: https://www.google.com/search?q=conda+orange3+install. |
no worries - i have google'd around as stated for 3 days and found no help anywhere over many many webpages. everything is ancient and there is no real structure around support. i solved the issue by installing ubuntu via a oracle virtual box and then installing pymssql. which didn't do anything anyway because orange3 won't import large datasets so it was all a waste of time. |
@termim Has the decision to discontinue Pymssql been reversed? I haven't seen it stated anywhere directly, but it would look like there are maintainers still keeping this project going, and the archive has not occurred. Or is the suggestion still valid to fork this project if you want to continue development? |
Yes, it has reversed. You are very welcome to send bug reports and pull requests here as well as discuss it in Discussions. |
Thank you to everyone who has contributed to pymssql over the years. Unfortunately, I believe it's time to discontinue pymssql. It provides an incredible amount of utility to those of us that need to connect to MSSQL from Python. But, as a project, it has failed to attract enough interest/talent/funding to maintain it.
Why discontinue it and not let someone else maintain it? We've tried over the years. See #516. We have got a few people drop by to help occasionally, but nothing sustained enough to feel like transfer of the project was warranted.
I had always hoped my consulting business would be able to help maintain the library for clients that use it. But there is too much work here for us to tackle that doesn't really benefit our client's usage and we transitioned to PyODBC earlier this year.
I'm also concerned that if I simply abandon the project a bad actor could gain control and start installing nasty stuff on what I am sure is a lot of corporate servers.
It's my hope that by discontinuing this project better solutions will be developed and/or adopted to take it's place.
Other Related Issues
Alternatives
Interested in Taking Over?
Just fork pymssql and start your own project. Gain momentum, show progress, and I'd be happy to link to your project from here.
Next Steps
I'm going to leave this issue open for suggestions on how best to deprecate/discontinue pymssql as a project. I'm sure there will be some who will suddenly be very interested in helping. I won't be considering those requests at this point. If you want to help, see above about forking.
At the end of November, 2019 I'm going to Archive this GH repository which will make it read-only.
I'll also need to figure out how to deprecate packages on PyPI so that people installing know the project is being discontinued.
ToDos
The text was updated successfully, but these errors were encountered: