Skip to content

Release Cycle, June 2025#560

Merged
TimothyWillard merged 154 commits into
mainfrom
dev
Jun 27, 2025
Merged

Release Cycle, June 2025#560
TimothyWillard merged 154 commits into
mainfrom
dev

Conversation

@TimothyWillard
Copy link
Copy Markdown
Contributor

@TimothyWillard TimothyWillard commented Apr 30, 2025

Description

This PR is a running accumulation of changes to merge from dev into main that will be merged at a to be decided release cycle.

News

New Features

Bug Fixes

Notes

@TimothyWillard TimothyWillard added the next release Marks a PR as a target to include in the next release. label Apr 30, 2025
@TimothyWillard TimothyWillard changed the title Dev Release Cycle, June 2025 Apr 30, 2025
@TimothyWillard TimothyWillard marked this pull request as ready for review June 19, 2025 12:15
emprzy
emprzy previously approved these changes Jun 23, 2025
## Updating `flepiMoP`

Updating `flepiMoP` is designed to work just the same as installing `flepiMoP`. Make sure that your clone of the `flepiMoP` repository is set to the branch your working with (if doing development or operations work) and then run the `hpc_install_or_update` script, substituting `<cluster-name>` with either `rockfish` or `longleaf`.
Updating `flepiMoP` is designed to work just the same as installing `flepiMoP`. First change directory to your `flepiMoP` installation and then make sure that your clone of the `flepiMoP` repository is set to the branch your working with (if doing development or operations work) and then run the `flepimop-install-<cluster-name>` script, substituting `<cluster-name>` with either `rockfish` or `longleaf`.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

slight typo -- set to the branch 'you are' working with..

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, corrected in bcd0ab1

anjalika-nande
anjalika-nande previously approved these changes Jun 24, 2025
Copy link
Copy Markdown
Collaborator

@anjalika-nande anjalika-nande left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just found a minor typo in the documentation that I commented on but otherwise seems good

@saraloo
Copy link
Copy Markdown
Contributor

saraloo commented Jun 24, 2025

Thanks! Not sure if I'm doing things wrong, but was trying to test the sync protocol thing following the instructions, but have reached this error...

ValueError: Exactly one config file source option must be provided; got {'config_files': (PosixPath('config_sample_2pop_inference.yml'), PosixPath('/scratch4/struelo1/flepimop-code/sloo2/flepiMoP/common/s3-idd-inference-runs.yml')), 'config_filepath': (PosixPath('/scratch4/struelo1/flepimop-code/sloo2/flepiMoP/examples/tutorials/config_sample_2pop_inference.yml'),)}.

I think maybe I had something like this before - in the step where I run
./batch/hpc_init rockfish
it asks for a config path so I provide one, but then when I then go to run the command in the documentation in line 272 in documentation/gitbook/how-to-run/advanced-run-guides/running-on-a-hpc-with-slurm.md
I get the above error. Am I doing something wrong here?

@TimothyWillard
Copy link
Copy Markdown
Contributor Author

Thanks! Not sure if I'm doing things wrong, but was trying to test the sync protocol thing following the instructions, but have reached this error...

ValueError: Exactly one config file source option must be provided; got {'config_files': (PosixPath('config_sample_2pop_inference.yml'), PosixPath('/scratch4/struelo1/flepimop-code/sloo2/flepiMoP/common/s3-idd-inference-runs.yml')), 'config_filepath': (PosixPath('/scratch4/struelo1/flepimop-code/sloo2/flepiMoP/examples/tutorials/config_sample_2pop_inference.yml'),)}.

I think maybe I had something like this before - in the step where I run ./batch/hpc_init rockfish it asks for a config path so I provide one, but then when I then go to run the command in the documentation in line 272 in documentation/gitbook/how-to-run/advanced-run-guides/running-on-a-hpc-with-slurm.md I get the above error. Am I doing something wrong here?

What is the output of echo $CONFIG_PATH? If the output is non-empty then you likely need to run unset CONFIG_PATH. The issue is coming from the conflicting configuration files being provided to the patch functionality, the option pulls from the environment variable if set and a value is not provided and the arguments use what is given. The batch/hpc_init command has an option to skip setting this environment variable as well.

emprzy added 14 commits June 25, 2025 10:16
Remove one line to patch error, eliminate some `pylint` errors
change test object and resolve `pylint` line length warning
Somehow got deleted or weren't carried over to this branch perhaps?
when will I remember to do this the first time through...
Change job to ignore `build/` directory changes
Switch to CI auto-creating and committing `Sphinx` docs
Disable `line-too-long` rule for examples in docstrings.
Consolidated duplicate args into the template data.
Split the `--sync` option into `--sync` flag and `--sync-protocol`
option with a default protocol uploading to 's3://idd-inference-runs'
when an explicit protocol is not given. Adjustments made to the HPC run
guide to account for this change.
* Correct typos/awkward wording,
* Clarify that `target` and `source` should differ for rsync,
* Add troubleshooting section focusing on `--dry-run` and suggesting
  that users should try this first before really running cmd,
* Corrected indentation of the resuming inference section, and
* Added a note about filter order to rsync example.
Consolidated `--source` and `--source-append`, as well as the
corresponding target options, into one option. Now `--source
'some/path'` will act as an override wheras prepending '+ ' like so
`--source '+ some/path'` will append. Corresponding documentation and
test changes to go along with this behavior change. Also extracted
`SyncOptions._true_path` private method into `_true_path` standalone
internal helper for ease of unit testing.
* Removed the `--sync` option to use the hardcoded Hopkins s3 default,
  and
* Added to the documentation about patching a sync configuration file
  for the Hopkins s3 use case.
Fix incorrect 'your' to 'you are' as noted by @anjalika-nande.
Accidentally dropped this change from #571 when rebasing `dev` to
`main`. Caught by @emprzy.
@saraloo
Copy link
Copy Markdown
Contributor

saraloo commented Jun 25, 2025

Okay thanks. I don't think that's clear from the documentation, so if it's just made explicit, or some other work around determined later that would be helpful. If we are essentially always going to be patching during a batch run (in order to save things to S3 for records), but always setting a CONFIG_PATH in the initialisation step, then this seems redundant. Fine to approve this for now though, but just a thought for later.

saraloo
saraloo previously approved these changes Jun 25, 2025
@TimothyWillard
Copy link
Copy Markdown
Contributor Author

Okay thanks. I don't think that's clear from the documentation, so if it's just made explicit, or some other work around determined later that would be helpful. If we are essentially always going to be patching during a batch run (in order to save things to S3 for records), but always setting a CONFIG_PATH in the initialisation step, then this seems redundant. Fine to approve this for now though, but just a thought for later.

Yeah, that makes since. To clarify, with the batch/hpc_init script, is the "press enter to skip" option not working as expected or do you want to remove setting $CONFIG_PATH all together?

@saraloo
Copy link
Copy Markdown
Contributor

saraloo commented Jun 26, 2025

No, the press enter to skip is clear, and for our previous usage $CONFIG_PATH was a necessary variable. But it's not clear to me whether it's needed in the new setup or instructions with the patching capabilities and since in all the set up examples the config is explicitly written in the commands.

What would be easiest from an operational point of view is for all these to just be set up in an initialisation script, and then some line of command written somewhere that can be copy-pasted, for example, for all flu forecasts without having to edit etc. Fine to be instructed otherwise, just the instructions are unclear here I think (probably because we have not operationalised this use yet? and might also be missing something in the markdown documentation).

Something more akin to the workflow that we had before was to just set a config, and then it read all the other information from the config and we were able to just run the job launcher script and it would populate the equivalent batch-calibrate command for us. As far as I can tell this isn't how it would now work - it would require more tweaking and manual edits to the actual command? Again, i'm fine with this for now, and I probably just need to test it out more on some actual runs to have a more formed opinion, but just flagging that having instructions to initialise a config in the init, then needing to unset it in order to patch a config (which should become pretty standard practice if we want to enforce this sync system) seems odd.

@TimothyWillard
Copy link
Copy Markdown
Contributor Author

TimothyWillard commented Jun 26, 2025

No, the press enter to skip is clear, and for our previous usage $CONFIG_PATH was a necessary variable. But it's not clear to me whether it's needed in the new setup or instructions with the patching capabilities and since in all the set up examples the config is explicitly written in the commands.

What would be easiest from an operational point of view is for all these to just be set up in an initialisation script, and then some line of command written somewhere that can be copy-pasted, for example, for all flu forecasts without having to edit etc. Fine to be instructed otherwise, just the instructions are unclear here I think (probably because we have not operationalised this use yet? and might also be missing something in the markdown documentation).

Something more akin to the workflow that we had before was to just set a config, and then it read all the other information from the config and we were able to just run the job launcher script and it would populate the equivalent batch-calibrate command for us. As far as I can tell this isn't how it would now work - it would require more tweaking and manual edits to the actual command? Again, i'm fine with this for now, and I probably just need to test it out more on some actual runs to have a more formed opinion, but just flagging that having instructions to initialise a config in the init, then needing to unset it in order to patch a config (which should become pretty standard practice if we want to enforce this sync system) seems odd.

Ah, okay, I think I understand the pain point here now. I've created #576 to carry on this discussion & work. To clarify the confusion about $CONFIG_PATH directly though, it is not necessary to set it to use flepimop batch-calibrate. In fact, I would go as far as to recommend not setting it as setting that environment variable only allows for using one configuration file which inhibits patching as you demonstrated earlier. I added this note to the documentation in 9ac1bd3.

Copy link
Copy Markdown
Contributor

@pearsonca pearsonca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good work.

@TimothyWillard TimothyWillard merged commit ad62f2d into main Jun 27, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

next release Marks a PR as a target to include in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants