• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iftechfoundation / ifcomp
64%
master: 66%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Repo Added 25 Jul 2017 09:45PM UTC
Files 67
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 2019-art
  • 245-standalone-server-static-resources
  • 250mb
  • Hide-premature-history-198
  • add-adrift-online
  • add-parchment-for-tads
  • add-paypal
  • add-phase-changing-script
  • add-test-data
  • add-travis-ci-config
  • adrift
  • author-voting
  • ballot
  • ballot-csv
  • ballot-image-dimensions
  • bootstrap5
  • cache-web-cover-geometry
  • cleansheet
  • cleanup
  • co-author
  • co-author-new
  • colossal-fund
  • combine-informs
  • comp25tweaks
  • comp26tweaks
  • content-warning-hidden-microdata
  • cookie-path
  • cover-artist
  • cover-caching
  • cw250
  • dark-mode
  • dev
  • develop
  • devtest
  • display-new-fields
  • doc-shipping-to-ifdb-and-ifarchive
  • docker
  • docker-clean
  • docker-new
  • enable_transcripts_index
  • entrant-email-lists
  • entry-questions
  • entryvote
  • escape-titles
  • extra-content
  • feedback
  • filter-filter
  • filter-fixes
  • filter-qualified
  • fix-blurry-covers
  • fix-chained-admin-paths
  • fix-ci-apostrophe
  • fix-cover-art-cache
  • fix-entry-login-redirection
  • fix-populate-ifdb-user-agent
  • fix-tidyall
  • fix-travis-ci
  • fix-zip-of-zip-subdirectories
  • fund-stuff
  • genai-update
  • hide-cw
  • hugo
  • ifcomp-2017
  • improved-processing-test
  • international-prizes
  • kdev
  • license
  • limit-author-votes
  • linked-covers
  • main
  • manual-platforms
  • master
  • misc
  • mismerge
  • move-from-travis-ci-to-github-actions
  • move-tidyall-test
  • new-logo
  • new-scheme
  • no-cache
  • no-steam-keys
  • notification
  • parchment
  • perl-5.34
  • platform-fix
  • premerge
  • prizegen
  • quiet-tidyall
  • quixe
  • quixe-transcripts
  • quotes
  • random-default
  • registration
  • remove-dead-code
  • remove-legacy-encrypt
  • reorganize-docker
  • reorganize-docker-WIP
  • rule-update
  • safer-transcript-code
  • selenium
  • simplify-recording
  • single_alt_scotch
  • sorting
  • standardize-zip-slugs
  • test-zip-of-zips-in-docker
  • tidy-version
  • transcript-popup
  • transcript-visibility
  • uk-list
  • update-perl-in-travis-ci
  • update-platform-list
  • update-schema-from-production
  • update2025
  • update2026
  • upgrade-perl
  • userid-cookie
  • votecsv
  • web-images
  • zip-of-zips

22 Sep 2026 10:03AM UTC coverage: 64.232% (+0.8%) from 63.428%
35713891418

push

github

mjmusante
Use immutable hashed urls for `/play/#/cover` and `/play/#/full_cover`

Before this change, ballot image URLs would look like:

* `/play/100/cover`
* `/play/100/full_cover`

And they would have `Cache-Control: max-age=86400`, 24 hour caching. If an author tried to change their cover image, it would not take effect for end users for up to 24 hours.

Now, ballot image URLs include the hash of their content:

* `/play/100/cover/6f3258d40362b2c5`
* `/play/100/full_cover/184051209a39ecc8`

These URLs have `Cache-Control: public, max-age=31536000, immutable`, i.e. far-future immutable caching.

The hash is stored in `geometry.txt` for the web cover, and in `hash.txt` for the full cover.

The ballot reads the stored hashes to generate HTML like this:

```
<a href="/play/100/full_cover/184051209a39ecc8">
  <img src="/play/100/cover/6f3258d40362b2c5">
</a>
```

When the author uploads a new image, the ballot HTML (which is never cached) instantly uses new URLs for the image, making the latest cover art immediately visible to judges. Judges never need to redownload images that are already cached.

1460 of 2273 relevant lines covered (64.23%)

43.89 hits per line

Relevant lines Covered
Build:
Build:
2273 RELEVANT LINES 1460 COVERED LINES
43.89 HITS PER LINE
Source Files on master
  • Tree
  • List 67
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
35713891418 main Use immutable hashed urls for `/play/#/cover` and `/play/#/full_cover` Before this change, ballot image URLs would look like: * `/play/100/cover` * `/play/100/full_cover` And they would have `Cache-Control: max-age=86400`, 24 hour caching. If a... push 22 Sep 2026 10:08AM UTC mjmusante github
64.23
35666013896 fix-cover-art-cache Merge 1590daf97 into 66b909abd Pull #489 21 Sep 2026 11:10PM UTC web-flow github
64.23
35664000278 main Fix CI failure CI pulled `HTML::FormHandler` 0.410002 (released Sept 7), which HTML-encodes Bootstrap3 field errors for CVE-2026-85485. The apostrophe in the rejection message becomes `&#39;`, so the old regex no longer matches. push 21 Sep 2026 10:53PM UTC mjmusante github
63.43
35662791021 fix-ci-apostrophe Merge 765567432 into a6454f214 Pull #490 21 Sep 2026 10:38PM UTC web-flow github
63.43
34102482583 main Move Content Warning "(Hidden)" text to CSS Fixes #483 push 07 Sep 2026 08:51AM UTC mjmusante github
63.43
34081858711 content-warning-hidden-microdata Merge c694f0ef6 into 2ef596bb7 Pull #484 07 Sep 2026 04:10AM UTC web-flow github
63.43
33867267637 main new logo for 2026 push 04 Sep 2026 11:22AM UTC mjmusante github
63.43
33866722223 comp26tweaks new logo for 2026 Pull #482 04 Sep 2026 11:15AM UTC mjmusante github
63.43
33777618614 main doc: Shipping IFComp games to IFDB and IF Archive (#481) push 03 Sep 2026 04:20PM UTC web-flow github
63.43
33772188633 doc-shipping-to-ifdb-and-ifarchive Merge 129fbe4d7 into a5adf3e82 Pull #481 03 Sep 2026 03:26PM UTC web-flow github
63.43
See All Builds (745)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc