Open h3ndrk opened 3 years ago
Also mention Python 3.8 dependency.
I'd argue for a script, as I think it would be easier to keep up to date than external documentation and less of a hassle to set up the environment.
If we go that route, which modules should it install?
For sure these ones:
If the testing module is to be installed, we should change it's name, as "tester" is way too generic.
What about the individual modules and their evaluators? There are a couple options that seem reasonable to me:
genetic-individual-*
)genetic-individual-<type>
and genetic-individual-<type>-evaluator
IMHO, the script should have an --editable
option that is simply passed through to every pip install
call.
If the user only wants specific modules installed that way, they can always run the script without the option and then reinstall the desired modules with it.
IMHO, installing all modules will install evaluators that either have e.g. Tensorflow dependencies or will not be executed. We've build a Distributed Task Execution Framework. A single installation script does not make sense with that approach because we will rarely install all components in one environment.
Having CLI arguments needs further thinking but we could just install the modules by hand in the special environments we need them in.
Regarding the worker/router/algorithm, you will also not want to install all of them by default, because they may not be needed in your environment.
Because of this reasons, I'm prefering a documentation instead of a script.
Good point.
A script might still be useful for setting up development enviroments, as you'd likely want the router, evaluator, algorithm(s) and multiple individuals. But even then, you might not want all individuals and their dependencies, so the cli argument version would be nice.
But I agree, that this is not such a common use case.
I think, if we implement an installation script with a fancy general interface s.t. it works in all scenarios, but which get used by a very limited number of people, we might have more costs than benefits. Writing a little documentation is the better choice for now.
We need an installation script or documentation of the steps to install e.g. the distributed evolver.
All Python modules must be installed via:
Developers may want to use
--editable
within the above command.