resume-schema: Fix the date problem

There are about three or so issues that are related to date parsing that will require changes to the schema and the parser in tandem.

  • Seasons should be allowed in dates, #180. Rejected
  • Dates in YYYY-MM and YYYY should be valid, #142.
  • Allows the empty string in endDate to represent the present, #150.
  • Add custom date parser (maybe?), #150. Rejected. However, we still might be able to salvage some of the PRed code.
  • Figure out how to represent ongoing work, #199.

This is the “master issue” I’ll use to keep track of what they are.

About this issue

  • Original URL
  • State: closed
  • Created 9 years ago
  • Comments: 59 (34 by maintainers)

Commits related to this issue

Most upvoted comments

Tomorrow we will be in 2019 and we still can’t represent a current job.

It’s been 2+ years and this still hasn’t been resolved.

I’m able to represent current work with @rbardini/resume-cli, which uses jsonresume-theme-even by default. You can see an example here.

I’ve opened a few PRs to resume-cli integrating most changes from the fork, which may help solving this.

Bit annoying that nobody mentioned this in 3 years but if you’re like me and don’t really care if it’s machine readable, you can use the --force flag to skip validation, eg, resume export --force resume_fr.html --theme Fr_flat

EDIT: my bad, doesn’t seem to work for export

As a workaround I modified /usr/local/lib/node_modules/resume-cli/lib/pre-flow and removed the line validateSchema: ['getResume', validateSchema],

Thanks @HyShai for taking a continued look into jsonresume. Jsonresume is an open source project and has limited capacity. Having an issue open for 2+ years also means that noone contributed a fix in 2+ years. We are working hard to iterate on jsonresume with a new project called github.com/resumic/schema. We are happily taking contributions over there and still take contributions here.

+1 for Output as-is when the date can’t be parsed to JS date object. We are already in 2017. I guess time to make a decision…

Not sure what the status on this is, but it seems partial dates don’t validate like 2017-01 or 2017 and adding “Present” obviously doesn’t work either.

It doesn’t allow an empty string but will allow the field to be removed completely.

Interesting. I’m not sure I like the way this strong-arms you into to providing a specific date down to the exact day.

What’s not machine readable about a string?

Because a Date object is not a string. We have to serialize it into string because JSON has no Date type. We could have serialized it into unix-time, but it would be not human-editable. So we stick to the standard used in JS to parse and serialize dates to avoid problems. JSONResume is about defining everything in standard way, not about writing any kind of free-form shit everywhere you want, because computers cannot understand free-formed texts good enough and reproducibly enough.

Without looking into the code, I can’t say whether this is straight forward or not, but from a user’s point of view, I want to add a date OR I want to specify a non-date like “Present”.

@chrisdotcode - What’s not machine readable about a string?

@adrianblynch: We prefer not to take that approach because we favor machine readability.

Could dates that can’t be parsed simply be output as-is?

So as a user who wants to make a resume without being a contributor, what is the best way to represent an ongoing job? This could be a deal breaker if there won’t be a way to represent ongoing work.

@KOLANICH I prefer @stp-ip’s suggestion of just using a null, because using a tuple complicates the schema a lot.