Code Monkey home page Code Monkey logo

vsc-software-stack's Introduction

VSC Software Stack

Central repository of easyconfigs used in the software installations on VSC clusters.

Repository structure

The organization of this repo is structured in standard git branches, each one providing a different degree of reliability:

  • vsc: main branch with software installations validated and tested by multiple VSC sites
  • site-kul: software installations specific to clusters managed by KU Leuven
  • site-ua: software installations specific to clusters managed by UAntwerp
  • site-ugent: software installations specific to clusters managed by UGent
  • site-vub: software installations specific to clusters managed by VUB
  • wip: software installations on any site that are work-in-progress

Bootstrap

Users of this repo are encouraged to work with git worktrees. This approach allows to have all easyconfigs available in the VSC Software Stack across all its branches under a single folder in your local system.

  1. Create a new folder for this repo
    $ mkdir vsc-software-stack
  2. Clone the bare repository (we keep it in a hidden folder as it won't be used directly)
    $ git clone --bare [email protected]:vscentrum/vsc-software-stack.git vsc-software-stack/.bare
  3. Point git to the bare repo already from the root folder
    $ echo "gitdir: ./.bare" > vsc-software-stack/.git
  4. Add worktrees for each branch in their own folder
    $ cd vsc-software-stack
    $ git worktree add vsc
    $ git worktree add wip

Commits with worktrees

Pushing/pulling changes in worktrees is no different than in a regular repo. As soon as you change directory into a worktree folder, you can work as if you were on a regular repo. There will be an active branch, you can create/checkout other branches and commit to any branch as usual.

Unreviewed branches

Branches such as wip or the site-* branches do not require PRs and reviews to push changes.

  1. Enter the target worktree/branch
    $ cd vsc-software-stack/wip
  2. Fetch updates in this branch from remote repository
    $ git fetch origin
    $ git pull origin wip
  3. Add and commit the files affected by this change
    $ git add 000_example/example.eb
    $ git commit -m "adding WIP easyconfig example.eb"
  4. Push new commit to remote branch in vsc-software-stack repo
    $ git push origin wip

Reviewed branches

The vsc branch requires a PR and a positive review (+ working test report) to merge changes into it. PRs should be open from a fork of the vsc-software-stack repo.

In the following we assume the following names for the remote repos:

  • origin: vsc-software-stack repo in vscentrum
  • personal: your fork of vsc-software-stack
  1. Enter the target worktree/branch
    $ cd vsc-software-stack/vsc
  2. Fetch updates in this branch from remote repository
    $ git fetch origin
    $ git pull origin vsc
    $ git push personal vsc
  3. Create a new local branch to work on the changes
    $ git checkout -b 000_example
  4. Add new easyconfigs from another worktree
    $ cp ../wip/000_example/example.eb e/example/example.eb
  5. Add and commit the files affected by this change
    $ git add e/example/example.eb
    $ git commit -m "adding easyconfig example.eb"
  6. Push local branch to your fork of the vsc-software-stack repo
    $ git push personal 000_example
  7. Create a new PR in GitHub from the branch 000_example in your fork of the vsc-software-stack to the vsc branch in the main vscentrum repo.

Links

vsc-software-stack's People

Contributors

boegel avatar lexming avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.