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

Global CI configs #13

Open
CJ-Wright opened this issue Jul 26, 2017 · 15 comments
Open

Global CI configs #13

CJ-Wright opened this issue Jul 26, 2017 · 15 comments
Assignees

Comments

@CJ-Wright
Copy link
Member

Add a script for getting the global ci configs

@CJ-Wright
Copy link
Member Author

This could be helpful for testing code against the NSLS-II stack from conda and from master. This in turn could help us when it comes time to release (as we hope that all the API breakage doesn't happen at once 😈 ). I don't like writing this in bash though so maybe xonsh?

@CJ-Wright
Copy link
Member Author

We may also want a build which only uses the NSLS-II conda stack (to really check that our builds will pass muster).

@CJ-Wright
Copy link
Member Author

CJ-Wright commented Aug 3, 2017

So there are a couple cases here (on a per package basis):

  1. Package only from conda (eg numpy)
  2. Package only from master branch via pip (eg streams) (discouraged but necessary)
  3. Package from pip or conda (either conda-forge or NSLS-II) (things where we may want to have cutting edge code but also test against the current standard).

Maybe we have three files per repo?

  1. req.txt the conda only reqs
  2. ce_req.txt for conda or cutting edge code
  3. pip_req.txt for pip only code

@CJ-Wright
Copy link
Member Author

@chiahaoliu @sbillinge

@CJ-Wright
Copy link
Member Author

Continuing with the specification build out:
For the reqs we just need a valid name on conda-forge/NSLS-II internal
For the ce_reqs we need both the conda name and the repo url
For the pip_reqs we just need the repo url

Note that for the NSLS-II conda stuff we need to install the main stack so we can find any dep collisions as they come up.

@CJ-Wright CJ-Wright self-assigned this Aug 3, 2017
@CJ-Wright
Copy link
Member Author

@danielballan

@sbillinge
Copy link
Member

sbillinge commented Aug 4, 2017 via email

@danielballan
Copy link

Since you tagged me, I'll offer my opinion: keep it simple. You need to install at least one thing from pip, so I suggest you simply install everything from pip using a standard requirements.txt, which Travis-CI will recognize automatically.

The alternative is an overengineered CI scheme which others will have to maintain someday. I've been simplifying ours lately, and I like the results.

@CJ-Wright
Copy link
Member Author

My only issues with that is a) some things we never get from pip (numpy), b) it means we will always test against bleeding edge code and sometimes we need to straddle released and bleeding edge. How do you handle these issues at NSLS-II?

@danielballan
Copy link

a) some things we never get from pip (numpy)

Why? You can get numpy from pip, and now that manylinux wheels exist it's as fast as conda. We do this for some bluesky CI builds.

b) it means we will always test against bleeding edge code and sometimes we need to straddle released and bleeding edge.

You can install latest stable releases using pip. I don't understand why you say using pip means always testing against bleeding-edge code.

@CJ-Wright
Copy link
Member Author

Ah sorry, I forgot that I could pin pip github to tags (my understanding that some of the NSLS-II stack was not on pypi)

@danielballan
Copy link

Right, you'll have to pin databroker to a tag until we put it on PyPI. Bluesky and ophyd are now released on PyPI in the standard way.

@CJ-Wright
Copy link
Member Author

I wish that there was a way for pip+github to got to the latest release

@danielballan
Copy link

That would be a GitHub thing. There might be a URL to access that latest tag of a repo.

@danielballan
Copy link

But don't burn much time on that -- databroker will be on PyPI soon. :- )

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

No branches or pull requests

3 participants