regro / cf-scripts

Flagship repo for cf-regro-autotick-bot
Other
52 stars 74 forks source link

Version upgrade bot failures #1583

Open h-vetinari opened 1 year ago

h-vetinari commented 1 year ago

Happening on a bunch of feedstocks, judging from the status page:

Other errors in feedstocks that used to work (and rerender fine)

beckermr commented 1 year ago

Thanks. The easiest way to debug is to add unit tests for these updates. I don't have time but feel free if you have the energy.

mariusvniekerk commented 1 year ago

Seeing the same for the opentelemetry stack

mariusvniekerk commented 1 year ago
1.15.0:  |
   The recipe did not change in the version migration, a URL did not hash, or there is jinja2 syntax the bot cannot handle!

   Please check the URLs in your recipe with version '1.15.0' to make sure they exist!
   We also found the following errors:
    - could not hash URL template 'https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz'
beckermr commented 1 year ago

Did you check pypi itself? It has an open bug where it is not making urls like that.

beckermr commented 1 year ago

So some of these are bad version tags I suspect. For example, for icu, the version found was "2022-09-12" which is not a version. This happens for github URLs when people add in tags/releases which are not actually part of the main release series.

beckermr commented 1 year ago

@mariusvniekerk At least one of the opentelemetry errors is a pypi bug.

$ wget https://pypi.io/packages/source/o/opentelemetry_exporter_jaeger/opentelemetry-exporter-jaeger-1.15.0.tar.gz
--2022-12-25 08:24:14--  https://pypi.io/packages/source/o/opentelemetry_exporter_jaeger/opentelemetry-exporter-jaeger-1.15.0.tar.gz
Resolving pypi.io (pypi.io)... 151.101.64.223, 151.101.128.223, 151.101.192.223, ...
Connecting to pypi.io (pypi.io)|151.101.64.223|:443... connected.
HTTP request sent, awaiting response... 301 Redirect to Primary Domain
Location: https://pypi.org/packages/source/o/opentelemetry_exporter_jaeger/opentelemetry-exporter-jaeger-1.15.0.tar.gz [following]
--2022-12-25 08:24:15--  https://pypi.org/packages/source/o/opentelemetry_exporter_jaeger/opentelemetry-exporter-jaeger-1.15.0.tar.gz
Resolving pypi.org (pypi.org)... 151.101.64.223, 151.101.128.223, 151.101.192.223, ...
Connecting to pypi.org (pypi.org)|151.101.64.223|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://files.pythonhosted.org/packages/source/o/opentelemetry_exporter_jaeger/opentelemetry-exporter-jaeger-1.15.0.tar.gz [following]
--2022-12-25 08:24:15--  https://files.pythonhosted.org/packages/source/o/opentelemetry_exporter_jaeger/opentelemetry-exporter-jaeger-1.15.0.tar.gz
Resolving files.pythonhosted.org (files.pythonhosted.org)... 146.75.81.63
Connecting to files.pythonhosted.org (files.pythonhosted.org)|146.75.81.63|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2022-12-25 08:24:15 ERROR 404: Not Found.

This same download works fine for 1.10.0

$ wget https://pypi.io/packages/source/o/opentelemetry-exporter-jaeger/opentelemetry-exporter-jaeger-1.10.0.tar.gz
--2022-12-25 08:24:09--  https://pypi.io/packages/source/o/opentelemetry-exporter-jaeger/opentelemetry-exporter-jaeger-1.10.0.tar.gz
Resolving pypi.io (pypi.io)... 151.101.64.223, 151.101.128.223, 151.101.192.223, ...
Connecting to pypi.io (pypi.io)|151.101.64.223|:443... connected.
HTTP request sent, awaiting response... 301 Redirect to Primary Domain
Location: https://pypi.org/packages/source/o/opentelemetry-exporter-jaeger/opentelemetry-exporter-jaeger-1.10.0.tar.gz [following]
--2022-12-25 08:24:09--  https://pypi.org/packages/source/o/opentelemetry-exporter-jaeger/opentelemetry-exporter-jaeger-1.10.0.tar.gz
Resolving pypi.org (pypi.org)... 151.101.64.223, 151.101.128.223, 151.101.192.223, ...
Connecting to pypi.org (pypi.org)|151.101.64.223|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://files.pythonhosted.org/packages/source/o/opentelemetry-exporter-jaeger/opentelemetry-exporter-jaeger-1.10.0.tar.gz [following]
--2022-12-25 08:24:09--  https://files.pythonhosted.org/packages/source/o/opentelemetry-exporter-jaeger/opentelemetry-exporter-jaeger-1.10.0.tar.gz
Resolving files.pythonhosted.org (files.pythonhosted.org)... 146.75.81.63
Connecting to files.pythonhosted.org (files.pythonhosted.org)|146.75.81.63|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://files.pythonhosted.org/packages/d0/b1/a212763cc68211ba98d55d1141f2a7a2e03fe26a562462f0c4e227896f6f/opentelemetry-exporter-jaeger-1.10.0.tar.gz [following]
--2022-12-25 08:24:10--  https://files.pythonhosted.org/packages/d0/b1/a212763cc68211ba98d55d1141f2a7a2e03fe26a562462f0c4e227896f6f/opentelemetry-exporter-jaeger-1.10.0.tar.gz
Reusing existing connection to files.pythonhosted.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 6370 (6.2K) [application/x-tar]
Saving to: ‘opentelemetry-exporter-jaeger-1.10.0.tar.gz’

