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

add Continuous Integration using TravisCI #268

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

zimoun
Copy link

@zimoun zimoun commented May 16, 2016

Add short .travis.yml, as example.

This file is the recipe to automatically build the bempp code, using the external service TravisCI.
The service allows to build several branch, with different options (python 2.7, 3.5, etc.), and then to run the test suite.

For example, the eg-travis branch of the fork is built at each push and the indicator is given by this bullet: Build Status, which should be added in the README.
Moreover, options can be added, e.g., apply the build process at Pull-Request, etc.

This patch should add a quick view about the sanity of the project, and automatically report the issues of building (satisfied dependencies, etc.). Note that the external service TravisCI uses Ubuntu LTS (seems also possible to configure MacOS ?).

Hope this helps

@ucl-rsd-ci
Copy link

Can one of the admins verify this patch?

1 similar comment
@ucl-rsd-ci
Copy link

Can one of the admins verify this patch?

@zimoun
Copy link
Author

zimoun commented May 16, 2016

Hope there is enough comments in .travis.yml.

Since bempp is mixed, Python and C++, it is a bit tricky: download python dependency from Conda (numpy, cython, etc.)

As talked with @tbetcke by email, it should be better to deploy an internal CI service at UCL. But not sure that the effort will pay off. Moreover, this patch is currently doing the job for free : in term of maintenance, only one script to maintain, and in term of service, since all the tough work is externally done by the company Travis.

Hope this is pushing in the right direction.

@jenshnielsen
Copy link
Contributor

@zimoun @ucl-rsd-ci is the bot user for the internal UCL Jenkins server

@zimoun
Copy link
Author

zimoun commented May 16, 2016

thanks :-)

if there is Jenkins, does it mean that Continuous Integration is supported by UCL ? especially build and test ?
and if yes, is it reported somewhere ? e.g, kind of this dashboard (Gmsh)

Because even if things are done well, it is still difficult to build/compile bempp, especially the dependencies. And sometimes, just an upgrade somewhere else breaks.

Therefore, something is this flavor should be useful to help.

@mdavezac
Copy link

mdavezac commented Jun 6, 2016

Yes, CI is supported by UCL and BEM++ is built and tested there. Doesn't preclude travis though.

Why not install boost, tbb, and Dune via atp-get though?

@tbetcke
Copy link
Contributor

tbetcke commented Jun 7, 2016

Hi,

using the binaries on the homepage installation on supported Ubuntu
platforms is easy. Even if you want to build from source you can just use
the Ubuntu dependencies apart from Dune-Foamgrid. I haven't done an upgrade
to Ubuntu LTS 16.04 yet.
This is coming over the next couple of weeks together with a small change
in dependencies. I am currently working on replacing Dune Foamgrid
with a grid manager directly integrated into BEM++. Once this is completed
the build will only depend on standard dependencies and we can release
Ubuntu source packages.

On 6 June 2016 at 13:04, mdavezac [email protected] wrote:

Yes, CI is supported by UCL and BEM++ is built and tested there
http://development.rc.ucl.ac.uk/jenkins/job/bempp-main. Doesn't
preclude travis though.

Why not install boost, tbb, and Dune via atp-get though?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#268 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAHNKJX_Nr4LZFiig7R7OWyjphjGx1AWks5qJAzSgaJpZM4Ifc_3
.

Dr. Timo Betcke
Reader in Mathematics
University College London
Department of Mathematics
E-Mail: [email protected]
Tel.: +44 (0) 20-3108-4068
Fax.: +44 (0) 20-7383-5519

@zimoun
Copy link
Author

zimoun commented Jun 14, 2016

Hi,

the link to the dashboard is broken: Error 404.
And why not specifying it on the web page of bem++ ?

@mdavezac I have noticed that the version of the dependencies is sensible. For example, after my last update with Debian/testing, the version of boost was too high and then, the compilation failed with cryptic messages (from outside the project, it is hard to track why bempp fails to compile). Another example is the version 3.5 of CMake, on which we stayed stuck couple of days before be able to identify the issue. Therefore, I prefer letting bempp manage as dependencies as possible.

Last, it should be useful to report in the install guide all the versions possibly auto downloaded by CMake (it will simplify the identification of the compilation issues ; I am currently opening time to time the CMakeLists to extract these version number, which is not really user friendly)

@ucl-rsd-ci
Copy link

Can one of the admins verify this patch?

@mdavezac
Copy link

@tbetcke, as far as RSDG is concerned, using Travis for open-source projects is a good addition/alternative to the UCL Jenkins.

@zimoun
Copy link
Author

zimoun commented Jan 16, 2017

@mdavezac @tbetcke
From my point of view of simple user, I was stucked several times with compilation errors, and often with cryptic messages, i.e., hard to unknot the issues (dependencies, versions, etc.).

That's why --from my point of view-- it should be useful for users to have a clear list about the dependencies and their version. Moreover, the .travis.yml exposes a full recipe that builds (or not), therefore it provides a practical starting point. Last, but not least, it is more transparent that the non-exposed current Jenkins.

For sure, if all the tough work is already done with Jenkins, then all the recipes used to build and all the log of these builds should be publicly exposed. It will help, at least me :-)

I know it is out of topic (we should open another issue to talk about packaging), but I mention some work around conda that goes in this same direction: expose full recipe that builds.
https://github.com/zimoun/bempp-conda

@tbetcke
Copy link
Contributor

tbetcke commented Jan 16, 2017 via email

@zimoun
Copy link
Author

zimoun commented Jan 17, 2017

Hi Timo,

Feel free to extract all what you want about the conda packaging.

Nice for this new version !

The new functionality, is it publicly pushed into the repo ?
(I have seen changes about Maxwell in the development branch, nice ;-)

If yes, I could manage some time to update the conda recipe.
If no, let me know if you need some to update the conda package.

Thank you to point me the PPA. However, I am not able to find the link.

I know that the manpower is not infinite, and I am not currently able to evaluate the amplitude of the task, but I would like to write a clean Debian source package (if it is not already done for the ppa), maybe try to push it to their infrastucture. The issue concerns the dependencies; especially since you have patched some.

We should open a new issue to talk about packaging ?

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

Successfully merging this pull request may close these issues.

5 participants