Skip to content

Outline

Main topics

Git tutorial

  • configuration
  • basic commands
  • branchs
  • Merge, rebase

Git branching strategies

  • Show example of usual programming pipeline in software companies => TDD, ... !! select only the most adapted to scientific soft -> ask Tru
  • Git flow
  • GitHub flow
  • Gitlab flow
  • Trunk based development (best for CD ??)

Gitlab project organisation

  • Use case with gitlab: developing, make presentation, ...
  • Agile/ scrum ??? -> check
  • Issue definition -> Bug tracker, feature or research proposal
  • Issue creation & templates using markdown
  • Issue labels (team/group level) to filter the list of issues
  • Issues board in order to follow your progress/research ??
  • Merges request/rebase
  • Tags
  • gitlab pages for hosting static files like documentation
  • snippets for sharing or save small pieces of code

Testing/ continuous integration

  • Best practices python testing
  • Container & Docker configuration in gitlab
  • Code quality badges

Documentation (python)

  • Sphinx config
  • Sphinx usage

Python packaging

  • setuptools -> find guidelines for automatic tags from git or propose the one in ariaec/version.py
  • Best practices
  • CHANGELOG/README/COPYRIGHT
  • pip ? conda ? other tool for installation ? Using the gitlab repository ?
  • gitlab docker or singularity for submitting the package/notebooks

Examples

1 Bioinformatic software development

  • Research/feature proposal on the issue list
  • Scripting phase (e.g. jupyter notebook, ...)
  • Define a task list on the related issue & develop the new issue on the corresponding branch
  • Feature integration in the soft using branching strategy
  • Testing phase/CI
  • Merge request/rebase
  • release branch/tags

2 Web interface/serveur development

  • Django configuration CD

Useful tools for python

  • Pycharm/intellij IDE (list features related to the lecture)
    • Code inspection
    • VCS
    • debugging tools
  • concurrency diagram
  • future lib

Tools/Tips for the slides

  • asciinema in order to show terminal commands as gifs
  • Show gitlab & terminal gifs at the same time
  • Links to cheatsheets
  • Host slides using gitlab pages ?? Or do similar thing as loic gouarin tuto ?

Sources

Edited by Fabrice ALLAIN