This repository contains files requires for SDSS-V operations at APO and LCO.
The directories apo/summary_files
and lco/summary_files
contain confSummray
and confSummaryF
files generates at the observatories for each configuration and FVC loop respectively. The structure is <observatory>/summary_files/NNNXXX/NNNMXX/
where summary files are grouped in directories of one hundred and those grouped in directories that contain a thousand summaries. Each thousand grouping directory (NNNXXX
) is a submodule pointing to a different repository in the form sdss/sdsscore_apo_summary_files_NNNXXX
(e.g., sdsscore_apo_summary_files_015XXX). This structure prevents the main sdsscore repository to grow larger than the limits allowed by GitHub.
sdsscore
can be cloned as any other git repository git
git clone [email protected]/sdsscore
This will checkout the main
branch and fetch any files that directly belong in the repository, but the summary files directories will appear empty. To initialise them do
git submodule init
(this will take a long time as many GBs of data will need to be downloaded). Then you can update the submodules with
git submodule update --recursive
The submodule directories will appear as detached repositories, pointing to the latest commits. If you want to commit files or make changes you will need to checkout the main
branch in the submodule and make and commit changes there.
In general, refer to the submodules documentation.
Every now and then the confSummary
files being generated will catch up with the available summary_files
submodules. If you need to add a new submodule, follow the following steps:
-
Create a new repository in the SDSS organisation with name
sdsscore_OBS_summary_files_NNNXXX
(e.g.,sdsscore_apo_summary_files_015XXX
). Make sure you select the option to add a README file so that the resulting repository has amain
branch. (We'll usesdsscore_apo_summary_files_015XXX
as the example for the rest of these instructions). -
SSH to the observatory where you need to add the submodule. SSH as your own user and make sure you are forwarding an SSH key that also allows you to clone GitHub repositories.
-
cd /home/sdss5/software/sdsscore/main
. Ideally you'll be adding the submodule before the previous submodule is full (in that case ignore the rest of this point), but if that's not the case jaeger, the product that creates theconfSummary
files will have continued creating summary files and adding them tosdsscore
. Some, but not all of the files may have been committed directly tosdsscore
instead to a submodule. Do not remove those files as you may lose them and with them the associated observations. Instead move the directory you want to replace with a submodule to a location outsidesdsscore
:mv apo/summary_files/015XXX ~/
. Stage and commit the changes, if any, to have a clean directory tree:git add . git commit -m "Clearing apo/015XXX" git push
-
Now you can add the new submodule with
git submodule add [email protected]:sdss/sdsscore_apo_summary_files_015XXX.git ./apo/summary_files/015XXX
-
Run the following command to commit the changes. This is the same script that gets run by a cronjob hourly to commit new summary files
bash /home/sdss5/config/cronjobs/sdsscore.sh
You will see a warning like this
warning: adding embedded git repository: apo/summary_files/015XXX hint: You've added another git repository inside your current repository. hint: Clones of the outer repository will not contain the contents of hint: the embedded repository and will not know how to obtain it. hint: If you meant to add a submodule, use: hint: hint: git submodule add <url> apo/summary_files/015XXX hint: hint: If you added this path by mistake, you can remove it from the hint: index with: hint: hint: git rm --cached apo/summary_files/015XXX hint: hint: See "git help submodule" for more information. [main be0a166d] Update submodules 2 files changed, 4 insertions(+) create mode 160000 apo/summary_files/015XXX
That is expected the first time. After the command finishes you should have a clean git session; running
git status
should returnOn branch main Your branch is up to date with 'origin/main'. nothing to commit, working tree clean
You can rerun the same
bash /home/sdss5/config/cronjobs/sdsscore.sh
and now it should complete without warnings. -
Now SSH to Utah and become the
sdssunit
user withsudo su - sdssunit
(you need to belong to the group of users allowed to becomesdssunit
). -
Run
module load sdsscore
andcd $SDSSCORE_DIR
. -
Run
git pull
, which should update.gitmodules
and add the new submodule. Initialise the submodule withgit submodule init
. Nowcd
to the new submodule directory (cd apo/summary_files/015XXX
) and rungit status
. If the submodule is not tracking themain
branch (e.g. it's detached) dogit checkout main
. -
Repeat these steps to add another submodule.