Questions taken from https://coderefinery.github.io/2021-05-10-workshop/questions/
The biggest challenge is on-boarding new collaborators with no prior version control experience.:+1:
How do you reject changes? I have received a pull request that I don't want to merge. I have reviewed and asked for changes. What happens now? What if I wanted to just "reject" the request?
AFAIK git only works with plaintext source files. Is it possible to use with word files somehow? :+1::+1:
Since I am beginner I have issues with merge and rebase. I would like to know which is better in what circumstances. :+1: :+1:
Do you always work from terminal? are git GUIs really that useless?:+1:
What if our code get used, but doesn't get cited? :+1:
What is the main purpose of a DOI link? Why not simply cite the link address of the GitHub repository? :+1:
How do we test functions whose output is unknown to us? I.e. we know what they are supposed to do but don't know whether the result is correct or not :+1:
Some people like to collect functions in a script at the beginning/in the end of a script, others split them into several files that are then called from a master script (commonly done e.g. in R projects). What do you recommend? Should functions in external files come with a test? :+1:
Where/how to store data used in notebooks? :+1:
why a workflow and not a simple script? :+1:
could you explain the "detached HEAD" thing? :+1:
Is there best practice for testing out whether changes on multiple branches actually "work" together? :+1:
Can I use other text editors than nano?
I am having trouble understanding the difference between the use of reset and checkout commands.
What are the main differences between GitHub and Gitlab ? what are the advantages / drawbacks of each?
Have been using Git repositories & zenodo for documenting reseach code for publications, and done some collaborative work on Git (2-3 collaborators), but very little with "proper" branching,merging etc. Would like to have a more structured approach and make this a more established practice in the group (sharing repos, collaborative remote work, code review, and then archiving the repo for publication)
I have a question regarding importing history. When is this useful and which actions allow to do that and which do not? (forking, cloning, creating from template, etc.)
How to make randomness reproducible?
How to version data is a frequent question I am asked. How should we store, archive or manage large data sets in a way that is compatible with reproducibility goals?
any advantages to using conda over pip or vice-versa?
What is derivative work and what is not?
Not sure I understand the usefulness or expected use of a Binder. You pack all the dependencies and the projet code in one place and share with others. But can the others then run this on their local drive (like cloning a repo) and having all the materials, or is this just a sort of "online simulator" of your environment? In which situations is it then useful to create a Binder?
Comments on numerical precision, 0.2+0.3 != 0.5
Would you prefer your code to be 2x slower if it was easier to read it?
How do we go about modular code development if we are starting somewhere fresh, but there exists some previous code version which serves as a base (and this is not modular)?
What does “modular code development” mean for you?
Are there any recommendations/tips to test for modularity?
Can I share a notebook I created using CR conda env with someone who do not have it ?