https://version.aalto.fi is a Gitlab installation for the Aalto
community. Gitlab is a
git server and hosting facility (an open
source Github, basically).
Git in general
Git seems to have become the most popular and supported version control system, even if it does have some rough corners. See the general git page on this site for pointers.
Aalto Gitlab service
Aalto has a self-hosted Gitlab installation at https://version.aalto.fi, which has replaced most department-specific Gitlabs. With Aalto Gitlab, you can:
Have unlimited private repositories
Have whatever groups you need
Get local support
All support is provided by Aalto ITS. Since all data is stored within Aalto and is managed by Aalto, this is suitable for materials up to the “confidential” level.
Extra instructions for Aalto Gitlab
Always login with HAKA wherever you see the button. To use your Aalto
account otherwise, use
email@example.com and your Aalto password
(for example, use this with
https pushing and pulling). But, you
really should try to configure ssh keys for pushing and pulling.
For outside/public sharing read-only, you can make repositories public.
If you need to share with an outside collaborator, this is supported. These outside partners can access repositories shared with them, but not make new ones. They will get a special gitlab username/password, and should use that with the normal gitlab login boxes. To request an collaborator account, their Aalto sponsor should go here to the request form (employees only, more info). (You can always set a repository as public, so anyone can clone. Another hackish method is to add ssh deploy keys (read-only or read-write) for outside collaborators, but this wouldn’t be recommended for serious cases.)
For public projects where you want to build a community, you can also consider Github. There’s nothing wrong with having both sites for your group, just make sure people know about both. Gitlab can have public projects, and Github can also have group organizations.
NOTE! If your work contract type changes (e.g. staff -> visitor, student->employee, different department), the Aalto Version blocks the access as a “security” measure. Please contact Aalto ITS Servicedesk <firstname.lastname@example.org> to unblock you. This is annoying, but can’t be fixed yet.
The service doesn’t have quotas right now, but has limited resources and we expect everyone to use disk space responsibly. If you use too much space, you will be contacted. Just do your best to use the service well, and the admins will work with you to get your work done.
CodeRefinery Gitlab and Gitlab CI service
CodeRefinery is a publically funded project (by Nordforsk / Nordic e-Infrastructure Collaboration) which provides teaching and a GitLab platform for Nordic researchers. This is functionally the same as the Aalto Gitlab and may be more useful if you have cross-university collaboration, but requires more activation to set up.
They also have a Gitlab CI (continuous integration) service which can be used for automated building and testing. This is also free for Nordic researchers, and can be used even with Aalto Gitlab. Check their repository site info, if info isn’t there yet, then mail their support asking about it.
version.aalto.fi is a great resource for research groups. Research
groups should create a “Gitlab group” and give all their members access to
it. This way, code and important data will last longer than single
person’s time at Aalto. Add everyone as a member to this group so
that everyone can easily find code.
Think about the long term. Will you need access to this code in 5 years, and if so what will you do?
If you are a research group, put your code in a Gitlab group. The users can constantly switch, but the code will stay with the group.
If you are an individual, plan on needing a different location once you leave Aalto. If your code can become group code, include it in the group repository so at least someone will keep it at Aalto.
Zenodo is a long-term data archive. When you publish projects, consider archiving your code there. (It has integration with Github, which you might prefer to use if you are actually making your code open.) Your code is then citeable with a DOI.
In all cases, if multiple people are working on something, think about licenses at the beginning. If you don’t, you may be blocked from using your own work.
What password should I use? It is best to use HAKA to log in to gitlab, in which case you don’t need a separate gitlab password. To push, it is best to use ssh keys.
My account is blocked! That’s not a question, but Gitlab blocks users when your Aalto unit changes. This is unfortunately part of gitlab and hasn’t been worked around yet. Mail email@example.com with your username and request “my version.aalto.fi username XXX be unblocked (because my aalto unit changed)” and they should do it.
What happens when I leave, can I still access my stuff? Aalto can only support it’s community, so your projects should be owned by a group which you can continue collaborating after you leave (note that this is a major reason for group-based access control!). Email servicedesk for information on what to do to become an external collaborator.
Are there continuous integration (CI) services available? Not from Aalto (though you can run your own runners), but the CodeRefinery project has free CI services to Nordics, see their site and the description above.