Skip to content
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

Closed
5 of 7 tasks
rsyring opened this issue Nov 6, 2019 · 50 comments
Closed
5 of 7 tasks

The Pymssql Project is Being Discontinued #668

rsyring opened this issue Nov 6, 2019 · 50 comments

Comments

@rsyring
Copy link
Contributor

@rsyring rsyring commented Nov 6, 2019

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

  • Proposal to discontinue pymssql in favor of pyodbc #477
  • Maintainers Needed - Apply Within #516
  • Finding grants/funding for pymssql development #621

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

  • Notify relevant mailing lists
  • Update readme with notice
  • Publish readme notice to PyPI
  • Put notification into project setup/install process somehow?
  • Close all open issues and PRs with notice (is there an automation tool that can help with this somewhere?)
  • Archive GitHub Project
  • Setup RTD to no longer use pymssql.org, discontinue renewal of that domain
@guruofgentoo
Copy link

@guruofgentoo guruofgentoo commented Nov 6, 2019

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.

@rsyring rsyring changed the title Discontinuing pymssql Discontinuing the pymssql Project Nov 6, 2019
@wesm
Copy link

@wesm wesm commented Nov 6, 2019

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

https://turbodbc.readthedocs.io

@vernondcole
Copy link

@vernondcole vernondcole commented Nov 8, 2019

And, for an open-source, pure Python alternative, adodbapi,
which, if I can get the correct patch in soon enough, will also be correct in the next release of pywin32.
I should mention that adodbapi allows the programmer to choose which query type (paramstyle) you wish to use, so you can keep %s - kind of querys if you wish.

@bemoody
Copy link

@bemoody bemoody commented Nov 9, 2019

I'm sorry to hear this.

I have one request:

Close all open issues and PRs with notice

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. ;)

@rsyring rsyring changed the title Discontinuing the pymssql Project The Pymssql Project is Being Discontinued Nov 15, 2019
@rsyring rsyring pinned this issue Nov 15, 2019
@RadixSeven
Copy link

@RadixSeven RadixSeven commented Nov 15, 2019

The error message on the new version should say pymssql<3.0 not <=3.0 (3.0 is the one that errors to show the discontinuation.

rsyring added a commit that referenced this issue Nov 15, 2019
@rsyring
Copy link
Contributor Author

@rsyring rsyring commented Nov 15, 2019

@RadixSeven thanks for reporting. Sorry for the confusion. That is fixed now.

@decaz
Copy link

@decaz decaz commented Nov 15, 2019

@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.

@rsyring
Copy link
Contributor Author

@rsyring rsyring commented Nov 15, 2019

@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.

@mnewman-iress
Copy link

@mnewman-iress mnewman-iress commented Nov 18, 2019

For those using Alpine, pyodbc does not appear to be a drop in replacement as MS does not provide an ODBC driver for Alpine:
https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

Upvote the issue here to help get the Alpine support prioritized:
microsoft/msphpsql#300

@jason-brian-anderson
Copy link

@jason-brian-anderson jason-brian-anderson commented Nov 18, 2019

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

@rsyring
Copy link
Contributor Author

@rsyring rsyring commented Nov 18, 2019

@jason-brian-anderson: the error message upon install as well as the readme here and on pypi all say:

To install the last working released version, install with a version specifier like "pymssql<3.0". E.g. pip install "pymssql<3.0"

PrettyWood added a commit to ToucanToco/toucan-connectors that referenced this issue Nov 19, 2019
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
```
pedrobaeza added a commit to OCA/server-backend that referenced this issue Nov 21, 2019
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
PrettyWood added a commit to ToucanToco/toucan-connectors that referenced this issue Mar 21, 2020
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
PrettyWood added a commit to ToucanToco/toucan-connectors that referenced this issue Mar 21, 2020
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
@Chris2048
Copy link

@Chris2048 Chris2048 commented Mar 25, 2020

Hi @wesm , will this project still be accepting PRs?

@wesm
Copy link

@wesm wesm commented Mar 25, 2020

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

@wesm
Copy link

@wesm wesm commented Apr 21, 2020

@stjudeaa we've worked things out so that pip install pymssql still works. Maintainers are free to leave a project at any time.

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

@linceaerian
Copy link

@linceaerian linceaerian commented Jun 5, 2020

@wesm

I dunno how to do it on Github, I'm a Gitlab user.
In case it help, the scripting I use to do a quick & dirty publish in my Gitlab CI/CD is:

.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.
https://github.com/semantic-release/semantic-release/blob/master/docs/usage/ci-configuration.md#ci-configuration

@noisycomputation
Copy link

@noisycomputation noisycomputation commented Jun 13, 2020

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.

@wesm
Copy link

@wesm wesm commented Jun 14, 2020

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.

@luislezcair
Copy link

@luislezcair luislezcair commented Jun 24, 2020

Can you add python-tds to the list of alternatives? I found is pretty much a drop-in replacement for pymssql

@fentonscode
Copy link

@fentonscode fentonscode commented Jun 24, 2020

@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 sqlite3 on local hosts and psycopg2 to demonstrate remote SQL - but the server we have available is an existing SQL Server 2016 node, hence my interest in pymssql!

I'm fairly new to the GitHub community (as previous commercial work was closed-source), but it appears there's something to salvage here.

@termim
Copy link
Contributor

@termim termim commented Aug 9, 2020

@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.

@wesm
Copy link

@wesm wesm commented Aug 9, 2020

Done.

@fredderf81
Copy link

@fredderf81 fredderf81 commented Aug 20, 2020

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.

@termim
Copy link
Contributor

@termim termim commented Aug 20, 2020

@fredderf81 Google is you friend: https://www.google.com/search?q=conda+orange3+install.
If you have any specific problem installing pymssql please open a new issue, this one is closed.

@fredderf81
Copy link

@fredderf81 fredderf81 commented Aug 20, 2020

@fredderf81 Google is you friend: https://www.google.com/search?q=conda+orange3+install.
If you have any specific problem installing pymssql please open a new issue, this one is closed.

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.

@Warfront1
Copy link

@Warfront1 Warfront1 commented Apr 1, 2022

@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?

@termim
Copy link
Contributor

@termim termim commented Apr 2, 2022

Yes, it has reversed. You are very welcome to send bug reports and pull requests here as well as discuss it in Discussions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests