Skip to content

Simplify the toolchain #1754

Description

@vicary

Recent renovate PRs have breaking tests, which is ultimately caused by the gradual transitioning towards ESM from upstream dependencies.

When fixing these errors, I found the current toolchain a bit cumbersome and requires more maintenance than I am comfortable with.

The main goal of this issue is to replace existing tools with as many zero-conf services as possible, and prefer more actively maintained dependencies when multiple options are present.

  1. renovatebot -> dependabot
  2. changesets -> semantic-release with Nx
    Major version released on patch changes changesets/action#381
  3. size-limit -> andresz1/size-limit-action
  4. jest et al. -> vitest
    1. jest needs humongous amount of configurations to deal with a hybrid of CJS and ESM of deps. Also partial transformIgnorePatterns are really slow, bringing 2-3s tests to 10s locally and >30s on CI.
    2. On the other hand, the Deno + DNT stack is promising but lacks dependabot support.
  5. bob-tsm -> tsup
  6. graphql-ez et al. -> graphql-yoga + @graphql-tools/mock
    More actively maintained alternatives.
  7. Simplify file structure
    1. Remove scripts/* and transition to an ESM-first codebase
    2. Remove internal/*
      1. Move internal/images to assets/
      2. Rewrite internal/test-utils into @gqty/testing to prepare for a public mocking solution
      3. Replace all jest usage with vitest, with minimal configuraitons.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions