Skip to content
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

Adding elapid #18896

Merged
merged 13 commits into from
Oct 3, 2022
Merged

Adding elapid #18896

merged 13 commits into from
Oct 3, 2022

Conversation

earth-chris
Copy link
Contributor

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found it was in an excellent condition.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found some lint.

Here's what I've got...

For recipes/elapid:

  • Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [13]
  • noarch packages can't have selectors. If the selectors are necessary, please remove noarch: python.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found some lint.

Here's what I've got...

For recipes/elapid:

  • Non noarch packages should have python requirement without any version constraints.
  • Non noarch packages should have python requirement without any version constraints.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found it was in an excellent condition.

@earth-chris
Copy link
Contributor Author

@conda-forge-admin, please ping team

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-webservice.

I was asked to ping @conda-forge/staged-recipes and so here I am doing that.

recipes/elapid/meta.yaml Outdated Show resolved Hide resolved
- python
- descartes >=1.1.0
- geopandas >=0.7.0
- glmnet # [py<39 and not win]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only thing here that makes this not a noarch: python recipe. Could you explain what this is about exactly? I.e., how come there is a dependency that is only needed when Python is old? (Might also be nice to add a comment to the recipe so contributors to the recipe in the future do not stumble upon this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's mostly because the glmnet package doesn't include a windows build. I was under the impression from this issue that python 3.9 and above was also unavailable. After checking the conda-forge page that doesn't appear to be the case, so it looks like this could just be [not win].

this is a statistical modeling package that has some nice-to-have features that are unavailable in sklearn. elapid works around this by using glmnet if it's installed, sklearn otherwise. I could technically drop the requirement entirely, but imho it's worth having those nice-to-haves.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@earth-chris FYI I did follow up with @civisanalytics to be able to maintain glmnet project; No one responded tho

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea, i saw that, thanks @amirhessam88. seems unlikely that they're gonna resume maintenance on the package, unfortunately, so future updates would probably have to come from someone who forks it and pushes a new package.

Copy link
Member

@saraedum saraedum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks alright to me. Please have a look at the comments above.

Christopher Anderson and others added 2 commits September 19, 2022 17:05
removed <py37 restriction, added dev_url

Co-authored-by: Julian Rüth <[email protected]>
@earth-chris
Copy link
Contributor Author

hi @saraedum, thanks so much for your review! I've accepted the edits you recommended and relaxed the python version constraints on glmnet (but kept the windows constraint; see package page for reference if needed). I just have one outstanding question clarifying your comments on major versions.

@earth-chris
Copy link
Contributor Author

@conda-forge-admin, please ping team

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-webservice.

I was asked to ping @conda-forge/staged-recipes and so here I am doing that.

Comment on lines 22 to 31
- descartes >=1.1.0
- geopandas >=0.7.0
- glmnet >=2.0,<2.3 # [not win] windows build unavailable; elapid will use sklearn features instead
- numpy >=1.18
- pandas >=1.0.3
- rasterio >=1.2.1
- rtree >=0.9
- scikit-learn >=0.22.2
- shapely >=1.7.0
- tqdm >=4.60.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- descartes >=1.1.0
- geopandas >=0.7.0
- glmnet >=2.0,<2.3 # [not win] windows build unavailable; elapid will use sklearn features instead
- numpy >=1.18
- pandas >=1.0.3
- rasterio >=1.2.1
- rtree >=0.9
- scikit-learn >=0.22.2
- shapely >=1.7.0
- tqdm >=4.60.0
- descartes >=1.1.0,<2
- geopandas >=0.7.0,<0.8
- glmnet >=2.0,<2.3 # [not win] windows build unavailable; elapid will use sklearn features instead
- numpy >=1.18
- pandas >=1.0.3,<2
- rasterio >=1.2.1,<2
- rtree >=0.9,<0.10
- scikit-learn >=0.22.2,<0.23
- shapely >=1.7.0,<2
- tqdm >=4.60.0,<5

Assuming that these all follow semantic versioning. They probably don't but pins can still be relaxed later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I've added upper bounds to some packages. I didn't accept these changes as-is because they are unnecessarily strict (elapid has been tested and works with sklearn 1.1.2, with geopandas 0.11.1, etc.).

- python
- descartes >=1.1.0
- geopandas >=0.7.0
- glmnet >=2.0,<2.3 # [not win] windows build unavailable; elapid will use sklearn features instead
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a suggestion for the next release of elapid, you could consider just issuing a warning if glmnet is not available, remove this dependency and set this recipe to noarch: python. The upside is that it will work without any further changes on apple silicon, aarch64, ….

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've removed the glmnet requirement in the recipe and set it to noarch: python. It already has a try/except for importing glmnet so it should be fine as-is.

@saraedum
Copy link
Member

Sorry for the delayed reaction here. This looks alright to me. Let me know if you want to make any further changes.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found some lint.

Here's what I've got...

For recipes/elapid:

  • noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >=3.6 in both host and run but you should check upstream for the package's Python compatibility.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found some lint.

Here's what I've got...

For recipes/elapid:

  • requirements: host: python>=3.7 must contain a space between the name and the pin, i.e. python >=3.7
  • requirements: run: python>=3.7 must contain a space between the name and the pin, i.e. python >=3.7
  • noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >=3.6 in both host and run but you should check upstream for the package's Python compatibility.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/elapid) and found it was in an excellent condition.

@earth-chris
Copy link
Contributor Author

alright @saraedum I think I've addressed your requested changes.

@saraedum saraedum merged commit 93b91fa into conda-forge:main Oct 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

4 participants