podaac/l2ss-py

Collection associations can be overwritten if made while release branch is opened

Closed this issue · 3 comments

This happened recently. The timeline was:

  1. 5/25 Release branch 1.5.0 created
  2. 5/27 UMM-S collection association for CYGNSS_NOAA_L2_SWSP_25KM_V1.2 was made, and committed to develop branch (via automated workflow)
  3. 5/31 1.5.0 released. Upon merge to main branch, collection associations in CMR are overwritten with values in ops_collection.txt

This means the association made on 5/27 was overwritten after release. A solution might be:

a. Pull collection association changes into release branch before release OR
b. Update CMR umm updater to not overwrite existing UMM-S collection associations

The preferred solution would probably be (b), but (a) works as a workaround for now.

Investigation result:

  1. The jenkinsfile: podaac-tutorial / jenkins / Jenkinsfile
    The file only contains the remove association command on the collections that are in the uat/ops_failed.txt
    The remove association command just calls the delete from requests, no update or anything happens there.
  2. The jupyter notebook: podaac-tutorial / notebooks / test_notebooks / harmony_l2_subsetter_test.ipynb
    Based on my understanding this test only compares the current and expected data.
    Did not found any indication for updating the information of the association.

Conclusion:
The test does not have any code in it, that will overwrite / update the existing collection data in CMR.
That can be done by a user, so option (b) looks invalid.

The only place I found that could overwrite the CMR UMM-S data is:
podaac / l2ss-py / .github / workflows / build-pipeline.yml
Line 130 - name: Publish UMM-S with new version
Executes only on release

Crazy thought, what if the pipeline making changes to uat_associations.txt and ops_associations.txt committed the changes directly to master instead of develop?
That would force a merge prior to release going to master
We'd have to skip the triggered build when that commit is pushed to master so a new version doesn't get published
The pipeline would have to run the diff against the contents of master instead of develop

This regression/auto-testing has been moved to a unique repository https://github.com/podaac/l2ss-py-autotest

This issue is no longer relevant.