Essential information and group infrastructure
Authors: Tiago P. Peixoto1
Affiliations: 1Inverse Complexity Lab
License: CC-BY
Summary of group infrastructure
Activity | Service | Links |
---|---|---|
Misc information | Wiki | https:// |
Shared knowledge base | Lab Manual | https:// |
Code collaboration | Git & Gitlab | https:// |
File sharing | Nextcloud | https:// |
Chat | Matrix/Element | https://element.io, main room |
Video conference | Teams & Jitsi | https:// |
Bibliography sharing | Zotero | https:// |
Git and gitlab¶
We use git to share code and work collaboratively. In particular we use the
gitlab instance at https://
Members of the lab should join the invcomplexity group, so that shared access to internal projects can be managed more easily.
We should avoid github for our own work.
Collaborating using git¶
The idea of decentralized version control systems like git is that there’s no central repository to which collaborators are required to push. Although some people use git with a central shared repository, this actually beats the purpose of the invention of such systems, and emulates instead the old “pre-git” way of doing things, e.g. using CVS — a now defunct versioning control system.
Instead, the decentralized mode of operation should be:
- The originator (or maintainer) of the project creates their repository (a.k.a. the ‘upstream’ repo).
- Contributors fork the upstream repo, and make their modifications locally.
- When ready, the local modifications can be pushed to the upstream repository by opening a merge request.
- The maintainer may then accept (or not) the merge request to the upstream repo.
Naturally, merge requests can also be done between any two repos, so any structure of collaboration is allowed.
The identity of the “upstream” is just a convention shared by the collaborators, hence the lack of centralization. If the maintainer disappears, one of the forked repositories can become the “upstream” as long as there’s a consensus. This is also a much better way to handle conflicts.
Sharing files¶
We use nextcloud at cloud.skewed.de to share files. Please open an account there, and consider installing the desktop client, so that your folders get automatically synchronized.
We also have a team folder there called InvComplexity
where we can share
files simultaneously between all members of the group. We are also free to share
folders with any subset of the group members, or even with external users.
Chat¶
We use the matrix open protocol for decentralized, encrypted, and real-time communication. We use the Element web client, and the Element x client for mobile, but any compliant client will work.
We have a members-only room, that lab members should join.
Video calls¶
Due to institutional constraints, the meeting rooms can only be booked via MS Teams, so we tend do default to that for video calls.
However, we also have a jisti server available at
https://
Paper references¶
We share bibliography using Zotero, with our own group here.
Wiki¶
Everything that does not fit here, e.g. that are not intended for outside
visibility, like informal things, links to bureaucratic forms, please refer to
the wiki at https://