Is your feature request related to an enhancement? Please describe.
Currently PyNE is non-trivial to build (and sometimes install) due to the many compiled modules (see: build, and conda forge).
This means a lot of users are:
- Getting a lot more software than they need sometimes
- Being prevented from using PyNE due to build problems that may not affect the modules they are using.
What I propose is that PyNE be distributed in such a way that it is modular and users only install those modules they need/want; e.g., nucname, particle, data, activation (wrapper for pyne.transmute, pyne.cram, etc.), etc.
Is your feature request related to a problem? Please describe.
Yes: PyNE can't be built easily on all systems, and conda forge deployments have been delayed due to this.
Describe the solution or outcome you'd like.
PyNE be distributed so that much of the compiled code is only installed as an extra:
e.g.,
pip install pyne[activation]
How this would be implemented is complicated.
Ideally I would love it if you could create multiple wheels like:
pyne.whl
pyne[activation].whl
- ...
but I'm unsure if this is possible. The alternative would be to create many packages on pypi/conda like:
then in the metadata you would specify that pyne[activation] requires pyne_activation. Ideally this would be done in such a way to not require new repos. Note this would be a breaking change, and should create a major release.
Describe alternatives you've considered.
Just keep slogging through getting PyNE building on conda.
Additional Context
This sounds a lot like how ruamel.yaml works. Maybe worth investigating.
P.S. if we get consensus, I guess this is me volunteering.
Is your feature request related to an enhancement? Please describe.
Currently PyNE is non-trivial to build (and sometimes install) due to the many compiled modules (see: build, and conda forge).
This means a lot of users are:
What I propose is that PyNE be distributed in such a way that it is modular and users only install those modules they need/want; e.g.,
nucname,particle,data,activation(wrapper forpyne.transmute,pyne.cram, etc.), etc.Is your feature request related to a problem? Please describe.
Yes: PyNE can't be built easily on all systems, and conda forge deployments have been delayed due to this.
Describe the solution or outcome you'd like.
PyNE be distributed so that much of the compiled code is only installed as an extra:
e.g.,
How this would be implemented is complicated.
Ideally I would love it if you could create multiple wheels like:
pyne.whlpyne[activation].whlbut I'm unsure if this is possible. The alternative would be to create many packages on pypi/conda like:
pynepyne_activationthen in the metadata you would specify that
pyne[activation]requirespyne_activation. Ideally this would be done in such a way to not require new repos. Note this would be a breaking change, and should create a major release.Describe alternatives you've considered.
Just keep slogging through getting PyNE building on conda.
Additional Context
This sounds a lot like how
ruamel.yamlworks. Maybe worth investigating.P.S. if we get consensus, I guess this is me volunteering.