Roadmap to v0.1.0
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- git, github-actions, typescript
Línea de trabajo
Revisa la configuración existente de GitHub Actions y package.json, y céntrate después en las dos tareas de lanzamiento sin marcar: publicar con etiquetas de versión y crear v1.0.0. Se considera terminado cuando una etiqueta de prueba demuestra que el workflow puede publicar de forma segura, seguida de un paquete [email protected] instalable y una versión de GitHub cuyas notas reflejen CHANGELOG.md.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This issue tracks the work required to take codejson-crosswalk from its current state to an official v1 release.
Phase 1: Core Correctness
-
Define and export the public API in
src/index.ts- Currently
src/index.tsis an empty stub. Decide which functions and types are part of the public surface, and export them cleanly so downstream consumers can import from the package root. - Acceptance: A TypeScript project can
import { fromCodemetaToCodejson, fromCodejsonToCodemeta, MappingEntry } from "codejson-crosswalk"with full type inference.
- Currently
-
Remove hardcoded test scripts from
handler.ts- The bottom of
handler.tsreads real files and logs results at import time. Move this into an example script or a test, leavinghandler.tsas pure library code. - Acceptance: Importing anything from
handler.tsproduces no side effects, no console output, and no file reads.
- The bottom of
-
Set up
bun testand write unit tests for the engine- Add test coverage for
getNestedValue,setNestedValue, andconvert, including edge cases like missing paths, nested writes that merge into existing objects, and target-only defaults. - Acceptance:
bun testruns successfully, each helper has unit tests covering the happy path and at least two failure modes, and coverage on these three files is at least 90%.
- Add test coverage for
-
Add round-trip integration tests for codemeta ↔ code.json
- Convert real sample files in each direction and assert on the resulting output shape. Include at least one round-trip test that documents what information is preserved and what is lost.
- Acceptance: Integration tests exist for both directions, run as part of
bun test, and the lossy fields are explicitly asserted rather than silently dropped.
-
Create a
fixtures/directory with representative sample files- Build a small library of valid input files covering minimal, fully-populated, and edge-case shapes (multi-license, multi-author, missing optional fields). These serve both tests and documentation.
- Acceptance: At least three codemeta fixtures and three code.json fixtures exist under
fixtures/, each with a short comment or companion README explaining what it represents.
Phase 3: Usability
-
Generate API documentation with TypeDoc
- Set up TypeDoc to generate reference documentation from the exported functions and types. Add JSDoc comments to every public export.
- Acceptance: Running the docs command produces an HTML site covering every public export, and the generated docs are published (GitHub Pages or committed to
docs/).
-
Add a CLI entry point
- Expose a command-line interface so users can convert files without writing TypeScript. Support reading from stdin or a file path and writing to stdout or a file.
- Acceptance: After
npm install -g codejson-crosswalk, the commandcodejson-crosswalk input.json --to codejsonproduces a valid converted file, and--helpdescribes all flags.
-
Create an
examples/directory with runnable usage scripts- Provide minimal, focused example scripts for the common use cases: converting a single file, batch-converting a directory, and converting with output validation.
- Acceptance: At least three runnable examples exist under
examples/, each with a short README explaining what it demonstrates and how to run it.
-
Audit and improve error messages
- Walk through every failure mode — malformed input, missing files, failed validation, transform errors — and make sure each produces a message that identifies what went wrong and where.
- Acceptance: A test suite for error paths exists, and each tested error includes both the failure type and a location or field reference in the message.
Phase 4: Maintainability
-
Set up GitHub Actions for CI
- Add a workflow that runs install, test, lint, and coverage on every PR and push to main. Fail the build if tests fail or coverage drops below a threshold.
- Acceptance: A PR with a failing test or a lint violation is blocked by a red CI check, and the coverage threshold is documented in the workflow file.
-
Add ESLint and Prettier
- Adopt a shared preset (e.g.
@typescript-eslint/recommendedplus Prettier) and wire both into the CI workflow. No hand-rolled style debates. - Acceptance:
bun run lintandbun run formatboth exist and succeed on the codebase, and the CI workflow runs both on every PR.
- Adopt a shared preset (e.g.
Phase 5: Release
-
Finalize package.json fields for publication
- Set
main,module,types,exports, andenginescorrectly so that downstream consumers can import the package cleanly in both ESM and CommonJS contexts and know which runtimes are supported. - Acceptance: A test consumer project can install the packaged tarball (
npm packoutput) and import both types and runtime code without configuration.
- Set
-
Create a CHANGELOG and adopt semver
- Add a
CHANGELOG.mdfollowing the Keep a Changelog convention, document the v1.0.0 release, and update contributing docs to require changelog entries in future PRs. - Acceptance:
CHANGELOG.mdexists with a v1.0.0 entry, andCONTRIBUTING.mdinstructs contributors to update it.
- Add a
-
Set up a release workflow to publish to npm on tags
- Add a GitHub Actions workflow that publishes to npm when a version tag is pushed. Configure the npm token as a repository secret.
- Acceptance: Pushing a tag like
v0.0.1-testto a test branch triggers a successful (dry-run or scoped) publish, proving the workflow works before the real release.
-
Cut and publish v1.0.0
- Run through a pre-release checklist (tests green, docs current, changelog updated, version bumped, compliance files in place), tag the release, and publish.
- Acceptance:
[email protected]is installable from npm, and a GitHub release exists with release notes mirroring the changelog entry.
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de DSACMS/codejson-crosswalk
-
Add publiccode.yml conversionAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Adding and Implementing ZodAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Todos los issues de DSACMS/codejson-crosswalk
Issues similares
-
backend priority:P3 privacy-fix
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[Bug]: 【优化】对话消息底部增加发送时间展示Abiertobug desktop v3 windows
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
esengine/DeepSeek-Reasonix#13697 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:security documentation effort:S priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
app:web meta:ops
Dificultad 2/5 Medio día Aptitud para principiantes 78/100
osu-tournament-rating/otr#1113 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100