Skip to content

Bump to 1.6.0rc1#438

Merged
forsyth2 merged 1 commit intomainfrom
v1.6.0rc1
Apr 6, 2026
Merged

Bump to 1.6.0rc1#438
forsyth2 merged 1 commit intomainfrom
v1.6.0rc1

Conversation

@forsyth2
Copy link
Copy Markdown
Collaborator

@forsyth2 forsyth2 commented Apr 6, 2026

Bump to 1.6.0rc1

@forsyth2 forsyth2 self-assigned this Apr 6, 2026
@forsyth2 forsyth2 added the Update version Code specifically to update the version label Apr 6, 2026
@forsyth2 forsyth2 merged commit ed6a77e into main Apr 6, 2026
6 checks passed
@forsyth2 forsyth2 deleted the v1.6.0rc1 branch April 6, 2026 23:47
@forsyth2
Copy link
Copy Markdown
Collaborator Author

forsyth2 commented Apr 6, 2026

Release process notes:

Step 1: setup/testing

On Bebop:

cd ~/ez/zstash
git status
# On branch issue-374-refactor-tar-deletion
# nothing to commit, working tree clean

git fetch upstream main
git checkout main
git reset --hard upstream/main
git log --oneline | head -n 2
# 01fe023 Add Python 3.14 support by forcing parallelism to use fork (#434)
# 33f379d Merge pull request #416 from E3SM-Project/issue-374-refactor-tar-deletion

# Good, matches https://github.com/E3SM-Project/zstash/commits/main/

lcrc_conda
rm -rf build
conda clean --all --y
conda env create -f conda/dev.yml -n zstash_main_20260406
conda activate zstash_main_20260406
pre-commit run --all-files
python -m pip install .
pytest tests/unit/test_*.py
# 25 passed, 46 warnings in 1.96s
python -m unittest tests/integration/python_tests/group_by_command/test_*.py
# Ran 69 tests in 233.037s
# OK (skipped=32)
python -m unittest tests/integration/python_tests/group_by_workflow/test_*.py
# Ran 4 tests in 11.193s
# OK

cd ~/ez/zstash/tests/integration/bash_tests/run_from_chrysalis/
# If not done above, do the following:
# Log into globus.org
# Log into endpoints (LCRC Improv DTN, NERSC Perlmutter) at globus.org: File Manager > Add the endpoints in the "Collection" fields

# Reset completely:
# Revoke consents: https://auth.globus.org/v2/web/consents > Globus Endpoint Performance Monitoring > rescind all
# Run the following lines to set up the database_corruption test
rm ~/.zstash_globus_tokens.json
mkdir zstash_demo; echo 'file0 stuff' > zstash_demo/file0.txt
# NERSC_PERLMUTTER_ENDPOINT=6bdc7956-fc0f-4ad2-989c-7aa5ee643a79
zstash create --hpss=globus://6bdc7956-fc0f-4ad2-989c-7aa5ee643a79//global/homes/f/forsyth/zstash/tests/test_database_corruption_setup23 zstash_demo
# ERROR: /home/ac.forsyth2/.zstash.ini does not have the local Globus endpoint set nor could one be found in REGEX_ENDPOINT_MAP.

# That's because we're on Bebop, not Chrysalis....
cd ~/ez/zstash
git status
rm -rf tests/integration/bash_tests/run_from_chrysalis/zstash_demo/
git grep -in "chr" zstash
# zstash/extract.py:526:            # This is to synchronize the print statements.
# zstash/globus_utils.py:34:    r"chrlogin.*\.lcrc\.anl\.gov": "15288284-7006-4041-ba1a-6b52501e49f1",
# zstash/globus_utils.py:36:    r"chr.*\.lcrc\.anl\.gov": "15288284-7006-4041-ba1a-6b52501e49f1",
# zstash/parallel.py:22:    Used to synchronize the printing of the output between workers.
# zstash/parallel.py:37:        self._cv: multiprocessing.synchronize.Condition = multiprocessing.Condition()
hostname
# beboplogin5.lcrc.anl.gov

