Post-Copy Checklist¶
After running copier copy, see .copier-answers/post-copier-todos/rule-{{ rule_name }}.md for next steps on implementing your rule into the project. You can copy-paste the contents of that file into a GitHub issue or a project management tool to track the implementation of the rule.
Post Copier To-Do's for Rule {{ rule_name }}¶
This issue is for tracking the development of a rule that was copied from the able-workflow-rule-copier template.
Next steps¶
Required¶
-
workflow/rules/{% if module_type == 'none' %}{{ smk_file_name }}{% endif %} - Specify
input:directives as needed. - Specify
output:directives as needed. - Specify
params:directives as needed. - Specify
wildcards:directives as needed. -
workflow/scripts/{% if not uses_conda %}rules_global{% else %}rules_conda_{{ conda_env_key }}{% endif %}{{ _copier_conf.sep }}{{ rule_name }}.py - Assign the desired snakemake directives (e.g.,
inputto variables. - Fill in the rule logic within main().
- Confirm typecheck and lint checks pass with the following commands
tox -e py312-typecheck-coretox -e py312-lint
-
test/workflow/scripts/{% if not uses_conda %}rules_global{% else %}rules_conda_{{ conda_env_key }}{% endif %}{{ _copier_conf.sep }}test_{{ rule_name }}.py.jinja - Update the
Snakemake()parameters of_build_snakemake()with the structure to match theinput:,output:,wildcards:andparams:directives provided by the rule under test. - Provide dummy or tiny subsets of data for tests in the appropriate location under
data/tests/. - Replace
test_main_runs()with the desired test logic for the script under test. - Confim tests pass with one of the following commands depending on the conda environment needed to run the test.
tox -e py312-workflow-unit-globaltox -e py312-workflow-unit-coretox -e py312-workflow-unit-extrastox -e py312-workflow-unit-docs
-
tests/workflow/rules/test_snakemake_{{ rule_name }}.py - Modify
create_dummy_input_file()to create the dummy to subsets of data for tests. - Moidfy
test_rule_{{ rule_name }}()to check that output data was created. - Confirm tests pass with the following command:
tox -e py312-workflow-rules
- Update documentation in
docs/docs/contributing/templates/rule-{{ rule_name }}.mdon how to use rule or expected output. - Run the
logs_to_watchrule and update the"logViewer.watch"section of.vscode/settings.jsonwith the results found inlogs/rules/logs_to_watch.log.