Skip to content
This repository was archived by the owner on Aug 11, 2023. It is now read-only.

Use wheels on travis - #44

Merged
astrofrog merged 1 commit into
astropy:masterfrom
mwcraig:travis-wheels
May 23, 2014
Merged

astrofrog merged 1 commit into
astropy:masterfrom
mwcraig:travis-wheels

Conversation

@mwcraig

@mwcraig mwcraig commented Mar 19, 2014

Copy link
Copy Markdown
Member

Care is taken to use a numpy wheel whose version matches the scipy/astropy wheels.

This is an alternative to #37 that also addresses #24 and hopefully addresses the issue that @cdeil had with #37.

An example of the builds it produces on travis is at https://travis-ci.org/astropy/ccdproc/builds/21107695

There are at least few things that should be done before this is merged, if this seems like the way to go:

  • Move the wheels on my server to either of the astropy wheelhouses (I'm willing to host, but adding a third place to look doesn't seem helpful).
  • Address omission of -w in sphinx build
  • [ ] Confirm what the minimum coverage expectations are for affiliated packages.

The script that produced these wheels on an Ubuntu VM isn't included in this PR, though I'm happy to share it.

EDIT may 7 2014: cross off coverage expectations for packages

@weaverba137

Copy link
Copy Markdown
Member

Any time frame on when this will make it into package-template?

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - could you look into the failures to see why this is failing? It looks like the failures are genuine and related to Cython being missing?

@mwcraig

mwcraig commented May 6, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- yes, will get to tonight or tomorrow

@mwcraig

mwcraig commented May 7, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- the issue was that I was only installing cython when astropy needed it to build but the package template itself requires cython too. I added an environmental variable to travis.yml to control whether the package needs cython and set it to true by default.

Should work, but travis is being poky tonight, os haven't confirmed yet.

@mwcraig

mwcraig commented May 7, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- travis works, but one more heads up -- this PR does not use the -w option to build_sphinx, which means that warnings are not elevated to errors. If you want that changed, let me know.

@cdeil cdeil mentioned this pull request May 7, 2014
2 tasks
@cdeil

cdeil commented May 7, 2014

Copy link
Copy Markdown
Member

@mwcraig If you could add -w to the build_sphinx here, that would be good. If you don't want to do that now, just make a separate issue.

In the above description you still have this listed as a TODO:

Confirm what the minimum coverage expectations are for affiliated packages.

I would suggest to remove this here ... it's a separate discussion and it would delay this important update to .travis.yml.

Comment thread .travis.yml Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you change to using the WHEELHOUSE on the astropy.org server instead of your private one?

Check out the astropy/.travis.yml file or the gammapy/.travis.yml files as working examples.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cdeil - I can -- are you no longer experiencing the numpy/scipy travis fail you mentioned in #37 ?

My wheelhouse is set up like this to ensure scipy/numpy versions play nicely:

numpy-1.5.1 directory, containing numpy, scipy, astropy built with numpy-1.5.1
numpy-1.6.2 directory, containing numpy, scipy, astropy built with numpy-1.6.2, etc.

If the problem in #37 isn't a problem this is unnecessary.
If the travis fail in #37 is still an issue I'd be happy to have you move this directory structure to astropy.org.

Either way, I have no interest in being a long-term wheels hoster...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cdeil - I can -- are you no longer experiencing the numpy/scipy travis fail you mentioned in #37 ?

I don't know ... but I think yes because I still have these configs commented out here (if these are the ones you mean ... I'm currently confused by the version matrix).

In any case @Cadair and @astrofrog are the ones maintaining the Astropy wheelhouse, so you have to discuss with them. Or for now just use the wheels that are there, but uncomment builds that don't work.

@astrofrog

Copy link
Copy Markdown
Member

+1 to add -w back to the sphinx build

Comment thread .travis.yml Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the latest is 1.8.1 (also below)

@mwcraig

mwcraig commented May 7, 2014

Copy link
Copy Markdown
Member Author

@cdeil @astrofrog -- now I remember why I took out the -w option: any idea how to fix this: https://travis-ci.org/astropy/package-template/jobs/24633863

Funny thing is that in a local build I don't get that warning (I do get a warning about the astropy intersphinx inventory not being found because astropy/astropy#1841 wasn't in 0.3.1).

@mwcraig

mwcraig commented May 7, 2014

Copy link
Copy Markdown
Member Author

fyi, you can ignore the error in build 48.4 on travis -- I had forgotten to create an index.html in the numpy-1.8.1 directory

The fail is the -w optoin

@mwcraig

mwcraig commented May 9, 2014

Copy link
Copy Markdown
Member Author

couple of updates:

@Cadair @astrofrog -- let me know which of you would like to host my wheels...they would reside in subdirectories named for the version of numpy, e.g. numpy-1.5.1, numpy-1.6.2. Each directory contains wheels for numpy, scipy and astropy built against that version of numpy.

