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
pypi release with new package name #240
Comments
Yes, I think I'm close to a release. I had been holding off while thinking through some major backwards -incompatible changes that really have to be done in v1.0, but I think I have a way through that now. |
Any update on when we might see a 1.0 release on PyPI |
I'm glad you asked. I haven't had much time to work on this lately, and It's been a sliding target; I'm now thinking I would like to see the color images questions solved (e.g. #262, #263), and I'd like to introduce memmap solutions and remove the old deferred read code (e.g. #139), as I suspect that would be much cleaner if backwards compatibility is not required. I'm open to the idea, however, of pushing out a pre-release if people need the big fixes and enhancements. The import name change to 'pydicom' would be in that, so it probably only makes sense if it is in the 1.0 series. Maybe a 1.0 alpha release, with some changes still to come before final 1.0 release? My understanding is that pip would by default ignore pre-release versions, but they could be installed if explicitly specified. I'd be interested in people's thoughts. |
I am working with Python 3 (due to other dependencies) and so I believe require pydicom 1.0. For me personally it is not a problem to pull the latest repo version and install from local files, but pydicom is a dependency of my own toolbox, so for users who want to install that via pip without having pydicom previously installed they end up with an older version and lots of issues, particularly because of the import name change. Documentation can go some way to addressing this issue but it would be nice to keep the installation path as simple as possible. I don't know how easy it is to force pip to install a pre-release version of a dependency but without that I will wait for the official release. Keep up the great work, anyway. |
If you plan to support two versions of the library, or simply if you want to leave a stable or legacy version of it in PyPI, I would suggest you to go for name change in the PyPI package for the newer version. Something like |
@norok2 I appreciate the suggestion of using name pydicom2, but I don't want to again make the mistake of having the library name and the import line be different. I know there will be confusion for a while, but hopefully people will quickly switch over to pydicom 1.0. For the most part, it is easy to continue using old code by simply changing try:
import pydicom as dicom
except ImportError:
import dicom This won't always be enough, as there are a few more library name changes, but for many uses, the most common line I will endeavor to provide instruction for installing the legacy pydicom when the new version is released. Pip can be instructed to get a specific version. I'll be working on the pre-release for pydicom 1.0 this week. No promises, as there are some very thorny issues to work out around the pixel data handling for the new compressed image handlers. But I will do my best to get something out. |
@darcymason actually, if that is what you are struggling with, why not publishing the old API as simply 'dicom' in PyPI i.e. changing the old name. Maybe, it might be worth considering adding a warning of this API change during the import ASAP, something like:
What do you think? |
@norok2, I'm open to the idea, but I'm not clear on how it is supposed to work. For your comment:
Was that meant to be 'setup.py OR requirements.txt'? It seems to me it could be either one needing updating. Let's take a concrete example. Let's say a package has a requirements,txt with No matter what things are called, the old Does that seem right, or am I missing something? These are very important issues and I would like to choose the path that causes the least confusion. |
If a new version of If one is in the need of using the The |
Okay, it took me a while to absorb this, but I see the logic. Thanks for that. It is simple enough to add the extra package on PyPI. I also like the idea of the warning about the API change (more information for people is always better), so I can release a new 0.9.9.1 or similar name, with a warning added, so that will become the default install until 1.0 comes out. I'll send a notice out on the pydicom google group as well. |
No problem. Also, the 0.9.9.1 version (the one living in the
|
Hi. Is there some news about this topic? |
I've done some of the necessary work in the features/image-handlers branch, but unfortunately have not managed to spend much time on this lately. I think I could leave that feature with gdcm only enabled, and release with that to start. But I'd like to put a little more testing into place on it. |
Hi @darcymason don't mean to bother you, just wondering if there's been any further update on this. Thanks for all the hard work! |
I'm glad you asked, I've been meaning to give an update as I know I've gone quiet for too long. I had been struggling with how to deal with a number of things, but I've finally decided to mostly defer those decisions and get on with releasing the alpha. A few days ago I had just started to work on the release of "dicom" as its own project as previously discussed, and then, unfortunately, got hit with a horrible virus (human, not computer virus) and have been knocked on my back the last few days. But once I've recovered some more, I will put that in place, then shift to the alpha release with the current repository head, and lots of warnings about how many things could change (particularly with the 'image handlers' like the gdcm code, and the deferred read vs memmap issues). I would really have liked to work those things out more fully, but I realize now it had been stopping me with just getting on with things. After the basic structure of old dicom and new pydicom are in place, we can tackle the remaining big issues one by one. |
With releasing a dicom package, is it possible to make a dicom package
which has pydicom as ita dependency, then have the dicom package just be a
single init file:
from pydicom import *
…On Fri, 20 Jan 2017, 2:23 AM darcymason ***@***.***> wrote:
I'm glad you asked, I've been meaning to give an update as I know I've
gone quiet for too long.
I had been struggling with how to deal with a number of things, but I've
finally decided to mostly defer those decisions and get on with releasing
the alpha. A few days ago I had just started to work on the release of
"dicom" as its own project as previously discussed, and then,
unfortunately, got hit with a horrible virus (human, not computer virus)
and have been knocked on my back the last few days. But once I've recovered
some more, I will put that in place, then shift to the alpha release with
the current repository head, and lots of warnings about how many things
could change (particularly with the 'image handlers' like the gdcm code,
and the deferred read vs memmap issues). I would really have liked to work
those things out more fully, but I realize now it had been stopping me with
just getting on with things. After the basic structure of old dicom and new
pydicom are in place, we can tackle the remaining big issues one by one.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#240 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGQVeyRFsx-1qD1lRUJ4iuLiWrxvM-0Pks5rT3_cgaJpZM4HH6hL>
.
|
It could also be made that the "dicom" package is a "dependency" of
pydicom. That way if a user installs pydicom 1.0.0 but uses legacy code, it
will all still work.
…On Fri, 20 Jan 2017, 7:42 AM Simon Biggs ***@***.***> wrote:
With releasing a dicom package, is it possible to make a dicom package
which has pydicom as ita dependency, then have the dicom package just be a
single init file:
from pydicom import *
On Fri, 20 Jan 2017, 2:23 AM darcymason ***@***.***> wrote:
I'm glad you asked, I've been meaning to give an update as I know I've
gone quiet for too long.
I had been struggling with how to deal with a number of things, but I've
finally decided to mostly defer those decisions and get on with releasing
the alpha. A few days ago I had just started to work on the release of
"dicom" as its own project as previously discussed, and then,
unfortunately, got hit with a horrible virus (human, not computer virus)
and have been knocked on my back the last few days. But once I've recovered
some more, I will put that in place, then shift to the alpha release with
the current repository head, and lots of warnings about how many things
could change (particularly with the 'image handlers' like the gdcm code,
and the deferred read vs memmap issues). I would really have liked to work
those things out more fully, but I realize now it had been stopping me with
just getting on with things. After the basic structure of old dicom and new
pydicom are in place, we can tackle the remaining big issues one by one.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#240 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGQVeyRFsx-1qD1lRUJ4iuLiWrxvM-0Pks5rT3_cgaJpZM4HH6hL>
.
|
@SimonBiggs I had originally hoped that what you are suggesting could be done, just to have both installed, basically. So if someone does The |
Make sense. I guess just need to bite the bullet and make the breaking change. I think the 1.0.0 is the perfect time for it. People will understand, it's kind of implied when a 0.* version is installed that the way the package works will probably change a bit before 1.0.0. |
I agree, I think packaging the old version and new version together in version |
Update: created branch Edit: the |
So Strangely, the wheel I built for python2.7 when installed back in a virtualenv, on |
How did you build the wheel? And can you post a stack trace? |
Also, what was the name of the wheel before you removed it? |
Here is the process including the stack trace. The pydicom-clean directory is just a git clone of my local repository to ensure no extra files that were not in version control. The python version at c:\python27\python.exe is the same used to create the wheel, simply using
|
Try creating a [wheel]
universal=1 and then rebuilding |
I thought I couldn't do that as we have 2to3? My memory is vague on this now as later it was converted to universal code that worked for both py2 and py3, but at least in the old release the 'use_2to3' is True in setup.py. |
I see that error you are having is a known issue on windows, though not sure why wheel vs source would matter. |
If it's really just on Windows, could a Linux VM be spun up quick just to push past the error? |
@ZeroCool2u The Windows wheel needs to be built on a Windows computer, so wouldn't help in this case. (Maybe it's possible for pure-Python packages, I've never looked, but that would seem unsafe) @darcymason Building the wheel, pip installing it, and importing |
@stevenengler, building the wheel from within the env sounded great, but doesn't seem to work for me - still the same error message. However, as strange as this all is, I seem to have no problem installing from pypi via pip using the source archive for python 2. Does anyone know if not having the wheel actually limits anything? |
@darcymason I'm not sure about having the wheel, but from the stack trace it looks like the issue is a unsuccessful type conversion when Python tries to use a C module. It seems like in Tag.py the return value is cast as a long, but the cast isn't done in a way that the C module detects it. Maybe init the variable to 0 early on and explicitly define it's type then? Not sure if that would help, but that's what the stack trace looks like it's saying. |
@darcymason I think installing from source shouldn't be a problem for anyone. Probably the biggest advantage of having a wheel is that it includes any compiled c/c++ code (extra important on Windows), but for pydicom there isn't any, so I think having just the source is fine. Another advantage to having a wheel is that the installation is quicker, but that's only minor. In general it's good to support a wheel, but in this case where there is some strange bug, I think it's fine to just include the source and you won't limit anything. Plus this is still considered the old version, and you can always add the wheel later if you need to. |
Any news about the 1.0.0 release? Is installing from git stable? Thanks |
The master should generally be stable at this point. One possible exception is the format of images returned from decompression (gdcm, jpeg_ls), as in #273 and related issues. I'd like to see that solved before the 1.0.0 release. |
Closing this issue, with discussion about release moved to #523. |
Can we get a pypi release of pydicom with the new package name? The fact you cannot install from pypi with the new package name is causing issues like: patmun/pynetdicom_legacy#43.
The text was updated successfully, but these errors were encountered: