Difference between revisions of "Code"

From Mu2eWiki
Jump to navigation Jump to search
Line 1: Line 1:
 
== Building code ==
 
== Building code ==
  
Consult the [[OfflineStatus]] page to learn which branch or tag of Mu2e Offline you should start from.
+
* [[GitIntro]] code management preliminaries for newcomers
 
+
* [[OfflineStatus]] which branch or tag of Mu2e Offline you should start from
* Basic recipe for creating a satellite release based on 'Mu2e_release' installed in cvmfs
+
* [[GitHubWorkflow|git]] - code repository checkout and commit procedures
<pre>
+
* [[Muse]] - Mu2e code setup and build system
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups
+
* [[scons]] - internal commercial build tool, called by Muse
setup mu2e
+
* [[CodeDebugging|Debugging]]
/cvmfs/mu2e.opensciencegrid.org/Offline/'Mu2e_release'/SLF6/prof/Offline/bin/createSatelliteRelease
+
* [http://cdcvs.fnal.gov/lxr/mu2eofflinesoftware/index.html LXR] - cross-linked code browser
cd Satellite
+
* [https://www.github.com/Mu2e Mu2e github organization]
source setup.sh
 
[add content]
 
scons -j 4
 
</pre>
 
 
 
* Basic recipe for setup, full checkout and build (GitHub) (For more details see [[GitHubWorkflow]]). The following will produce a working directory that CANNOT be used to update the remote repository.  It is useful only for running tests, not for developing code.
 
<pre>
 
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups
 
setup mu2e
 
git clone git@github.com:Mu2e/Offline
 
cd Offline
 
git checkout -b work
 
source setup.sh
 
scons -j 4
 
</pre>
 
 
 
* Basic recipe for setup, full checkout and build (Redmine)
 
<pre>
 
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups
 
setup mu2e
 
 
 
- The following will produce a working directory that CANNOT be used to update the remote repository.  It is useful only for running tests, not for developing code. -
 
git clone http://cdcvs.fnal.gov/projects/mu2eofflinesoftwaremu2eoffline/Offline.git
 
 
 
- For a read-write working directory appropriate for developing code.-
 
git clone ssh://p-mu2eofflinesoftwaremu2eoffline@cdcvs.fnal.gov/cvs/projects/mu2eofflinesoftwaremu2eoffline/Offline.git
 
 
 
cd Offline
 
git checkout -b work
 
source setup.sh
 
scons -j 4
 
</pre>
 
* for building options (debug,trigger,visualization) see <code>./buildopts --help</code>
 
<br>
 
* [[ReleaseList]] - notes on purpose for each published release
 
 
* [[UPS|UPS]] - notes on using the UPS product setup
 
* [[UPS|UPS]] - notes on using the UPS product setup
* [[Git|git]] - code repository management
+
* [[Redmine]] - a few pieces of code are still in the redmine git repository
* [[scons]] - primary code build tool
 
* [[Muse]] - Mu2e multi-repo build system
 
* [[LinkLists|Link Lists]]
 
* [http://cdcvs.fnal.gov/lxr/mu2eofflinesoftware/index.html LXR] - cross-linked code browser
 
* [[GitPartialCheckout| pgit ]] - git partial checkout for building only the part of the code base you need
 
* [[SatelliteRelease|Satellite Releases]] - for building only the part of the code base you need
 
* [[CodeDebugging|Debugging]]
 
 
* [[CVS]] - a few pieces of code are still in the CVS repository
 
* [[CVS]] - a few pieces of code are still in the CVS repository
  

Revision as of 20:45, 13 May 2021

Building code

  • GitIntro code management preliminaries for newcomers
  • OfflineStatus which branch or tag of Mu2e Offline you should start from
  • git - code repository checkout and commit procedures
  • Muse - Mu2e code setup and build system
  • scons - internal commercial build tool, called by Muse
  • Debugging
  • LXR - cross-linked code browser
  • Mu2e github organization
  • UPS - notes on using the UPS product setup
  • Redmine - a few pieces of code are still in the redmine git repository
  • CVS - a few pieces of code are still in the CVS repository

Configuring executables

Modules, Products, and Services

Code Management

Standards and Practices

External Packages