-
Notifications
You must be signed in to change notification settings - Fork 34
Description
I would like to see this spec address use-cases where versioning granularity on the order of 1-second might be needed.
For example, the use case I have is on my npmgraph.js.org
site. I allow users to upload package.json
files that may or may not have a version
. If the case version
is missing, I need to assign one. Thus, a date-based version
is the obvious choice. However users may upload multiple files within minutes or even seconds of one another. So I'd like version strings that have a reasonable chance of being unique at that level of granularity.
FWIW, the solution I've come up with - that I don't see addressed anywhere in the spec - is to use the semver "rerelease" field to hold the # of seconds in the day. Specifically, I intend to use version strings of the form [full year].[month].[day of month]-[seconds in day]
[full year].[day of year].[seconds in day]
[Edit: 'Just realized that the prerelease field of semver is not actually appropriate for holding seconds. My understanding of semver is that the prerelease field should indicate the anticipated version. I.e. it should follow the same form as the the normal (pre-hyphen) fields, but provide the expected version upon release. Given the nature of date-based versioning, that ends up being problematic.... 'basically requires being able to see into the future.]