luarocks / luarocks/luarocks-site

GET https://luarocks.org/manifest-5.3.zip does not return last-modified header

Open
#89 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
MoonScript
Stars
201
Forks
50
PR merge metrics
No merged PRs in 30d

Description

The LuaRocks command-line tool tries to store the value of `last-modified` in a timestamp file and, when that is available, it uses HEAD to check the timestamp before re-downloading the full manifest. In the old server, that sped up the tool noticeably (when one issues several commands in sequence).

Here's an output with `show_downloads=true` in `~/.luarocks/config.lua` (plus a for-loop hacked in `luarocks.fs.lua.http_request` to dump all received headers):

```
$ luarocks install busted
GET https://luarocks.org/manifest-5.3.zip ...
.........
connection close
date Wed, 04 May 2016 20:16:10 GMT
x-memory-cache-hit 1
content-length 14799
server nginx/1.6.3
content-type application/zip
Archive: /Users/hisham/.cache/luarocks/https___luarocks.org/manifest-5.3.zip
inflating: manifest-5.3
Installing https://luarocks.org/busted-2.0.rc11-0.rockspec...
Using https://luarocks.org/busted-2.0.rc11-0.rockspec... switching to 'build' mode
GET https://luarocks.org/busted-2.0.rc11-0.rockspec ...
....
x-goog-storage-class STANDARD
content-length 4186
x-goog-generation 1445979206925000
etag "17aac59fd9c01ad5fd2836d89f5a5ad5"
accept-ranges bytes
x-goog-stored-content-encoding identity
x-object-url http://commondatastorage.googleapis.com/moonrocks/25/busted-2.0.rc11-0.rockspec?1
connection close
cache-control public, max-age=3600
x-guploader-uploadid AEnB2Uox6B4OUW9j0ewWluWUsUfTDEd9N1IBmXaG7NuyZUMhlWxrEsdNBjcAZxxYWHvDka_mpAw_UMqnQY9M6fxXz46Knpqjjg
age 1413
x-goog-hash crc32c=mZLYQQ==, md5=F6rFn9nAGtX9KDbYn1pa1Q==
last-modified Tue, 27 Oct 2015 20:53:26 GMT
x-goog-stored-content-length 4186
date Wed, 04 May 2016 20:16:12 GMT
expires Wed, 04 May 2016 20:52:39 GMT
x-goog-metageneration 1
server nginx/1.6.3
content-type text/x-rockspec
GET https://github.com/Olivine-Labs/busted/archive/v2.0.rc11-0.tar.gz ...
..
GET https://codeload.github.com/Olivine-Labs/busted/tar.gz/v2.0.rc11-0 ...
.........................
connection close
x-frame-options deny
content-security-policy default-src 'none'; style-src 'unsafe-inline'
x-github-request-id 8B526402:14157:1F4B0:572A588E
x-content-type-options nosniff
content-length 48368
x-xss-protection 1; mode=block
access-control-allow-origin https://render.githubusercontent.com
etag "2c68aca329d877ec84f26815dd56211b11c728cd"
date Wed, 04 May 2016 20:16:14 GMT
content-type application/x-gzip
content-disposition attachment; filename=busted-2.0.rc11-0.tar.gz
vary Authorization,Accept-Encoding
strict-transport-security max-age=31536000
Updating manifest for /Users/hisham/.luarocks/lib/luarocks/rocks-5.3
Missing dependency for luma 0.2-1: lpeg >= 0.10
Missing dependency for luma 0.2-1: lpeg >= 0.9
Missing dependency for cosmo 14.03.04-1: lpeg >= 0.9
busted 2.0.rc11-0 is now built and installed in /Users/hisham/.luarocks (license: MIT )

```

Note that `GET https://luarocks.org/busted-2.0.rc11-0.rockspec` returns `last-modified`, but `GET https://luarocks.org/manifest-5.3.zip` doesn't.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the server route or configuration that generates https://luarocks.org/manifest-5.3.zip, then compare its response headers with the rockspec response shown in the issue. Check both GET and HEAD responses; done means the manifest exposes a usable Last-Modified header so LuaRocks can avoid re-downloading an unchanged file.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.