Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename "profiles" to "build-configs" #27

Merged
merged 3 commits into from
Jan 26, 2024
Merged

Conversation

joverlee521
Copy link
Contributor

@joverlee521 joverlee521 commented Jan 17, 2024

Description of proposed changes

Rename "profiles" to "customizations" "build-configs" to avoid confusion with Snakemake's Profiles.

This allows us to also rename custom configs to config.yaml since it no longer clashes with Snakemake's Profile configs.

Related issue(s)

Motivated by feedback in #24

Checklist

  • Checks pass

Copy link
Member

@tsibley tsibley left a comment

Choose a reason for hiding this comment

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

This LGTM as a direction. I'm not sold on the exact term "customizations", but I don't have a better suggestion!

@joverlee521
Copy link
Contributor Author

I'm not sold on the exact term "customizations", but I don't have a better suggestion!

I'm not super happy about the term "customizations" either but I can't think of anything better. Definitely open to other people's suggestions 😄

@huddlej
Copy link

huddlej commented Jan 22, 2024

I think of the contents/meaning of those files/directories as defining "builds", since they include parameters and often other input files and custom commands required for the workflow. That name falls short of our definition of "build", since these files don't include all of the commands. We do tend to call these files "builds", though, in ncov.

I didn't like "customizations" initially, since it seems to downplay the critical nature of these files, but it's growing on me. It does seem to cover the combination of parameters plus custom (🙃) files and rules.

@victorlin
Copy link
Member

I'm also iffy on "customizations" and I think the reason is that it's typically used to represent something more specific. I'll try to explain below.

In comparing "configurations" vs. "customizations", both represent modifications of the software's default behavior. The difference lies in whether the modifications are formally supported features.

  • "Configurations" are formally supported features (e.g. a command line option like augur filter --min-date).
  • "Customizations" implies extension of the underlying software with new features (e.g. extension of workflow with new rules).

Ideally these would be classified separately, where most usage can be done with configurations alone, and only a few special cases need customization. The ncov workflow makes these concepts distinct: the configuration file supports additional customizations via custom_rules.

Currently this repo structure doesn't define structure that deeply, and maybe it shouldn't. I also can't think of a better name. Just wanted to share thoughts about why "customizations" sounds weird here.

@tsibley
Copy link
Member

tsibley commented Jan 22, 2024

@victorlin I think you've hit the nail on the head for why "customizations" isn't sitting easy with me.

@tsibley
Copy link
Member

tsibley commented Jan 22, 2024

@huddlej wrote:

That name falls short of our definition of "build", since these files don't include all of the commands.

Yeah, this is also part of why "customizations" doesn't feel right: generally if you're customizing something you have a single set of changes to tailor to your purposes. Here, we have many different sets of changes that seem to want/deserve their own proper noun and concept less abstract than "customizations" (or "configurations" for that matter). "Builds" would be in the running there…

@tsibley
Copy link
Member

tsibley commented Jan 22, 2024

…since these files don't include all of the commands.

…but they are colocated with the commands in the workflow. And in one sense the configs and input data determine the commands which the workflow will run. I think there'd be a decent case made for calling these "builds" or "build configurations".

@joverlee521
Copy link
Contributor Author

Thanks for spelling out "configurations" vs "customizations" @victorlin! This made me think of video game mods, which encompasses both...How would people feel about "modifications" or "build_modifications"?

@victorlin
Copy link
Member

"Modifications" makes more sense than "customizations", but isn't commonly used to describe "tailoring software to suit one's needs". I like the idea of centering on configurations (@tsibley's suggested "build configurations") that can optionally be extended with customizations - ncov already sets precedence for this.

However, "configurations" would be confusing with the existing config directory. I just caught up on discussions in #24, and if I'm understanding correctly, config is only used for defaults. In that case, I'd propose to rename config[configuration_]defaults (like ncov) and use customizations[build_]configurations here.

@joverlee521
Copy link
Contributor Author

I like the idea of centering on configurations (@tsibley's suggested "build configurations") that can optionally be extended with customizations - ncov already sets precedence for this.

That's fair!

In that case, I'd propose to rename config → [configuration_]defaults (like ncov) and use customizations → [build_]configurations here.

I'll go with defaults and build_configs to keep them short.

@tsibley
Copy link
Member

tsibley commented Jan 25, 2024

(Maybe it's just me, but can we consistently use hyphens instead of underscores, e.g. build-configs? Pretty please?)

Based on discussion in #27.

Renaming "config" to "defaults" to prevent confusion with the new
"build-configs" directory to be in the following commit.
To avoid confusion with Snakemake's Profiles¹, rename the "profiles"
directory to "build-configs" based on discussion in
#27.

This is expected to include subdirectories for specific build configs
that include both config params and custom Snakemake rules that extend
and/or override the core workflow.

This also allows us to rename the build specific configs from
"defaults.yaml" to "config.yaml" since they no longer clash with
Snakemake Profile configuration files.

¹ https://snakemake.readthedocs.io/en/stable/executing/cli.html#profiles
@joverlee521 joverlee521 changed the title Rename "profiles" to "customizations" Rename "profiles" to "build-configs" Jan 26, 2024
@joverlee521 joverlee521 merged commit cd1ef12 into main Jan 26, 2024
@joverlee521 joverlee521 deleted the add-customizations branch January 26, 2024 20:35
joverlee521 added a commit to nextstrain/mpox that referenced this pull request Jan 30, 2024
Part of work to update this repo to match the pathogen-repo-template.

Always provide default config values that can then easily be overridden
with --configfiles/--config options. This makes it simpler to change a
subset of config values or extend the default configs.

Renames the config/ to defaults/ to reflect this change.
Match changes in pathogen-repo-template in nextstrain/pathogen-repo-guide#27
j23414 added a commit to nextstrain/nipah that referenced this pull request Aug 2, 2024
Based on discussion in nextstrain/pathogen-repo-guide#27.

Renaming "config" to "defaults" to prevent confusion with the new
"build-configs" directory to be in the following commit.

Conforms to the pathogen-repo-guide's new directory structure.
https://github.com/nextstrain/pathogen-repo-guide/tree/89b3c5dbc9b8f6a009f4a19c3ac56113bc5511ee
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants