Skip to content
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

Build / Plugins (buildpacks) #2

Open
sfermigier opened this issue Jun 3, 2022 · 0 comments
Open

Build / Plugins (buildpacks) #2

sfermigier opened this issue Jun 3, 2022 · 0 comments
Labels
Milestone

Comments

@sfermigier
Copy link
Member

sfermigier commented Jun 3, 2022

Build profiles

nua-build should detect (in the absence of specific configuration in nua-config.tom) the nature of a given project. Initial projects could include:

  • Python projects (using pip, poetry or pipenv, depending on the presence of the relevant config files).
  • Node projects (using npm or yarn)
  • PHP projects (using composer)
  • Ruby projects
  • Go projects
  • Java projects (using Maven or Gradle)
  • ...

Each build profile should be managed by one or more classes. Similar code already exists in Piku (https://github.com/piku/piku/blob/master/piku.py#L341 lines 340-620).

Alternatively, we could use Heroku's buildpacks, which are public and open source.

Extensibility

Initially the code base should contain all the relevant build profiles, but eventually it should be extensible using plugins.

For plugins we should investigate first the use of Pluggy (https://pluggy.readthedocs.io/) as it's a robust and proven approach.

Full lifecycle

Each of these "build profiles" could also be linked a "run profile". It is currently less clear what this runtime profiles will be.

We need to find the best way to keep this approach consistent but also flexible, using inheritance or delegation.

@sfermigier sfermigier added this to the M1 milestone Dec 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Ready
Development

No branches or pull requests

1 participant