Skip to content

Move beyond a Monolithic deployment process #1561

@MicahGale

Description

@MicahGale

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:

  1. Getting a lot more software than they need sometimes
  2. 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:

  • pyne
  • pyne_activation

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions