home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

20 rows where author_association = "MEMBER" and issue = 671019427 sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: reactions, created_at (date), updated_at (date)

user 4

  • crusaderky 11
  • shoyer 6
  • keewis 2
  • max-sixty 1

issue 1

  • We shouldn't require a recent version of setuptools to install xarray · 20 ✖

author_association 1

  • MEMBER · 20 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions performed_via_github_app issue
671842738 https://github.com/pydata/xarray/issues/4295#issuecomment-671842738 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY3MTg0MjczOA== crusaderky 6213168 2020-08-11T09:39:05Z 2020-08-11T09:39:05Z MEMBER

pandas is really unstable and its API breaks every other version. Extending its support window from 1 to 2 years would be extremely expensive and frustrating to maintain.

{
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
671816252 https://github.com/pydata/xarray/issues/4295#issuecomment-671816252 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY3MTgxNjI1Mg== crusaderky 6213168 2020-08-11T08:45:02Z 2020-08-11T08:45:02Z MEMBER

Discussion seems to have died down here. Can we get to a consensus and wrap this up? My vote is to simply require setuptools >= 38.4 at runtime (for which PR https://github.com/pydata/xarray/pull/4296 is ready to go).

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668872362 https://github.com/pydata/xarray/issues/4295#issuecomment-668872362 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODg3MjM2Mg== crusaderky 6213168 2020-08-04T23:13:20Z 2020-08-04T23:13:20Z MEMBER

It's not clear from the OP how they were installing -- i.e. from wheels or source, but if wheels, then pushing teh run time dependency back would fix it.

I don't think we should be discussing a solution that works on wheels but breaks on sources...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668866899 https://github.com/pydata/xarray/issues/4295#issuecomment-668866899 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODg2Njg5OQ== crusaderky 6213168 2020-08-04T22:59:29Z 2020-08-04T22:59:29Z MEMBER

Ubuntu 18.04 ships Python 3.6.5 and setuptools 39.0. Ubuntu 16.04 ships Python 3.5 so it's not to be taken into consideration anyway.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668865267 https://github.com/pydata/xarray/issues/4295#issuecomment-668865267 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODg2NTI2Nw== crusaderky 6213168 2020-08-04T22:55:12Z 2020-08-04T22:55:12Z MEMBER

My preference would be to say that we support setuptools 30.3 and newer, even if we can't test it

I have tested that setuptools < 36.7 breaks setuptools-scm; the installed version becomes 0.0.0 which in turns breaks any other package that contains a minimum version check (namely, pandas).

Also, I think we agreed when we implemented NEP29 that we should not support Python 3.6.0, but only the latest patch version for any given minor version of a package. Python 3.6.11 (released 1 month ago) is shipped with setuptools 40.6.

Any pip or conda-based environment can trivially upgrade from Python 3.6.0 to 3.6.11. The only users that have problems with getting setuptools >=38.4 (2.5 years old!!!) are those that use /usr/bin/python3 from a very old Linux distribution, which for some reason never got the patch updates of Python, AND expect everything to be compatible with the very latest python packages freshly downloaded from the internet. I mean, seriously?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668858302 https://github.com/pydata/xarray/issues/4295#issuecomment-668858302 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODg1ODMwMg== max-sixty 5635139 2020-08-04T22:35:32Z 2020-08-04T22:35:32Z MEMBER

FWIW according to https://numpy.org/neps/nep-0029-deprecation_policy.html, we can drop 3.6 support as-of June 2020.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668793103 https://github.com/pydata/xarray/issues/4295#issuecomment-668793103 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODc5MzEwMw== shoyer 1217238 2020-08-04T19:52:30Z 2020-08-04T19:52:30Z MEMBER

and in formatting_html.py

pkg_resources.resource_string("xarray", fname).decode("utf8")

This is used for pulling out static files (CSS/HTML) for xarray's HTML repr.

We could inline these resources as Python strings, but I think using separate files is cleaner and to my knowledge there is no better alternative than pkg_resources prior to Python 3.7.

On Python 3.7 we could use importlib.resources: https://docs.python.org/3/library/importlib.html#module-importlib.resources

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668401159 https://github.com/pydata/xarray/issues/4295#issuecomment-668401159 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODQwMTE1OQ== shoyer 1217238 2020-08-04T06:13:36Z 2020-08-04T06:13:36Z MEMBER

I'm not here to argue, but pyproject.toml was introduced in PEP-518, which was accepted over 4 years ago. I know packaging moves slowly but I'm curious how long something has to be around before becoming "established" and ceases to be "novel". 😉

It looks like pip has supported pyproject.toml since version 10.0.0, on 2018-04-14. That's more recent than Python 3.6 (which, to be fair, we are about to drop support for).

Consistent with my earlier suggestion about setuptools, I think we should support the oldest packaging tools that were released at the time of our earliest supported Python release. So if we switch to requiring Python 3.7 in our next major release, we could switch to using pyproject.toml, too.

{
    "total_count": 2,
    "+1": 2,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
668383854 https://github.com/pydata/xarray/issues/4295#issuecomment-668383854 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2ODM4Mzg1NA== shoyer 1217238 2020-08-04T05:14:32Z 2020-08-04T05:14:32Z MEMBER

My preference would be to say that we support setuptools 30.3 and newer, even if we can't test it:

  1. setuptools is extremely stable, compared to any of our other dependencies. I have a very hard time imagining any of the limited functionality we use breaking.
  2. It is apparently tricky to upgrade, at least it can't be done automatically with pip install on some platforms.

I don't think it's worth the hassle of switching to importlib backports, at least for now. Likewise, I would lean against switching to pyproject.toml until it is well established. There's just not much to be gained by switching to novel packaging technology...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667664327 https://github.com/pydata/xarray/issues/4295#issuecomment-667664327 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzY2NDMyNw== keewis 14808389 2020-08-02T11:51:01Z 2020-08-02T14:27:09Z MEMBER

I was going to suggest using preprocessing selectors, but as you say these are incompatible with noarch because they're used at package build time, not when installing.

The pint recipe worked around that by unconditionally installing importlib_metadata, even on python 3.8. Not sure if that's the best option, though. Other than that, NEP29 states that we can drop python 3.6 since Jun 23 2020, so if we bump python we could use stdlib's importlib.resources.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667659338 https://github.com/pydata/xarray/issues/4295#issuecomment-667659338 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzY1OTMzOA== crusaderky 6213168 2020-08-02T11:01:12Z 2020-08-02T11:01:12Z MEMBER

importlib.resources (available since 3.7) and importlib.metadata (available since 3.8). Both also have backports (importlib-resources and importlib-metadata), so we should be able to get rid of the install-dependency on setuptools.

-1 from me, because dependencies that are only required on a specific Python version are incompatible with noarch conda recipes. This would force us to change conda to build one package for each OS x python version.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667657310 https://github.com/pydata/xarray/issues/4295#issuecomment-667657310 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzY1NzMxMA== keewis 14808389 2020-08-02T10:38:36Z 2020-08-02T10:38:36Z MEMBER

the reason we install-depend on setuptools is that we use pkg_resources for constructing the version with setuptools_scm and for getting the paths to images and css used for the HTML repr. Both of these can be replaced with modules in the standard library: importlib.resources (available since 3.7) and importlib.metadata (available since 3.8). Both also have backports (importlib-resources and importlib-metadata), so we should be able to get rid of the install-dependency on setuptools.

setup_requires has been deprecated in favor of specifying the build dependency in pyproject.toml. Maybe we should use that instead? That way we don't have to care about users failing to bootstrap setuptools because pip will create a isolated environment with just the build dependencies, build the source into a wheel and then install that without using setuptools. So I think that means you can have a old version of setuptools installed in your environment and still pip-install a package that requires a newer version.

An additional advantage is that our setup.py can become ```python from setuptools import setup

if name == "main": setup() `` (we can't removesetup.py` entirely because it's required for editable installs)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667589873 https://github.com/pydata/xarray/issues/4295#issuecomment-667589873 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU4OTg3Mw== crusaderky 6213168 2020-08-01T21:34:05Z 2020-08-01T21:34:05Z MEMBER

PR ready for review

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667578007 https://github.com/pydata/xarray/issues/4295#issuecomment-667578007 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU3ODAwNw== crusaderky 6213168 2020-08-01T19:40:16Z 2020-08-01T19:40:16Z MEMBER

The key problem in "as-old-as-they-can-be" is that you end up with dependencies that depend on each other and are 1 year apart in release date. Since very frequently other projects are a lot less rigorous with testing vs old dependencies (if they test at all!) that has caused an endless amount of breakages in the past. Testing with all packages as of 1 year ago is a lot less bug-prone and time-wasting.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667576666 https://github.com/pydata/xarray/issues/4295#issuecomment-667576666 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU3NjY2Ng== crusaderky 6213168 2020-08-01T19:27:21Z 2020-08-01T19:27:21Z MEMBER

setuptools-scm doesn't work with setuptools < 36.7 (Nov 2017). The conda metadata is malformed for setuptools < 38.4 (Jan 2018) - it's missing a timestamp which prevents the minimum versions tool from working.

Is everybody happy with >= 38.4?

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667575675 https://github.com/pydata/xarray/issues/4295#issuecomment-667575675 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU3NTY3NQ== crusaderky 6213168 2020-08-01T19:19:11Z 2020-08-01T19:19:11Z MEMBER

then you should be testing with-as-old-as-they-can-be versions

We used to do that and we abandoned that policy in favour of the current rolling window, because it made developers (particularly the less experienced ones) waste a considerable amount of effort retaining backwards compatibility with obsolete versions of the dependencies that nobody cared about.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667571656 https://github.com/pydata/xarray/issues/4295#issuecomment-667571656 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU3MTY1Ng== shoyer 1217238 2020-08-01T18:40:35Z 2020-08-01T18:40:35Z MEMBER

I'm preparing a PR...

Thanks! This is greatly appreciated :)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667571613 https://github.com/pydata/xarray/issues/4295#issuecomment-667571613 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU3MTYxMw== shoyer 1217238 2020-08-01T18:40:16Z 2020-08-01T18:40:16Z MEMBER

I think setuptools should be treated more like Python/NumPy because it's hard installation requirement (and can be challenging to install).

The requirement is explicitly set in setup.cfg because don't ship what you don't test.

My sense is that setuptools is somewhat unique as a dependency because it's only used as part of installation

I am supportive of bumping minimum version requirements according to our policy when it serves a purpose, but I don't think we should do it "just because we can".

I see no problem in explicitly adding a special case to the policy for setuptools - I guess 24 months should be fine for all? I do not recommend just going back to "whatever the very first version that works" as we were doing before the introduction of the rolling policy.

24 months sounds about right to me. Or given that setuptools is typically bundled with Python, maybe "Whatever version of setuptools corresponds to our oldest supported Python release"?

(This is assuming that it's still possible to get that version of setuptools in CI environments. If not, we may need to reconsider...)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667569885 https://github.com/pydata/xarray/issues/4295#issuecomment-667569885 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU2OTg4NQ== crusaderky 6213168 2020-08-01T18:24:22Z 2020-08-01T18:24:22Z MEMBER

I was surprised to see this in our setup.cfg file, added by @crusaderky in #3628. The version requirement is not documented in our docs.

It is documented: https://xarray.pydata.org/en/stable/installing.html#minimum-dependency-versions

xarray adopts a rolling policy regarding the minimum supported version of its dependencies: [...] all other libraries: 6 months

The requirement is explicitly set in setup.cfg because don't ship what you don't test.

I see no problem in explicitly adding a special case to the policy for setuptools - I guess 24 months should be fine for all? I do not recommend just going back to "whatever the very first version that works" as we were doing before the introduction of the rolling policy.

I'm preparing a PR...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427
667559947 https://github.com/pydata/xarray/issues/4295#issuecomment-667559947 https://api.github.com/repos/pydata/xarray/issues/4295 MDEyOklzc3VlQ29tbWVudDY2NzU1OTk0Nw== shoyer 1217238 2020-08-01T17:01:48Z 2020-08-01T17:01:48Z MEMBER

It looks like the actual hard requirement for setup.cfg may be setuptools 30.3.0 from 8 December 2016: https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files

This is shortly before the release date of Python 3.6.0, so I suspect this would be a fine requirement to impose for our users.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  We shouldn't require a recent version of setuptools to install xarray 671019427

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
);
CREATE INDEX [idx_issue_comments_issue]
    ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
    ON [issue_comments] ([user]);
Powered by Datasette · Queries took 19.567ms · About: xarray-datasette
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows