https://github.com/genome/genome
Raw File
Tip revision: 696b1e76360241cd1d426993324c79599aacac69 authored by Thomas B. Mooney on 13 March 2024, 13:58:29 UTC
Merge pull request #2077 from tmooney/retry_connections
Tip revision: 696b1e7
WHERE_TO_PUT_CODE
WHERE TO PUT CODE:

Perl:

 The modules go under lib/perl.

 In the shipit branch, the code is divided up as described below for C/C++/Java packages.
 We will move to the new structure as soon as it's easy to develop and test there.
 

C/C++/Java:

 These packages are in a new structure.
 
 Each gets its own top-level directory AND private git repo inside it.
 
 Git calls these submodules, and the whole story is in .gitmodules at
 the top of the repo.
 
 These directories start out empty, but you can get their code by doing:

    git submodule update --init somatic-sniper

  Updates to sub-modules must be committed and pushed independently,
  from inside the subdir.

    Example:

    git submodule update --init somatic-sniper
    cd somatic-sniper
    # change things
    git commit 
    git push origin master

  To make a new one, run:

    create-c-project $DIRNAME

  The above puts a new git repo on the git server, and links it in.

Test Data:

  If it's very small, put it next-to the test case, and use __FILE__ (in the
  Perl test script) to find the path when running.

  If it's big, make a separate project/submodule like above, so it won't 
  bog down the source repo.  We'll package it separately as a dependency.

XML/XSL:
 
 All of the web server infrastructure is under genome-webserver in both branches.

 For the specific entity views, they live under Genome/xsl in the master branch,
 and under various package dirs in the shipit branch, depending on what they view.

R:

 R libraries live next-to the Perl module which provides an interface to them
 for the rest of the system.

Externally developed software:

 If the software has a debian package, put in an apipe-support ticket, which will
 ultimately result in Systems adding it to the list of debian packages analysis depends-on,
 and will cause that package to be deployed onto all blades and workstations.

 If the software is not packaged, or not packaged in a way we need, at the latest version:

 If the software is on github, we should fork it into github.com/genome.  
 If it is NOT on github, we make a git repo to track our changes, and put it on github.com under "genome"
 If you are not on the genome team on github put in an apipe-support ticket.

 That repo should be linked as a submodule under the vendor/ subdirectory.  This tells us we have our own
 fork of the package we maintain.  Hopefully it just has packaging configuration added.

back to top