Skip to content

⚙️ Managing source code files

Keywords: Forge, git

Context and Objectives

🎯 What: guideline on how and where you should host your sources files.

Why: Scientific software development needs tracking and preserving the history of developments. It ensures they are easily accessible now and in the future, for anyone who needs to verify, audit or reuse.

Good hosting practices make collaboration and long-term maintenance much easier. Start every project by putting your code in a safe, traceable place!

👥 Audience: anyone writing or managing code — from small research scripts to large software projects.

🏁 Prerequisites

None.

The first step of any development project should be to consider code hosting.

💡 Advices and best Practices

Use a forge

Do not store code only on personal machines or shared drives !

A forge is an online platform designed to facilitate collaborative work and development project management.

In practice:

  • a website
  • users associated with groups and projects
  • tools that can be configured via a web interface
  • different levels of rights for tools and projects

Info

Creating a project (or group) on a Forge should be the first step of any development project.

Many forges are available for the academic world, see Forges de l’Enseignement supérieur et de la Recherche - Définition, usages, limitations rencontrées et analyse des besoins

Use a version control system

Version control : the practice of storing/maintaining all versions of a set of files.

  • allows several people to work simultaneously on a set of files:

    • synchronisation of changes, automatic file merging,
    • detection and resolution (more or less automatic...) of conflicts,
  • project history management:

    -access to any archived version, - information on who made a change, when, where, why... - automatic notifications to participants

🛠️ Recommended Tools :

Version control system are the basic tools of any forge and are therefore directly available on these platforms.

📚 References

Many tutorials, courses, and videos are available to guide you. Version control systems and forges are essential tools in modern software development. Their use is not difficult, with a low learning curve. Mastering them will significantly improve your workflow and collaboration capabilities.