{"id":20225529,"url":"https://github.com/purescript/pursuit","last_synced_at":"2025-04-07T07:14:24.134Z","repository":{"id":19352995,"uuid":"22592439","full_name":"purescript/pursuit","owner":"purescript","description":"Website for hosting and searching PureScript API documentation","archived":false,"fork":false,"pushed_at":"2024-09-03T21:46:42.000Z","size":1364,"stargazers_count":169,"open_issues_count":76,"forks_count":47,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-29T21:05:42.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pursuit.purescript.org/","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/purescript.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2014-08-04T04:57:54.000Z","updated_at":"2024-09-25T08:16:45.000Z","dependencies_parsed_at":"2023-12-19T03:04:07.639Z","dependency_job_id":"ab91d24f-84a6-4f7b-83f8-07a06be6a63c","html_url":"https://github.com/purescript/pursuit","commit_stats":{"total_commits":709,"total_committers":34,"mean_commits":"20.852941176470587","dds":0.2849083215796897,"last_synced_commit":"fca936dcd8e573237eabe408d2bcf225931a3be8"},"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purescript%2Fpursuit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purescript%2Fpursuit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purescript%2Fpursuit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purescript%2Fpursuit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/purescript","download_url":"https://codeload.github.com/purescript/pursuit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190253,"owners_count":20898711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-14T07:13:18.013Z","updated_at":"2025-04-07T07:14:24.113Z","avatar_url":"https://github.com/purescript.png","language":"Haskell","readme":"# Pursuit\n\n[![Build Status](https://github.com/purescript/pursuit/workflows/CI/badge.svg?branch=master)](https://github.com/purescript/pursuit/actions?query=workflow%3ACI+branch%3Amaster)\n\nPursuit hosts API documentation for PureScript packages. It lets you search by\npackage, module, and function names, as well as approximate type signatures.\n\nPursuit is currently deployed at \u003chttps://pursuit.purescript.org\u003e.\n\nInformation for package authors can be found at\n\u003chttps://pursuit.purescript.org/help\u003e.\n\n## Development\n\nIt's recommended to use `stack`: \u003chttp://docs.haskellstack.org\u003e.\n\n### Build\n\nTo build in development mode:\n\n```\n$ stack build\n```\n\nTo build in production mode:\n\n```\n$ stack build --flag pursuit:-dev\n```\n\n### Develop\n\nTo iterate quickly during development, you can use `ghci`:\n\n```\n$ stack ghci\n```\n\nOnce the REPL has loaded, you can reload the code and then update the web server:\n\n```\n\u003e :l DevelMain\n\u003e update\n```\n\n### Web server\n\nTo run the web server on \u003chttp://localhost:3000\u003e:\n\n```\n$ stack exec pursuit\n```\n\nYou might want to add some content to the database (see [Database](#database)),\notherwise you will not be able to browse any packages. The database will be\nregenerated from this data source before the server starts listening; this\ncan take a short time depending on how much data you have.\n\n## Database\n\nPursuit currently uses the filesystem as a database, since it requires no setup\nand it makes it easy to use Git and GitHub for backing up. The data directory\nis set via an environment variable (see [Configuration](#configuration), the\ndefault is `data`).\n\nIf you need some sample packages to work with, you can clone the\n[pursuit-backups][pursuit-backups] repo and copy the packages you want to the\n`verified/` directory. This is more convenient than manually uploading each\npackage.\n\n[pursuit-backups]: https://github.com/purescript/pursuit-backups\n\n### Database structure\n\nThe database structure is as follows:\n\n```\n/\n  cache/\n    packages/\n      purescript-prelude/\n        0.1.0/\n          index.html\n          docs/\n            Prelude/\n              index.html\n  verified/\n    purescript-prelude/\n      0.1.0.json\n      0.1.1.json\n```\n\nThe `cache/` directory has files that mirror the URL structure of the web\napplication, and contains files which do not change and may be served as-is\nwithout forwarding the request on to the Yesod application. See Handler.Caching\nfor more details.\n\nThe `verified/` directory stores uploaded packages. Each package has its own\ndirectory, and then there is a JSON file for each version. These JSON files\neach contain a serialized `Package GithubUser`; see\nLanguage.PureScript.Docs.Types in the compiler for details about these types.\n\nThe backup process simply involves rsyncing everything in the `verified/`\ndirectory into a git repository, making a commit, and pushing it to GitHub.\n\n## Configuration\n\nAll configuration is done at startup via environment variables. The relevant\ncode is in the Settings module.\n\nAll configuration variable names start with `PURSUIT_` (eg,\n`PURSUIT_APPROOT`). All configuration variables are optional; for\ndevelopment, it is fine to just run `stack exec pursuit` leaving them all\nunset.\n\nSee `src/Settings.hs` for more details.\n\n## Assets\n\nThe favicon assets in `static/favicon` were taken from the [Purescript Logo](https://github.com/purescript/logo) repository.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurescript%2Fpursuit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpurescript%2Fpursuit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurescript%2Fpursuit/lists"}