# Edit zstash/globus_utils.py
git diff
# r"beboplogin\d+.*\.lcrc\.anl\.gov": "15288284-7006-4041-ba1a-6b52501e49f1",
git checkout -b add-bebop-support
git add -A
pre-commit run --all-files
git commit -m "Add Bebop support"
git log --oneline | head -n 3
# 18f8187 Add Bebop support
# 01fe023 Add Python 3.14 support by forcing parallelism to use fork (#434)
# 33f379d Merge pull request #416 from E3SM-Project/issue-374-refactor-tar-deletion
python -m pip install .

# Restart testing:
cd ~/ez/zstash/tests/integration/bash_tests/run_from_chrysalis/
# Run the following lines to set up the database_corruption test
mkdir zstash_demo; echo 'file0 stuff' > zstash_demo/file0.txt
# NERSC_PERLMUTTER_ENDPOINT=6bdc7956-fc0f-4ad2-989c-7aa5ee643a79
zstash create --hpss=globus://6bdc7956-fc0f-4ad2-989c-7aa5ee643a79//global/homes/f/forsyth/zstash/tests/test_database_corruption_20260406 zstash_demo
# Paste auth code
rm -rf zstash_demo/
# Then, set a unique_id below to avoid using an old directory.
time ./database_corruption.bash test_database_corruption_20260406v2
# Success count: 25
# Fail count: 0
# Review: 

# real	8m34.807s
# user	0m5.272s
# sys	0m2.644s

time ./symlinks.sh
# real	0m2.010s
# No errors

# Make sure the new change didn't mess up the previously passing tests:
cd ~/ez/zstash
pytest tests/unit/test_*.py
# 25 passed, 46 warnings in 0.66s
python -m unittest tests/integration/python_tests/group_by_command/test_*.py
# Ran 69 tests in 69.216s
# OK (skipped=32)
python -m unittest tests/integration/python_tests/group_by_workflow/test_*.py
# Ran 4 tests in 3.263s
# OK

cd ~/ez/zstash/tests/integration/bash_tests/run_from_any/
./test_globus_tar_deletion.bash run20260406 /home/ac.forsyth2/ez/zstash /home/ac.forsyth2/zstash_tests LCRC_IMPROV_DTN_ENDPOINT
# ==========================================
# TEST RESULTS
# ==========================================
# ✓ blocking_non-keep PASSED
# ✓ non-blocking_non-keep PASSED
# ✓ blocking_keep PASSED
# ✓ non-blocking_keep PASSED
# ✓ blocking_progressive_deletion PASSED
# ✓ non-blocking_progressive_deletion PASSED
# ==========================================
# TEST SUMMARY
# ==========================================
# Total tests: 6
# Passed: 6
# Failed: 0
# ==========================================
# All globus tar deletion tests completed successfully.

# We should be able to use chrysalis below, even though we're on Bebop:
./globus_auth.bash run20260406 chrysalis /home/ac.forsyth2/ez/zstash /home/ac.forsyth2/zstash_tests /global/homes/f/forsyth/zstash_tests /home/f/forsyth/zstash_tests /compyfs/fors729/zstash_tests
# All globus_auth tests completed successfully.

cd ~/ez/zstash
git status
git push upstream add-bebop-support

Created and merged #437.

On Perlmutter:

cd ~/ez/zstash
git status
# On branch profile-refactored-tar-deletion
# nothing to commit, working tree clean
git fetch upstream main
git checkout main
git reset --hard upstream/main
git log --oneline | head -n 3
# 601eb4b Add Bebop support (#437)
# 01fe023 Add Python 3.14 support by forcing parallelism to use fork (#434)
# 33f379d Merge pull request #416 from E3SM-Project/issue-374-refactor-tar-deletion

# Good, matches https://github.com/E3SM-Project/zstash/commits/main/

nersc_conda
rm -rf build
conda clean --all --y
conda env create -f conda/dev.yml -n zstash_main_20260406
conda activate zstash_main_20260406
pre-commit run --all-files
python -m pip install .
pytest tests/unit/test_*.py
# 25 passed, 46 warnings in 0.35s
python -m unittest tests/integration/python_tests/group_by_command/test_*.py
# Ran 69 tests in 353.212s
# OK
python -m unittest tests/integration/python_tests/group_by_workflow/test_*.py
# Ran 4 tests in 3.127s
# OK