With this structure my wheels won't interfere with anyone who relies on the current wheels in wheels.astropy.org because each of my numpy directories has its own index.

Once I know where the wheels will be hosted I'll update the PR with the correct URL.

@astrofrog astrofrog mentioned this pull request May 18, 2014
@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - could you provide the scripts that you are using to generate the wheels? (just to make sure we know how to generate them for future versions)

I don't think scipy should be installed by default. How about having a section that is an 'additional dependencies' section that contains just scipy, commented out by default, and a note that any other dependencies can be installed this way (and that if a wheel is not available, it will be fetched from pypi)?

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - if you have scripts to produce all the wheels in an automated way, could you add them (the scripts, not the wheels) to https://github.com/astropy/astropy-wheels? I think we should then also consider using these for astropy itself if we ever run into scipy/numpy version mismatches.

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - I'm uploading the wheels to my server so they will appear at wheels.astropy.org/numpy-1.x.x (upload is slow, give it a few hours)

@mwcraig

mwcraig commented May 18, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- this will need at least one more commit before it is ready. The commit I just pushed adds variables for dependencies that depend on a specific version of numpy and for dependencies that don't need a specific version.

I want to make sure a travis build succeeds with both variables set to something; after that I'll comment out the variables.

I'll get a PR in for the build scripts in the next day or two.

@mwcraig

mwcraig commented May 18, 2014

Copy link
Copy Markdown
Member Author

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - I'm going to add the index.php I use for the main wheel directory and which dynamically generates the list. It works for the main directory, so should be ok for these too?

@mwcraig

mwcraig commented May 18, 2014

Copy link
Copy Markdown
Member Author

It should; after that can you restart the Travis test?—
Sent from Mailbox for iPhone

On Sun, May 18, 2014 at 3:52 PM, Thomas Robitaille
[email protected] wrote:

@mwcraig - I'm going to add the index.php I use for the main wheel directory and which dynamically generates the list. It works for the main directory, so should be ok for these too?

Reply to this email directly or view it on GitHub:
#44 (comment)

@astrofrog

Copy link
Copy Markdown
Member

I restarted Travis

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - some builds are working, but some are having issues finding astropy. Any ideas?

@mwcraig

mwcraig commented May 18, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- A few were breaking because the latest numpy version was set to 1.8.0.

Stumped at the moment as to why the astropy downloads are succeeding sometimes and failing others, will take another look later tonight or first thing in the morning.

@mwcraig

mwcraig commented May 19, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- looks like it is timing out on some of the requests to wheels.astropy.org; I've turned up the verbosity of the pip output in the latest travis builds for this.

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - it looks like the URLs should have a trailing slash?

Skipping link http://wheels.astropy.org//numpy-1.8.1 (from -f); unknown archive format: .1

@mwcraig

mwcraig commented May 19, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- the trailing slash maybe helped a bit (though it still checks the URL itself first to see if ti is a wheel, I think). The only "real" fail is this one: https://travis-ci.org/astropy/package-template/jobs/25514971

The documentation build is failing because of the favicon.ico issue, separate from wheels.

@astrofrog

Copy link
Copy Markdown
Member

It passed! Now to be annoying, I have one more comment - at the moment, the longest builds are at the end, which is not 100% efficient because often four builds can happen at one time, so it actually makes sense in terms of efficiency to start the long ones and they can keep running while another worker goes through the shorter builds after. So if it's easy to do, move the three long builds from the bottom higher up.

@astrofrog

Copy link
Copy Markdown
Member

I think there are also maybe slightly too many configurations. For instance, I don't think we need to test all the Python/Numpy combinations. I would probably get rid of 2.6 with numpy 1.6 and 1.7 and 3.3 with numpy 1.7. What do you think?

@astrofrog

Copy link
Copy Markdown
Member

One last comment - can you add an egg_info build which includes no dependencies, like the core package? We weren't able to do this before astropy-helpers, but it should work now (and is one of the main reasons for astropy-helpers existing). So the test is that with no dependencies, python setup.py egg_info should work.

@mwcraig

mwcraig commented May 23, 2014

Copy link
Copy Markdown
Member Author

@astrofrog -- can you please take a look at this travis fail, which came up when I tried doing the coverage run with stable (instead of development) astropy: https://travis-ci.org/astropy/package-template/jobs/25837833

Still a couple cleanup changes coming before this is ready, should be soon.

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - I think coverage was not working for affiliated packages in 0.3.x, so it makes sense that you need to use the latest dev version.

@mwcraig

mwcraig commented May 23, 2014

Copy link
Copy Markdown
Member Author

@astrofrog

Copy link
Copy Markdown
Member

Done

@mwcraig

mwcraig commented May 23, 2014

Copy link
Copy Markdown
Member Author

