As a Windows user of evalml, I would like the option of installing evalml through conda to make it easier to install dependencies with binaries (tensorflow, xgboost, catboost).
The plan is to create two conda packages called evalml-core and evalml, the former would only install the core dependencies.
The one issue that has come up is that in the full package needs nlp_primitives for all tests to run but nlp_primitives is not a conda package yet. For the time being we will either:
nlp_primitivesevalml core package (the tests only get run when the package is being built so hopefully any errors would be caught by our CI?)I spoke with @rwedge and the feature tools team is currently splitting the nlp_primitives package into nlp-primitives and nlp-primitives-core. Once that is done, they will create an nlp-primitives conda package and we can run all the tests in the evalml conda package.
Just spoke with @dsherry about how this would impact our release process. We decided that we would follow the approach of the featuretools team by creating a pre-release before our official release to check if conda can successfully build our package and run the tests.
In order for conda to run our unit tests, we need to add __init__ files to all of our test directories so they are included in our pypi packages. I will create a pre-release to test this hypothesis and if that works, I will merge those changes to main and create a new release of evalml (so that the latest package version on pypi has the test files).
Hey @freddyaboulton , so now that v0.12.2 is out which includes our tests, what are the next steps for this?
@dsherry Now we are set to add our conda packages to conda forge. I will follow these steps to cretae evalml-core and evalml conda packages.
Once those are created (from version 0.12.2), I will submit a PR to our repo that adds a section about testing the conda package version to our release process document.
Just met with @freddyaboulton @eccabay @rwedge to discuss this.
Goal
Get evalml on conda-forge.
Problem
Currently nlp_primitives is a test requirement for evalml, but we're going to make it a core requirement soon in #367 . But we can't install nlp_primitives in conda, because we haven't put it on conda yet. This means a) users who install evalml via conda won't get nlp_primitives installed for them and b) we can't run unit tests of the text feature when we deploy evalml to conda.
Short-term options to get evalml on conda
Plan
nlp_primitives a core requirement, we'll update the conda install instructions in our docs to ask users to pip install nlp_primitives before using evalml (@eccabay )nlp_primitives to conda-forge (@rwedge) https://github.com/FeatureLabs/nlp_primitives/issues/25@freddyaboulton this look good to you?
Thanks for summarizing @dsherry - looks good to me!
@freddyaboulton the nlp-primitives package is now on conda-forge