opentelemetry-exporter-jaeger-1.10.0.tar.g 100%[======================================================================================>]   6.22K  --.-KB/s    in 0.001s  

2022-12-25 08:24:10 (5.17 MB/s) - ‘opentelemetry-exporter-jaeger-1.10.0.tar.gz’ saved [6370/6370]
beckermr commented 1 year ago

In general, if the bot says it cannot hash a url, then either

  1. Upstream pushed a bad tag
  2. The url has changed (e.g., pypi bug)
  3. There was an intermittent error and the bot will retry

The issues above related to missing jinja keys, recipe parsing, etc. are worth looking into more.

beckermr commented 1 year ago

For grpc_java_plugin it looks like on the variables is in the conda_build_config and not defined for the no selector case. This is an assumption made by the bot. Usually in these cases we have to rework the recipe a bit though maybe there might be a way to edit the bot source to make it work.

beckermr commented 1 year ago

Let's all agree to not worry about pypy3.6. It doesn't get many updates and requires humans in general.

beckermr commented 1 year ago

@h-vetinari This line and similar in faiss-split are not properly formatted for the jinja2+yaml parser we use

https://github.com/conda-forge/faiss-split-feedstock/blob/main/recipe/meta.yaml#L131

beckermr commented 1 year ago

docker-py and numpy must be intermittent errors since they both work in the new one

h-vetinari commented 1 year ago

docker-py and numpy must be intermittent errors since they both work in the new one

Numpy failed again on the just released 1.24.1:

The recipe did not change in the version migration, a URL did not hash, or there is jinja2 syntax the bot cannot handle!

Please check the URLs in your recipe with version '1.24.1' to make sure they exist!

We also found the following errors:

 - could not hash URL template 'https://github.com/numpy/numpy/releases/download/v{{ version }}/numpy-{{ version }}.tar.gz'
beckermr commented 1 year ago

Can you check that url by hand?

h-vetinari commented 1 year ago

Can you check that url by hand?

Yeah, works fine:

>curl -L https://github.com/numpy/numpy/releases/download/v1.24.1/numpy-1.24.1.tar.gz | sha256sum
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 10.3M  100 10.3M    0     0  1322k      0  0:00:08  0:00:08 --:--:-- 2167k
2386da9a471cc00a1f47845e27d916d5ec5346ae9696e01a8a34760858fe9dd2 *-

I'm not sure how big of a time gap there is between publishing the tag and the bot picking that up, versus the release actually being uploaded to the release page. But even if that URL didn't work for the first run, the bot should retry in any case?

beckermr commented 1 year ago

The bot will retry but it takes a day or so.

beckermr commented 1 year ago

This is rather odd. The tests pass with this version.

beckermr commented 1 year ago

The hashing failed three times over ~6-9 hours: https://github.com/regro/cf-graph-countyfair/blob/master/node_attrs/numpy.json#L4963

So I don't think it is a delay in the posting of the data after the tag but I can't reproduce the hash failure.

h-vetinari commented 1 year ago

Not sure what changed, but the bot finally ended up opening https://github.com/conda-forge/numpy-feedstock/pull/286

beckermr commented 1 year ago

Geeze ok. Well IDK what is going on but at least it can work...