@astrfrog - I think this is ready to go.

Summary of changes in response to your comments:

So if it's easy to do, move the three long builds from the bottom higher up.

I don't think it is possible to move the explicit builds (i.e. in the build matrix because of include) before the implicit ones. I did move the development builds to the top of the include section, and once 0.4 is released we can switch the coverage build to stable.

can you add an egg_info build which includes no dependencies, like the core package?

Done.

I would probably get rid of 2.6 with numpy 1.6 and 1.7 and 3.3 with numpy 1.7. What do you think?

Fine with me; I have no strong feelings about it, so I took these out.

Still to be done, after 0.4 is released:

Will create separate issues for these so they don't get forgotten...

  • build 0.4 wheels
  • Update .travis.yml to use stable for coverage test
  • Add 3.4 to list of pythons tested

@astrofrog

Copy link
Copy Markdown
Member

Thanks! I'm going to be a pain now and ask if you can squash these commits to make sure we keep the package-template history reasonably simple? (since all affiliated packages have to merge in the changes)

Care is taken to use a numpy wheel whose version matches the scipy/astropy wheels.

Previous commit messages:
Use development astropy for test --coverage
Install coverage when needed
Add cython to the travis build environment, controlled by an environmental variable
Also added a few more words of advice to the travis part of the README
Restore -w option to build_sphinx
Change URL for numpy-specific wheels and make scipy an optional install
Fix latest stable numpy version
Several tweaks to improve performance and reduce unnecessary tests
Remove debugging statements and cython install in egg_only
@mwcraig

mwcraig commented May 23, 2014

Copy link
Copy Markdown
Member Author

Squashed!

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - thanks! This will be super helpful for affiliated packages.

astrofrog added a commit that referenced this pull request May 23, 2014
@astrofrog
astrofrog merged commit 93587f4 into astropy:master May 23, 2014
@mwcraig
mwcraig deleted the travis-wheels branch May 24, 2014 00:13
@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - would it be possible for you to build wheels for the latest matplotlib stable version? Then I can copy them to wheels.astropy.org - thanks!

@mwcraig

mwcraig commented Jun 1, 2014

Copy link
Copy Markdown
Member Author

Can do, though maybe not until Monday...—
Sent from Mailbox

On Sun, Jun 1, 2014 at 4:25 PM, Thomas Robitaille
[email protected] wrote:

@mwcraig - would it be possible for you to build wheels for the latest matplotlib stable version? Then I can copy them to wheels.astropy.org - thanks!

Reply to this email directly or view it on GitHub:
#44 (comment)

@mwcraig

mwcraig commented Jun 2, 2014

Copy link
Copy Markdown
Member Author

Any particular backends that need to be built?

@astrofrog

Copy link
Copy Markdown
Member

I think even just having Agg should be enough. Thanks!

@mwcraig

mwcraig commented Jun 2, 2014

Copy link
Copy Markdown
Member Author

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - thanks! The issue is that the matplotlib builds depend on the numpy versions, so we need to build it similarly to astropy and scipy. Would it be easy to do this? We should make it available as part of out set of numpy-dependent-wheels.

@mwcraig

mwcraig commented Jun 2, 2014

Copy link
Copy Markdown
Member Author

Oops, was trying to get away with being lazy. Not a problem to build.

On Mon, Jun 2, 2014 at 10:42 AM, Thomas Robitaille <[email protected]

wrote:

@mwcraig https://github.com/mwcraig - thanks! The issue is that the
matplotlib builds depend on the numpy versions, so we need to build it
similarly to astropy and scipy. Would it be easy to do this? We should make
it available as part of out set of numpy-dependent-wheels.

—
Reply to this email directly or view it on GitHub
#44 (comment)
.

@mwcraig

mwcraig commented Jun 2, 2014

Copy link
Copy Markdown
Member Author

As long as I'm building, I'll also do scipy==0.14 and python3.4

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - thanks! Could you update the script in https://github.com/astropy/astropy-wheels/pull/1 once you've done it? Then I can also try and do it in future.

@mwcraig

mwcraig commented Jun 2, 2014

Copy link
Copy Markdown
Member Author

Wheels are now ready for download at: http://physics.mnstate.edu/craig/new_wheels.tar.gz

Not all versions of numpy build on all versions of python, but everything that I could build is built (i.e. matplotlib=1.3.1 for all numpy/python combos on which numpy could build, same for scipy-0.14.0, and astropy on py3.4)

@cdeil

cdeil commented Jun 4, 2014

Copy link
Copy Markdown
Member

@mwcraig Thanks for building scipy 0.14 wheels!

I'm using something in gammapy that only became available in that version:
https://travis-ci.org/gammapy/gammapy/jobs/26755796#L882

@astrofrog

Copy link
Copy Markdown
Member

Thanks @mwcraig!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants