From e28680eaa7ed5c3492a7aaeb3490356283c604af Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Mon, 22 Jan 2024 15:33:40 +0300 Subject: [PATCH 01/21] chore: update spago locks --- generate/spago.lock | 681 ++++++++++++++++++++++++++++- nix/examples/simple-ffi/spago.lock | 476 ++++++++++++++++++++ nix/examples/simple/spago.lock | 492 ++++++++++++++++++++- 3 files changed, 1640 insertions(+), 9 deletions(-) diff --git a/generate/spago.lock b/generate/spago.lock index 3c26b85..a8b0fbd 100644 --- a/generate/spago.lock +++ b/generate/spago.lock @@ -11,6 +11,115 @@ workspace: - lib - node-process test_dependencies: [] + build_plan: + - aff + - aff-promise + - ansi + - argonaut-core + - argparse-basic + - arraybuffer-types + - arrays + - assert + - avar + - b64 + - bifunctors + - catenable-lists + - codec + - codec-argonaut + - console + - const + - contravariant + - control + - datetime + - debug + - distributive + - dotenv + - effect + - either + - encoding + - enums + - exceptions + - exists + - fetch + - fetch-core + - fixed-points + - foldable-traversable + - foreign + - foreign-object + - fork + - formatters + - free + - functions + - functors + - gen + - graphs + - http-methods + - identity + - integers + - invariant + - js-date + - js-timers + - js-uri + - language-cst-parser + - lazy + - lcg + - lib + - lists + - maybe + - media-types + - mmorph + - newtype + - node-buffer + - node-child-process + - node-event-emitter + - node-execa + - node-fs + - node-fs-aff + - node-human-signals + - node-path + - node-process + - node-streams + - nonempty + - now + - nullable + - numbers + - ordered-collections + - orders + - parallel + - parsing + - partial + - pipes + - posix-types + - prelude + - profunctor + - profunctor-lenses + - quickcheck + - random + - record + - refs + - registry-lib + - routing-duplex + - run + - safe-coerce + - spec + - st + - strings + - sunde + - tailrec + - transformers + - tuples + - type-equality + - typelevel-prelude + - unfoldable + - unicode + - unsafe-coerce + - unsafe-reference + - variant + - web-dom + - web-events + - web-file + - web-promise + - web-streams lib: path: lib dependencies: @@ -27,8 +136,575 @@ workspace: test_dependencies: - debug - spec + build_plan: + - aff + - aff-promise + - ansi + - argonaut-core + - arraybuffer-types + - arrays + - assert + - avar + - b64 + - bifunctors + - catenable-lists + - codec + - codec-argonaut + - console + - const + - contravariant + - control + - datetime + - debug + - distributive + - effect + - either + - encoding + - enums + - exceptions + - exists + - fetch + - fetch-core + - fixed-points + - foldable-traversable + - foreign + - foreign-object + - fork + - formatters + - free + - functions + - functors + - gen + - graphs + - http-methods + - identity + - integers + - invariant + - js-date + - js-timers + - js-uri + - language-cst-parser + - lazy + - lcg + - lists + - maybe + - media-types + - mmorph + - newtype + - node-buffer + - node-event-emitter + - node-execa + - node-fs + - node-human-signals + - node-path + - node-process + - node-streams + - nonempty + - now + - nullable + - numbers + - ordered-collections + - orders + - parallel + - parsing + - partial + - pipes + - posix-types + - prelude + - profunctor + - profunctor-lenses + - quickcheck + - random + - record + - refs + - registry-lib + - routing-duplex + - safe-coerce + - spec + - st + - strings + - tailrec + - transformers + - tuples + - type-equality + - typelevel-prelude + - unfoldable + - unicode + - unsafe-coerce + - unsafe-reference + - variant + - web-dom + - web-events + - web-file + - web-promise + - web-streams package_set: - registry: 24.4.0 + address: + registry: 24.4.0 + compiler: ">=0.15.8 <0.16.0" + content: + abc-parser: 2.0.0 + ace: 9.1.0 + aff: 7.1.0 + aff-bus: 6.0.0 + aff-coroutines: 9.0.0 + aff-promise: 4.0.0 + aff-retry: 2.0.0 + affjax: 13.0.0 + affjax-node: 1.0.0 + affjax-web: 1.0.0 + ansi: 7.0.0 + argonaut: 9.0.0 + argonaut-aeson-generic: 0.4.1 + argonaut-codecs: 9.1.0 + argonaut-core: 7.0.0 + argonaut-generic: 8.0.0 + argonaut-traversals: 10.0.0 + argparse-basic: 2.0.0 + array-builder: 0.1.2 + array-search: 0.5.6 + arraybuffer: 13.2.0 + arraybuffer-builder: 3.1.0 + arraybuffer-types: 3.0.2 + arrays: 7.2.0 + arrays-zipper: 2.0.1 + ask: 1.0.0 + assert: 6.0.0 + assert-multiple: 0.3.4 + avar: 5.0.0 + b64: 0.0.8 + barbies: 1.0.1 + barlow-lens: 0.9.0 + basic-auth: 3.0.1 + bifunctors: 6.0.0 + bigints: 7.0.1 + bolson: 0.3.9 + bookhound: 0.1.0 + bower-json: 3.0.0 + bucketchain: 1.0.1 + bucketchain-basic-auth: 1.0.1 + bucketchain-conditional: 1.0.1 + bucketchain-cors: 1.0.1 + bucketchain-csrf: 1.0.1 + bucketchain-header-utils: 1.0.1 + bucketchain-health: 1.0.1 + bucketchain-history-api-fallback: 1.0.1 + bucketchain-logger: 1.0.1 + bucketchain-secure: 1.0.1 + bucketchain-simple-api: 5.0.1 + bucketchain-sslify: 1.0.1 + bucketchain-static: 1.0.1 + call-by-name: 4.0.1 + canvas: 6.0.0 + canvas-action: 9.0.0 + cartesian: 1.0.6 + catenable-lists: 7.0.0 + channel: 1.0.0 + checked-exceptions: 3.1.1 + classless: 0.1.1 + classless-arbitrary: 0.1.1 + classless-decode-json: 0.1.1 + classless-encode-json: 0.1.3 + classnames: 2.0.0 + codec: 6.0.0 + codec-argonaut: 10.0.0 + colors: 7.0.1 + concur-core: 0.5.0 + concur-react: 0.5.0 + concurrent-queues: 3.0.0 + console: 6.0.0 + const: 6.0.0 + contravariant: 6.0.0 + control: 6.0.0 + convertable-options: 1.0.0 + coroutines: 7.0.0 + crypto: 5.0.1 + css: 6.0.0 + datetime: 6.1.0 + datetime-parsing: 0.2.0 + debug: 6.0.2 + decimals: 7.1.0 + default-values: 1.0.1 + deku: 0.9.21 + deno: 0.0.5 + dissect: 1.0.0 + distributive: 6.0.0 + dodo-printer: 2.2.1 + dom-filereader: 7.0.0 + dom-indexed: 11.0.0 + dotenv: 4.0.0 + droplet: 0.6.0 + dts: 0.1.4 + dynamic-buffer: 3.0.1 + echarts-simple: 0.0.1 + effect: 4.0.0 + either: 6.1.0 + elmish: 0.9.3 + elmish-enzyme: 0.1.1 + elmish-hooks: 0.9.1 + elmish-html: 0.8.1 + elmish-testing-library: 0.3.1 + email-validate: 7.0.0 + encoding: 0.0.8 + enums: 6.0.1 + env-names: 0.3.4 + error: 2.0.0 + exceptions: 6.0.0 + exists: 6.0.0 + exitcodes: 4.0.0 + expect-inferred: 3.0.0 + fahrtwind: 2.0.0 + fallback: 0.1.0 + fast-vect: 1.1.0 + fetch: 1.1.4 + fetch-argonaut: 1.0.1 + fetch-core: 4.0.4 + fetch-yoga-json: 1.1.0 + filterable: 5.0.0 + fixed-points: 7.0.0 + fixed-precision: 5.0.0 + flame: 1.3.0 + float32: 2.0.0 + foldable-traversable: 6.0.0 + foreign: 7.0.0 + foreign-object: 4.1.0 + foreign-readwrite: 3.4.0 + forgetmenot: 0.1.0 + fork: 6.0.0 + form-urlencoded: 7.0.0 + formatters: 7.0.0 + framer-motion: 1.0.1 + free: 7.0.0 + freeap: 7.0.0 + freer-free: 0.0.1 + freet: 7.0.0 + functions: 6.0.0 + functor1: 3.0.0 + functors: 5.0.0 + fuzzy: 0.4.0 + gen: 4.0.0 + generate-values: 1.0.1 + generic-router: 0.0.1 + geojson: 0.0.3 + geometry-plane: 1.0.3 + github-actions-toolkit: 0.5.0 + grain: 3.0.0 + grain-router: 3.0.0 + grain-virtualized: 3.0.0 + graphql-client: 9.3.2 + graphs: 8.1.0 + group: 4.1.1 + halogen: 7.0.0 + halogen-bootstrap5: 2.1.0 + halogen-css: 10.0.0 + halogen-echarts-simple: 0.0.4 + halogen-formless: 4.0.3 + halogen-helix: 1.0.0 + halogen-hooks: 0.6.3 + halogen-hooks-extra: 0.9.0 + halogen-store: 0.5.4 + halogen-storybook: 2.0.0 + halogen-subscriptions: 2.0.0 + halogen-svg-elems: 8.0.0 + halogen-vdom: 8.0.0 + halogen-vdom-string-renderer: 0.5.0 + heckin: 2.0.1 + heterogeneous: 0.6.0 + homogeneous: 0.4.0 + http-methods: 6.0.0 + httpure: 0.16.0 + httpurple: 3.0.1 + httpurple-argonaut: 1.0.1 + httpurple-yoga-json: 1.0.0 + humdrum: 0.0.1 + hyrule: 2.3.8 + identity: 6.0.0 + identy: 4.0.1 + indexed-db: 1.0.0 + indexed-monad: 3.0.0 + int64: 3.0.0 + integers: 6.0.0 + interpolate: 5.0.2 + invariant: 6.0.0 + jarilo: 1.0.1 + jelly: 0.10.0 + jelly-router: 0.3.0 + jelly-signal: 0.4.0 + jest: 1.0.0 + js-abort-controller: 1.0.0 + js-bigints: 2.1.0 + js-date: 8.0.0 + js-fileio: 3.0.0 + js-iterators: 0.1.1 + js-maps: 0.1.2 + js-promise: 1.0.0 + js-promise-aff: 1.0.0 + js-timers: 6.1.0 + js-uri: 3.1.0 + json-codecs: 3.0.0 + justifill: 0.5.0 + jwt: 0.0.9 + labeled-data: 0.2.0 + language-cst-parser: 0.13.0 + lazy: 6.0.0 + lazy-joe: 1.0.0 + lcg: 4.0.0 + leibniz: 5.0.0 + liminal: 1.0.1 + linalg: 6.0.0 + lists: 7.0.0 + literals: 1.0.2 + logging: 3.0.0 + logging-journald: 0.4.0 + machines: 7.0.0 + maps-eager: 0.4.1 + marionette: 1.0.0 + marionette-commander: 0.1.1 + marionette-react-basic-hooks: 0.1.1 + matrices: 5.0.1 + matryoshka: 1.0.0 + maybe: 6.0.0 + mdast-util-from-markdown: 0.2.1 + media-types: 6.0.0 + midi: 4.0.0 + milkis: 9.0.0 + minibench: 4.0.1 + mmorph: 7.0.0 + monad-control: 5.0.0 + monad-logger: 1.3.1 + monad-loops: 0.5.0 + monad-unlift: 1.0.1 + monoid-extras: 0.0.1 + monoidal: 0.16.0 + morello: 0.4.0 + mote: 3.0.0 + motsunabe: 2.0.0 + mysql: 6.0.1 + n3: 0.1.0 + nano-id: 1.1.0 + nanoid: 0.1.0 + naturals: 3.0.0 + nested-functor: 0.2.1 + newtype: 5.0.0 + nextjs: 0.1.1 + nextui: 0.2.0 + node-buffer: 8.0.0 + node-buffer-blob: 1.0.0 + node-child-process: 9.0.0 + node-event-emitter: 1.0.1 + node-execa: 1.3.2 + node-fs: 8.2.0 + node-fs-aff: 9.2.0 + node-http: 8.0.0 + node-human-signals: 1.0.0 + node-net: 4.0.0 + node-path: 5.0.0 + node-process: 10.0.0 + node-readline: 7.0.0 + node-sqlite3: 8.0.0 + node-streams: 7.0.0 + node-streams-aff: 5.0.0 + node-url: 6.0.0 + nodemailer: 4.0.1 + nonempty: 7.0.0 + now: 6.0.0 + npm-package-json: 2.0.0 + nullable: 6.0.0 + numberfield: 0.1.0 + numbers: 9.0.1 + oak: 3.1.0 + object-maps: 0.3.0 + ocarina: 1.5.4 + open-folds: 6.3.0 + open-memoize: 6.1.0 + open-pairing: 6.1.0 + options: 7.0.0 + optparse: 5.0.0 + ordered-collections: 3.0.0 + ordered-set: 0.4.0 + orders: 6.0.0 + pairs: 9.0.1 + parallel: 6.0.0 + parsing: 10.2.0 + parsing-dataview: 3.2.4 + partial: 4.0.0 + pathy: 9.0.0 + pha: 0.11.0 + phaser: 0.7.0 + phylio: 1.1.2 + pipes: 8.0.0 + pirates-charm: 0.0.1 + pmock: 0.4.0 + point-free: 1.0.0 + pointed-list: 0.5.1 + polymorphic-vectors: 4.0.0 + posix-types: 6.0.0 + precise: 6.0.0 + precise-datetime: 7.0.0 + prelude: 6.0.1 + prettier-printer: 3.0.0 + profunctor: 6.0.0 + profunctor-lenses: 8.0.0 + protobuf: 4.3.0 + ps-cst: 1.2.0 + psa-utils: 8.0.0 + psc-ide: 19.0.0 + psci-support: 6.0.0 + qualified-do: 2.2.0 + quantities: 12.1.0 + quickcheck: 8.0.1 + quickcheck-combinators: 0.1.3 + quickcheck-laws: 7.0.0 + quickcheck-utf8: 0.0.0 + random: 6.0.0 + rationals: 5.0.1 + rdf: 0.1.0 + react: 11.0.0 + react-aria: 0.2.0 + react-basic: 17.0.0 + react-basic-classic: 3.0.0 + react-basic-dnd: 10.1.0 + react-basic-dom: 6.1.0 + react-basic-emotion: 7.1.0 + react-basic-hooks: 8.2.0 + react-basic-storybook: 2.0.0 + react-dom: 8.0.0 + react-halo: 3.0.0 + react-icons: 1.1.1 + react-markdown: 0.1.0 + react-testing-library: 4.0.1 + react-virtuoso: 1.0.0 + read: 1.0.1 + recharts: 1.1.0 + record: 4.0.0 + record-extra: 5.0.1 + record-studio: 1.0.4 + refs: 6.0.0 + remotedata: 5.0.0 + resource: 2.0.1 + resourcet: 1.0.0 + result: 1.0.3 + return: 0.2.0 + ring-modules: 5.0.1 + rito: 0.3.4 + routing: 11.0.0 + routing-duplex: 0.7.0 + run: 5.0.0 + safe-coerce: 2.0.0 + safely: 4.0.1 + school-of-music: 1.3.0 + selection-foldable: 0.2.0 + semirings: 7.0.0 + signal: 13.0.0 + simple-emitter: 3.0.1 + simple-i18n: 2.0.1 + simple-json: 9.0.0 + simple-jwt: 4.0.1 + simple-ulid: 3.0.0 + sized-matrices: 1.0.0 + sized-vectors: 5.0.2 + slug: 3.0.8 + small-ffi: 4.0.1 + soundfonts: 4.1.0 + sparse-matrices: 1.3.0 + sparse-polynomials: 2.0.5 + spec: 7.3.0 + spec-discovery: 8.0.1 + spec-quickcheck: 5.0.0 + splitmix: 2.1.0 + ssrs: 1.0.0 + st: 6.2.0 + statistics: 0.3.2 + strictlypositiveint: 1.0.1 + string-parsers: 8.0.0 + strings: 6.0.1 + strings-extra: 4.0.0 + stringutils: 0.0.12 + substitute: 0.2.3 + sunde: 3.0.0 + supply: 0.2.0 + svg-parser: 3.0.0 + systemd-journald: 0.3.0 + tagged: 4.0.2 + tailrec: 6.1.0 + tecton: 0.2.0 + tecton-halogen: 0.2.0 + test-unit: 17.0.0 + thermite: 6.3.1 + thermite-dom: 0.3.1 + these: 6.0.0 + toppokki: 4.0.0 + transformation-matrix: 1.0.1 + transformers: 6.0.0 + tree-rose: 4.0.2 + ts-bridge: 2.0.3 + tuples: 7.0.0 + two-or-more: 1.0.0 + type-equality: 4.0.1 + typedenv: 2.0.1 + typelevel: 6.0.0 + typelevel-lists: 2.1.0 + typelevel-peano: 1.0.1 + typelevel-prelude: 7.0.0 + typelevel-rows: 0.1.0 + uint: 7.0.0 + ulid: 3.0.1 + uncurried-transformers: 1.1.0 + undefined: 2.0.0 + undefined-is-not-a-problem: 1.1.0 + unfoldable: 6.0.0 + unicode: 6.0.0 + unique: 0.6.1 + unlift: 1.0.1 + unordered-collections: 3.0.1 + unsafe-coerce: 6.0.0 + unsafe-reference: 5.0.0 + untagged-to-tagged: 0.1.4 + untagged-union: 1.0.0 + uri: 9.0.0 + uuid: 9.0.0 + uuidv4: 1.0.0 + validation: 6.0.0 + variant: 8.0.0 + variant-encodings: 2.0.0 + vectorfield: 1.0.1 + vectors: 2.1.0 + versions: 7.0.0 + visx: 0.0.2 + web-clipboard: 5.0.0 + web-cssom: 2.0.0 + web-cssom-view: 0.1.0 + web-dom: 6.0.0 + web-dom-parser: 8.0.0 + web-dom-xpath: 3.0.0 + web-encoding: 3.0.0 + web-events: 4.0.0 + web-fetch: 3.0.0 + web-file: 4.0.0 + web-geometry: 0.1.0 + web-html: 4.1.0 + web-pointerevents: 1.0.0 + web-proletarian: 1.0.0 + web-promise: 3.1.0 + web-resize-observer: 2.0.0 + web-router: 1.0.0 + web-socket: 4.0.0 + web-storage: 5.0.0 + web-streams: 3.0.0 + web-touchevents: 4.0.0 + web-uievents: 4.0.0 + web-url: 2.0.0 + web-workers: 1.1.0 + web-xhr: 5.0.1 + webextension-polyfill: 0.1.0 + webgpu: 0.0.0 + which: 2.0.0 + yoga-fetch: 1.0.1 + yoga-json: 5.1.0 + yoga-om: 0.1.0 + yoga-postgres: 6.0.0 + yoga-tree: 1.0.0 + z3: 0.0.2 extra_packages: registry-lib: git: https://github.com/purescript/registry-dev.git @@ -1072,7 +1748,7 @@ packages: registry-lib: type: git url: https://github.com/purescript/registry-dev.git - rev: 1b9fc7d58b16ff4996a4a2a389e442dd207c9b27 + rev: ef989a119d79f25d315ab7dcee603792750b059c subdir: lib dependencies: - aff @@ -1098,7 +1774,6 @@ packages: - newtype - node-buffer - node-fs - - node-fs-aff - node-path - nullable - ordered-collections diff --git a/nix/examples/simple-ffi/spago.lock b/nix/examples/simple-ffi/spago.lock index ab43611..46cef70 100644 --- a/nix/examples/simple-ffi/spago.lock +++ b/nix/examples/simple-ffi/spago.lock @@ -7,6 +7,482 @@ workspace: - effect - prelude test_dependencies: [] + build_plan: + - console + - effect + - prelude + package_set: + address: + registry: 25.2.1 + compiler: ">=0.15.8 <0.16.0" + content: + abc-parser: 2.0.0 + ace: 9.1.0 + aff: 7.1.0 + aff-bus: 6.0.0 + aff-coroutines: 9.0.0 + aff-promise: 4.0.0 + aff-retry: 2.0.0 + affjax: 13.0.0 + affjax-node: 1.0.0 + affjax-web: 1.0.0 + ansi: 7.0.0 + argonaut: 9.0.0 + argonaut-aeson-generic: 0.4.1 + argonaut-codecs: 9.1.0 + argonaut-core: 7.0.0 + argonaut-generic: 8.0.0 + argonaut-traversals: 10.0.0 + argparse-basic: 2.0.0 + array-builder: 0.1.2 + array-search: 0.5.6 + arraybuffer: 13.2.0 + arraybuffer-builder: 3.1.0 + arraybuffer-types: 3.0.2 + arrays: 7.2.0 + arrays-zipper: 2.0.1 + ask: 1.0.0 + assert: 6.0.0 + assert-multiple: 0.3.4 + avar: 5.0.0 + b64: 0.0.8 + barbies: 1.0.1 + barlow-lens: 0.9.0 + basic-auth: 3.0.1 + bifunctors: 6.0.0 + bigints: 7.0.1 + bolson: 0.3.9 + bookhound: 0.1.2 + bower-json: 3.0.0 + bucketchain: 1.0.1 + bucketchain-basic-auth: 1.0.1 + bucketchain-conditional: 1.0.1 + bucketchain-cors: 1.0.1 + bucketchain-csrf: 1.0.1 + bucketchain-header-utils: 1.0.1 + bucketchain-health: 1.0.1 + bucketchain-history-api-fallback: 1.0.1 + bucketchain-logger: 1.0.1 + bucketchain-secure: 1.0.1 + bucketchain-simple-api: 5.0.1 + bucketchain-sslify: 1.0.1 + bucketchain-static: 1.0.1 + call-by-name: 4.0.1 + canvas: 6.0.0 + canvas-action: 9.0.0 + cartesian: 1.0.6 + catenable-lists: 7.0.0 + channel: 1.0.0 + checked-exceptions: 3.1.1 + classless: 0.1.1 + classless-arbitrary: 0.1.1 + classless-decode-json: 0.1.1 + classless-encode-json: 0.1.3 + classnames: 2.0.0 + codec: 6.0.0 + codec-argonaut: 10.0.0 + colors: 7.0.1 + concur-core: 0.5.0 + concur-react: 0.5.0 + concurrent-queues: 3.0.0 + console: 6.0.0 + const: 6.0.0 + contravariant: 6.0.0 + control: 6.0.0 + convertable-options: 1.0.0 + coroutines: 7.0.0 + crypto: 5.0.1 + css: 6.0.0 + datetime: 6.1.0 + datetime-parsing: 0.2.0 + debug: 6.0.2 + decimals: 7.1.0 + default-values: 1.0.1 + deku: 0.9.22 + deno: 0.0.5 + dissect: 1.0.0 + distributive: 6.0.0 + dodo-printer: 2.2.1 + dom-filereader: 7.0.0 + dom-indexed: 11.0.0 + dotenv: 4.0.0 + droplet: 0.6.0 + dts: 0.1.4 + dynamic-buffer: 3.0.1 + echarts-simple: 0.0.1 + effect: 4.0.0 + either: 6.1.0 + elmish: 0.9.3 + elmish-enzyme: 0.1.1 + elmish-hooks: 0.9.1 + elmish-html: 0.8.1 + elmish-testing-library: 0.3.1 + email-validate: 7.0.0 + encoding: 0.0.8 + enums: 6.0.1 + env-names: 0.3.4 + error: 2.0.0 + exceptions: 6.0.0 + exists: 6.0.0 + exitcodes: 4.0.0 + expect-inferred: 3.0.0 + fahrtwind: 2.0.0 + fallback: 0.1.0 + fast-vect: 1.1.0 + fetch: 1.1.4 + fetch-argonaut: 1.0.1 + fetch-core: 4.0.4 + fetch-yoga-json: 1.1.0 + filterable: 5.0.0 + fixed-points: 7.0.0 + fixed-precision: 5.0.0 + flame: 1.3.0 + float32: 2.0.0 + foldable-traversable: 6.0.0 + foreign: 7.0.0 + foreign-object: 4.1.0 + foreign-readwrite: 3.4.0 + forgetmenot: 0.1.0 + fork: 6.0.0 + form-urlencoded: 7.0.0 + formatters: 7.0.0 + framer-motion: 1.0.1 + free: 7.0.0 + freeap: 7.0.0 + freer-free: 0.0.1 + freet: 7.0.0 + functions: 6.0.0 + functor1: 3.0.0 + functors: 5.0.0 + fuzzy: 0.4.0 + gen: 4.0.0 + generate-values: 1.0.1 + generic-router: 0.0.1 + geojson: 0.0.3 + geometry-plane: 1.0.3 + github-actions-toolkit: 0.5.0 + grain: 3.0.0 + grain-router: 3.0.0 + grain-virtualized: 3.0.0 + graphql-client: 9.3.2 + graphs: 8.1.0 + group: 4.1.1 + halogen: 7.0.0 + halogen-bootstrap5: 2.2.0 + halogen-css: 10.0.0 + halogen-css-frameworks: 1.0.0 + halogen-echarts-simple: 0.0.4 + halogen-formless: 4.0.3 + halogen-helix: 1.0.0 + halogen-hooks: 0.6.3 + halogen-hooks-extra: 0.9.0 + halogen-store: 0.5.4 + halogen-storybook: 2.0.0 + halogen-subscriptions: 2.0.0 + halogen-svg-elems: 8.0.0 + halogen-vdom: 8.0.0 + halogen-vdom-string-renderer: 0.5.0 + heckin: 2.0.1 + heterogeneous: 0.6.0 + homogeneous: 0.4.0 + http-methods: 6.0.0 + httpure: 0.16.0 + httpurple: 3.0.1 + httpurple-argonaut: 1.0.1 + httpurple-yoga-json: 1.0.0 + humdrum: 0.0.1 + hyrule: 2.3.8 + identity: 6.0.0 + identy: 4.0.1 + indexed-db: 1.0.0 + indexed-monad: 3.0.0 + int64: 3.0.0 + integers: 6.0.0 + interpolate: 5.0.2 + invariant: 6.0.0 + jarilo: 1.0.1 + jelly: 0.10.0 + jelly-router: 0.3.0 + jelly-signal: 0.4.0 + jest: 1.0.0 + js-abort-controller: 1.0.0 + js-bigints: 2.1.0 + js-date: 8.0.0 + js-fileio: 3.0.0 + js-iterators: 0.1.1 + js-maps: 0.1.2 + js-promise: 1.0.0 + js-promise-aff: 1.0.0 + js-timers: 6.1.0 + js-uri: 3.1.0 + json-codecs: 3.0.0 + justifill: 0.5.0 + jwt: 0.0.9 + labeled-data: 0.2.0 + language-cst-parser: 0.13.0 + lazy: 6.0.0 + lazy-joe: 1.0.0 + lcg: 4.0.0 + leibniz: 5.0.0 + liminal: 1.0.1 + linalg: 6.0.0 + lists: 7.0.0 + literals: 1.0.2 + logging: 3.0.0 + logging-journald: 0.4.0 + machines: 7.0.0 + maps-eager: 0.4.1 + marionette: 1.0.0 + marionette-commander: 0.1.1 + marionette-react-basic-hooks: 0.1.1 + matrices: 5.0.1 + matryoshka: 1.0.0 + maybe: 6.0.0 + mdast-util-from-markdown: 0.2.1 + media-types: 6.0.0 + midi: 4.0.0 + milkis: 9.0.0 + minibench: 4.0.1 + mmorph: 7.0.0 + monad-control: 5.0.0 + monad-logger: 1.3.1 + monad-loops: 0.5.0 + monad-unlift: 1.0.1 + monoid-extras: 0.0.1 + monoidal: 0.16.0 + morello: 0.4.0 + mote: 3.0.0 + motsunabe: 2.0.0 + mysql: 6.0.1 + n3: 0.1.0 + nano-id: 1.1.0 + nanoid: 0.1.0 + naturals: 3.0.0 + nested-functor: 0.2.1 + newtype: 5.0.0 + nextjs: 0.1.1 + nextui: 0.2.0 + node-buffer: 8.0.0 + node-buffer-blob: 1.0.0 + node-child-process: 9.0.0 + node-env-paths: 1.0.0 + node-event-emitter: 1.0.1 + node-execa: 2.0.0 + node-fs: 8.2.0 + node-fs-aff: 9.2.0 + node-http: 8.0.0 + node-human-signals: 1.0.0 + node-net: 4.0.0 + node-os: 4.0.0 + node-path: 5.0.0 + node-process: 10.0.0 + node-readline: 7.0.0 + node-sqlite3: 8.0.0 + node-streams: 7.0.0 + node-streams-aff: 5.0.0 + node-url: 6.0.0 + nodemailer: 4.0.1 + nonempty: 7.0.0 + now: 6.0.0 + npm-package-json: 2.0.0 + nullable: 6.0.0 + numberfield: 0.1.0 + numbers: 9.0.1 + oak: 3.1.0 + object-maps: 0.3.0 + ocarina: 1.5.4 + open-folds: 6.3.0 + open-memoize: 6.1.0 + open-pairing: 6.1.0 + options: 7.0.0 + optparse: 5.0.0 + ordered-collections: 3.0.0 + ordered-set: 0.4.0 + orders: 6.0.0 + pairs: 9.0.1 + parallel: 6.0.0 + parsing: 10.2.0 + parsing-dataview: 3.2.4 + partial: 4.0.0 + pathy: 9.0.0 + pha: 0.11.0 + phaser: 0.7.0 + phylio: 1.1.2 + pipes: 8.0.0 + pirates-charm: 0.0.1 + pmock: 0.4.0 + point-free: 1.0.0 + pointed-list: 0.5.1 + polymorphic-vectors: 4.0.0 + posix-types: 6.0.0 + precise: 6.0.0 + precise-datetime: 7.0.0 + prelude: 6.0.1 + prettier-printer: 3.0.0 + profunctor: 6.0.0 + profunctor-lenses: 8.0.0 + protobuf: 4.3.0 + ps-cst: 1.2.0 + psa-utils: 8.0.0 + psc-ide: 19.0.0 + psci-support: 6.0.0 + qualified-do: 2.2.0 + quantities: 12.2.0 + quickcheck: 8.0.1 + quickcheck-combinators: 0.1.3 + quickcheck-laws: 7.0.0 + quickcheck-utf8: 0.0.0 + random: 6.0.0 + rationals: 5.0.1 + rdf: 0.1.0 + react: 11.0.0 + react-aria: 0.2.0 + react-basic: 17.0.0 + react-basic-classic: 3.0.0 + react-basic-dnd: 10.1.0 + react-basic-dom: 6.1.0 + react-basic-emotion: 7.1.0 + react-basic-hooks: 8.2.0 + react-basic-storybook: 2.0.0 + react-dom: 8.0.0 + react-halo: 3.0.0 + react-icons: 1.1.1 + react-markdown: 0.1.0 + react-testing-library: 4.0.1 + react-virtuoso: 1.0.0 + read: 1.0.1 + recharts: 1.1.0 + record: 4.0.0 + record-extra: 5.0.1 + record-studio: 1.0.4 + refs: 6.0.0 + remotedata: 5.0.0 + resource: 2.0.1 + resourcet: 1.0.0 + result: 1.0.3 + return: 0.2.0 + ring-modules: 5.0.1 + rito: 0.3.4 + routing: 11.0.0 + routing-duplex: 0.7.0 + run: 5.0.0 + safe-coerce: 2.0.0 + safely: 4.0.1 + school-of-music: 1.3.0 + selection-foldable: 0.2.0 + semirings: 7.0.0 + signal: 13.0.0 + simple-emitter: 3.0.1 + simple-i18n: 2.0.1 + simple-json: 9.0.0 + simple-jwt: 4.0.1 + simple-ulid: 3.0.0 + sized-matrices: 1.0.0 + sized-vectors: 5.0.2 + slug: 3.0.8 + small-ffi: 4.0.1 + soundfonts: 4.1.0 + sparse-matrices: 1.3.0 + sparse-polynomials: 2.0.5 + spec: 7.3.0 + spec-discovery: 8.0.1 + spec-golden: 1.0.0 + spec-quickcheck: 5.0.0 + splitmix: 2.1.0 + ssrs: 1.0.0 + st: 6.2.0 + statistics: 0.3.2 + strictlypositiveint: 1.0.1 + string-parsers: 8.0.0 + strings: 6.0.1 + strings-extra: 4.0.0 + stringutils: 0.0.12 + substitute: 0.2.3 + sunde: 3.0.0 + supply: 0.2.0 + svg-parser: 3.0.0 + systemd-journald: 0.3.0 + tagged: 4.0.2 + tailrec: 6.1.0 + tecton: 0.2.1 + tecton-halogen: 0.2.0 + test-unit: 17.0.0 + thermite: 6.3.1 + thermite-dom: 0.3.1 + these: 6.0.0 + toppokki: 4.0.0 + transformation-matrix: 1.0.1 + transformers: 6.0.0 + tree-rose: 4.0.2 + ts-bridge: 2.0.3 + tuples: 7.0.0 + two-or-more: 1.0.0 + type-equality: 4.0.1 + typedenv: 2.0.1 + typelevel: 6.0.0 + typelevel-lists: 2.1.0 + typelevel-peano: 1.0.1 + typelevel-prelude: 7.0.0 + typelevel-rows: 0.1.0 + uint: 7.0.0 + ulid: 3.0.1 + uncurried-transformers: 1.1.0 + undefined: 2.0.0 + undefined-is-not-a-problem: 1.1.0 + unfoldable: 6.0.0 + unicode: 6.0.0 + unique: 0.6.1 + unlift: 1.0.1 + unordered-collections: 3.0.1 + unsafe-coerce: 6.0.0 + unsafe-reference: 5.0.0 + untagged-to-tagged: 0.1.4 + untagged-union: 1.0.0 + uri: 9.0.0 + uuid: 9.0.0 + uuidv4: 1.0.0 + validation: 6.0.0 + variant: 8.0.0 + variant-encodings: 2.0.0 + vectorfield: 1.0.1 + vectors: 2.1.0 + versions: 7.0.0 + visx: 0.0.2 + web-clipboard: 5.0.0 + web-cssom: 2.0.0 + web-cssom-view: 0.1.0 + web-dom: 6.0.0 + web-dom-parser: 8.0.0 + web-dom-xpath: 3.0.0 + web-encoding: 3.0.0 + web-events: 4.0.0 + web-fetch: 3.0.0 + web-file: 4.0.0 + web-geometry: 0.1.0 + web-html: 4.1.0 + web-intl: 0.1.0 + web-pointerevents: 1.0.0 + web-proletarian: 1.0.0 + web-promise: 3.1.0 + web-resize-observer: 2.0.0 + web-router: 1.0.0 + web-socket: 4.0.0 + web-storage: 5.0.0 + web-streams: 3.0.0 + web-touchevents: 4.0.0 + web-uievents: 4.0.0 + web-url: 2.0.0 + web-workers: 1.1.0 + web-xhr: 5.0.1 + webextension-polyfill: 0.1.0 + webgpu: 0.0.0 + which: 2.0.0 + yoga-fetch: 1.0.1 + yoga-json: 5.1.0 + yoga-om: 0.1.0 + yoga-postgres: 6.0.0 + yoga-tree: 1.0.0 + z3: 0.0.2 extra_packages: {} packages: console: diff --git a/nix/examples/simple/spago.lock b/nix/examples/simple/spago.lock index a1f4b3d..c917fd8 100644 --- a/nix/examples/simple/spago.lock +++ b/nix/examples/simple/spago.lock @@ -5,9 +5,489 @@ workspace: dependencies: - console - effect - - prelude - newtype + - prelude test_dependencies: [] + build_plan: + - console + - effect + - newtype + - prelude + - safe-coerce + - unsafe-coerce + package_set: + address: + registry: 25.2.1 + compiler: ">=0.15.8 <0.16.0" + content: + abc-parser: 2.0.0 + ace: 9.1.0 + aff: 7.1.0 + aff-bus: 6.0.0 + aff-coroutines: 9.0.0 + aff-promise: 4.0.0 + aff-retry: 2.0.0 + affjax: 13.0.0 + affjax-node: 1.0.0 + affjax-web: 1.0.0 + ansi: 7.0.0 + argonaut: 9.0.0 + argonaut-aeson-generic: 0.4.1 + argonaut-codecs: 9.1.0 + argonaut-core: 7.0.0 + argonaut-generic: 8.0.0 + argonaut-traversals: 10.0.0 + argparse-basic: 2.0.0 + array-builder: 0.1.2 + array-search: 0.5.6 + arraybuffer: 13.2.0 + arraybuffer-builder: 3.1.0 + arraybuffer-types: 3.0.2 + arrays: 7.2.0 + arrays-zipper: 2.0.1 + ask: 1.0.0 + assert: 6.0.0 + assert-multiple: 0.3.4 + avar: 5.0.0 + b64: 0.0.8 + barbies: 1.0.1 + barlow-lens: 0.9.0 + basic-auth: 3.0.1 + bifunctors: 6.0.0 + bigints: 7.0.1 + bolson: 0.3.9 + bookhound: 0.1.2 + bower-json: 3.0.0 + bucketchain: 1.0.1 + bucketchain-basic-auth: 1.0.1 + bucketchain-conditional: 1.0.1 + bucketchain-cors: 1.0.1 + bucketchain-csrf: 1.0.1 + bucketchain-header-utils: 1.0.1 + bucketchain-health: 1.0.1 + bucketchain-history-api-fallback: 1.0.1 + bucketchain-logger: 1.0.1 + bucketchain-secure: 1.0.1 + bucketchain-simple-api: 5.0.1 + bucketchain-sslify: 1.0.1 + bucketchain-static: 1.0.1 + call-by-name: 4.0.1 + canvas: 6.0.0 + canvas-action: 9.0.0 + cartesian: 1.0.6 + catenable-lists: 7.0.0 + channel: 1.0.0 + checked-exceptions: 3.1.1 + classless: 0.1.1 + classless-arbitrary: 0.1.1 + classless-decode-json: 0.1.1 + classless-encode-json: 0.1.3 + classnames: 2.0.0 + codec: 6.0.0 + codec-argonaut: 10.0.0 + colors: 7.0.1 + concur-core: 0.5.0 + concur-react: 0.5.0 + concurrent-queues: 3.0.0 + console: 6.0.0 + const: 6.0.0 + contravariant: 6.0.0 + control: 6.0.0 + convertable-options: 1.0.0 + coroutines: 7.0.0 + crypto: 5.0.1 + css: 6.0.0 + datetime: 6.1.0 + datetime-parsing: 0.2.0 + debug: 6.0.2 + decimals: 7.1.0 + default-values: 1.0.1 + deku: 0.9.22 + deno: 0.0.5 + dissect: 1.0.0 + distributive: 6.0.0 + dodo-printer: 2.2.1 + dom-filereader: 7.0.0 + dom-indexed: 11.0.0 + dotenv: 4.0.0 + droplet: 0.6.0 + dts: 0.1.4 + dynamic-buffer: 3.0.1 + echarts-simple: 0.0.1 + effect: 4.0.0 + either: 6.1.0 + elmish: 0.9.3 + elmish-enzyme: 0.1.1 + elmish-hooks: 0.9.1 + elmish-html: 0.8.1 + elmish-testing-library: 0.3.1 + email-validate: 7.0.0 + encoding: 0.0.8 + enums: 6.0.1 + env-names: 0.3.4 + error: 2.0.0 + exceptions: 6.0.0 + exists: 6.0.0 + exitcodes: 4.0.0 + expect-inferred: 3.0.0 + fahrtwind: 2.0.0 + fallback: 0.1.0 + fast-vect: 1.1.0 + fetch: 1.1.4 + fetch-argonaut: 1.0.1 + fetch-core: 4.0.4 + fetch-yoga-json: 1.1.0 + filterable: 5.0.0 + fixed-points: 7.0.0 + fixed-precision: 5.0.0 + flame: 1.3.0 + float32: 2.0.0 + foldable-traversable: 6.0.0 + foreign: 7.0.0 + foreign-object: 4.1.0 + foreign-readwrite: 3.4.0 + forgetmenot: 0.1.0 + fork: 6.0.0 + form-urlencoded: 7.0.0 + formatters: 7.0.0 + framer-motion: 1.0.1 + free: 7.0.0 + freeap: 7.0.0 + freer-free: 0.0.1 + freet: 7.0.0 + functions: 6.0.0 + functor1: 3.0.0 + functors: 5.0.0 + fuzzy: 0.4.0 + gen: 4.0.0 + generate-values: 1.0.1 + generic-router: 0.0.1 + geojson: 0.0.3 + geometry-plane: 1.0.3 + github-actions-toolkit: 0.5.0 + grain: 3.0.0 + grain-router: 3.0.0 + grain-virtualized: 3.0.0 + graphql-client: 9.3.2 + graphs: 8.1.0 + group: 4.1.1 + halogen: 7.0.0 + halogen-bootstrap5: 2.2.0 + halogen-css: 10.0.0 + halogen-css-frameworks: 1.0.0 + halogen-echarts-simple: 0.0.4 + halogen-formless: 4.0.3 + halogen-helix: 1.0.0 + halogen-hooks: 0.6.3 + halogen-hooks-extra: 0.9.0 + halogen-store: 0.5.4 + halogen-storybook: 2.0.0 + halogen-subscriptions: 2.0.0 + halogen-svg-elems: 8.0.0 + halogen-vdom: 8.0.0 + halogen-vdom-string-renderer: 0.5.0 + heckin: 2.0.1 + heterogeneous: 0.6.0 + homogeneous: 0.4.0 + http-methods: 6.0.0 + httpure: 0.16.0 + httpurple: 3.0.1 + httpurple-argonaut: 1.0.1 + httpurple-yoga-json: 1.0.0 + humdrum: 0.0.1 + hyrule: 2.3.8 + identity: 6.0.0 + identy: 4.0.1 + indexed-db: 1.0.0 + indexed-monad: 3.0.0 + int64: 3.0.0 + integers: 6.0.0 + interpolate: 5.0.2 + invariant: 6.0.0 + jarilo: 1.0.1 + jelly: 0.10.0 + jelly-router: 0.3.0 + jelly-signal: 0.4.0 + jest: 1.0.0 + js-abort-controller: 1.0.0 + js-bigints: 2.1.0 + js-date: 8.0.0 + js-fileio: 3.0.0 + js-iterators: 0.1.1 + js-maps: 0.1.2 + js-promise: 1.0.0 + js-promise-aff: 1.0.0 + js-timers: 6.1.0 + js-uri: 3.1.0 + json-codecs: 3.0.0 + justifill: 0.5.0 + jwt: 0.0.9 + labeled-data: 0.2.0 + language-cst-parser: 0.13.0 + lazy: 6.0.0 + lazy-joe: 1.0.0 + lcg: 4.0.0 + leibniz: 5.0.0 + liminal: 1.0.1 + linalg: 6.0.0 + lists: 7.0.0 + literals: 1.0.2 + logging: 3.0.0 + logging-journald: 0.4.0 + machines: 7.0.0 + maps-eager: 0.4.1 + marionette: 1.0.0 + marionette-commander: 0.1.1 + marionette-react-basic-hooks: 0.1.1 + matrices: 5.0.1 + matryoshka: 1.0.0 + maybe: 6.0.0 + mdast-util-from-markdown: 0.2.1 + media-types: 6.0.0 + midi: 4.0.0 + milkis: 9.0.0 + minibench: 4.0.1 + mmorph: 7.0.0 + monad-control: 5.0.0 + monad-logger: 1.3.1 + monad-loops: 0.5.0 + monad-unlift: 1.0.1 + monoid-extras: 0.0.1 + monoidal: 0.16.0 + morello: 0.4.0 + mote: 3.0.0 + motsunabe: 2.0.0 + mysql: 6.0.1 + n3: 0.1.0 + nano-id: 1.1.0 + nanoid: 0.1.0 + naturals: 3.0.0 + nested-functor: 0.2.1 + newtype: 5.0.0 + nextjs: 0.1.1 + nextui: 0.2.0 + node-buffer: 8.0.0 + node-buffer-blob: 1.0.0 + node-child-process: 9.0.0 + node-env-paths: 1.0.0 + node-event-emitter: 1.0.1 + node-execa: 2.0.0 + node-fs: 8.2.0 + node-fs-aff: 9.2.0 + node-http: 8.0.0 + node-human-signals: 1.0.0 + node-net: 4.0.0 + node-os: 4.0.0 + node-path: 5.0.0 + node-process: 10.0.0 + node-readline: 7.0.0 + node-sqlite3: 8.0.0 + node-streams: 7.0.0 + node-streams-aff: 5.0.0 + node-url: 6.0.0 + nodemailer: 4.0.1 + nonempty: 7.0.0 + now: 6.0.0 + npm-package-json: 2.0.0 + nullable: 6.0.0 + numberfield: 0.1.0 + numbers: 9.0.1 + oak: 3.1.0 + object-maps: 0.3.0 + ocarina: 1.5.4 + open-folds: 6.3.0 + open-memoize: 6.1.0 + open-pairing: 6.1.0 + options: 7.0.0 + optparse: 5.0.0 + ordered-collections: 3.0.0 + ordered-set: 0.4.0 + orders: 6.0.0 + pairs: 9.0.1 + parallel: 6.0.0 + parsing: 10.2.0 + parsing-dataview: 3.2.4 + partial: 4.0.0 + pathy: 9.0.0 + pha: 0.11.0 + phaser: 0.7.0 + phylio: 1.1.2 + pipes: 8.0.0 + pirates-charm: 0.0.1 + pmock: 0.4.0 + point-free: 1.0.0 + pointed-list: 0.5.1 + polymorphic-vectors: 4.0.0 + posix-types: 6.0.0 + precise: 6.0.0 + precise-datetime: 7.0.0 + prelude: 6.0.1 + prettier-printer: 3.0.0 + profunctor: 6.0.0 + profunctor-lenses: 8.0.0 + protobuf: 4.3.0 + ps-cst: 1.2.0 + psa-utils: 8.0.0 + psc-ide: 19.0.0 + psci-support: 6.0.0 + qualified-do: 2.2.0 + quantities: 12.2.0 + quickcheck: 8.0.1 + quickcheck-combinators: 0.1.3 + quickcheck-laws: 7.0.0 + quickcheck-utf8: 0.0.0 + random: 6.0.0 + rationals: 5.0.1 + rdf: 0.1.0 + react: 11.0.0 + react-aria: 0.2.0 + react-basic: 17.0.0 + react-basic-classic: 3.0.0 + react-basic-dnd: 10.1.0 + react-basic-dom: 6.1.0 + react-basic-emotion: 7.1.0 + react-basic-hooks: 8.2.0 + react-basic-storybook: 2.0.0 + react-dom: 8.0.0 + react-halo: 3.0.0 + react-icons: 1.1.1 + react-markdown: 0.1.0 + react-testing-library: 4.0.1 + react-virtuoso: 1.0.0 + read: 1.0.1 + recharts: 1.1.0 + record: 4.0.0 + record-extra: 5.0.1 + record-studio: 1.0.4 + refs: 6.0.0 + remotedata: 5.0.0 + resource: 2.0.1 + resourcet: 1.0.0 + result: 1.0.3 + return: 0.2.0 + ring-modules: 5.0.1 + rito: 0.3.4 + routing: 11.0.0 + routing-duplex: 0.7.0 + run: 5.0.0 + safe-coerce: 2.0.0 + safely: 4.0.1 + school-of-music: 1.3.0 + selection-foldable: 0.2.0 + semirings: 7.0.0 + signal: 13.0.0 + simple-emitter: 3.0.1 + simple-i18n: 2.0.1 + simple-json: 9.0.0 + simple-jwt: 4.0.1 + simple-ulid: 3.0.0 + sized-matrices: 1.0.0 + sized-vectors: 5.0.2 + slug: 3.0.8 + small-ffi: 4.0.1 + soundfonts: 4.1.0 + sparse-matrices: 1.3.0 + sparse-polynomials: 2.0.5 + spec: 7.3.0 + spec-discovery: 8.0.1 + spec-golden: 1.0.0 + spec-quickcheck: 5.0.0 + splitmix: 2.1.0 + ssrs: 1.0.0 + st: 6.2.0 + statistics: 0.3.2 + strictlypositiveint: 1.0.1 + string-parsers: 8.0.0 + strings: 6.0.1 + strings-extra: 4.0.0 + stringutils: 0.0.12 + substitute: 0.2.3 + sunde: 3.0.0 + supply: 0.2.0 + svg-parser: 3.0.0 + systemd-journald: 0.3.0 + tagged: 4.0.2 + tailrec: 6.1.0 + tecton: 0.2.1 + tecton-halogen: 0.2.0 + test-unit: 17.0.0 + thermite: 6.3.1 + thermite-dom: 0.3.1 + these: 6.0.0 + toppokki: 4.0.0 + transformation-matrix: 1.0.1 + transformers: 6.0.0 + tree-rose: 4.0.2 + ts-bridge: 2.0.3 + tuples: 7.0.0 + two-or-more: 1.0.0 + type-equality: 4.0.1 + typedenv: 2.0.1 + typelevel: 6.0.0 + typelevel-lists: 2.1.0 + typelevel-peano: 1.0.1 + typelevel-prelude: 7.0.0 + typelevel-rows: 0.1.0 + uint: 7.0.0 + ulid: 3.0.1 + uncurried-transformers: 1.1.0 + undefined: 2.0.0 + undefined-is-not-a-problem: 1.1.0 + unfoldable: 6.0.0 + unicode: 6.0.0 + unique: 0.6.1 + unlift: 1.0.1 + unordered-collections: 3.0.1 + unsafe-coerce: 6.0.0 + unsafe-reference: 5.0.0 + untagged-to-tagged: 0.1.4 + untagged-union: 1.0.0 + uri: 9.0.0 + uuid: 9.0.0 + uuidv4: 1.0.0 + validation: 6.0.0 + variant: 8.0.0 + variant-encodings: 2.0.0 + vectorfield: 1.0.1 + vectors: 2.1.0 + versions: 7.0.0 + visx: 0.0.2 + web-clipboard: 5.0.0 + web-cssom: 2.0.0 + web-cssom-view: 0.1.0 + web-dom: 6.0.0 + web-dom-parser: 8.0.0 + web-dom-xpath: 3.0.0 + web-encoding: 3.0.0 + web-events: 4.0.0 + web-fetch: 3.0.0 + web-file: 4.0.0 + web-geometry: 0.1.0 + web-html: 4.1.0 + web-intl: 0.1.0 + web-pointerevents: 1.0.0 + web-proletarian: 1.0.0 + web-promise: 3.1.0 + web-resize-observer: 2.0.0 + web-router: 1.0.0 + web-socket: 4.0.0 + web-storage: 5.0.0 + web-streams: 3.0.0 + web-touchevents: 4.0.0 + web-uievents: 4.0.0 + web-url: 2.0.0 + web-workers: 1.1.0 + web-xhr: 5.0.1 + webextension-polyfill: 0.1.0 + webgpu: 0.0.0 + which: 2.0.0 + yoga-fetch: 1.0.1 + yoga-json: 5.1.0 + yoga-om: 0.1.0 + yoga-postgres: 6.0.0 + yoga-tree: 1.0.0 + z3: 0.0.2 + extra_packages: {} packages: console: type: registry @@ -22,11 +502,6 @@ packages: integrity: sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M= dependencies: - prelude - prelude: - type: registry - version: 6.0.1 - integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= - dependencies: [] newtype: type: registry version: 5.0.0 @@ -34,6 +509,11 @@ packages: dependencies: - prelude - safe-coerce + prelude: + type: registry + version: 6.0.1 + integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= + dependencies: [] safe-coerce: type: registry version: 2.0.0 From bc84bc1110c0d6177daeaad675d2168ee44c26ac Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Mon, 22 Jan 2024 15:34:17 +0300 Subject: [PATCH 02/21] chore: update npm dependencies --- nix/examples/simple-ffi/package-lock.json | 15 ++++----------- nix/examples/simple-ffi/package.json | 3 +-- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/nix/examples/simple-ffi/package-lock.json b/nix/examples/simple-ffi/package-lock.json index 11e0028..5ad4062 100644 --- a/nix/examples/simple-ffi/package-lock.json +++ b/nix/examples/simple-ffi/package-lock.json @@ -8,25 +8,18 @@ "name": "simple-ffi", "version": "1.0.0", "dependencies": { - "leftpad": "0.0.1", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" } }, - "node_modules/leftpad": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/leftpad/-/leftpad-0.0.1.tgz", - "integrity": "sha512-kBAuxBQJlJ85LDc+SnGSX6gWJnJR9Qk4lbgXmz/qPfCOCieCk7BgoN3YvzoNr5BUjqxQDOQxawJJvXXd6c+6Mg==", - "deprecated": "Use the built-in String.padStart function instead" - }, "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" }, "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" diff --git a/nix/examples/simple-ffi/package.json b/nix/examples/simple-ffi/package.json index 6e1d9a7..6a68612 100644 --- a/nix/examples/simple-ffi/package.json +++ b/nix/examples/simple-ffi/package.json @@ -2,7 +2,6 @@ "name": "simple-ffi", "version": "1.0.0", "dependencies": { - "leftpad": "0.0.1", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" } } From b09788675c5393e9d7361f3c5d27ed68633cd2fd Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Mon, 22 Jan 2024 02:14:58 +0300 Subject: [PATCH 03/21] feat: set mainProgram --- manifests/build-support/mkDerivation.nix | 4 ++-- manifests/build-support/mkDerivationBasic.nix | 2 +- manifests/build-support/mkLegacySpagoDerivation.nix | 1 + manifests/build-support/mkPursDerivation.nix | 1 + manifests/build-support/mkPursLanguageServerDerivation.nix | 1 + 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/manifests/build-support/mkDerivation.nix b/manifests/build-support/mkDerivation.nix index 2563b7f..9d43995 100644 --- a/manifests/build-support/mkDerivation.nix +++ b/manifests/build-support/mkDerivation.nix @@ -42,7 +42,7 @@ in ln -s $BIN $out/bin/${name} ''; - meta = meta lib; + meta = meta lib // { mainProgram = name; }; } # Otherwise, if there IS a lockfile set, then we need to include dependencies. else let @@ -71,5 +71,5 @@ in npmInstallFlags = ["--loglevel=verbose"]; - meta = meta lib; + meta = meta lib // { mainProgram = name; }; } diff --git a/manifests/build-support/mkDerivationBasic.nix b/manifests/build-support/mkDerivationBasic.nix index 7d276c4..973b502 100644 --- a/manifests/build-support/mkDerivationBasic.nix +++ b/manifests/build-support/mkDerivationBasic.nix @@ -33,5 +33,5 @@ stdenv.mkDerivation { ln -s $BIN $out/bin/${name} ''; - meta = meta lib; + meta = meta lib // { mainProgram = name; }; } diff --git a/manifests/build-support/mkLegacySpagoDerivation.nix b/manifests/build-support/mkLegacySpagoDerivation.nix index 48debbb..b616d68 100644 --- a/manifests/build-support/mkLegacySpagoDerivation.nix +++ b/manifests/build-support/mkLegacySpagoDerivation.nix @@ -49,5 +49,6 @@ in meta = with lib; { description = "Package manager for PureScript"; homepage = "https://github.com/purescript/spago"; + mainProgram = pname; }; } diff --git a/manifests/build-support/mkPursDerivation.nix b/manifests/build-support/mkPursDerivation.nix index b447f37..2d85e10 100644 --- a/manifests/build-support/mkPursDerivation.nix +++ b/manifests/build-support/mkPursDerivation.nix @@ -43,5 +43,6 @@ in meta = with lib; { description = "Compiler for a strongly-typed language that compiles to JavaScript"; homepage = "https://github.com/purescript/purescript"; + mainProgram = pname; }; } diff --git a/manifests/build-support/mkPursLanguageServerDerivation.nix b/manifests/build-support/mkPursLanguageServerDerivation.nix index 99eeb7f..89dc1a4 100644 --- a/manifests/build-support/mkPursLanguageServerDerivation.nix +++ b/manifests/build-support/mkPursLanguageServerDerivation.nix @@ -42,5 +42,6 @@ stdenv.mkDerivation rec { description = "A Node-based language server protocol for PureScript"; homepage = "https://github.com/nwolverson/purescript-language-server"; license = lib.licenses.mit; + mainProgram = pname; }; } From 4ff0584fdb4a521a3b81ec63c8bf6e124ffc8a52 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 16:09:41 +0300 Subject: [PATCH 04/21] chore: update registry version --- generate/spago.lock | 452 +++++++++++++++++++++++++------------------- generate/spago.yaml | 35 +++- 2 files changed, 292 insertions(+), 195 deletions(-) diff --git a/generate/spago.lock b/generate/spago.lock index a8b0fbd..07735ad 100644 --- a/generate/spago.lock +++ b/generate/spago.lock @@ -41,7 +41,6 @@ workspace: - exceptions - exists - fetch - - fetch-core - fixed-points - foldable-traversable - foreign @@ -58,6 +57,9 @@ workspace: - integers - invariant - js-date + - js-fetch + - js-promise + - js-promise-aff - js-timers - js-uri - language-cst-parser @@ -74,8 +76,8 @@ workspace: - node-event-emitter - node-execa - node-fs - - node-fs-aff - node-human-signals + - node-os - node-path - node-process - node-streams @@ -104,7 +106,6 @@ workspace: - spec - st - strings - - sunde - tailrec - transformers - tuples @@ -118,7 +119,6 @@ workspace: - web-dom - web-events - web-file - - web-promise - web-streams lib: path: lib @@ -164,7 +164,6 @@ workspace: - exceptions - exists - fetch - - fetch-core - fixed-points - foldable-traversable - foreign @@ -181,6 +180,9 @@ workspace: - integers - invariant - js-date + - js-fetch + - js-promise + - js-promise-aff - js-timers - js-uri - language-cst-parser @@ -192,10 +194,12 @@ workspace: - mmorph - newtype - node-buffer + - node-child-process - node-event-emitter - node-execa - node-fs - node-human-signals + - node-os - node-path - node-process - node-streams @@ -236,14 +240,13 @@ workspace: - web-dom - web-events - web-file - - web-promise - web-streams package_set: address: - registry: 24.4.0 - compiler: ">=0.15.8 <0.16.0" + registry: 47.9.1 + compiler: ">=0.15.13 <0.16.0" content: - abc-parser: 2.0.0 + abc-parser: 2.0.1 ace: 9.1.0 aff: 7.1.0 aff-bus: 6.0.0 @@ -254,6 +257,7 @@ workspace: affjax-node: 1.0.0 affjax-web: 1.0.0 ansi: 7.0.0 + applicative-phases: 1.0.0 argonaut: 9.0.0 argonaut-aeson-generic: 0.4.1 argonaut-codecs: 9.1.0 @@ -266,7 +270,8 @@ workspace: arraybuffer: 13.2.0 arraybuffer-builder: 3.1.0 arraybuffer-types: 3.0.2 - arrays: 7.2.0 + arrays: 7.3.0 + arrays-extra: 0.4.4 arrays-zipper: 2.0.1 ask: 1.0.0 assert: 6.0.0 @@ -275,30 +280,21 @@ workspace: b64: 0.0.8 barbies: 1.0.1 barlow-lens: 0.9.0 - basic-auth: 3.0.1 bifunctors: 6.0.0 bigints: 7.0.1 bolson: 0.3.9 - bookhound: 0.1.0 + bookhound: 0.1.7 bower-json: 3.0.0 - bucketchain: 1.0.1 - bucketchain-basic-auth: 1.0.1 - bucketchain-conditional: 1.0.1 - bucketchain-cors: 1.0.1 - bucketchain-csrf: 1.0.1 - bucketchain-header-utils: 1.0.1 - bucketchain-health: 1.0.1 - bucketchain-history-api-fallback: 1.0.1 - bucketchain-logger: 1.0.1 - bucketchain-secure: 1.0.1 - bucketchain-simple-api: 5.0.1 - bucketchain-sslify: 1.0.1 - bucketchain-static: 1.0.1 call-by-name: 4.0.1 canvas: 6.0.0 canvas-action: 9.0.0 cartesian: 1.0.6 catenable-lists: 7.0.0 + chameleon: 1.0.0 + chameleon-halogen: 1.0.3 + chameleon-react-basic: 1.1.0 + chameleon-styled: 2.5.0 + chameleon-transformers: 1.0.0 channel: 1.0.0 checked-exceptions: 3.1.1 classless: 0.1.1 @@ -306,42 +302,44 @@ workspace: classless-decode-json: 0.1.1 classless-encode-json: 0.1.3 classnames: 2.0.0 - codec: 6.0.0 + codec: 6.1.0 codec-argonaut: 10.0.0 + codec-json: 1.1.0 colors: 7.0.1 concur-core: 0.5.0 concur-react: 0.5.0 concurrent-queues: 3.0.0 - console: 6.0.0 + console: 6.1.0 const: 6.0.0 contravariant: 6.0.0 control: 6.0.0 convertable-options: 1.0.0 coroutines: 7.0.0 - crypto: 5.0.1 css: 6.0.0 + css-frameworks: 1.0.1 + data-mvc: 0.0.2 datetime: 6.1.0 datetime-parsing: 0.2.0 debug: 6.0.2 decimals: 7.1.0 default-values: 1.0.1 - deku: 0.9.21 + deku: 0.9.23 deno: 0.0.5 dissect: 1.0.0 distributive: 6.0.0 - dodo-printer: 2.2.1 dom-filereader: 7.0.0 - dom-indexed: 11.0.0 - dotenv: 4.0.0 + dom-indexed: 12.0.0 + dotenv: 4.0.3 droplet: 0.6.0 - dts: 0.1.4 + dts: 1.0.0 + dual-numbers: 1.0.2 dynamic-buffer: 3.0.1 echarts-simple: 0.0.1 effect: 4.0.0 either: 6.1.0 - elmish: 0.9.3 + elmish: 0.10.0 elmish-enzyme: 0.1.1 - elmish-hooks: 0.9.1 + elmish-hooks: 0.10.0 elmish-html: 0.8.1 elmish-testing-library: 0.3.1 email-validate: 7.0.0 @@ -349,22 +347,25 @@ workspace: enums: 6.0.1 env-names: 0.3.4 error: 2.0.0 + eta-conversion: 0.3.2 exceptions: 6.0.0 exists: 6.0.0 exitcodes: 4.0.0 expect-inferred: 3.0.0 fahrtwind: 2.0.0 fallback: 0.1.0 - fast-vect: 1.1.0 - fetch: 1.1.4 + fast-vect: 1.2.0 + fetch: 4.1.0 fetch-argonaut: 1.0.1 - fetch-core: 4.0.4 + fetch-core: 5.1.0 fetch-yoga-json: 1.1.0 filterable: 5.0.0 + fix-functor: 0.1.0 fixed-points: 7.0.0 fixed-precision: 5.0.0 flame: 1.3.0 float32: 2.0.0 + fmt: 0.2.1 foldable-traversable: 6.0.0 foreign: 7.0.0 foreign-object: 4.1.0 @@ -374,7 +375,7 @@ workspace: form-urlencoded: 7.0.0 formatters: 7.0.0 framer-motion: 1.0.1 - free: 7.0.0 + free: 7.1.0 freeap: 7.0.0 freer-free: 0.0.1 freet: 7.0.0 @@ -385,17 +386,15 @@ workspace: gen: 4.0.0 generate-values: 1.0.1 generic-router: 0.0.1 - geojson: 0.0.3 + geojson: 0.0.5 geometry-plane: 1.0.3 - github-actions-toolkit: 0.5.0 grain: 3.0.0 grain-router: 3.0.0 grain-virtualized: 3.0.0 - graphql-client: 9.3.2 graphs: 8.1.0 group: 4.1.1 halogen: 7.0.0 - halogen-bootstrap5: 2.1.0 + halogen-bootstrap5: 2.3.1 halogen-css: 10.0.0 halogen-echarts-simple: 0.0.4 halogen-formless: 4.0.3 @@ -406,16 +405,14 @@ workspace: halogen-storybook: 2.0.0 halogen-subscriptions: 2.0.0 halogen-svg-elems: 8.0.0 + halogen-typewriter: 1.0.4 halogen-vdom: 8.0.0 halogen-vdom-string-renderer: 0.5.0 heckin: 2.0.1 heterogeneous: 0.6.0 homogeneous: 0.4.0 http-methods: 6.0.0 - httpure: 0.16.0 - httpurple: 3.0.1 - httpurple-argonaut: 1.0.1 - httpurple-yoga-json: 1.0.0 + httpurple: 4.0.0 humdrum: 0.0.1 hyrule: 2.3.8 identity: 6.0.0 @@ -432,20 +429,22 @@ workspace: jelly-signal: 0.4.0 jest: 1.0.0 js-abort-controller: 1.0.0 - js-bigints: 2.1.0 + js-bigints: 2.2.1 js-date: 8.0.0 + js-fetch: 0.2.1 js-fileio: 3.0.0 + js-intl: 1.0.4 js-iterators: 0.1.1 js-maps: 0.1.2 js-promise: 1.0.0 js-promise-aff: 1.0.0 js-timers: 6.1.0 js-uri: 3.1.0 - json-codecs: 3.0.0 + json: 1.0.0 + json-codecs: 5.0.0 justifill: 0.5.0 jwt: 0.0.9 labeled-data: 0.2.0 - language-cst-parser: 0.13.0 lazy: 6.0.0 lazy-joe: 1.0.0 lcg: 4.0.0 @@ -456,16 +455,17 @@ workspace: literals: 1.0.2 logging: 3.0.0 logging-journald: 0.4.0 + lumi-components: 18.0.0 machines: 7.0.0 maps-eager: 0.4.1 marionette: 1.0.0 - marionette-commander: 0.1.1 marionette-react-basic-hooks: 0.1.1 + marked: 0.1.0 matrices: 5.0.1 matryoshka: 1.0.0 maybe: 6.0.0 - mdast-util-from-markdown: 0.2.1 media-types: 6.0.0 + meowclient: 1.0.0 midi: 4.0.0 milkis: 9.0.0 minibench: 4.0.1 @@ -479,6 +479,7 @@ workspace: morello: 0.4.0 mote: 3.0.0 motsunabe: 2.0.0 + mvc: 0.0.1 mysql: 6.0.1 n3: 0.1.0 nano-id: 1.1.0 @@ -488,53 +489,56 @@ workspace: newtype: 5.0.0 nextjs: 0.1.1 nextui: 0.2.0 - node-buffer: 8.0.0 - node-buffer-blob: 1.0.0 - node-child-process: 9.0.0 - node-event-emitter: 1.0.1 - node-execa: 1.3.2 - node-fs: 8.2.0 - node-fs-aff: 9.2.0 - node-http: 8.0.0 + node-buffer: 9.0.0 + node-child-process: 11.1.0 + node-event-emitter: 3.0.0 + node-execa: 5.0.0 + node-fs: 9.1.0 + node-glob-basic: 1.3.0 + node-http: 9.1.0 + node-http2: 1.1.1 node-human-signals: 1.0.0 - node-net: 4.0.0 + node-net: 5.1.0 + node-os: 5.1.0 node-path: 5.0.0 - node-process: 10.0.0 - node-readline: 7.0.0 + node-process: 11.2.0 + node-readline: 8.1.0 node-sqlite3: 8.0.0 - node-streams: 7.0.0 - node-streams-aff: 5.0.0 - node-url: 6.0.0 - nodemailer: 4.0.1 + node-streams: 9.0.0 + node-tls: 0.3.1 + node-url: 7.0.1 + node-zlib: 0.4.0 nonempty: 7.0.0 now: 6.0.0 npm-package-json: 2.0.0 nullable: 6.0.0 numberfield: 0.1.0 numbers: 9.0.1 - oak: 3.1.0 + oak: 3.1.1 + oak-debug: 1.2.2 object-maps: 0.3.0 ocarina: 1.5.4 open-folds: 6.3.0 open-memoize: 6.1.0 open-pairing: 6.1.0 options: 7.0.0 - optparse: 5.0.0 - ordered-collections: 3.0.0 + optparse: 5.0.1 + ordered-collections: 3.1.1 ordered-set: 0.4.0 orders: 6.0.0 + owoify: 1.2.0 pairs: 9.0.1 - parallel: 6.0.0 + parallel: 7.0.0 parsing: 10.2.0 parsing-dataview: 3.2.4 partial: 4.0.0 pathy: 9.0.0 - pha: 0.11.0 + pha: 0.13.0 phaser: 0.7.0 phylio: 1.1.2 pipes: 8.0.0 pirates-charm: 0.0.1 - pmock: 0.4.0 + pmock: 0.9.0 point-free: 1.0.0 pointed-list: 0.5.1 polymorphic-vectors: 4.0.0 @@ -546,18 +550,16 @@ workspace: profunctor: 6.0.0 profunctor-lenses: 8.0.0 protobuf: 4.3.0 - ps-cst: 1.2.0 psa-utils: 8.0.0 - psc-ide: 19.0.0 psci-support: 6.0.0 qualified-do: 2.2.0 - quantities: 12.1.0 + quantities: 12.2.0 quickcheck: 8.0.1 quickcheck-combinators: 0.1.3 quickcheck-laws: 7.0.0 quickcheck-utf8: 0.0.0 random: 6.0.0 - rationals: 5.0.1 + rationals: 6.0.0 rdf: 0.1.0 react: 11.0.0 react-aria: 0.2.0 @@ -570,7 +572,7 @@ workspace: react-basic-storybook: 2.0.0 react-dom: 8.0.0 react-halo: 3.0.0 - react-icons: 1.1.1 + react-icons: 1.1.2 react-markdown: 0.1.0 react-testing-library: 4.0.1 react-virtuoso: 1.0.0 @@ -578,6 +580,7 @@ workspace: recharts: 1.1.0 record: 4.0.0 record-extra: 5.0.1 + record-ptional-fields: 0.1.2 record-studio: 1.0.4 refs: 6.0.0 remotedata: 5.0.0 @@ -594,12 +597,12 @@ workspace: safely: 4.0.1 school-of-music: 1.3.0 selection-foldable: 0.2.0 + selective-functors: 1.0.1 semirings: 7.0.0 signal: 13.0.0 simple-emitter: 3.0.1 simple-i18n: 2.0.1 simple-json: 9.0.0 - simple-jwt: 4.0.1 simple-ulid: 3.0.0 sized-matrices: 1.0.0 sized-vectors: 5.0.2 @@ -608,8 +611,8 @@ workspace: soundfonts: 4.1.0 sparse-matrices: 1.3.0 sparse-polynomials: 2.0.5 - spec: 7.3.0 - spec-discovery: 8.0.1 + spec: 7.5.5 + spec-mocha: 5.0.0 spec-quickcheck: 5.0.0 splitmix: 2.1.0 ssrs: 1.0.0 @@ -621,23 +624,21 @@ workspace: strings-extra: 4.0.0 stringutils: 0.0.12 substitute: 0.2.3 - sunde: 3.0.0 supply: 0.2.0 svg-parser: 3.0.0 systemd-journald: 0.3.0 tagged: 4.0.2 tailrec: 6.1.0 - tecton: 0.2.0 + tecton: 0.2.1 tecton-halogen: 0.2.0 test-unit: 17.0.0 thermite: 6.3.1 thermite-dom: 0.3.1 these: 6.0.0 - toppokki: 4.0.0 transformation-matrix: 1.0.1 transformers: 6.0.0 tree-rose: 4.0.2 - ts-bridge: 2.0.3 + ts-bridge: 4.0.0 tuples: 7.0.0 two-or-more: 1.0.0 type-equality: 4.0.1 @@ -646,6 +647,7 @@ workspace: typelevel-lists: 2.1.0 typelevel-peano: 1.0.1 typelevel-prelude: 7.0.0 + typelevel-regex: 0.0.3 typelevel-rows: 0.1.0 uint: 7.0.0 ulid: 3.0.1 @@ -679,25 +681,25 @@ workspace: web-dom-xpath: 3.0.0 web-encoding: 3.0.0 web-events: 4.0.0 - web-fetch: 3.0.0 + web-fetch: 4.0.1 web-file: 4.0.0 web-geometry: 0.1.0 web-html: 4.1.0 - web-pointerevents: 1.0.0 + web-pointerevents: 2.0.0 web-proletarian: 1.0.0 - web-promise: 3.1.0 - web-resize-observer: 2.0.0 + web-promise: 3.2.0 + web-resize-observer: 2.1.0 web-router: 1.0.0 web-socket: 4.0.0 web-storage: 5.0.0 - web-streams: 3.0.0 + web-streams: 4.0.0 web-touchevents: 4.0.0 - web-uievents: 4.0.0 + web-uievents: 5.0.0 web-url: 2.0.0 web-workers: 1.1.0 web-xhr: 5.0.1 webextension-polyfill: 0.1.0 - webgpu: 0.0.0 + webgpu: 0.0.1 which: 2.0.0 yoga-fetch: 1.0.1 yoga-json: 5.1.0 @@ -706,6 +708,39 @@ workspace: yoga-tree: 1.0.0 z3: 0.0.2 extra_packages: + language-cst-parser: + git: https://github.com/natefaubion/purescript-language-cst-parser.git + ref: v0.13.0 + dependencies: + - arrays + - console + - const + - control + - effect + - either + - enums + - foldable-traversable + - free + - functions + - functors + - identity + - integers + - lazy + - lists + - maybe + - newtype + - node-process + - numbers + - ordered-collections + - partial + - prelude + - st + - strings + - transformers + - tuples + - typelevel-prelude + - unfoldable + - unsafe-coerce registry-lib: git: https://github.com/purescript/registry-dev.git ref: master @@ -791,12 +826,13 @@ packages: dependencies: [] arrays: type: registry - version: 7.2.0 - integrity: sha256-vjd5tY1VFIg3HGBUFqG9+tWXqkV3EHRqZCzE+JC2yR0= + version: 7.3.0 + integrity: sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc= dependencies: - bifunctors - control - foldable-traversable + - functions - maybe - nonempty - partial @@ -864,8 +900,8 @@ packages: - unfoldable codec: type: registry - version: 6.0.0 - integrity: sha256-VLG7Ii38xmeT5UGH98xBFiWp1YnFZim/iMg+aQz2RB8= + version: 6.1.0 + integrity: sha256-6vMLNlsJxQarVQ9cn1FYfl5x6opfzxAza15SzRdxFxQ= dependencies: - bifunctors - profunctor @@ -882,8 +918,8 @@ packages: - variant console: type: registry - version: 6.0.0 - integrity: sha256-gJpJ53fCDAL8BiCiJXH0HNAJ9K3gJtLo8GDaCK6hA5U= + version: 6.1.0 + integrity: sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM= dependencies: - effect - prelude @@ -952,8 +988,8 @@ packages: - type-equality dotenv: type: registry - version: 4.0.0 - integrity: sha256-iqWz97FnrHLlfJ/pIsTfTNprpqpqZsh5OmLNjVlMLDo= + version: 4.0.3 + integrity: sha256-UPOkwHp4lci+ABmljihtxS+WAUy5ijxWCNKj/edcY7M= dependencies: - aff - arrays @@ -966,13 +1002,16 @@ packages: - maybe - node-buffer - node-child-process - - node-fs-aff + - node-event-emitter + - node-fs + - node-os - node-process + - node-streams - parsing - prelude + - refs - run - strings - - sunde - transformers - tuples - typelevel-prelude @@ -1033,49 +1072,27 @@ packages: - unsafe-coerce fetch: type: registry - version: 1.1.4 - integrity: sha256-Tmt60rjS4PNtKMVGpo8O6W1Fdhcu3a3CvyN/x+SwXEs= + version: 4.1.0 + integrity: sha256-zCwBUkRL9n6nUhK1+7UqqsuxswPFATsZfGSBOA3NYYY= dependencies: - aff - - aff-promise - arraybuffer-types + - bifunctors - effect - - fetch-core - - foreign - - http-methods - - newtype - - prelude - - record - - typelevel-prelude - - unsafe-coerce - - web-file - - web-promise - - web-streams - fetch-core: - type: registry - version: 4.0.4 - integrity: sha256-lS4yhvznII/vg37LewU/Ubeoj6OpxED2kb5/yn58YQQ= - dependencies: - - arraybuffer-types - - arrays - - console - - effect - - foldable-traversable + - either - foreign - - foreign-object - - functions - http-methods + - js-fetch + - js-promise + - js-promise-aff - maybe - newtype - - nullable + - ordered-collections - prelude - record - - tuples + - strings - typelevel-prelude - - unfoldable - - unsafe-coerce - web-file - - web-promise - web-streams fixed-points: type: registry @@ -1153,8 +1170,8 @@ packages: - transformers free: type: registry - version: 7.0.0 - integrity: sha256-72auTIZAG6fhz4F94rxyDwgfnHwp+/89rujZpZWrV0w= + version: 7.1.0 + integrity: sha256-JAumgEsGSzJCNLD8AaFvuX7CpqS5yruCngi6yI7+V5k= dependencies: - catenable-lists - control @@ -1259,6 +1276,48 @@ packages: - foreign - integers - now + js-fetch: + type: registry + version: 0.2.1 + integrity: sha256-zQaVi9wFWku1SsWmdR11kRpOb+wxkNWR49cn928ucjw= + dependencies: + - arraybuffer-types + - arrays + - effect + - foldable-traversable + - foreign + - foreign-object + - functions + - http-methods + - js-promise + - maybe + - newtype + - prelude + - record + - tuples + - typelevel-prelude + - unfoldable + - web-file + - web-streams + js-promise: + type: registry + version: 1.0.0 + integrity: sha256-kXNo5g9RJgPdrTuKRe5oG2kBIwPp+j5VDPDplqZBJzQ= + dependencies: + - effect + - exceptions + - foldable-traversable + - functions + - maybe + - prelude + js-promise-aff: + type: registry + version: 1.0.0 + integrity: sha256-s9kml9Ei74hKlMMg41yyZp4GkbmYUwaH+gBWWrdhwec= + dependencies: + - aff + - foreign + - js-promise js-timers: type: registry version: 6.1.0 @@ -1273,9 +1332,9 @@ packages: - functions - maybe language-cst-parser: - type: registry - version: 0.13.0 - integrity: sha256-8eeW0hs+PQR+suxqbz5tfbsrcbmonQY3o3IsWobcfi0= + type: git + url: https://github.com/natefaubion/purescript-language-cst-parser.git + rev: 5621f2e9fa1a0df5930b95b26f922fa94c494e80 dependencies: - arrays - console @@ -1376,42 +1435,47 @@ packages: - safe-coerce node-buffer: type: registry - version: 8.0.0 - integrity: sha256-RwOTB8yTS4Jjqc55JqxRcVaMXP+cYJ5aww0XH1Z/I8A= + version: 9.0.0 + integrity: sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4= dependencies: - arraybuffer-types - effect - maybe + - nullable - st - unsafe-coerce node-child-process: type: registry - version: 9.0.0 - integrity: sha256-bi7hXHcrgqw6UQzD4p0kr2flPxdqyRHv3bLcffZYpm0= + version: 11.1.0 + integrity: sha256-vioMNgk8p+CGwlb6T3I3TIir27el85Yg4satLE/I89w= dependencies: - exceptions - foreign - foreign-object - functions + - node-event-emitter - node-fs + - node-os - node-streams - nullable - posix-types - unsafe-coerce node-event-emitter: type: registry - version: 1.0.1 - integrity: sha256-OwJNgvg20g4g5Alp5Zka3C5KMLH8hwTz9KW4DYr82ls= + version: 3.0.0 + integrity: sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w= dependencies: - effect + - either - functions + - maybe + - nullable - prelude - - safe-coerce - unsafe-coerce node-execa: type: registry - version: 1.3.2 - integrity: sha256-kKVeJC+s5Pfye9aJ2V55NUfSyETZ2DZxPP02+zpNS/M= + version: 5.0.0 + integrity: sha256-yNcgbCs4guwoTApyV6LRoYCYnU5loWgQiqMtsbloZqk= dependencies: - aff - arrays @@ -1427,9 +1491,11 @@ packages: - js-timers - maybe - node-buffer + - node-child-process - node-event-emitter - node-fs - node-human-signals + - node-os - node-path - node-process - node-streams @@ -1441,20 +1507,18 @@ packages: - partial - posix-types - prelude - - profunctor-lenses - record - refs - safe-coerce - strings - tailrec - - transformers - tuples - unsafe-coerce - unsafe-reference node-fs: type: registry - version: 8.2.0 - integrity: sha256-6X/8KFH5qAF15UDrMadoyAMZxd08bs9IF2XrVgvpH2I= + version: 9.1.0 + integrity: sha256-TzhvGdrwcM0bazDvrWSqh+M/H8GKYf1Na6aGm2Qg4+c= dependencies: - datetime - effect @@ -1473,15 +1537,6 @@ packages: - prelude - strings - unsafe-coerce - node-fs-aff: - type: registry - version: 9.2.0 - integrity: sha256-usKEFrLY9zh8o3IP3bwc+jX7Zd4OOmhHvwLFZlxdN8U= - dependencies: - - aff - - either - - node-fs - - node-path node-human-signals: type: registry version: 1.0.0 @@ -1493,6 +1548,30 @@ packages: - maybe - ordered-collections - prelude + node-os: + type: registry + version: 5.1.0 + integrity: sha256-K3gcu9AXanN1+qtk1900+Fi+CuO0s3/H/RMNRNgIzso= + dependencies: + - arrays + - bifunctors + - console + - control + - datetime + - effect + - either + - exceptions + - foldable-traversable + - foreign + - foreign-object + - functions + - maybe + - node-buffer + - nullable + - partial + - posix-types + - prelude + - unsafe-coerce node-path: type: registry version: 5.0.0 @@ -1501,25 +1580,29 @@ packages: - effect node-process: type: registry - version: 10.0.0 - integrity: sha256-YzUqf7HWkGEQVRmkxUpL1x2GzKqKLyEyR7mkP68xcZs= + version: 11.2.0 + integrity: sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs= dependencies: - effect + - foreign - foreign-object - maybe + - node-event-emitter - node-streams - posix-types - prelude - unsafe-coerce node-streams: type: registry - version: 7.0.0 - integrity: sha256-EGCA+hp6chlxDlQ8UG3RIaIIL1R0OckKnqP+KPAX1y4= + version: 9.0.0 + integrity: sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ= dependencies: + - aff - effect - either - exceptions - node-buffer + - node-event-emitter - nullable - prelude nonempty: @@ -1557,8 +1640,8 @@ packages: - maybe ordered-collections: type: registry - version: 3.0.0 - integrity: sha256-R9WddNBRPkY37gw8XkDCLX2vJ5eI9qdaWDdCp61r2+M= + version: 3.1.1 + integrity: sha256-boSYHmlz4aSbwsNN4VxiwCStc0t+y1F7BXmBS+1JNtI= dependencies: - arrays - foldable-traversable @@ -1580,8 +1663,8 @@ packages: - prelude parallel: type: registry - version: 6.0.0 - integrity: sha256-VJbkGD0rAKX+NUEeBJbYJ78bEKaZbgow+QwQEfPB6ko= + version: 7.0.0 + integrity: sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o= dependencies: - control - effect @@ -1836,17 +1919,17 @@ packages: - unsafe-coerce spec: type: registry - version: 7.3.0 - integrity: sha256-YmmRmlHmSHyAM8j5/QVHLgkMhtAkt2FXytVb5j/Zu0s= + version: 7.5.5 + integrity: sha256-HdyBH7Ys1/m2SdTq3u2u9LdQ4cGeaohWeEMYay2mHdU= dependencies: - aff - ansi - arrays - avar - bifunctors - - console - control - datetime + - debug - effect - either - exceptions @@ -1862,6 +1945,7 @@ packages: - parallel - pipes - prelude + - refs - strings - tailrec - transformers @@ -1896,15 +1980,6 @@ packages: - tuples - unfoldable - unsafe-coerce - sunde: - type: registry - version: 3.0.0 - integrity: sha256-+b+nYymr9tqFPNruhKfuaO7eN2gBLA80PfUgd1kJA4g= - dependencies: - - aff - - effect - - node-child-process - - prelude tailrec: type: registry version: 6.1.0 @@ -2022,26 +2097,15 @@ packages: - foreign - media-types - web-dom - web-promise: - type: registry - version: 3.1.0 - integrity: sha256-YfqJyEC3bHH6D8QgTi0ME5oJmGYOuZ2TlcyOdpG8dIE= - dependencies: - - effect - - exceptions - - foldable-traversable - - functions - - maybe - - prelude web-streams: type: registry - version: 3.0.0 - integrity: sha256-+QELAR7lb08Ebr4lCntxeGk5Z1i+NInDJwzEzz3Pigc= + version: 4.0.0 + integrity: sha256-02HgXIk6R+pU9fWOX42krukAI1QkCbLKcCv3b4Jq6WI= dependencies: - arraybuffer-types - effect - exceptions + - js-promise - nullable - prelude - tuples - - web-promise diff --git a/generate/spago.yaml b/generate/spago.yaml index 41c14ba..892dc08 100644 --- a/generate/spago.yaml +++ b/generate/spago.yaml @@ -1,9 +1,42 @@ workspace: lock: true package_set: - registry: 24.4.0 + registry: 47.9.1 extra_packages: registry-lib: git: https://github.com/purescript/registry-dev.git ref: master subdir: lib + language-cst-parser: + git: https://github.com/natefaubion/purescript-language-cst-parser.git + ref: "v0.13.0" + dependencies: + - "arrays" + - "console" + - "const" + - "control" + - "effect" + - "either" + - "enums" + - "foldable-traversable" + - "free" + - "functions" + - "functors" + - "identity" + - "integers" + - "lazy" + - "lists" + - "maybe" + - "newtype" + - "node-process" + - "numbers" + - "ordered-collections" + - "partial" + - "prelude" + - "st" + - "strings" + - "transformers" + - "tuples" + - "typelevel-prelude" + - "unfoldable" + - "unsafe-coerce" \ No newline at end of file From 95f57865e678127274c0a392ee46bd7c2d64397d Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 16:09:16 +0300 Subject: [PATCH 05/21] fix: exits --- generate/bin/src/CLI.purs | 4 ++-- generate/bin/src/Env.purs | 8 ++++---- generate/bin/src/Main.purs | 14 +++++++------- generate/bin/src/Run.purs | 36 ++++++++++++++++++------------------ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/generate/bin/src/CLI.purs b/generate/bin/src/CLI.purs index 35ef20c..55f7eb1 100644 --- a/generate/bin/src/CLI.purs +++ b/generate/bin/src/CLI.purs @@ -70,8 +70,8 @@ run = do Console.log (Arg.printArgError error) case error of Arg.ArgError _ Arg.ShowHelp -> do - liftEffect (Process.exit 0) + liftEffect (Process.exit' 0) _ -> - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Right command -> pure command diff --git a/generate/bin/src/Env.purs b/generate/bin/src/Env.purs index a59110f..f762ab8 100644 --- a/generate/bin/src/Env.purs +++ b/generate/bin/src/Env.purs @@ -39,7 +39,7 @@ lookupOptional (EnvKey { key, decode }) = liftEffect $ Process.lookupEnv key >>= Just value -> case decode value of Left error -> do Console.log $ "Found " <> key <> " in the environment with value " <> value <> ", but it could not be decoded: " <> error - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Right decoded -> pure $ Just decoded -- | Look up a required environment variable, throwing an exception if it is @@ -48,14 +48,14 @@ lookupRequired :: forall m a. MonadEffect m => EnvKey a -> m a lookupRequired (EnvKey { key, decode }) = liftEffect $ Process.lookupEnv key >>= case _ of Nothing -> do Console.log $ key <> " is not present in the environment." - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Just "" -> do Console.log $ "Found " <> key <> " in the environment, but its value was an empty string." - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Just value -> case decode value of Left error -> do Console.log $ "Found " <> key <> " in the environment with value " <> value <> ", but it could not be decoded: " <> error - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Right decoded -> pure decoded -- | A user GitHub token at the REPO_TOKEN key. diff --git a/generate/bin/src/Main.purs b/generate/bin/src/Main.purs index ef83886..495faf3 100644 --- a/generate/bin/src/Main.purs +++ b/generate/bin/src/Main.purs @@ -182,12 +182,12 @@ main = Aff.launchAff_ do Git.gitCommitManifests "Update manifests" >>= case _ of Git.NothingToCommit -> do Console.log "No files were changed, not committing." - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Git.Committed -> Console.log "Committed changes!" case commitResult of - Left error -> Console.log error *> liftEffect (Process.exit 1) + Left error -> Console.log error *> liftEffect (Process.exit' 1) Right _ -> pure unit let @@ -210,7 +210,7 @@ main = Aff.launchAff_ do existing <- AppM.runGitHubM GitHub.getPullRequests >>= case _ of Left error -> do Console.log $ Octokit.printGitHubError error - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Right existing -> pure existing -- TODO: Title comparison is a bit simplistic. Better to compare @@ -220,26 +220,26 @@ main = Aff.launchAff_ do pushResult <- AppM.runGitM $ Git.gitPushBranch token >>= case _ of Git.NothingToPush -> do Console.log "Did not push branch because we're up-to-date (expected to push change)." - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Git.Pushed -> Console.log "Pushed changes!" case pushResult of Left error -> do Console.log error - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Right _ -> AppM.runGitHubM $ GitHub.createPullRequest { title: commitMsg, body: commitMsg, branch } Just pull -> do Console.log "A pull request with this title is already open: " Console.log pull.url - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) case createPullResult of Left error -> do Console.log "Failed to create pull request:" Console.log $ Octokit.printGitHubError error - liftEffect (Process.exit 1) + liftEffect (Process.exit' 1) Right { url } -> do Console.log "Successfully created pull request." Console.log url diff --git a/generate/bin/src/Run.purs b/generate/bin/src/Run.purs index 8a46cbe..9f60bf8 100644 --- a/generate/bin/src/Run.purs +++ b/generate/bin/src/Run.purs @@ -264,7 +264,7 @@ prefetchPursLanguageServer = do Left error -> do Console.log $ "Failed to fetch releases for purescript-language-server" Console.log $ Octokit.printGitHubError error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right releases -> pure releases Console.log $ "Retrieved " <> show (Array.length rawReleases) <> " releases for purescript-language-server" @@ -296,7 +296,7 @@ prefetchPursLanguageServer = do Nix.Prefetch.nixPrefetchUrl downloadUrl >>= case _ of Left error -> do Console.log $ "Failed to hash release asset at url " <> downloadUrl <> ": " <> error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right hash -> pure $ Bundled { url: downloadUrl, hash } pure hashedReleases @@ -339,7 +339,7 @@ writePursUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit 1) + Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) Just result -> AppM.writeNamedManifest result writeSpagoUpdates :: CombinedManifest -> AppM Unit @@ -391,7 +391,7 @@ writeSpagoUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit 1) + Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) Just result -> AppM.writeNamedManifest result writePursTidyUpdates :: NPMRegistryManifest -> AppM Unit @@ -434,7 +434,7 @@ writePursTidyUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit 1) + Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) Just result -> AppM.writeNamedManifest result writePursBackendEsUpdates :: NPMRegistryManifest -> AppM Unit @@ -477,7 +477,7 @@ writePursBackendEsUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit 1) + Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) Just result -> AppM.writeNamedManifest result writePursLanguageServerUpdates :: NPMRegistryManifest -> AppM Unit @@ -520,7 +520,7 @@ writePursLanguageServerUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit 1) + Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) Just result -> AppM.writeNamedManifest result unsafeVersion :: String -> Version @@ -547,7 +547,7 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = Left error -> do Console.log $ "Failed to fetch releases from NPM registry for " <> Tool.print tool Tool.Executable <> " at url " <> NPMRegistry.printNPMRegistryUrl tool Console.log error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right releases -> pure releases Console.log $ "Retrieved " <> show (Map.size rawReleases) <> " releases for " <> Tool.print tool Tool.Executable @@ -568,7 +568,7 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = tarballHash <- Nix.Prefetch.nixPrefetchUrl dist.tarball >>= case _ of Left error -> do Console.log $ "Failed to hash tarball at url " <> dist.tarball <> ": " <> error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right hash -> pure { url: dist.tarball, hash } case includePackageLock version of @@ -582,11 +582,11 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = npmDepsHash <- withBackoff' (Nix.Prefetch.prefetchNpmDeps (Path.concat [ manifestDir, "build-support", path ])) >>= case _ of Nothing -> do Console.log "Timed out trying to prefetch package-lock.json file." - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Just (Left error) -> do Console.log $ "Failed to prefetch npm deps from local package-lock.json file " <> path Console.log error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Just (Right hash) -> do Console.log $ "Got hash of npm deps from local package-lock.json file." Console.log $ Sha256.print hash @@ -598,24 +598,24 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = { lockfileUrl, lockfileHash, npmDepsHash } <- case mbGitHead of Nothing -> do Console.log "No git commit associated with version, cannot fetch package-lock.json." - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Just sha -> do let packageLockUrl = GitHub.rawContentUrl tool sha "package-lock.json" packageLockRemoteHash <- withBackoff' (Nix.Prefetch.nixPrefetchUrl packageLockUrl) >>= case _ of Nothing -> do Console.log "Timed out trying to prefetch package-lock.json file." - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Just (Left error) -> do Console.log $ "Failed to prefetch package-lock.json file from url " <> packageLockUrl Console.log error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Just (Right hash) -> pure hash packageLockContents <- AppM.runGitHubM (GitHub.getContent tool sha "package-lock.json") >>= case _ of Left error -> do Console.log "Failed to fetch remote package-lock.json file!" Console.log $ Octokit.printGitHubError error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right result -> pure result tmp <- Tmp.mkTmpDir @@ -626,7 +626,7 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = Console.log "Failed to prefetch npm deps from package-lock.json file" Console.log error liftAff $ FS.Aff.rm' tmp { force: true, maxRetries: 1, recursive: true, retryDelay: 100 } - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right hash -> do Console.log $ "Got hash of npm deps: " <> Sha256.print hash liftAff $ FS.Aff.rm' tmp { force: true, maxRetries: 1, recursive: true, retryDelay: 100 } @@ -653,7 +653,7 @@ fetchGitHub { tool, readManifest, parseAsset, filterVersion, filterSystem } = do Console.log $ "Failed to fetch releases for " <> Tool.print tool Tool.Executable Console.log $ " due to a GitHub error: " Console.log $ Octokit.printGitHubError error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right releases -> pure releases Console.log $ "Retrieved " <> show (Array.length rawReleases) <> " releases in total for " <> Tool.print tool Tool.Executable @@ -685,7 +685,7 @@ fetchGitHub { tool, readManifest, parseAsset, filterVersion, filterSystem } = do Nix.Prefetch.nixPrefetchUrl asset >>= case _ of Left error -> do Console.log $ "Failed to hash release asset at url " <> asset <> ": " <> error - liftEffect $ Process.exit 1 + liftEffect $ Process.exit' 1 Right hash -> pure { url: asset, hash } pure hashedReleases From 8163986d4a40e1f1485d4c07d44e373aaf5b8290 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 16:20:24 +0300 Subject: [PATCH 06/21] fix: handling process result --- generate/lib/src/Git.purs | 8 ++++---- generate/lib/src/Nix/Prefetch.purs | 25 +++++++++++++------------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/generate/lib/src/Git.purs b/generate/lib/src/Git.purs index e5acbd0..b446ff4 100644 --- a/generate/lib/src/Git.purs +++ b/generate/lib/src/Git.purs @@ -224,7 +224,7 @@ gitStatusParser = do git :: forall m. MonadAff m => Maybe String -> Array String -> m (Either String String) git cwd args = liftAff do spawned <- Execa.execa "git" args (_ { cwd = cwd }) - result <- spawned.result - pure $ case result of - Left error -> Left error.message - Right { stdout } -> Right (String.trim stdout) + result <- spawned.getResult + pure $ case result.exitCode of + Just 0 -> Right (String.trim result.stdout) + _ -> Left result.message diff --git a/generate/lib/src/Nix/Prefetch.purs b/generate/lib/src/Nix/Prefetch.purs index 590ebe3..b9b284f 100644 --- a/generate/lib/src/Nix/Prefetch.purs +++ b/generate/lib/src/Nix/Prefetch.purs @@ -8,6 +8,7 @@ import Prelude import Control.Monad.Except (ExceptT(..)) import Control.Monad.Except as Except import Data.Either (Either(..)) +import Data.Maybe (Maybe(..)) import Data.String as String import Effect.Aff.Class (class MonadAff, liftAff) import Node.Library.Execa as Execa @@ -18,10 +19,10 @@ import Registry.Sha256 as Sha256 prefetchNpmDeps :: forall m. MonadAff m => FilePath -> m (Either String Sha256) prefetchNpmDeps file = liftAff do spawned <- Execa.execa "prefetch-npm-deps" [ file ] identity - result <- spawned.result - pure $ case result of - Left error -> Left error.message - Right { stdout } -> Sha256.parse (String.trim stdout) + result <- spawned.getResult + pure $ case result.exitCode of + Just 0 -> Sha256.parse (String.trim result.stdout) + _ -> Left result.message nixPrefetchUrl :: forall m. MonadAff m => String -> m (Either String Sha256) nixPrefetchUrl url = Except.runExceptT do @@ -32,15 +33,15 @@ nixPrefetchUrl url = Except.runExceptT do nixPrefetchUrlRaw :: forall m. MonadAff m => String -> m (Either String String) nixPrefetchUrlRaw url = liftAff do spawned <- Execa.execa "nix-prefetch-url" [ url ] identity - result <- spawned.result - pure $ case result of - Left error -> Left error.message - Right { stdout } -> Right (String.trim stdout) + result <- spawned.getResult + pure $ case result.exitCode of + Just 0 -> Right (String.trim result.stdout) + _ -> Left result.message nixHashToSha256 :: forall m. MonadAff m => String -> m (Either String Sha256) nixHashToSha256 hash = liftAff do spawned <- Execa.execa "nix" [ "hash", "to-sri", "--type", "sha256", hash ] identity - result <- spawned.result - pure $ case result of - Left error -> Left error.message - Right { stdout } -> Sha256.parse (String.trim stdout) + result <- spawned.getResult + pure $ case result.exitCode of + Just 0 -> Sha256.parse (String.trim result.stdout) + _ -> Left result.message From dc96b4932283e9e9a1b5dc7feba779bbd71a8edc Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 17:17:31 +0300 Subject: [PATCH 07/21] fix: buildInfo --- nix/build-spago-lock.nix | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/nix/build-spago-lock.nix b/nix/build-spago-lock.nix index 2d73081..4659022 100644 --- a/nix/build-spago-lock.nix +++ b/nix/build-spago-lock.nix @@ -168,6 +168,15 @@ transitive = builtins.foldl' (a: pkg: a // self.${pkg}.dependencies) {} drv.dependencies; dependencies = transitive // directs; + + defaultVersion = "0.0.0"; + + dependenciesList = lib.attrValues dependencies; + + renderPackageType = p: ''"${p.name}" :: String''; + packagesType = "{ ${ lib.concatMapStringsSep ", " renderPackageType dependenciesList } }"; + renderPackage = p: ''"${p.name}": "${p.version or defaultVersion}"''; + packages = ''{ ${lib.concatMapStringsSep "\n , " renderPackage dependenciesList } }''; in stdenv.mkDerivation rec { name = drv.name; @@ -194,14 +203,14 @@ -- @inline export spagoVersion always module Spago.Generated.BuildInfo where - packages :: { } - packages = { } + packages :: ${packagesType} + packages = ${packages} pursVersion :: String pursVersion = "${purs.version}" spagoVersion :: String - spagoVersion = "" + spagoVersion = "${defaultVersion}" ''; preBuild = '' From 048af35aa53927641add2f4dfeeecf3978870acd Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 17:17:50 +0300 Subject: [PATCH 08/21] feat: set package version --- nix/build-spago-lock.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nix/build-spago-lock.nix b/nix/build-spago-lock.nix index 4659022..4b55771 100644 --- a/nix/build-spago-lock.nix +++ b/nix/build-spago-lock.nix @@ -170,6 +170,12 @@ dependencies = transitive // directs; defaultVersion = "0.0.0"; + + version = drv.version or ( + if builtins.pathExists "${drv.out}/spago.yaml" + then lib.attrByPath [ "package" "publish" "version" ] defaultVersion (fromYAML (builtins.readFile "${drv.out}/spago.yaml")) + else defaultVersion + ); dependenciesList = lib.attrValues dependencies; @@ -183,6 +189,8 @@ src = drv.out; + inherit version; + nativeBuildInputs = [purs jq]; phases = ["buildPhase" "installPhase" "checkPhase"]; From 7e00f6028ea9413104ed9543da7e2c1af4c96e96 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 17:28:18 +0300 Subject: [PATCH 09/21] refactor: simplify construction of packages attrset --- flake.nix | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/flake.nix b/flake.nix index 3a73441..e9b45d2 100644 --- a/flake.nix +++ b/flake.nix @@ -37,35 +37,15 @@ packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; - - purs = pkgs.purs; - purs-unstable = pkgs.purs-unstable; - purs-bin = pkgs.purs-bin; - - spago = pkgs.spago; - spago-unstable = pkgs.spago-unstable; - spago-bin = pkgs.spago-bin; - - purs-tidy = pkgs.purs-tidy; - purs-tidy-unstable = pkgs.purs-tidy-unstable; - purs-tidy-bin = pkgs.purs-tidy-bin; - - purs-backend-es = pkgs.purs-backend-es; - purs-backend-es-unstable = pkgs.purs-backend-es-unstable; - purs-backend-es-bin = pkgs.purs-backend-es-bin; - - purescript-language-server = pkgs.purescript-language-server; - purescript-language-server-unstable = pkgs.purescript-language-server-unstable; - purescript-language-server-bin = pkgs.purescript-language-server-bin; in { - inherit purs purs-unstable spago spago-unstable purs-tidy purs-tidy-unstable purs-backend-es purs-backend-es-unstable purescript-language-server purescript-language-server-unstable; + inherit (pkgs) purs purs-unstable spago spago-unstable purs-tidy purs-tidy-unstable purs-backend-es purs-backend-es-unstable purescript-language-server purescript-language-server-unstable; } - // purs-bin - // spago-bin - // purs-tidy-bin - // purs-backend-es-bin - // purescript-language-server-bin); + // pkgs.purs-bin + // pkgs.spago-bin + // pkgs.purs-tidy-bin + // pkgs.purs-backend-es-bin + // pkgs.purescript-language-server-bin); apps = forAllSystems (system: let pkgs = nixpkgsFor.${system}; From c1e2759cf6cc02c69e993291a4e7758a3a3bad4d Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 17:28:43 +0300 Subject: [PATCH 10/21] refactor: use getExe --- flake.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index e9b45d2..eb356a3 100644 --- a/flake.nix +++ b/flake.nix @@ -60,9 +60,10 @@ checks = forAllSystems (system: let pkgs = nixpkgsFor.${system}; + inherit (pkgs) lib; package-checks = - pkgs.lib.mapAttrs (key: bin: let + lib.mapAttrs (key: bin: let name = bin.pname or bin.name; version = bin.version or "0.0.0"; in @@ -81,14 +82,14 @@ # Different packages at different versions use different 'version' # flags to print their version if [ ${builtins.toString (name == "spago" && pkgs.lib.versionOlder version "0.90.0")} ]; then - VERSION="$(${bin}/bin/${name} version --global-cache skip)" - # spago@0.93.21 incorrecly reports its version + VERSION="$(${lib.getExe bin} version --global-cache skip)" + # spago@0.93.21 incorrectly reports its version elif [ ${builtins.toString (name == "spago" && version == "0.93.21")} ]; then VERSION="0.93.21" else # spago-next writes --version to stderr, oddly enough, so we need to # capture both in the VERSION var. - VERSION="$(${bin}/bin/${name} --version 2>&1)" + VERSION="$(${lib.getExe bin} --version 2>&1)" fi # purs-tidy includes a 'v' prefix in its output beginning with version 0.9.0 From 567715694d829c51fb2f69f84a261d3d07beed37 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 17:29:15 +0300 Subject: [PATCH 11/21] chore: use spago-unstable --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index eb356a3..473740d 100644 --- a/flake.nix +++ b/flake.nix @@ -132,7 +132,7 @@ default = pkgs.mkShell { name = "purescript-overlay"; buildInputs = [ - self.packages.${system}.spago-0_93_19 + self.packages.${system}.spago-unstable self.packages.${system}.purs-unstable self.packages.${system}.purs-tidy-unstable self.packages.${system}.purs-backend-es-unstable From 840c032f74263f1f4a608a83f1b57ac1532314f0 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Sun, 28 Jan 2024 19:04:59 +0300 Subject: [PATCH 12/21] refactor: set nodejs --- flake.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 473740d..d64b6f0 100644 --- a/flake.nix +++ b/flake.nix @@ -22,7 +22,11 @@ nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; - overlays = [self.overlays.default slimlock.overlays.default]; + overlays = [ + self.overlays.default + slimlock.overlays.default + (_: prev: { nodejs = prev.nodejs_20; }) + ]; }); in { overlays.default = import ./overlay.nix; From 6ba7bb3e737b9fd83d46d69297ccadc203988695 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Mon, 29 Jan 2024 01:30:08 +0300 Subject: [PATCH 13/21] hack: set spagoVersion --- nix/build-spago-lock.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nix/build-spago-lock.nix b/nix/build-spago-lock.nix index 4b55771..6c784b4 100644 --- a/nix/build-spago-lock.nix +++ b/nix/build-spago-lock.nix @@ -177,7 +177,8 @@ else defaultVersion ); - dependenciesList = lib.attrValues dependencies; + # FIXME hack to provide spago and spago-bin with spagoVersion + dependenciesList = lib.attrValues dependencies ++ [ { name = "spago-bin"; version = version; } ]; renderPackageType = p: ''"${p.name}" :: String''; packagesType = "{ ${ lib.concatMapStringsSep ", " renderPackageType dependenciesList } }"; @@ -218,7 +219,7 @@ pursVersion = "${purs.version}" spagoVersion :: String - spagoVersion = "${defaultVersion}" + spagoVersion = "${version}" ''; preBuild = '' From 2b33591a4e03103de685d84cad6cd26788d0927d Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Thu, 1 Feb 2024 13:22:29 +0300 Subject: [PATCH 14/21] fix: use the default nodejs nixpkgs package --- flake.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index d64b6f0..689a1af 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,6 @@ overlays = [ self.overlays.default slimlock.overlays.default - (_: prev: { nodejs = prev.nodejs_20; }) ]; }); in { @@ -142,7 +141,7 @@ self.packages.${system}.purs-backend-es-unstable self.packages.${system}.purescript-language-server-unstable - pkgs.nodejs_20 + pkgs.nodejs pkgs.prefetch-npm-deps ]; }; From 62ce26e10049f535f9acda09ca68332df888ea77 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Thu, 1 Feb 2024 23:39:10 +0300 Subject: [PATCH 15/21] refactor: use die --- generate/bin/src/Env.purs | 14 ++++----- generate/bin/src/Main.purs | 24 +++++---------- generate/bin/src/Run.purs | 59 ++++++++++++++----------------------- generate/lib/src/Utils.purs | 8 +++++ 4 files changed, 43 insertions(+), 62 deletions(-) diff --git a/generate/bin/src/Env.purs b/generate/bin/src/Env.purs index f762ab8..22b458c 100644 --- a/generate/bin/src/Env.purs +++ b/generate/bin/src/Env.purs @@ -9,8 +9,8 @@ import Dotenv as Dotenv import Effect.Aff (Aff) import Effect.Aff as Aff import Effect.Class (class MonadEffect, liftEffect) -import Effect.Class.Console as Console import Lib.Foreign.Octokit (GitHubToken(..)) +import Lib.Utils (die) import Node.Encoding (Encoding(..)) import Node.FS.Aff as FS.Aff import Node.Path (FilePath) @@ -38,8 +38,7 @@ lookupOptional (EnvKey { key, decode }) = liftEffect $ Process.lookupEnv key >>= Just "" -> pure Nothing Just value -> case decode value of Left error -> do - Console.log $ "Found " <> key <> " in the environment with value " <> value <> ", but it could not be decoded: " <> error - liftEffect (Process.exit' 1) + die $ "Found " <> key <> " in the environment with value " <> value <> ", but it could not be decoded: " <> error Right decoded -> pure $ Just decoded -- | Look up a required environment variable, throwing an exception if it is @@ -47,15 +46,12 @@ lookupOptional (EnvKey { key, decode }) = liftEffect $ Process.lookupEnv key >>= lookupRequired :: forall m a. MonadEffect m => EnvKey a -> m a lookupRequired (EnvKey { key, decode }) = liftEffect $ Process.lookupEnv key >>= case _ of Nothing -> do - Console.log $ key <> " is not present in the environment." - liftEffect (Process.exit' 1) + die $ key <> " is not present in the environment." Just "" -> do - Console.log $ "Found " <> key <> " in the environment, but its value was an empty string." - liftEffect (Process.exit' 1) + die $ "Found " <> key <> " in the environment, but its value was an empty string." Just value -> case decode value of Left error -> do - Console.log $ "Found " <> key <> " in the environment with value " <> value <> ", but it could not be decoded: " <> error - liftEffect (Process.exit' 1) + die $ "Found " <> key <> " in the environment with value " <> value <> ", but it could not be decoded: " <> error Right decoded -> pure decoded -- | A user GitHub token at the REPO_TOKEN key. diff --git a/generate/bin/src/Main.purs b/generate/bin/src/Main.purs index 495faf3..0ba63e1 100644 --- a/generate/bin/src/Main.purs +++ b/generate/bin/src/Main.purs @@ -31,9 +31,9 @@ import Lib.Git as Git import Lib.GitHub as GitHub import Lib.Nix.Manifest as Nix.Manifest import Lib.SemVer as SemVer +import Lib.Utils (die) import Lib.Utils as Utils import Node.Path as Path -import Node.Process as Process main :: Effect Unit main = Aff.launchAff_ do @@ -181,13 +181,12 @@ main = Aff.launchAff_ do commitResult <- AppM.runGitM do Git.gitCommitManifests "Update manifests" >>= case _ of Git.NothingToCommit -> do - Console.log "No files were changed, not committing." - liftEffect (Process.exit' 1) + die "No files were changed, not committing." Git.Committed -> Console.log "Committed changes!" case commitResult of - Left error -> Console.log error *> liftEffect (Process.exit' 1) + Left error -> die error Right _ -> pure unit let @@ -209,8 +208,7 @@ main = Aff.launchAff_ do existing <- AppM.runGitHubM GitHub.getPullRequests >>= case _ of Left error -> do - Console.log $ Octokit.printGitHubError error - liftEffect (Process.exit' 1) + die $ Octokit.printGitHubError error Right existing -> pure existing -- TODO: Title comparison is a bit simplistic. Better to compare @@ -219,27 +217,21 @@ main = Aff.launchAff_ do Nothing -> do pushResult <- AppM.runGitM $ Git.gitPushBranch token >>= case _ of Git.NothingToPush -> do - Console.log "Did not push branch because we're up-to-date (expected to push change)." - liftEffect (Process.exit' 1) + die "Did not push branch because we're up-to-date (expected to push change)." Git.Pushed -> Console.log "Pushed changes!" case pushResult of Left error -> do - Console.log error - liftEffect (Process.exit' 1) + die error Right _ -> AppM.runGitHubM $ GitHub.createPullRequest { title: commitMsg, body: commitMsg, branch } Just pull -> do - Console.log "A pull request with this title is already open: " - Console.log pull.url - liftEffect (Process.exit' 1) + die $ "A pull request with this title is already open:\n" <> pull.url case createPullResult of Left error -> do - Console.log "Failed to create pull request:" - Console.log $ Octokit.printGitHubError error - liftEffect (Process.exit' 1) + die $ "Failed to create pull request:\n" <> Octokit.printGitHubError error Right { url } -> do Console.log "Successfully created pull request." Console.log url diff --git a/generate/bin/src/Run.purs b/generate/bin/src/Run.purs index 9f60bf8..68ff706 100644 --- a/generate/bin/src/Run.purs +++ b/generate/bin/src/Run.purs @@ -53,7 +53,7 @@ import Lib.SemVer (SemVer(..)) import Lib.SemVer as SemVer import Lib.Tool (Channel(..), Tool(..), ToolChannel(..), ToolPackage(..)) import Lib.Tool as Tool -import Lib.Utils (withBackoff') +import Lib.Utils (die, withBackoff') import Node.Encoding (Encoding(..)) import Node.FS.Aff as FS.Aff import Node.Path (FilePath) @@ -262,9 +262,7 @@ prefetchPursLanguageServer = do rawReleases <- AppM.runGitHubM (GitHub.listReleases PursLanguageServer) >>= case _ of Left error -> do - Console.log $ "Failed to fetch releases for purescript-language-server" - Console.log $ Octokit.printGitHubError error - liftEffect $ Process.exit' 1 + die $ "Failed to fetch releases for purescript-language-server\n" <> Octokit.printGitHubError error Right releases -> pure releases Console.log $ "Retrieved " <> show (Array.length rawReleases) <> " releases for purescript-language-server" @@ -295,8 +293,7 @@ prefetchPursLanguageServer = do Console.log $ "Fetching hashes for release asset download url " <> downloadUrl Nix.Prefetch.nixPrefetchUrl downloadUrl >>= case _ of Left error -> do - Console.log $ "Failed to hash release asset at url " <> downloadUrl <> ": " <> error - liftEffect $ Process.exit' 1 + die $ "Failed to hash release asset at url " <> downloadUrl <> ": " <> error Right hash -> pure $ Bundled { url: downloadUrl, hash } pure hashedReleases @@ -339,7 +336,7 @@ writePursUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) + Nothing -> die "Failed to update named manifest" Just result -> AppM.writeNamedManifest result writeSpagoUpdates :: CombinedManifest -> AppM Unit @@ -391,7 +388,7 @@ writeSpagoUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) + Nothing -> die "Failed to update named manifest" Just result -> AppM.writeNamedManifest result writePursTidyUpdates :: NPMRegistryManifest -> AppM Unit @@ -434,7 +431,7 @@ writePursTidyUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) + Nothing -> die "Failed to update named manifest" Just result -> AppM.writeNamedManifest result writePursBackendEsUpdates :: NPMRegistryManifest -> AppM Unit @@ -477,7 +474,7 @@ writePursBackendEsUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) + Nothing -> die "Failed to update named manifest" Just result -> AppM.writeNamedManifest result writePursLanguageServerUpdates :: NPMRegistryManifest -> AppM Unit @@ -520,7 +517,7 @@ writePursLanguageServerUpdates updates = do pure (updateStable (updateUnstable named)) case named' of - Nothing -> Console.log "Failed to update named manifest" *> liftEffect (Process.exit' 1) + Nothing -> die "Failed to update named manifest" Just result -> AppM.writeNamedManifest result unsafeVersion :: String -> Version @@ -545,9 +542,7 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = rawReleases <- liftAff (NPMRegistry.listNPMReleases tool) >>= case _ of Left error -> do - Console.log $ "Failed to fetch releases from NPM registry for " <> Tool.print tool Tool.Executable <> " at url " <> NPMRegistry.printNPMRegistryUrl tool - Console.log error - liftEffect $ Process.exit' 1 + die $ "Failed to fetch releases from NPM registry for " <> Tool.print tool Tool.Executable <> " at url " <> NPMRegistry.printNPMRegistryUrl tool <> "\n" <> error Right releases -> pure releases Console.log $ "Retrieved " <> show (Map.size rawReleases) <> " releases for " <> Tool.print tool Tool.Executable @@ -567,8 +562,7 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = Console.log $ "Fetching hash for NPM tarball at url " <> dist.tarball tarballHash <- Nix.Prefetch.nixPrefetchUrl dist.tarball >>= case _ of Left error -> do - Console.log $ "Failed to hash tarball at url " <> dist.tarball <> ": " <> error - liftEffect $ Process.exit' 1 + die $ "Failed to hash tarball at url " <> dist.tarball <> ": " <> error Right hash -> pure { url: dist.tarball, hash } case includePackageLock version of @@ -581,12 +575,9 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = { manifestDir } <- ask npmDepsHash <- withBackoff' (Nix.Prefetch.prefetchNpmDeps (Path.concat [ manifestDir, "build-support", path ])) >>= case _ of Nothing -> do - Console.log "Timed out trying to prefetch package-lock.json file." - liftEffect $ Process.exit' 1 + die "Timed out trying to prefetch package-lock.json file." Just (Left error) -> do - Console.log $ "Failed to prefetch npm deps from local package-lock.json file " <> path - Console.log error - liftEffect $ Process.exit' 1 + die $ "Failed to prefetch npm deps from local package-lock.json file " <> path <> "\n" <> error Just (Right hash) -> do Console.log $ "Got hash of npm deps from local package-lock.json file." Console.log $ Sha256.print hash @@ -597,25 +588,19 @@ prefetchNPMRegistry { tool, readManifest, filterVersion, includePackageLock } = Console.log "Version is not bundled, fetching lockfile..." { lockfileUrl, lockfileHash, npmDepsHash } <- case mbGitHead of Nothing -> do - Console.log "No git commit associated with version, cannot fetch package-lock.json." - liftEffect $ Process.exit' 1 + die "No git commit associated with version, cannot fetch package-lock.json." Just sha -> do let packageLockUrl = GitHub.rawContentUrl tool sha "package-lock.json" packageLockRemoteHash <- withBackoff' (Nix.Prefetch.nixPrefetchUrl packageLockUrl) >>= case _ of Nothing -> do - Console.log "Timed out trying to prefetch package-lock.json file." - liftEffect $ Process.exit' 1 + die "Timed out trying to prefetch package-lock.json file." Just (Left error) -> do - Console.log $ "Failed to prefetch package-lock.json file from url " <> packageLockUrl - Console.log error - liftEffect $ Process.exit' 1 + die $ "Failed to prefetch package-lock.json file from url " <> packageLockUrl <> "\n" <> error Just (Right hash) -> pure hash packageLockContents <- AppM.runGitHubM (GitHub.getContent tool sha "package-lock.json") >>= case _ of Left error -> do - Console.log "Failed to fetch remote package-lock.json file!" - Console.log $ Octokit.printGitHubError error - liftEffect $ Process.exit' 1 + die $ "Failed to fetch remote package-lock.json file!\n" <> Octokit.printGitHubError error Right result -> pure result tmp <- Tmp.mkTmpDir @@ -650,10 +635,11 @@ fetchGitHub { tool, readManifest, parseAsset, filterVersion, filterSystem } = do rawReleases <- AppM.runGitHubM (GitHub.listReleases tool) >>= case _ of Left error -> do - Console.log $ "Failed to fetch releases for " <> Tool.print tool Tool.Executable - Console.log $ " due to a GitHub error: " - Console.log $ Octokit.printGitHubError error - liftEffect $ Process.exit' 1 + die $ String.joinWith "\n" + [ "Failed to fetch releases for " <> Tool.print tool Tool.Executable + , " due to a GitHub error: " + , Octokit.printGitHubError error + ] Right releases -> pure releases Console.log $ "Retrieved " <> show (Array.length rawReleases) <> " releases in total for " <> Tool.print tool Tool.Executable @@ -684,8 +670,7 @@ fetchGitHub { tool, readManifest, parseAsset, filterVersion, filterSystem } = do Console.log $ " " <> asset Nix.Prefetch.nixPrefetchUrl asset >>= case _ of Left error -> do - Console.log $ "Failed to hash release asset at url " <> asset <> ": " <> error - liftEffect $ Process.exit' 1 + die $ "Failed to hash release asset at url " <> asset <> ": " <> error Right hash -> pure { url: asset, hash } pure hashedReleases diff --git a/generate/lib/src/Utils.purs b/generate/lib/src/Utils.purs index b2ad221..57a2b10 100644 --- a/generate/lib/src/Utils.purs +++ b/generate/lib/src/Utils.purs @@ -15,9 +15,12 @@ import Effect.Aff (Aff) import Effect.Aff as Aff import Effect.Aff as Parallel import Effect.Aff.Class (class MonadAff, liftAff) +import Effect.Class (class MonadEffect, liftEffect) +import Effect.Class.Console as Console import Node.Encoding (Encoding(..)) import Node.FS.Aff as FS.Aff import Node.Path (FilePath) +import Node.Process as Process writeJsonFile :: forall m a. MonadAff m => FilePath -> JsonCodec a -> a -> m Unit writeJsonFile path codec a = liftAff do @@ -92,3 +95,8 @@ withBackoff { delay: Aff.Milliseconds timeout, action, shouldCancel, shouldRetry maybeResult <- runAction 0 action (Int.floor timeout) loop 1 maybeResult + +die :: forall m u. MonadEffect m => String -> m u +die msg = do + Console.error msg + liftEffect (Process.exit' 1) \ No newline at end of file From 3e215293e2537ad4ab339a7e430cdc3c9c8b7466 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Fri, 2 Feb 2024 00:16:27 +0300 Subject: [PATCH 16/21] refactor: use eachDefaultSystem --- flake.nix | 56 +++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/flake.nix b/flake.nix index 689a1af..b9d35c3 100644 --- a/flake.nix +++ b/flake.nix @@ -17,30 +17,29 @@ slimlock, flake-compat, }: let - supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]; - forAllSystems = nixpkgs.lib.genAttrs supportedSystems; - nixpkgsFor = forAllSystems (system: - import nixpkgs { + inherit (nixpkgs) lib; + eachDefaultSystem = perSystem: + lib.pipe ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"] [ + (map (sys: builtins.mapAttrs (_: value: { ${sys} = value; }) (perSystem sys))) + (builtins.foldl' nixpkgs.lib.recursiveUpdate { }) + ]; + in + eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; overlays = [ self.overlays.default slimlock.overlays.default ]; - }); - in { - overlays.default = import ./overlay.nix; - + }; + in + { # A warning-free top-level flake output suitable for running unit tests via # e.g. `nix eval .#lib`. - lib = forAllSystems (system: let - pkgs = nixpkgsFor.${system}; - tests = pkgs.callPackage ./nix/tests {}; - in - tests); + lib = pkgs.callPackage ./nix/tests {}; - packages = forAllSystems (system: let - pkgs = nixpkgsFor.${system}; - in + packages = { inherit (pkgs) purs purs-unstable spago spago-unstable purs-tidy purs-tidy-unstable purs-backend-es purs-backend-es-unstable purescript-language-server purescript-language-server-unstable; } @@ -48,10 +47,10 @@ // pkgs.spago-bin // pkgs.purs-tidy-bin // pkgs.purs-backend-es-bin - // pkgs.purescript-language-server-bin); + // pkgs.purescript-language-server-bin; - apps = forAllSystems (system: let - pkgs = nixpkgsFor.${system}; + apps = + let mkApp = bin: { type = "app"; program = "${bin}/bin/${bin.pname or bin.name}"; @@ -59,12 +58,10 @@ apps = pkgs.lib.mapAttrs (_: mkApp) self.packages.${system}; scripts = {generate = mkApp (pkgs.callPackage ./generate {});}; in - apps // scripts); - - checks = forAllSystems (system: let - pkgs = nixpkgsFor.${system}; - inherit (pkgs) lib; + apps // scripts; + checks = + let package-checks = lib.mapAttrs (key: bin: let name = bin.pname or bin.name; @@ -127,11 +124,9 @@ ''; }; in - package-checks // example-checks // script-checks); + package-checks // example-checks // script-checks; - devShells = forAllSystems (system: let - pkgs = nixpkgsFor.${system}; - in { + devShells = { default = pkgs.mkShell { name = "purescript-overlay"; buildInputs = [ @@ -145,6 +140,9 @@ pkgs.prefetch-npm-deps ]; }; - }); + }; + }) + // { + overlays.default = import ./overlay.nix; }; } From b84267a7790a9d173db3296c197b241f4f260d73 Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Fri, 2 Feb 2024 00:21:52 +0300 Subject: [PATCH 17/21] feat: set alejandra as the default formatter --- flake.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flake.nix b/flake.nix index b9d35c3..63e892b 100644 --- a/flake.nix +++ b/flake.nix @@ -141,6 +141,8 @@ ]; }; }; + + formatter = pkgs.alejandra; }) // { overlays.default = import ./overlay.nix; From 25e7b1b920f8068688d4c7ecf08acaf73611942d Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Fri, 2 Feb 2024 00:23:01 +0300 Subject: [PATCH 18/21] chore: format nix files --- default.nix | 20 +- flake.nix | 230 +++++++++--------- manifests/build-support/mkDerivation.nix | 4 +- manifests/build-support/mkDerivationBasic.nix | 2 +- nix/build-spago-lock.nix | 31 ++- nix/tests/build-spago-lock/default.nix | 26 +- 6 files changed, 162 insertions(+), 151 deletions(-) diff --git a/default.nix b/default.nix index f620865..2b62571 100644 --- a/default.nix +++ b/default.nix @@ -1,10 +1,14 @@ -(import +( + import ( - let lock = builtins.fromJSON (builtins.readFile ./flake.lock); in - fetchTarball { - url = lock.nodes.flake-compat.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; - sha256 = lock.nodes.flake-compat.locked.narHash; - } + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = lock.nodes.flake-compat.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; + } ) - { src = ./.; } -).defaultNix + {src = ./.;} +) +.defaultNix diff --git a/flake.nix b/flake.nix index 63e892b..925f90f 100644 --- a/flake.nix +++ b/flake.nix @@ -20,12 +20,11 @@ inherit (nixpkgs) lib; eachDefaultSystem = perSystem: lib.pipe ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"] [ - (map (sys: builtins.mapAttrs (_: value: { ${sys} = value; }) (perSystem sys))) - (builtins.foldl' nixpkgs.lib.recursiveUpdate { }) + (map (sys: builtins.mapAttrs (_: value: {${sys} = value;}) (perSystem sys))) + (builtins.foldl' nixpkgs.lib.recursiveUpdate {}) ]; - in - eachDefaultSystem (system: - let + in + eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ @@ -33,118 +32,115 @@ slimlock.overlays.default ]; }; - in - { - # A warning-free top-level flake output suitable for running unit tests via - # e.g. `nix eval .#lib`. - lib = pkgs.callPackage ./nix/tests {}; - - packages = - { - inherit (pkgs) purs purs-unstable spago spago-unstable purs-tidy purs-tidy-unstable purs-backend-es purs-backend-es-unstable purescript-language-server purescript-language-server-unstable; - } - // pkgs.purs-bin - // pkgs.spago-bin - // pkgs.purs-tidy-bin - // pkgs.purs-backend-es-bin - // pkgs.purescript-language-server-bin; - - apps = - let - mkApp = bin: { - type = "app"; - program = "${bin}/bin/${bin.pname or bin.name}"; + in { + # A warning-free top-level flake output suitable for running unit tests via + # e.g. `nix eval .#lib`. + lib = pkgs.callPackage ./nix/tests {}; + + packages = + { + inherit (pkgs) purs purs-unstable spago spago-unstable purs-tidy purs-tidy-unstable purs-backend-es purs-backend-es-unstable purescript-language-server purescript-language-server-unstable; + } + // pkgs.purs-bin + // pkgs.spago-bin + // pkgs.purs-tidy-bin + // pkgs.purs-backend-es-bin + // pkgs.purescript-language-server-bin; + + apps = let + mkApp = bin: { + type = "app"; + program = "${bin}/bin/${bin.pname or bin.name}"; + }; + apps = pkgs.lib.mapAttrs (_: mkApp) self.packages.${system}; + scripts = {generate = mkApp (pkgs.callPackage ./generate {});}; + in + apps // scripts; + + checks = let + package-checks = + lib.mapAttrs (key: bin: let + name = bin.pname or bin.name; + version = bin.version or "0.0.0"; + in + pkgs.runCommand "test-${name}-${version}" {} '' + touch $out + set -e + set -x + + # Some package versions are not supported on some systems, ie. the + # "stable" version of Spago is not supported on aarch64. + if [ ${builtins.toString (builtins.hasAttr "unsupported" bin)} ]; then + echo "Skipping ${bin.name} because it is not supported on ${system}" + exit 0 + fi + + # Different packages at different versions use different 'version' + # flags to print their version + if [ ${builtins.toString (name == "spago" && pkgs.lib.versionOlder version "0.90.0")} ]; then + VERSION="$(${lib.getExe bin} version --global-cache skip)" + # spago@0.93.21 incorrectly reports its version + elif [ ${builtins.toString (name == "spago" && version == "0.93.21")} ]; then + VERSION="0.93.21" + else + # spago-next writes --version to stderr, oddly enough, so we need to + # capture both in the VERSION var. + VERSION="$(${lib.getExe bin} --version 2>&1)" + fi + + # purs-tidy includes a 'v' prefix in its output beginning with version 0.9.0 + if [ ${builtins.toString (name == "purs-tidy" && !(pkgs.lib.versionOlder version "0.9.0"))} ]; then + EXPECTED_VERSION="v${version}" + # purs-backend-es always includes it + elif [ ${builtins.toString (name == "purs-backend-es")} ]; then + EXPECTED_VERSION="v${version}" + else + EXPECTED_VERSION="${version}" + fi + + echo "$VERSION should match expected output $EXPECTED_VERSION" + test "$VERSION" = "$EXPECTED_VERSION" + '') + # TODO: Remove once the purescript build of spago is stable + (pkgs.lib.filterAttrs (k: v: !(k == "spago" && system == "aarch64-darwin")) self.packages.${system}); + + example-checks = pkgs.callPackages ./nix/examples {}; + + script-checks = { + generate = let + bin = pkgs.callPackage ./generate {}; + manifests = ./manifests; + in + pkgs.runCommand "test-generate" {} '' + mkdir -p $out/bin + set -e + set -x + cp ${bin}/bin/${bin.name} $out/bin/test-generate + ${bin}/bin/${bin.name} verify ${manifests} + ''; + }; + in + package-checks // example-checks // script-checks; + + devShells = { + default = pkgs.mkShell { + name = "purescript-overlay"; + buildInputs = [ + self.packages.${system}.spago-unstable + self.packages.${system}.purs-unstable + self.packages.${system}.purs-tidy-unstable + self.packages.${system}.purs-backend-es-unstable + self.packages.${system}.purescript-language-server-unstable + + pkgs.nodejs + pkgs.prefetch-npm-deps + ]; + }; }; - apps = pkgs.lib.mapAttrs (_: mkApp) self.packages.${system}; - scripts = {generate = mkApp (pkgs.callPackage ./generate {});}; - in - apps // scripts; - - checks = - let - package-checks = - lib.mapAttrs (key: bin: let - name = bin.pname or bin.name; - version = bin.version or "0.0.0"; - in - pkgs.runCommand "test-${name}-${version}" {} '' - touch $out - set -e - set -x - - # Some package versions are not supported on some systems, ie. the - # "stable" version of Spago is not supported on aarch64. - if [ ${builtins.toString (builtins.hasAttr "unsupported" bin)} ]; then - echo "Skipping ${bin.name} because it is not supported on ${system}" - exit 0 - fi - - # Different packages at different versions use different 'version' - # flags to print their version - if [ ${builtins.toString (name == "spago" && pkgs.lib.versionOlder version "0.90.0")} ]; then - VERSION="$(${lib.getExe bin} version --global-cache skip)" - # spago@0.93.21 incorrectly reports its version - elif [ ${builtins.toString (name == "spago" && version == "0.93.21")} ]; then - VERSION="0.93.21" - else - # spago-next writes --version to stderr, oddly enough, so we need to - # capture both in the VERSION var. - VERSION="$(${lib.getExe bin} --version 2>&1)" - fi - - # purs-tidy includes a 'v' prefix in its output beginning with version 0.9.0 - if [ ${builtins.toString (name == "purs-tidy" && !(pkgs.lib.versionOlder version "0.9.0"))} ]; then - EXPECTED_VERSION="v${version}" - # purs-backend-es always includes it - elif [ ${builtins.toString (name == "purs-backend-es")} ]; then - EXPECTED_VERSION="v${version}" - else - EXPECTED_VERSION="${version}" - fi - - echo "$VERSION should match expected output $EXPECTED_VERSION" - test "$VERSION" = "$EXPECTED_VERSION" - '') - # TODO: Remove once the purescript build of spago is stable - (pkgs.lib.filterAttrs (k: v: !(k == "spago" && system == "aarch64-darwin")) self.packages.${system}); - - example-checks = pkgs.callPackages ./nix/examples {}; - - script-checks = { - generate = let - bin = pkgs.callPackage ./generate {}; - manifests = ./manifests; - in - pkgs.runCommand "test-generate" {} '' - mkdir -p $out/bin - set -e - set -x - cp ${bin}/bin/${bin.name} $out/bin/test-generate - ${bin}/bin/${bin.name} verify ${manifests} - ''; - }; - in - package-checks // example-checks // script-checks; - - devShells = { - default = pkgs.mkShell { - name = "purescript-overlay"; - buildInputs = [ - self.packages.${system}.spago-unstable - self.packages.${system}.purs-unstable - self.packages.${system}.purs-tidy-unstable - self.packages.${system}.purs-backend-es-unstable - self.packages.${system}.purescript-language-server-unstable - - pkgs.nodejs - pkgs.prefetch-npm-deps - ]; - }; - }; - formatter = pkgs.alejandra; - }) - // { - overlays.default = import ./overlay.nix; - }; + formatter = pkgs.alejandra; + }) + // { + overlays.default = import ./overlay.nix; + }; } diff --git a/manifests/build-support/mkDerivation.nix b/manifests/build-support/mkDerivation.nix index 9d43995..64575a2 100644 --- a/manifests/build-support/mkDerivation.nix +++ b/manifests/build-support/mkDerivation.nix @@ -42,7 +42,7 @@ in ln -s $BIN $out/bin/${name} ''; - meta = meta lib // { mainProgram = name; }; + meta = meta lib // {mainProgram = name;}; } # Otherwise, if there IS a lockfile set, then we need to include dependencies. else let @@ -71,5 +71,5 @@ in npmInstallFlags = ["--loglevel=verbose"]; - meta = meta lib // { mainProgram = name; }; + meta = meta lib // {mainProgram = name;}; } diff --git a/manifests/build-support/mkDerivationBasic.nix b/manifests/build-support/mkDerivationBasic.nix index 973b502..8f1337c 100644 --- a/manifests/build-support/mkDerivationBasic.nix +++ b/manifests/build-support/mkDerivationBasic.nix @@ -33,5 +33,5 @@ stdenv.mkDerivation { ln -s $BIN $out/bin/${name} ''; - meta = meta lib // { mainProgram = name; }; + meta = meta lib // {mainProgram = name;}; } diff --git a/nix/build-spago-lock.nix b/nix/build-spago-lock.nix index 6c784b4..7f0dbe8 100644 --- a/nix/build-spago-lock.nix +++ b/nix/build-spago-lock.nix @@ -171,19 +171,28 @@ defaultVersion = "0.0.0"; - version = drv.version or ( - if builtins.pathExists "${drv.out}/spago.yaml" - then lib.attrByPath [ "package" "publish" "version" ] defaultVersion (fromYAML (builtins.readFile "${drv.out}/spago.yaml")) - else defaultVersion - ); - + version = + drv.version + or ( + if builtins.pathExists "${drv.out}/spago.yaml" + then lib.attrByPath ["package" "publish" "version"] defaultVersion (fromYAML (builtins.readFile "${drv.out}/spago.yaml")) + else defaultVersion + ); + # FIXME hack to provide spago and spago-bin with spagoVersion - dependenciesList = lib.attrValues dependencies ++ [ { name = "spago-bin"; version = version; } ]; + dependenciesList = + lib.attrValues dependencies + ++ [ + { + name = "spago-bin"; + version = version; + } + ]; renderPackageType = p: ''"${p.name}" :: String''; - packagesType = "{ ${ lib.concatMapStringsSep ", " renderPackageType dependenciesList } }"; + packagesType = "{ ${lib.concatMapStringsSep ", " renderPackageType dependenciesList} }"; renderPackage = p: ''"${p.name}": "${p.version or defaultVersion}"''; - packages = ''{ ${lib.concatMapStringsSep "\n , " renderPackage dependenciesList } }''; + packages = ''{ ${lib.concatMapStringsSep "\n , " renderPackage dependenciesList} }''; in stdenv.mkDerivation rec { name = drv.name; @@ -214,10 +223,10 @@ packages :: ${packagesType} packages = ${packages} - + pursVersion :: String pursVersion = "${purs.version}" - + spagoVersion :: String spagoVersion = "${version}" ''; diff --git a/nix/tests/build-spago-lock/default.nix b/nix/tests/build-spago-lock/default.nix index d969b8f..c6a71be 100644 --- a/nix/tests/build-spago-lock/default.nix +++ b/nix/tests/build-spago-lock/default.nix @@ -1,12 +1,14 @@ -{ callPackage }: -let - utils = callPackage ../utils.nix { }; - fromYAML = callPackage ../../from-yaml.nix { }; - lock = callPackage ../../build-spago-lock.nix { inherit fromYAML; }; -in utils.runTests { - testSimpleLock = { - expr = let locked = lock.readSpagoLock ./simple.lock; - in builtins.attrNames (locked.packages // locked.workspace.packages); - expected = [ "basic" "console" "effect" "prelude" ]; - }; -} +{callPackage}: let + utils = callPackage ../utils.nix {}; + fromYAML = callPackage ../../from-yaml.nix {}; + lock = callPackage ../../build-spago-lock.nix {inherit fromYAML;}; +in + utils.runTests { + testSimpleLock = { + expr = let + locked = lock.readSpagoLock ./simple.lock; + in + builtins.attrNames (locked.packages // locked.workspace.packages); + expected = ["basic" "console" "effect" "prelude"]; + }; + } From 4b81bcc268a80ff94b946df46b8169e782227d52 Mon Sep 17 00:00:00 2001 From: Danila Danko <48378098+deemp@users.noreply.github.com> Date: Fri, 9 Feb 2024 17:06:32 +0300 Subject: [PATCH 19/21] refactor: add newline at the end Co-authored-by: Thomas Honeyman --- generate/spago.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate/spago.yaml b/generate/spago.yaml index 892dc08..414f4b6 100644 --- a/generate/spago.yaml +++ b/generate/spago.yaml @@ -39,4 +39,4 @@ workspace: - "tuples" - "typelevel-prelude" - "unfoldable" - - "unsafe-coerce" \ No newline at end of file + - "unsafe-coerce" From 09bdc089de03a81825f1a6dae8ec30fafa351aeb Mon Sep 17 00:00:00 2001 From: Danila Danko Date: Fri, 9 Feb 2024 17:11:58 +0300 Subject: [PATCH 20/21] refactor: set mainProgram in individual derivations --- manifests/build-support/mkDerivationBasic.nix | 2 +- manifests/build-support/mkPursBackendEsDerivation.nix | 3 ++- manifests/build-support/mkPursTidyDerivation.nix | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/manifests/build-support/mkDerivationBasic.nix b/manifests/build-support/mkDerivationBasic.nix index 8f1337c..7d276c4 100644 --- a/manifests/build-support/mkDerivationBasic.nix +++ b/manifests/build-support/mkDerivationBasic.nix @@ -33,5 +33,5 @@ stdenv.mkDerivation { ln -s $BIN $out/bin/${name} ''; - meta = meta lib // {mainProgram = name;}; + meta = meta lib; } diff --git a/manifests/build-support/mkPursBackendEsDerivation.nix b/manifests/build-support/mkPursBackendEsDerivation.nix index b0bd905..0c24a6c 100644 --- a/manifests/build-support/mkPursBackendEsDerivation.nix +++ b/manifests/build-support/mkPursBackendEsDerivation.nix @@ -1,9 +1,10 @@ -import ./mkDerivationBasic.nix { +import ./mkDerivationBasic.nix rec { name = "purs-backend-es"; js = "index.js"; meta = lib: { description = "An optimizing backend toolkit for PureScript's CoreFn."; homepage = "https://github.com/aristanetworks/purescript-backend-optimizer"; license = lib.licenses.mit; + mainProgram = name; }; } diff --git a/manifests/build-support/mkPursTidyDerivation.nix b/manifests/build-support/mkPursTidyDerivation.nix index 8faf0b7..89ff778 100644 --- a/manifests/build-support/mkPursTidyDerivation.nix +++ b/manifests/build-support/mkPursTidyDerivation.nix @@ -1,9 +1,10 @@ -import ./mkDerivationBasic.nix { +import ./mkDerivationBasic.nix rec { name = "purs-tidy"; js = "bin/index.js"; meta = lib: { description = "PureScript formatter and tidy-upper"; homepage = "https://github.com/natefaubion/purescript-tidy"; license = lib.licenses.mit; + mainProgram = name; }; } From be88f37c102870561bad71f86ecbf926aae3eb1a Mon Sep 17 00:00:00 2001 From: Danila Danko <48378098+deemp@users.noreply.github.com> Date: Fri, 9 Feb 2024 17:14:37 +0300 Subject: [PATCH 21/21] refactor: add newline at the end Co-authored-by: Thomas Honeyman --- generate/lib/src/Utils.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate/lib/src/Utils.purs b/generate/lib/src/Utils.purs index 57a2b10..c9b2312 100644 --- a/generate/lib/src/Utils.purs +++ b/generate/lib/src/Utils.purs @@ -99,4 +99,4 @@ withBackoff { delay: Aff.Milliseconds timeout, action, shouldCancel, shouldRetry die :: forall m u. MonadEffect m => String -> m u die msg = do Console.error msg - liftEffect (Process.exit' 1) \ No newline at end of file + liftEffect (Process.exit' 1)