12
$\begingroup$

Continuous integration (in the software engineering sense) is a common method to ensure that the code in your repository works as it should after each commit. For example, you can run a set of predefined unit tests and if any of them fails, you are immediately notified that the corresponding commit is faulty and needs to be improved.

Many code hosting services such as GitHub, Bitbucket or GitLab allow you to integrate CI services into your project in a very simple way. Moreover, if your project is open source, very often you can use such CI services for free. Personally, I'm observing that nowadays even scientific projects tend to make use of CI, e.g. here (to give an example from Quantum Field Theory), since this way of developing code obviously has a lot benefits.

Unfortunately, it seems that none of the popular CI services supports Wolfram Language. This might be related to the relative size of the Mathematica community or perhaps complicated licensing conditions from WRI.

Setting up a private CI server would be one possible solution, but the maintenance overhead can be quite significant and not every Mathematica programmer might have enough experience and free time to set up such an infrastructure for a few hobby projects. That is certainly way more work than to connect your GitHub repository to a popular CI service, for which you can find tons of tutorials on the internet.

Still, I wonder if someone has already thought in this direction and perhaps got some some interesting ideas or found some good workarounds?

Wolfram Cloud actually sounds like a perfect way to implement something in that direction, but I have no idea if WRI has any plans to offer such a service for Mathematica developers. Moreover, even if that happens at some point in the future, I doubt that such a service would be free of charge for FOSS projects.

$\endgroup$
11
  • 3
    $\begingroup$ Here is a client side example, see 'integration with git' section: 176573 $\endgroup$ – Kuba Oct 28 '19 at 12:21
  • 4
    $\begingroup$ Looks interesting, thanks. I tend to do something similar for my projects (essentially running the unit tests on my laptop), but the main advantage of using a CI service is that tests are run automatically and the results are visible to people creating pull requests. Which is useful once your project stops being a "one man show". $\endgroup$ – vsht Oct 28 '19 at 12:26
  • 1
    $\begingroup$ @vsht The issue is that currently the only "more-than-one-person-show" in town is WRI, basically, and so the market isn't there for any proper CI service and to set up CI on the Wolfram Cloud would be expensive and super tedious. WRI doesn't care about developers, so it's never gonna do anything like CI either. $\endgroup$ – b3m2a1 Oct 28 '19 at 16:42
  • $\begingroup$ I wonder if there is a way to do this with the Testing Framework (plus a cron job or some other type of trigger) reference.wolfram.com/language/tutorial/… $\endgroup$ – Joshua Schrier Oct 28 '19 at 16:50
  • 1
    $\begingroup$ @Arnoud : Try rolf@mertig.com. I am setting up my gluonvision mail server these days again. $\endgroup$ – Rolf Mertig Nov 14 '19 at 16:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.