-
-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Openstack Keystone from Liberty to Ocata #25752
Comments
Hello. About running OpenStack with python3, I worry too, now. |
@hyphon81 Happy to see other people interested by these packages, and I also use them to build a kind of devstack. The branch https://github.com/nlewo/nixpkgs/tree/keystone-ocata contains a working Keystone Ocata. Regarding dependencies, I think https://github.com/openstack/requirements/blob/stable/ocata/upper-constraints.txt. is the best way to get them because it contains strict version, without any conflicts (which is not the case if you take requirments in each subproject). But it only addresses runtime dependencies. |
@nlewo how about using pypi2nix for this entirely? How do you use these packages? Do you import the Python modules, or are they more like applications? And what about keeping it out of Nixpkgs but use it e.g. as an overlay?
AFAIK they were broken already
Let's not do this in
If you're going to maintain these expressions, then that is your choice. But if you're not going to support 2 or 3, be explicit about it.
How come they're so strict? Is it because the developers just use something like pip freeze, or is it because they depend on packages that changed API?
if its documented 👍 |
@FRidh I didn't want to use entirely pypi2nix mainly to share these packages with the community (feedback, security, tests infra,...). Moreover, there are also non python dependencies and some nixos modules that use Openstack applications. I don't understand why it is an objective to only have a single version of python package even if I understand it is an objective to minimize the number of versions. What is the problem of having several versions of the same modules? It seems a goal of nix is to be able to manage them at runtime. Why it is not the case at "build time"? Regarding the package I will have a look at overlays since I never used them. And I will also try to use https://github.com/garbas/nixpkgs-python. |
Nix can manage multiple versions of a package but Python cannot. Having multiple versions of a package in one set increases the risk of having multiple versions in a closure. This has already been happening too often.
|
@FRidh I created a bunch of derivations with Note: I also did it for openstackclient. |
How do you work with keystone? Do you import some of its modules? If so, then when you combine them with other packages you may end up with multiple versions of a package in a single closure. |
I don't manually import modules. I only use the keystone progam as here. |
Do you know if importing the modules is supported and if importing the modules is commonly done? If either is none, then we can package keystone as an application, and you can use pypi2nix for it in-tree without problems. |
I'm not sure to understand your question. |
Currently no time to work on this. And I will prefer to add it into nixpkgs-python repository. |
I started to upgrade Openstack Keystone form Liberty (end of life
since 2016-11-17) to Ocata (latest stable release). I create this
issue to centralize PRs and discussions related to this upgrade.
Keytone Ocata builds successfully and Keystone module tests are passed. I
still have to improve some packages... and submit them. I pushed a
temporary branch in my nixpkgs fork https://github.com/nlewo/nixpkgs/tree/keystone-ocata.
Version of modules are based on https://github.com/openstack/requirements/blob/stable/ocata/upper-constraints.txt.
Some questions/remarks:
I use pypi2nix to generate nix python packages skeletons. I need a
feedback for one of them in order to know if the generated format
is correct (mainly regarding coding style).
An example is the PR pythonPackages.rfc3986: 0.2.2 -> 0.4.1 #25751
A lot of dependencies needs to be updated. This will temporary
breaks other openstack components (Neutron, Nova,...). Can we
just mark them as broken?
I needed to add specific version of already existing packages. In
particular, the version 2.12.5 of
pythonPackages.requests
. This isrequired by
oslo.policy
:oslo.policy
requiresrequests!=2.12.2,!=2.13.0,>=2.10.0
. But to avoid conflict, I alsoadd to use this modules version as a dependency of some other
packages, such as sphinx. I then introduce a new version of
sphinx. I added the suffix
_openstack-ocata
to all of this kind ofpackages. Is it ok to add these kind of dependencies?
What about python version? At this moment, I only used python
2.7. I don't plan to run Keystone with python 3.x so I don't need
its dependencies to work with python3.x.
Could I disable them for python3?
Python package
hacking
needs really strict dependencies. I hadto add them especially for this package.
Several checkPhase are disabled because there is still a circular
import problem that I plan to solve.
I plan to also upgrade Nova, Neutron and Glance to the Ocata release.
The text was updated successfully, but these errors were encountered: