Caching #480

Слито
Plume_migration_agent слито 3 коммит(ов) из cache в master 2019-03-16 14:33:28 +00:00
trinity-1686a оставлен комментарий 2019-03-15 20:18:50 +00:00
Владелец

Try to cache static resources.
Static non media file's timestamps are hashed at compile tome so that modifying them invalidate old cache.
For some reason, plume-front.wasm isn't loaded from cache, even if it contains the right headers.
I changed nothing and now it is? I guess I'm ok with it
I'll look into adding Etag support too
All response made from templates and not containing a form are now Etag-cached

Try to cache static resources. Static non media file's timestamps are hashed at compile tome so that modifying them invalidate old cache. ~~For some reason, plume-front.wasm isn't loaded from cache, even if it contains the right headers.~~ I changed nothing and now it is? I guess I'm ok with it ~~I'll look into adding Etag support too~~ All response made from templates and not containing a form are now Etag-cached
igalic (Перенесено из github.com) оставлена рецензия 2019-03-15 21:37:29 +00:00
igalic (Перенесено из github.com) оставил комментарий

👀

👀
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
igalic (Перенесено из github.com) оставлен комментарий 2019-03-15 21:28:40 +00:00

i'd rather this wasn't random, but deterministic

such as the file's she256sum

i'd rather this wasn't random, but deterministic such as the file's she256sum
trinity-1686a оставлена рецензия 2019-03-15 22:46:35 +00:00
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
trinity-1686a оставлен комментарий 2019-03-15 22:46:35 +00:00
Автор
Владелец

What is your issue with it being random? It's fixed at compile time, so assuming a production server, which may restart but won't recompile often, the cache will be ok. My first through was using git commit sha, but this may be unnecessary information disclosure

What is your issue with it being random? It's fixed at compile time, so assuming a production server, which may restart but won't recompile often, the cache will be ok. My first through was using git commit sha, but this may be unnecessary information disclosure
igalic (Перенесено из github.com) оставлена рецензия 2019-03-16 05:39:10 +00:00
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
igalic (Перенесено из github.com) оставлен комментарий 2019-03-16 05:39:09 +00:00

if nothing about the code changes, the cache_id shouldn't change either

if nothing about the code changes, the cache_id shouldn't change either
codecov[bot] оставлен комментарий 2019-03-16 08:45:11 +00:00 (Перенесено из github.com)

Codecov Report

Merging #480 into master will decrease coverage by 0.31%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #480      +/-   ##
==========================================
- Coverage   27.13%   26.82%   -0.32%     
==========================================
  Files          64       64              
  Lines        7337     7423      +86     
==========================================
  Hits         1991     1991              
- Misses       5346     5432      +86
# [Codecov](https://codecov.io/gh/Plume-org/Plume/pull/480?src=pr&el=h1) Report > Merging [#480](https://codecov.io/gh/Plume-org/Plume/pull/480?src=pr&el=desc) into [master](https://codecov.io/gh/Plume-org/Plume/commit/90baf9beb1884a886d4f2bf9df96f761c582d765?src=pr&el=desc) will **decrease** coverage by `0.31%`. > The diff coverage is `0%`. ```diff @@ Coverage Diff @@ ## master #480 +/- ## ========================================== - Coverage 27.13% 26.82% -0.32% ========================================== Files 64 64 Lines 7337 7423 +86 ========================================== Hits 1991 1991 - Misses 5346 5432 +86 ```
elegaanz (Перенесено из github.com) оставлена рецензия 2019-03-16 08:48:43 +00:00
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
elegaanz (Перенесено из github.com) оставлен комментарий 2019-03-16 08:48:43 +00:00

The build won't be run again if the code didn't changed, so the ID will not change.

The build won't be run again if the code didn't changed, so the ID will not change.
elegaanz (Перенесено из github.com) оставлена рецензия 2019-03-16 10:08:34 +00:00
elegaanz (Перенесено из github.com) оставлен комментарий 2019-03-16 10:08:34 +00:00

You should probably remove it from Cargo.toml too.

You should probably remove it from `Cargo.toml` too.
trinity-1686a оставлена рецензия 2019-03-16 10:09:19 +00:00
trinity-1686a оставлен комментарий 2019-03-16 10:09:19 +00:00
Автор
Владелец

I totally forgot about that

I totally forgot about that
igalic (Перенесено из github.com) оставлена рецензия 2019-03-16 10:19:00 +00:00
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
igalic (Перенесено из github.com) оставлен комментарий 2019-03-16 10:18:59 +00:00

yes, in our development environment that is true, but not for anyone building packages or container images of our software. they always start from a clean slate

yes, in our development environment that is true, but not for anyone building packages or container images of our software. they always start from a clean slate
igalic (Перенесено из github.com) оставлена рецензия 2019-03-16 11:24:59 +00:00
igalic (Перенесено из github.com) оставил комментарий

👍

👍
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
igalic (Перенесено из github.com) оставлен комментарий 2019-03-16 11:24:09 +00:00

btw, is there no way to do this in rust?

btw, is there no way to do this in rust?
trinity-1686a оставлена рецензия 2019-03-16 12:08:29 +00:00
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
trinity-1686a оставлен комментарий 2019-03-16 12:08:29 +00:00
Автор
Владелец

I think there are plenty, but I'm lazy and it's a build script. I prototyped using bash, so my rust code is basically bash translated (if you find it really bad, I can change that but I don't know if it's really useful)

I think there are plenty, but I'm lazy and it's a build script. I prototyped using bash, so my rust code is basically bash translated (if you find it really bad, I can change that but I don't know if it's really useful)
igalic (Перенесено из github.com) оставлена рецензия 2019-03-16 12:13:25 +00:00
@ -5,0 +13,4 @@
.spawn()
.expect("failed find command");
let sort = Command::new("sort")
igalic (Перенесено из github.com) оставлен комментарий 2019-03-16 12:13:25 +00:00

nah, i was just curious

nah, i was just curious
elegaanz (Перенесено из github.com) оставлена рецензия 2019-03-16 12:30:53 +00:00
@ -11,0 +37,4 @@
.merge(HtmlCt(self.0).respond_to(r)?)
.header(ETag(EntityTag::strong(etag)))
.ok()
}
elegaanz (Перенесено из github.com) оставлен комментарий 2019-03-16 12:30:52 +00:00

Probably obvious, but why do we disable caching on pages with a form?

Probably obvious, but why do we disable caching on pages with a form?
trinity-1686a оставлена рецензия 2019-03-16 12:37:12 +00:00
@ -11,0 +37,4 @@
.merge(HtmlCt(self.0).respond_to(r)?)
.header(ETag(EntityTag::strong(etag)))
.ok()
}
trinity-1686a оставлен комментарий 2019-03-16 12:37:12 +00:00
Автор
Владелец

If the page contain a form, the csrf token will be cached, and may no longer match user's cookies. As these tokens are added later by a fairing, there is no way to detect the page changed here. The other solution could be to allow caching of page and for rocket_csrf to remove ETag when appropriate

If the page contain a form, the csrf token will be cached, and may no longer match user's cookies. As these tokens are added later by a fairing, there is no way to detect the page changed here. The other solution could be to allow caching of page and for rocket_csrf to remove ETag when appropriate
elegaanz (Перенесено из github.com) изменения одобрены 2019-03-16 14:09:12 +00:00
elegaanz (Перенесено из github.com) оставил комментарий

👍 Thanks!

:+1: Thanks!
Войдите, чтобы присоединиться к обсуждению.
Нет рецензентов
Нет этапа
Нет проекта
Нет назначенных
2 участников
Уведомления
Срок выполнения
Срок выполнения недействителен или находится за пределами допустимого диапазона. Пожалуйста, используйте формат «гггг-мм-дд».

Срок выполнения не установлен.

Зависимости

Зависимостей нет.

Ссылка: Plume/Plume#480
Описание отсутствует.