Giter VIP home page Giter VIP logo

Comments (3)

luckyjim avatar luckyjim commented on June 12, 2024

Goal : provide a GRAND env ready to use

List of use case:

U1. env for developper
U2. env for github CI
U3. env + release GRAND lib distribution
U4. env for intensive processing on computing center

List of contraints:

C1. Compilation of specific C library like: gull and turtle to use it in python
C2. External library ROOT from the CERN for IO
C3. GRAND user uses linux and MacOS (may be windows ?)
C4. easy to use with EDI (like eclipse, pycharm, VScode)

Technology available for distributing code:

T1. pip install and virtual env
T2. conda install
T3. docker or singularity
T4. virtual machine
(T5). hybride, some installations are left to the user

from grand.

luckyjim avatar luckyjim commented on June 12, 2024

Techno versus contraints

Techno C1 (C to python) C2 (ROOT) C3 (OS) C4 (EDI) Conclusion
T1 : pip Need wheel techno, may be tricky to obtain right result on different linux distrib and MacOS pip install ROOT doesn't exits ! in relation with C1 Yes very easy for user I think ROOT use exclude this method
T2 : conda Need conda build techno, may be tricky to obtain right result on different linux distrib and MacOS conda install available for ROOT in relation with C1 Yes very easy for user needs to be explored further
T3 : docker easy with ubuntu distrib docker images of root are regulary plublished in dockerhub docker run on MacOS, may be slowly (windows possibly ok with VM) tricky configuration with IDE (or not possible IDE inside docker ? ) to use env docker to develop Very good solution but users need to know some docker commands
T4 : VM easy with common linux distrib root can installed on centOS from yum package Virtual is availble for MacOS and Windows can provide a complete env developpment Heavy solution but robust
T5: ? ? ? ? need to solve each special case ...

Techno versus use case

Techno dev github CI release production Conclusion
T1 : pip will be great for gull, turtle, root possible but re-installation for each push it's not optimal and long will be great will be great in virtual anv but ... I think ROOT use exclude this method
T2 : conda most of IDE use now conda as env definition possible but re-installation for each push it's not optimal and long will be great but possible ? will be great but possible ? will be great but possible ? Needs to be explored further. Not a good solution for github
T3 : docker tricky configuration with IDE (or not possible IDE inside docker ? ) to use env docker to develop, VScode can do this best solution good solution but user must know some docker commands good solution, docker can be convert en singularity image used by HPC/HTC center Very good solution but users need to know some docker commands and some problem must solve for developpers
T4 : VM best solution all dev env can be configured and ready to use not possible heavy for user not possible can't be the unique solution
T5: ? possible not possible possible possible need to solve each special case ...

from grand.

luckyjim avatar luckyjim commented on June 12, 2024

Conclusion

Docker seems be the best solution and easy to set up without much study, it is essential for github CI and it's very convenient for production in data center as a singularity image. It is the developer who is the most penalize because the integration of this development tools is not a priori simple and this is an important point.

Without good development solution with docker, for developper Virtual Machine is the best solution, your opinion ?

Need to investigate dev technique with docker, see #30

from grand.

Related Issues (20)

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.