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
Use more compact schema for root directory files #197
Comments
@bdice @mikemhenry thoughts on this issue? I think this would be relatively straightforward to implement, the bigger question is what tradeoffs there are. For example, making this change would effectively discourage direct modification of the signac.rc file, for instance to change the workspace (you would have to go through the config API). Personally I think this is a good thing and would want to follow git's example; you can always modify .git/config if you know what you're doing, but it's better to put up some barriers to this for less-experienced users IMO. |
I propose:
I believe that the clear visibility of signac files (aside from caches/shell history files) is a good thing, especially for new users learning to navigate the data space. |
I'm mostly in agreement. All JSON document files should be visible, all internally generated caches etc should be hidden. The only file I'm not 100% sure about is signac.rc, since we tend to mirror git a lot and |
I think that having one way to modify the configuration is best for new users. Thus I would suggest putting |
Agreed, I'm not so sure about the config file either. |
I will have to think about this a bit. I like how clean it would be to keep |
I like this suggestion a lot. Is there anything blocking us from making this change now? |
I think what we need are some super basic guidelines for developers on how this folder is to be used. For example, should files related to flow be placed in |
Here's an attempt at compiling and organizing all the project-wide files. Feel free to edit this comment if I missed something and you have privileges to edit on my behalf.
My reasoning for the columns I included: It should be easy to separate code and data. I try keep a relatively strict separation and commit code but do not commit data. I consider the information in I propose this set of rules:
Consequences that should follow from these rules:
I think @csadorf's proposal of namespaces (subdirectories in |
I won't have time to think more about this for a while, so when I saw this comment I figured I'd add my thoughts now (I also added the signac_statepoints.json file to the table). While source control is something to consider, and code vs data is an important distinction, I think what determines whether or not something belongs in From that perspective, and knowing how |
I mostly agree with @bdice 's rules and I also agree with @vyasr ' assessment and slight shift in perspective. I also agree that removing the ability to change the workspace would probably make a lot of sense not only in this context, but also in general (this has been proposed and discussed before). With this I suggest the following addendum to the so far proposed rules:
This has the following advantages:
|
@vyasr :
This issue is the only place that I could find discussion of this topic, but I want to argue for maintaining the ability to configure the name of the workspace directory. I personally haved used the ability to rename workspace directory to increase the readability of the data. I was prototyping a genetic algorithm managed with signac (only I acknowledge that it might be that because I had the option, I found a use for it, and that if I didn’t have the option, I’d have managed in another way (I have a readme file anyway).
Allow workspace-name configurability might not conflict with moving
I personally like having a Will all users and their collaborators be familiar with git and know to look for a
I like the idea that I can delete the |
That's a valid argument for allowing configuration of the variable. I still think that the benefits of a standardized schema may outweigh this, since then it doesn't rely on user documentation at all. It would also allow us to specify a much more explicit data model in a way that would allow us to change the data layout much more easily in the future, which would be very valuable for some of the generalizations originally proposed in the signac 2.0 prototype. We can always discuss this specific configuration independently of the other parts of this issue, though. Regarding whether users will be familiar enough with git to know to look for a .git file, I don't really think that's super relevant. Mirroring git is a nice design pattern for us, but from a user perspective what really matters is whether users know how to figure out if something is a signac directory. Teaching a user to look for |
@glotzerlab/signac-committers I'm wondering what we should do with the The @csadorf in case you had specific goals in mind when adding this feature let us know! |
I agree with @vyasr on basically everything stated above.
I think you would know that repairs from a state point cache are needed if signac raised an error when opening jobs/reading state points. |
Yes, I agree that you'd know when repairs are necessary. The thing I don't know is how you would know whether to trust the |
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. |
Based on feature usage, the project root directory currently contains a number of special files. Some of them are hidden, some are not.
As suggested by @vyasr we may want to switch to a more compact storage format, for example by bundling all files within a
.signac
folder.The text was updated successfully, but these errors were encountered: