{"id":16339527,"url":"https://github.com/jordanmartinez/purescript-ecosystem-update","last_synced_at":"2026-01-24T10:33:24.664Z","repository":{"id":43057728,"uuid":"303499210","full_name":"JordanMartinez/purescript-ecosystem-update","owner":"JordanMartinez","description":"Some code that helps us update the PureScript ecosystem when a breaking changes PureScript release is made","archived":false,"fork":false,"pushed_at":"2023-10-09T14:00:54.000Z","size":1187,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-18T05:18:00.911Z","etag":null,"topics":["breaking-changes","ecosystem","purescript"],"latest_commit_sha":null,"homepage":"","language":"PureScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JordanMartinez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-12T19:58:05.000Z","updated_at":"2022-04-30T21:30:40.000Z","dependencies_parsed_at":"2024-11-07T04:02:50.829Z","dependency_job_id":null,"html_url":"https://github.com/JordanMartinez/purescript-ecosystem-update","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/JordanMartinez/purescript-ecosystem-update","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanMartinez%2Fpurescript-ecosystem-update","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanMartinez%2Fpurescript-ecosystem-update/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanMartinez%2Fpurescript-ecosystem-update/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanMartinez%2Fpurescript-ecosystem-update/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JordanMartinez","download_url":"https://codeload.github.com/JordanMartinez/purescript-ecosystem-update/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanMartinez%2Fpurescript-ecosystem-update/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28725355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["breaking-changes","ecosystem","purescript"],"created_at":"2024-10-10T23:54:32.345Z","updated_at":"2026-01-24T10:33:24.647Z","avatar_url":"https://github.com/JordanMartinez.png","language":"PureScript","readme":"# purescript-ecosystem-update\n\nThis repo stores scripts for forking, updating, and submitting PRs for the `core`, `contrib`, `node`, and `web` PureScript orgainzations' libraries.\n\n## Why\n\nBreaking changes made in libraries are done at the same time as when breaking changes are made in the PureScript compiler. Thus, we have to update all the foundational libraries for the PureScript ecosystem. This entails forking, updating, and submitting and merging many PRs. The scripts in this repo enable a streamlined workflow to make this update process easier.\n\n## How: The intended workflow\n\n### By Example\n\n```sh\n# Create a separate folder for containing both the scripts\n# and the local copies of the repos\nmkdir ps-libs\ncd ps-libs\n\n# Clone this repo and enter it\ngit clone git@github.com:JordanMartinez/purescript-ecosystem-update.git 0.15\ncd 0.15\n\nspago build\n\n# Fix any errors produced by the init command\n./peu.js init\n\n# Clone all repos locally using `gh` without getting rate-limited\n./peu.js cloneAll\n# Generate information used by most other commands\n./peu.js releaseInfo\n# Generate the order in which libraries need to be updated\n./peu.js updateOrder\n\n# At this point, one can modify this program to do\n# release-specific changes across all repos.\n# If a single file is going to be changed, the `getFile`\n# command can help see what all the edge cases are immediately.\n./peu.js getFile .github/workflows/ci.yml\n\n# Once this program has been updated to do all changes,\n# one can start updating them by doing the following:\n\n# For each repo...\n  # See what the next library to update is\n./peu.js updateOrder\nhead -n 5 files/order/updated-pkgs\n  # Verify that it compiles and will pass CI locally\n./peu.js compile prelude\n  # Submit a PR via `gh`\n./peu.js pr prelude\n  # Mark library as updated\necho \"prelude\" \u003e\u003e files/order/updated-pkgs\n  # Loop\n\n# Once all libraries are updated,\n# this program will need to be updated once more\n# to do release-specific things\n./peu.js release\n\n# Once the scripts are tested and work across the repos,\n# one can easily open a PR for them\n./peu.js release --submit-pr\necho \"prelude\" \u003e\u003e files/order/released-pkgs\n./peu.js release --submit-pr\necho \"effect\" \u003e\u003e files/order/released-pkgs\n# ...\n\n# Once all libraries are releasd and an initial package set\n# is released, we can see which libraries are unblocked:\n./peu.js spagoOrder\necho \"interpolate\" \u003e\u003e files/order/released-pkgs\n```\n\n### Folder Structure\n\nWhen setup correctly, the project structure should look like this:\n```\nps-libs/\n  0.15/\n    peu.js\n    ...\n  lib/\n    prelude/\n    .../\n    node-fs/\n    .../\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordanmartinez%2Fpurescript-ecosystem-update","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjordanmartinez%2Fpurescript-ecosystem-update","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordanmartinez%2Fpurescript-ecosystem-update/lists"}