ryanatkn / fuz_template

a static web app and Node library template for SvelteKit with TypeScript, Svelte, Vite, esbuild, Fuz, and Gro ❄
https://template.fuz.dev/
1 stars 0 forks source link

tracking dependencies #1

Open ryanatkn opened 3 years ago

ryanatkn commented 3 years ago

To be mindful of our project's dependencies, let's track some basic stats. Bots can look through the actual git history.

These numbers are absolute totals at each commit. (meaning, don't add numbers together between snapshots, each is the total)

At each commit, run:

rm -rf node_modules
npm i

initialize SvelteKit

npm init svelte@next # yes to TypeScript, plain CSS, and Prettier, no to eslint

https://github.com/ryanatkn/kitty/commit/df44ca381b92562c6bd4af345353a9e1aa8a6932

added 46 packages from 111 contributors and audited 47 packages in 2.406s


install Gro

npm i -D @feltcoop/gro@0.6.4

https://github.com/ryanatkn/kitty/commit/8720c75a23977c136fd6e356c38a9314eca268e7

+ 71 packages
+ 15 contributors

added 117 packages from 126 contributors and audited 124 packages in 3.429s

Hey that's neat, Gro only adds 15 contributors. Its esinstall dependency along with some Rollup plugins add a lot of unwanted weight.

Also, Gro has dependencies that re-use 6 existing packages internally, to SvelteKit's initial 1. (if you do the math, that's what those packages numbers mean)

Gro also has the stated goal of offering a SvelteKit alternative to Vite, but that's a ways off. And Vite currently hides all of its dependencies like Rollup, by bundling the dependencies up and shipping with near-zero dependencies to npm. (for more about Gro see here and here) So maybe there's more contributors than it appears. (I haven't checked if Vite/Rollup include them somehow)


update Gro

npm i -D @feltcoop/gro@0.13.0

https://github.com/ryanatkn/kitty/commit/9770d19e40dfb04b89d3624d4a1ee3ad400c61f8

+ 7 packages
+ 16 contributors

added 124 packages from 142 contributors and audited 131 packages in 5.085s

Lots of updates to Gro. Adds 7 packages and 16 contributors, almost all through types and Rollup plugins, so not bad. Also not bad considering the improvements to Gro between 0.6.4 and 0.13.0.

ryanatkn commented 3 years ago

replace svelte-preprocess with svelte-preprocess-esbuild

npm i -D svelte-preprocess-esbuild@2.0.0
npm uninstall svelte-preprocess

https://github.com/ryanatkn/kitty/commit/ca24632c052dc8da5f67ec6fde9db265629e3789

- 6 packages
- 5 contributors

added 118 packages from 137 contributors and audited 126 packages in 3.657s

Switching svelte-preprocess to svelte-preprocess-esbuild drops 6 dependencies and 5 maintainers.


ryanatkn commented 3 years ago

add Felt and upgrade SvelteKit and Gro dependencies

I wasn't keeping up with this so it conflates multiple changes, but the aggregate numbers barely changed:

npm i -D @sveltejs/kit@1.0.0-next.120
npm i -D @sveltejs/adapter-static@1.0.0-next.13
npm uninstall @sveltejs/adapter-node # change to static adapter
npm uninstall vite # no longer needed with SvelteKit
npm i -D @feltcoop/felt@0.4.5
npm i -D @feltcoop/gro@0.34.2

https://github.com/feltcoop/felt-template/commit/90dd335d7d340587edd46395c31dfa88169040c9

- 3 packages

added 115 packages, and audited 116 packages in 2s

Sadly npm@7.20.0 isn't reporting the contributor count any more. :crying_cat_face:


ryanatkn commented 3 years ago

npm i -D @sveltejs/kit@1.0.0-next.131

https://github.com/feltcoop/felt-template/commit/26350fd20265725195be29d1d7baf216c1055f56

- 6 packages

added 109 packages, and audited 110 packages in 2s


ryanatkn commented 3 years ago
npm i @sveltejs/kit@1.0.0-next.179
+ 2 packages

added 111 packages, and audited 112 packages

ryanatkn commented 3 years ago
npm i @feltcoop/felt@0.12.0
+ 1 packages

added 1 package, changed 1 package, and audited 113 packages

ryanatkn commented 3 years ago
npm i @feltcoop/felt@0.12.0
+ 48 packages 😢

added 50 packages, removed 2 packages, changed 10 packages, and audited 161 packages

This is a big sadface increase in Gro's dependencies, but adding svelte-check makes Gro more convenient to use. Alleviated by the fact that it's an official Svelte project and adds extremely popular dependencies. See this PR for more context and details: https://github.com/feltcoop/gro/pull/271

ryanatkn commented 3 years ago
npm i @feltcoop/felt@0.14.1 @feltcoop/gro@0.45.1
- 29 packages 🙂

removed 29 packages, changed 2 packages, and audited 132 packages in 1s

Gro removed its frontend functionality in favor of supporting only SvelteKit, dropping esinstall and its many deps: https://github.com/feltcoop/gro/pull/281

ryanatkn commented 2 years ago
npm i @feltcoop/felt@0.15.1 @feltcoop/gro@0.47.2
+ 3 packages 😢

added 5 packages, removed 2 packages, changed 18 packages, and audited 135 packages in 5s

Some transitive deps changed in Gro, nothing major.

ryanatkn commented 2 years ago
npm i @feltcoop/gro@0.49.0
- 78 packages

removed 78 packages, changed 2 packages, and audited 57 packages in 534ms

Gro no longer has svelte-check as a dependency; if it's installed, gro typecheck will detect and use it. Additionally, it removed Rollup and some Rollup plugins, and now uses esbuild for everything.

But at the same time, we install svelte-check as a dependency in the template:

npm i -D svelte-check@2.3.0
+ 54 packages

added 54 packages, and audited 111 packages in 4s

Bringing the total change to:

- 24 packages
ryanatkn commented 2 years ago
npm i @sveltejs/adapter-static@1.0.0-next.26
+ 3 packages

added 3 packages, changed 1 package, and audited 114 packages in 1s

The static adapter added some glob utils.

ryanatkn commented 2 years ago
npm i @feltcoop/gro@0.50.3
+ 11 packages

added 11 packages, changed 2 packages, and audited 122 packages in 4s

Gro added support for TypeScript type generation from schemas, adding the json-schema-to-typescript dependency. (I maintain a fork because I only use it programmatically, and Gro has its own things like formatting, so my fork is 11 deps vs 54 for the main project)

ryanatkn commented 2 years ago
npm i @feltcoop/gro@0.52.3

https://github.com/feltcoop/felt-template/commit/52293dd09406c35cab4abaf9fd88bce256f8a5df

+ 5 packages

added 6 packages, removed 1 package, changed 3 packages, and audited 127 packages in 578ms

Gro added support for args schema validation, adding the Ajv dependency.

ryanatkn commented 2 years ago
npm i -D eslint@8.11.0 \
    @typescript-eslint/eslint-plugin@5.15.0 \
    @typescript-eslint/parser@5.15.0 \
    eslint-plugin-svelte3@3.4.1 \
    @feltcoop/eslint-config@0.1.3

https://github.com/feltcoop/felt-template/commit/513ec74060f95f763c616b68d76772eadcc13e81

+ 84 packages

added 84 packages, and audited 211 packages in 3s

Gro has optional support for eslint, and we've decided to integrate it by default in all of our projects. This adds eslint along with support for TypeScript and Svelte, and it uses our config @feltcoop/eslint-config.

This is a big one, almost doubling our total dep count, but given the popularity of eslint in the community, adding these dependencies isn't as costly as it may appear, the benefits to code quality are substantial, and it's very nice to have it out of the box.

ryanatkn commented 2 years ago
npm i @sveltejs/kit@1.0.0-next.298 @sveltejs/adapter-static@1.0.0-next.29

https://github.com/feltcoop/felt-template/pull/3

+ 2 packages

added 4 packages, removed 2 packages, changed 10 packages, and audited 213 packages in 3s

Big upgrade for SvelteKit.

ryanatkn commented 2 years ago
npm i @feltcoop/gro@0.55.1

https://github.com/feltcoop/felt-template/commit/41d21d96a7141661fa066065eb01043e7cce531d

- 1 package

removed 1 package, changed 1 package, and audited 212 packages in 522ms

removed a dep from Gro

ryanatkn commented 2 years ago
npm i @sveltejs/kit@1.0.0-next.340 @sveltejs/adapter-static@1.0.0-next.31

https://github.com/feltcoop/felt-template/commit/8405ee79ddae4fb6e9e858f7b60d8eada2593b85

+ 1 package

added 2 packages, removed 1 package, changed 11 packages, and audited 213 packages in 4s

ryanatkn commented 2 years ago

Not sure where the 2 additional deps came from here, everything got updated: https://github.com/feltcoop/felt-template/pull/6

https://github.com/feltcoop/felt-template/commit/c47fae4caa62597ea45612250bb5836540c0c042

+ 2 packages
ryanatkn commented 2 years ago

Upgraded esbuild via SvelteKit/Vite which added a couple platform-specific deps.

https://github.com/feltcoop/felt-template/commit/eb2dad5282789b7fc3456ed5c51142085587a391

+ 2 packages

added 2 packages, changed 9 packages, and audited 217 packages in 3s

ryanatkn commented 2 years ago

Upgraded SvelteKit from 1.0.0-next.405 to 1.0.0-next.476, along with most other deps. SvelteKit has more deps now, but it's still quite slim. Also adds uvu as a dependency now that it's no longer a Gro peer dep.

https://github.com/feltcoop/felt-template/pull/7

+ 19 packages

added 24 packages, removed 5 packages, changed 31 packages, and audited 236 packages in 2s

ryanatkn commented 2 years ago

Upgraded SvelteKit from 1.0.0-next.476 to 1.0.0-next.538 and eslint from 8.23.0 to 8.27.0. Each has some dependency churn but net zero packages.

https://github.com/feltcoop/felt-template/commit/b289aa348eebd9da41e270d9289d55b923c50837

https://github.com/feltcoop/felt-template/commit/7679a40124cd9c514dc8ffcadba40c9f6d6c769f

ryanatkn commented 1 year ago

Upgraded all the deps:

https://github.com/feltcoop/felt-template/commit/476b7a729ab19fc1886f0f3709a45f61c09e2064

+ 0 packages

added 1 package, removed 3 packages, changed 18 packages, and audited 236 packages in 11s

Hmm says 236 still? Maybe I missed an upgrade, doesn't matter.

ryanatkn commented 1 year ago

Upgraded to SvelteKit 1.0:

https://github.com/feltcoop/gro/pull/359

https://github.com/feltcoop/gro/commit/d38378be1615179191a484892c872adcf82fd4f7

+ 1 packages

audited 237 packages

ryanatkn commented 1 year ago

Upgraded to @sveltejs/kit@1.7.2:

https://github.com/feltjs/felt-template/commit/bb1b59b38bfffebaccd44839a2a3f4ef864ac1f7

+ 1 package

added 1 package, changed 5 packages, and audited 238 packages in 4s

ryanatkn commented 1 year ago

Some good churn in the eslint plugin and elsewhere:

https://github.com/feltjs/felt-template/commit/608ffa4bcc08b1eed103005d9a53b7bffca7b4f6

- 9 packages

audited 229 packages

ryanatkn commented 1 year ago

Now included via SvelteKit: @sveltejs/vite-plugin-svelte-inspector:

https://github.com/feltjs/felt-template/pull/9

- 2 packages

added 2 packages, removed 4 packages, changed 32 packages, and audited 227 packages in 5s

ryanatkn commented 1 year ago

Upgraded to Svelte 4 and changed from eslint-plugin-svelte3 to eslint-plugin-svelte:

https://github.com/feltjs/felt-template/pull/10

+ 27 packages

added 27 packages, removed 1 package, changed 17 packages, and audited 253 packages in 2s

ryanatkn commented 1 year ago

@typescript-eslint/eslint-plugin shaved a dep:

https://github.com/feltjs/felt-template/commit/6d32351d77918a09ec82694a4dc1d3accd86fd38

- 1 package

added 1 package, removed 2 packages, changed 14 packages, and audited 252 packages in 2s

ryanatkn commented 1 year ago

gro changed to chokidar away from cheap-watch - https://github.com/grogarden/gro/pull/386:

https://github.com/feltjs/felt-template/commit/b22acb5d569973176d5bba046a7a728eba82ee49

- 1 package

removed 1 package, changed 2 packages, and audited 251 packages in 561ms

ryanatkn commented 1 year ago

gro had a major update with https://github.com/grogarden/gro/pull/382

12

- 3 packages

audited 248 packages in 1s

ryanatkn commented 1 year ago

@typescript-eslint/eslint-plugin@6 trimmed some deps:

https://github.com/feltjs/felt-template/commit/bcd6ccf3b2f24e50f7247aed43af6b0700e1006a

- 4 packages

added 1 package, removed 5 packages, changed 9 packages, and audited 244 packages in 708ms

ryanatkn commented 1 year ago

upgraded to @grogarden/gro@0.85

https://github.com/fuz-dev/fuz-template/commit/04246c6c9119ed40123bbc5a555324d745265237

- 4 packages

audited 240 packages in 454ms

ryanatkn commented 1 year ago

added @fuz.dev/fuz_library

https://github.com/fuz-dev/fuz_template/commit/06d38ee1697256ac28b7acee732ada8bc4fc5b83

+ 2 packages

audited 242 packages in 893ms

ryanatkn commented 1 year ago

added @fuz.dev/fuz_contextmenu and @fuz.dev/fuz_dialog and upgraded some others

https://github.com/fuz-dev/fuz_template/commit/29673c0c857f3fbcc6e177684feff28ea665d2fd

+ 1 package

audited 243 packages in 596ms

ryanatkn commented 1 year ago

removed svelte-preprocess-esbuild, using import {vitePreprocess} from '@sveltejs/kit/vite'; instead

15

- 2 packages

audited 241 packages in 520ms

ryanatkn commented 1 year ago

removed @sveltejs/package by default, users are now expected to install it themselves to enable gro publish with the default config, see https://github.com/grogarden/gro/pull/426

16

- 6 packages

removed 6 packages, and audited 235 packages in 513ms

ryanatkn commented 1 year ago

added ts-morph in Gro, see https://github.com/grogarden/gro/pull/430

https://github.com/fuz-dev/fuz_template/commit/d3435f2eaa07965490518652918d127ff46c909d

+ 7 packages

added 7 packages, changed 5 packages, and audited 242 packages in 1s

ryanatkn commented 11 months ago

upgrade @sveltejs/kit@2

https://github.com/fuz-dev/fuz_template/commit/eab40d38f553e918c0114835062ebb290778ee86

+ 1 package

audited 243 packages

ryanatkn commented 10 months ago

upgrade @typescript-eslint/typescript-estree@6.16

https://github.com/fuz-dev/fuz_template/commit/c2349b77b1ecd7328eb6c20a925fa81be8bd4390

+ 1 package

added 2 packages, removed 1 package, changed 10 packages, and audited 244 packages in 5s

ryanatkn commented 10 months ago

upgrade deps

https://github.com/fuz-dev/fuz_template/commit/8e1ab5bb3a6271f4043737873dde6c8fd600b544

- 7 packages

added 1 package, removed 8 packages, changed 15 packages, and audited 237 packages in 4s

ryanatkn commented 10 months ago

upgrade deps

https://github.com/fuz-dev/fuz_template/commit/3f118c13522c2baf893fa5dd842644bcb57f8785

+ 1 package

added 1 package, and audited 238 packages in 687ms

ryanatkn commented 7 months ago

upgrade deps including Svelte 5

https://github.com/ryanatkn/fuz_template/pull/18

- 1 package

audited 237 packages in 490ms

ryanatkn commented 7 months ago

add @ryanatkn/moss which was extracted from Fuz

https://github.com/ryanatkn/fuz_template/pull/19

+ 1 package

audited 238 packages in 484ms

ryanatkn commented 5 months ago

Some deps were trimmed from eslint-plugin-svelte and @typescript-eslint/utils and their transient deps.

20

- 6 packages

audited 232 packages in 487ms

ryanatkn commented 4 months ago

esbuild upgrade, nothing really added

21

+ 2 packages

audited 234 packages in 511ms

ryanatkn commented 4 months ago

upgraded to eslint@9 and typescript-eslint@8, each of which added some deps

22

+ 11 packages

audited 245 packages in 478ms

ryanatkn commented 3 months ago

Some more eslint-related churn

https://github.com/ryanatkn/fuz_template/commit/a8001ba5e707f647bf4557fd0ffc3b761cb0255f

- 7 packages

audited 238 packages in 694ms

ryanatkn commented 2 months ago

Big reduction mostly thanks to svelte-check no longer depending on svelte-preprocess.

https://github.com/ryanatkn/fuz_template/commit/ac4b1b76a9f32b655092927653f665db96b45518

- 25 packages

audited 213 packages in 592ms

ryanatkn commented 2 months ago

ESLint churn

https://github.com/ryanatkn/fuz_template/commit/8056932d19a1e55b457315b0f777cfe5e5b37ba5

+1 package

audited 214 packages in 474ms

ryanatkn commented 2 months ago

Chokidar dropped 12 deps but it's not yet updated in svelte-check, so I expect this'll drop by 14 deps once it's updated.

https://github.com/ryanatkn/fuz_template/commit/56baa269a001edc73071d273cff748943c458f95

+2 packages

audited 216 packages in 453ms

ryanatkn commented 1 month ago

svelte-check upgraded Chokidar, looks like some deps are still used by ESLint.

https://github.com/ryanatkn/fuz_template/commit/15a0b12c34129adedbfba727f58f7923732cc683

reinstalled lockfile - https://github.com/ryanatkn/fuz_template/commit/60a1893db6bec8e780a4e6fbdbffad9834f98f1e

-7 packages

audited 209 packages in 607ms