馃摝 Implement headless crossref-utils + crossref-cli monorepo - #28
Conversation
|
@fwkoch based on updated plans and discussion, I took a stab at the split |
fwkoch
left a comment
There was a problem hiding this comment.
Scanning through this PR, the -utils vs -cli split looks pretty much exactly as I'd expect. I haven't had a chance to test it out yet, but I'll use the new -cli for building the SciPy proceedings crossref deposit in the next couple weeks.
There's a few outstanding pieces - improve random DOI generation, bring xml validation into js, get rid of "curvenote" - but all these are outside the scope of "monorepo with headless -utils and -cli"
| import { addDoiToConfig } from './utils.js'; | ||
| import { selectNewDois } from './generate.js'; | ||
|
|
||
| /** CLI default landing-page resolver (org-specific; not in crossref-utils). */ |
There was a problem hiding this comment.
I'd suggest crossref-cli should not have "curvenote" in it either. It should be a generic tool built on the generic utils. But I don't think this extra removal is critical for this PR; getting it out of utils is a start.
There was a problem hiding this comment.
Oh but this really isn't in scope for this PR, based on it's title. All good for now. 馃憤
There was a problem hiding this comment.
@fwkoch on
bring xml validation into js
You mean as opposed to the wasm approach that we ar trying out here?
Implement headless library package with abstractFromMdast, DOI helpers, validateDeposit (xerces-wasm), logger-based MyST adapters, and no Curvenote DOI defaults in the library. CLI keeps FS/prompts and org-specific resolvers.
6d262d7 to
5c2239e
Compare
Summary
packages/crossref-utils(in-memory library) andpackages/crossref-cli(FS / myst-cli / prompts), following the SPIKE plan.abstractFromMdast, DOI helpers (generateDoi/suggestDois), logger-based*FromMyst, no Curvenote DOI defaults (callers passresolveDoiData).validateDeposit(xml, schema)takes a caller-supplied schema bundle (no SDK download); CLI downloads/caches Crossrefschemas/and builds the bundle for multi-version targeting.docs/validation.md, updates toSDK.md/ README.Test plan
npm install && npm run build && npm testnpm run lint(utils + cli)crossref validateafter build (schema cache under~/.cache/crossref-cli/schemas/)