concourse / concourse/time-resource

Make time resource versions more predictable

Open
#45 17 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue help wanted
Dominant language
Go
Stars
46
Forks
35
PR merge metrics
No merged PRs in 30d

Description

What challenge are you facing?

Right now time resource versions are unpredictable. The resource check will output the current timestamp after its interval has elapsed (or whatever other configuration is used). However, if the check gets delayed then the gap between versions is unpredictable.

What would make this better?

Make time resource versions more predictable. Instead of emitting the current timestamp, emit versions at set times based on the interval specified. This means that if the last version emitted was 1:42:05 and the interval was 1m then if the check runs at say 1:45:30 the following versions would be emitted: 1:43:05, 1:44:05, 1:45:05. This way regardless of when the check actually runs, we end up with a deterministic set of versions.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing time resource check and version-generation behavior, including any tests covering delayed checks and intervals. Implement deterministic versions based on the last emitted version and configured interval; done means a delayed check emits each missed interval timestamp rather than the current time, as described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.