Skip to content
New issue

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

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

Already on GitHub? # to your account

Removing signac project id #541

Closed
vyasr opened this issue Apr 25, 2021 · 9 comments
Closed

Removing signac project id #541

vyasr opened this issue Apr 25, 2021 · 9 comments
Labels
pinned Instructs stale bot to ignore this issue.
Milestone

Comments

@vyasr
Copy link
Contributor

vyasr commented Apr 25, 2021

I've been meaning to raise this question for a while, and in anticipation of resolving #527 I think now is a good time to consider it: should we remove the project name in signac schema version 2? Currently we use it sparingly, pretty much just to provide a string representation of a project and in associated functions like naming a temporary project. signac-flow uses this to generate the unique submission id, but the fact that a project name is not guaranteed to be unique anyway forced us to add the project directory to the submission id hash anyway. We can always introduce alternative methods in signac-flow's FlowProject to give more meaningfully named submissions, if the main value is that a submitted cluster job can be associated with a project based on the name. Is there any other meaningful upside to keeping this, rather than just falling back to the name of the current directory? I think it's worth considering as part of the shift, especially since we're removing workspace configurability.

@bdice
Copy link
Member

bdice commented Apr 26, 2021

When copying/moving projects between machines, the project name helps to differentiate between projects that might otherwise only be distinguished by their filesystem path. Also the project name definitely helps me manage my cluster jobs because a user-readable snippet of the project name is in the beginning of the signac-flow submitted job name (though it is insufficient for unique identification as mentioned above).

I don't see a huge benefit to removing the name. I think it's a helpful option for archival purposes and having a name gives some important insight about the project contents to users who are given data on a filesystem and have no prior experience with signac. If other developers felt strongly that this should be removed, I would argue for adding a default configuration value; I would settle for not requiring a name.

@vyasr
Copy link
Contributor Author

vyasr commented Apr 26, 2021

Regarding the cluster jobs, while I see the utility I think it's misplaced. It would be more appropriate to use the name of the FlowProject subclass to identify submissions, not the signac project. Submission-related logic (including conveniences like naming) belong in flow, not signac. We could revisit that renaming as part of the ongoing schema refactorings.

I would also settle for making a name optional. I frequently get annoyed when doing signac init because I forget to provide a name (I don't find them useful and always forget to create projects with them). However, I do see the value in archival purposes. I see a project name as something that should be optional metadata, but not something that should be required.

@bdice
Copy link
Member

bdice commented Apr 26, 2021

Re: FlowProject name, we might want to update our examples to show that in practice, like class IdealGasProject(FlowProject):. Otherwise that is a good idea.

Suggestions for a default name value? Project?

@csadorf
Copy link
Contributor

csadorf commented Apr 26, 2021

I am in favor of removing it or – if we want to keep it – to use it as some well-defined, but optional, project metadata. In that case we should also consider to support other metadata, like author(s) and copyright, etc.

@vyasr
Copy link
Contributor Author

vyasr commented Apr 26, 2021

At the signac dev meeting today we had pretty much unanimous approval for removing the project id. We want a clean separation between signac's internal data and user-facing metadata, so the config is not the correct place be storing this. A couple of options for future improvement:

  1. We can encourage users to create a README.md on signac init
  2. We could add a new "state point" file to projects, something like project-description.toml that could support some set of standard metadata.

Both options are independent of this issue and could be handled subsequently if interested, but removal of the signac id should not be contingent on implementing them.

@stale
Copy link

stale bot commented Jun 26, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 26, 2021
@bdice bdice added the pinned Instructs stale bot to ignore this issue. label Jun 26, 2021
@stale stale bot removed the stale label Jun 26, 2021
@cbkerr
Copy link
Member

cbkerr commented Nov 18, 2021

I often store several "projects" that could be initialized in my init.py, picking via a command line option.

Each project has different sets of relevant state points (eg for different figures that all run the same code). Putting them all in one project could make it harder to filter or work with the jobs. Currently, I use the project id to prevent me from initializing a different project with its corresponding different cross section of jobs. What's a way to replace this use case?

EDIT: If directory names are replacing this guess I just pass in different root directories and my directory structure would become:


/projects/fig1/
               signac.rc
               workspace
/projects/fig2/
               signac.rc
               workspace
/src/init.py
     project.py

@vyasr
Copy link
Contributor Author

vyasr commented Nov 18, 2021

@cbkerr So at any given time do you only have one project "active"? If they each have different names you cannot initialize them in the same folder (in signac 1.x), so aren't they just different projects? Don't you need to delete one to create the others?

@vyasr vyasr added this to the v2.0.0 milestone Dec 6, 2021
@vyasr
Copy link
Contributor Author

vyasr commented Mar 4, 2022

I think we can consider this resolved between #677 and #684.

@vyasr vyasr closed this as completed Mar 4, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
pinned Instructs stale bot to ignore this issue.
Projects
None yet
Development

No branches or pull requests

4 participants