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.

  • 3
    $\begingroup$ Here is a client side example, see 'integration with git' section: 176573 $\endgroup$
    – Kuba
    Oct 28, 2019 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, 2019 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, 2019 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$ Oct 28, 2019 at 16:50
  • 1
    $\begingroup$ @Arnoud : Try [email protected]. I am setting up my gluonvision mail server these days again. $\endgroup$ Nov 14, 2019 at 16:44


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.