mobility-team / mobility

Mobility, an open-source library for mobility modelisation
MIT License
16 stars 10 forks source link

Adding instructions to README file for set up a local development env… #79

Closed ranms25 closed 7 months ago

ranms25 commented 1 year ago

Hi, this PR was sent as part of OSDC taught by: @szabgab. I want to contribute to your project by adding instructions on how to set up a local development environment using Docker in the project's README file. Is important for several reasons:

  1. Ease of onboarding: new contributors or developers joining the project may not be familiar with the required software and libraries needed to develop and run the project. Providing clear instructions on how to set up a local development environment using Docker, it makes it easier for them to get up and running quickly.
  2. Reproducibility: By using Docker to set up the local development environment, it ensures that all developers are using the same development environment with the same versions of software and libraries. This makes it easier to reproduce bugs and issues reported by other developers, as well as ensure that the project is built and tested in a consistent manner across different environments.
  3. Isolation: Docker allows developers to create a containerized environment that is isolated from the host system, preventing potential conflicts with other software installed on the host. This helps ensure that the project's dependencies do not conflict with other software, potentially causing issues or breaking the development environment. Thanks, Ran
Mind-the-Cap commented 1 year ago

Hi @ranms25, thanks for the PR and sorry for the delay.

I'm not sure we want to favorize the use of Docker for our project, as the need for isolation seems limited and that good coverage ensures reproducibility. What do you think @FlxPo ?

FlxPo commented 1 year ago

Thanks @ranms25 for the PR.

I think Docker is overkill for now, and that the use of conda / venv and pip already solves the points 1, 2 et 3 (we could provide instructions on how to setup a clean working environment, though).

We don't have dependencies that are not cross platform, which for me would be the only thing that would require us to use Docker.

If people want to use mobility in a setting where Docker makes sense (like deploying some app / model on a server), they are more likely to include mobility in the requirements of a custom dockerfile, than to use our own setup, which might not fit their needs.

szabgab commented 1 year ago

One of the reasons I recommend my students to create a Docker-based configuration is that running the code inside Docker will reduce the risk involved in running code we are unfamiliar with on our computers. I'd be glad to read your opinion about this.

Mind-the-Cap commented 7 months ago

Hi, I do think this is a good strategy to reduce the risk, but the choice should be at the individual level, so I'd rather not include this in our README.

Given the purpose of our library and the reputation of the companies supporting it, I think it is sufficient to rely on trust, and let users take the prevention measures they prefer.

I'm then closing this PR, thanks!