A tale of
Collaborative & open development
of mathematical software, from the perspective of a GAP developer
Free Computational Mathematics,
Feb. 2019,
CIRM
Max Horn
Uni Gießen, Germany ⇨ Uni Siegen, Germany
“Those who cannot remember the past are condemned to repeat it.”
George Santayana, 1863-1952
Version control systems (VCS)
- don't manage your code by manually duplicating it
before change!
- VCS help you with keeping track of your changes and much more!
Lesson: use a VCS to manage your code/websites/data
- I use this for everything (e.g. this presentation)
- most popular today is git, but Mercurial is also great
I'll do it later (yeah, right)
- you wrote some code
- now you should also write tests
- but your setup makes this annoying
- result: you'll do it later (i.e.: never)
Lesson: Writing tests should be EASY
e.g. in GAP, test files are recorded interactive sessions
gap> ForAll([1..10], n -> Size(SymmetricGroup(n))
> = Factorial(n));
true