resume-cli icon indicating copy to clipboard operation
resume-cli copied to clipboard

Maintenance: Cleanup

Open evanplaice opened this issue 5 years ago β€’ 6 comments

  • [x] update deps [HIGHEST PRIORITY]
    • fix all the damn security vulnerability warnings
    • close all issues related to out-of-date dependencies

  • [x] CI/CD using GitHub Actions
    • update pkg.version to reflect the NPM published version
    • add CD to auto-publish to NPM
    • remove Travis-CI
    • add CONTRIBUTING.md

  • [ ] how is testing?
    • is the current test runner sufficient
    • how does the test coverage look

  • [ ] do all features work?
    • fix init to clone resume.sample.json from resume-schema
    • is puppeteer sufficient for PDF creation?
    • should z-schema be replaced by ajv?

  • [x] back-fill version tags
    • try to back-fill missing version tags to reflect npm releases
    • skip if it's too much of a pain

evanplaice avatar Apr 23 '20 19:04 evanplaice

Oof, npm audit is really ugly. Fixing all the security vulnerabilities is going to be a pain, mostly due to long dependency chains.

Relocating resume-to-text and resume-to-html to this repo will help. Updating templates may be a lost cause if they're no longer maintained. mocha and puppeteer should be easy.

evanplaice avatar Apr 24 '20 00:04 evanplaice

npm-check might be better alternative to npm audit.

Ksinia avatar Jun 08 '20 16:06 Ksinia

All dependencies have been updated in #369, and related stories closed.

I can work on back-filling tags and setting up semantic-release with GitHub Actions. Will need some help with repository settings though.

BTW I would add linting and formatting to the list πŸ™‚

rbardini avatar Jul 21 '20 23:07 rbardini

Just pushed all tags since the v1.0.0 release, using the respective commit dates to ensure correct chronological order.

We have quite a few 0.x releases, so it would be a bit time-consuming to back-fill all of them. Older tags are also not following the default npm tag version prefix (i.e. missing the v), a convention followed in new tags to simplify integration with other tools such as semantic-release.

Edit: I've pushed the remaining tags, starting from v0.0.0. A few released versions are missing though, as I couldn't find them in git history. In case someone else (or future me) ever needs to back-fill tags, here's how I did it:

# Collect all package.json version changes
git log -L 3,3:package.json # where '3' is the version field line number

# Checkout each commit, set tag date as commit date, and tag using the package.json version
xargs -I{} sh -c 'git checkout -q {} && GIT_COMMITTER_DATE="$(git show --format=%ad | head -1)" git tag v$(cat package.json | jq -r .version)' < commits.txt

rbardini avatar Jul 28 '20 23:07 rbardini

That was some pretty solid work @rbardini, again, great job.

I have taken and re-added pdf generation so many times, I almost want to permanently leave it out of the cli tool (it just makes the npm install so long)

I doubt anyone uses the resume-to-txt or resume-to-html, we could just look at removing that functionality.

thomasdavis avatar Jul 30 '20 00:07 thomasdavis

Thanks, @thomasdavis πŸ™‚

resume-to-html and resume-to-text were already removed in #369. I didn't find any references to them in the code or documentation, so I assumed they were unused dependencies.

As for PDF generation, I do use it but find the results worse than manually printing the HTML output to PDFβ€”text is often split between pages on page breaks, for example. Still, it's an important feature to have. We could try using puppeteer-core with headless_shell instead, although I didn't find any good examples.

rbardini avatar Jul 30 '20 22:07 rbardini