-
-
Notifications
You must be signed in to change notification settings - Fork 15.4k
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
wip: openstackclient: 1.7.1 -> 3.11.0 #25898
Conversation
# We don't have build requires | ||
doCheck = false; | ||
|
||
propagatedBuildInputs = [ |
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.
Might as well use propagatedBuildInputs = lib.attrValues generated;
considering they'are all propagated anyhow.
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.
yes, it would be better... but i get a strange error when I'm doing this:
nix-build ./ -A openstackclient --show-trace
error: while evaluating the attribute ‘propagatedBuildInputs’ of the derivation ‘python-openstackclient-3.11.0’ at /.../nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix:56:3:
cannot coerce a function to a string, at /.../nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix:56:3
I don't know for now why these expressions are not equivalent.
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.
hmm, I have to use fix
instead of fix'
but I still don't understand (ok, I don't try too much to understand....).
homepage = "http://docs.openstack.org/developer/python-openstackclient"; | ||
license = "License :: OSI Approved :: Apache Software License"; | ||
description = "OpenStack Command-line Client"; | ||
}; |
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.
maintainer?
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.
yes
pkgs/top-level/python-packages.nix
Outdated
@@ -4453,7 +4453,7 @@ in { | |||
|
|||
propagatedBuildInputs = with self; [ | |||
six keystoneclient prettytable oslo-utils oslo-i18n lxml httplib2 cliff | |||
dogpile_cache appdirs anyjson pbr openstackclient | |||
dogpile_cache appdirs anyjson pbr pkgs.openstackclient |
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 is going to cause trouble. What will happen is that all the propagatedBuildInputs
of openstackclient
will also be added to the PYTHONPATH
of this package. Is your intention that it should have openstackclient
on PATH
?
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.
openstackclient
brings python modules that are required by ironicclient
. So, it had to be in propagatedBuildInputs
. But ironicclient
is currently broken because cliff
is. I will simply mark ironicclient as broken and explain why in a commen.
In fact, ironicclient
should be removed and added to the openstaclient
one... but I personally really don't need it.
@FRidh I think I addressed all of your requests. Could you have a look please? |
The dependencies here are generated. What is missing is the script/documentation that was used to generate it. |
Currently, the only missing thing is that pipy2nix doesn't generate dependencies in a seperated files. I prepared a PR for pypi2nix but I was waiting to get feedback on this current PR in order to see if this is pertinent or not from the nixpkgs point of view. |
@nlewo I'm not really fond of having applications use their own dependency package sets because now you also have to make sure (from a security point of view) to keep those dependencies up to date. I've just sent a mail to |
@FRidh Ok, let's continue on |
What do you mean here? Do you want a separate file per package? There's no need for that when its generated. |
|
From the mailing list:
If you just need a single (or a few) different dependencies, then its quite straigthforward. |
The main problem is that the request library is used by other openstack dependencies (directs and transitives) and I then need to also override them. I tryied to do this for |
@nlewo perhaps I should have been more clear then. Its not ok to add additional versions of packages to
Then, |
@FRidh As mentionned by chat, it seems more complicated to partially use generated expressions than using all of them. |
you need to include documentation on how to update these packages |
- dependencies are private and have been generated by pypi2nix - ironicclient is marked as broken
@FRidh I reworked how requirments are generated and how they are used in order to minimize manual actions to facilitate the upgrade of this package. I use a patched version of pypi2nix to generate a clean file. I'm currently discussing with pypi2nix maintainers to see how this could be integrated... |
I finally put it into |
Dependencies are private and have been generated by pypi2nix.
Motivation for this change
Upgrade
Things done
(nix.useSandbox on NixOS,
or option
build-use-sandbox
innix.conf
on non-NixOS)
nix-shell -p nox --run "nox-review wip"
./result/bin/
)