cd tests/integration/bash_tests/run_from_perlmutter/
time ./follow_symlinks.sh
# real	0m33.307s
# No errors
time ./test_update_non_empty_hpss.bash
# real	0m9.916s
# No errors

# Log into globus.org
# Log into endpoints (NERSC Perlmutter, Globus Tutorial Collection 1) at globus.org: File Manager > Add the endpoints in the "Collection" fields
time ./test_ls_globus.bash # Paste auth code
# real	0m41.239s
# No errors

cd ~/ez/zstash
git status
# No changes were made

Step 2: Bump versions

What is our new version? Nothing has been a breaking change, so we don't need to increment the major version.

https://github.com/E3SM-Project/zstash/commits/main/:

So, we will increment the minor version. We'll go from v1.5.0 to v1.6.0.

Step 2a: Confluence

Update https://e3sm.atlassian.net/wiki/spaces/DOC/pages/129732419/Packages+in+the+E3SM+Unified+conda+environment:

  • E3SM Unified 1.11.0: zstash v1.4.4
  • E3SM Unified 1.11.1: zstash v1.4.4
  • E3SM Unified 1.12.0: zstash v1.5.0
  • E3SM Unified 1.13.0: zstash v1.6.0

Step 2b: zstash repo

cd ~/ez/zstash
git fetch upstream main
git checkout -b v1.6.0rc1 upstream/main
tbump 1.6.0rc1 --no-tag
git diff HEAD^ HEAD | cat
# Yes, these match up with changes in https://github.com/E3SM-Project/zstash/pull/389
git push upstream v1.6.0rc1
# Create, and "Update version" label" to, and merge https://github.com/E3SM-Project/zstash/pull/438
git checkout main 
git fetch upstream
git reset --hard upstream/main
git tag -a v1.6.0rc1 -m "v1.6.0rc1"
# Delete the branch from the tbump step. Otherwise, the push command won't work.
git branch -D v1.6.0rc1
git push upstream v1.6.0rc1

v1.6.0rc1 now appears on Tags but not on Releases. Good, this is expected.

Step 2c: zstash-feedstock repo

cd /global/homes/f/forsyth/zstash-feedstock
curl -sL https://github.com/E3SM-Project/zstash/archive/v1.6.0rc1.tar.gz | openssl sha256
# SHA2-256(stdin)= 1f0d08b264dd8bf06266369b0377ea3a44519c674781f1e402626f0a2974173a
git status # Check for uncommitted changes
git fetch upstream dev
git checkout -b v1.6.0rc1 upstream/dev
emacs recipe/meta.yaml
# In `recipe/meta.yaml`, update the version and sha256 (and the build number if needed):
# {% set version = "1.6.0rc1" %}
# sha256: ... # The sha256 from the previous step
# number: 0 # build >>> number should always be 0

# From https://github.com/conda-forge/zppy-interfaces-feedstock/pull/5#pullrequestreview-3351366258:
# Please always check the diff between the tag you're making a package for and the previous one. Please look for changes e.g. in dev.yml

# Review:
# https://github.com/E3SM-Project/zstash/compare/v1.5.0...v1.6.0rc1

# conda/dev.yml changes:
#   - python >=3.11,<3.14 =>
#   - python >=3.11,<3.15
#   - setuptools

# In recipe/meta.yaml we already have:
# requirements:
#   host:
#     - python {{ python_min }}
#     - pip
#     - setuptools

#   run:
#     - python >={{ python_min }}
#     - sqlite
#     - six >=1.16.0
#     - globus-sdk >=3.15.0,<4.0

# So, it looks like there's nothing to change then.

git add -A
git commit -m "v1.6.0rc1"
git push forsyth2 v1.6.0rc1

Created conda-forge/zstash-feedstock#25

@forsyth2 forsyth2 mentioned this pull request Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Update version Code specifically to update the version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant