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

Convert from shell to YAML-based build system #56

Open
natefoo opened this issue Jan 12, 2016 · 9 comments
Open

Convert from shell to YAML-based build system #56

natefoo opened this issue Jan 12, 2016 · 9 comments

Comments

@natefoo
Copy link
Member

natefoo commented Jan 12, 2016

Do others think this is a good idea? Should we do away with the shell script builds entirely?

@martenson
Copy link
Member

I am not too familiar, can you please summarize what we gain with this conversion?

@natefoo
Copy link
Member Author

natefoo commented Jan 12, 2016

More context is in #15. @erasche wrote an improvement where build instructions can be specified in YAML rather than writing shell scripts that do the build.

Initially we decided not to force this change since it made the whole thing more complex (and I give an example there where something I do fairly simply in a shell script would not be as easily done in YAML), but as Starforge has grown (and now has a generalized library and cli for building things), and the plan is to incorporate the YAML system into this (see #57), should we now push toward the YAML system for all packages?

Benefits are:

  • Less copying
  • Less hacky
  • More structured
  • Parseable version and other package metadata for automated updates

Drawbacks are as listed above.

@jxtx
Copy link
Contributor

jxtx commented Jan 12, 2016

I think I like conda's mix of yaml for metadata and shell for build instructions. A list of shell commands in a yaml file is not much better than a shell script. At the same time, why should the shell script need to do everything (install build dependencies, download files). Seems like this could be separated.

@bgruening
Copy link
Member

@natefoo I'm for yaml but I would like to redefine the yaml format to fit more into the conda format.
The is a lot of overlap between these projects and it would be nice to convert both into each other.

@jxtx is this also what you mean?

@jxtx
Copy link
Contributor

jxtx commented Jan 13, 2016

Mostly. I don't think we should move everything into YAML. Really, why not just use the conda approach entirely.

@bgruening
Copy link
Member

We probably don't need anything from the conda spec, but what is needed we should use. I really like it.

@bgruening
Copy link
Member

@natefoo also https://github.com/bioconda/bioconda-recipes is always worth a look. They are also producing binaries with a CentoOS-5 Docker Image.

@natefoo
Copy link
Member Author

natefoo commented Jan 13, 2016

I haven't used conda... for those of you that have, would it be conceivable to simply have Starforge use Conda to build packages in Docker? That way we end up with a lot less wheel reinvention.

@bgruening
Copy link
Member

Conda as build system does not use or depend on Docker afaik, but biodocker is using a old Docker image to produce the binaries. I guess it should be fairly simple to extract the binary out of the conda package if we want to use it outside of conda as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants