{"id":18324028,"url":"https://github.com/dirk/roost","last_synced_at":"2025-04-06T00:30:53.338Z","repository":{"id":34081141,"uuid":"37897198","full_name":"dirk/Roost","owner":"dirk","description":"Dependency manager and build tool for Swift","archived":false,"fork":false,"pushed_at":"2015-11-02T07:24:51.000Z","size":390,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-21T13:52:37.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/dirk/Roost","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dirk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-23T04:31:54.000Z","updated_at":"2018-03-07T16:46:59.000Z","dependencies_parsed_at":"2022-07-13T16:47:57.581Z","dependency_job_id":null,"html_url":"https://github.com/dirk/Roost","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirk%2FRoost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirk%2FRoost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirk%2FRoost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirk%2FRoost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dirk","download_url":"https://codeload.github.com/dirk/Roost/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419597,"owners_count":20936009,"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-05T18:31:12.230Z","updated_at":"2025-04-06T00:30:52.860Z","avatar_url":"https://github.com/dirk.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status][travis-image]][travis-url]\n\n# Roost\n\nA very basic WIP dependency manager and build tool for Swift.\n\n## Setup and building\n\nRoost is self-hosting, but also comes with a Makefile for bootstrapping.\n\n```bash\ngit clone https://github.com/dirk/Roost.git\n# Fetch the dependencies\ncd Roost/vendor; carthage bootstrap --platform mac; cd ..\n# Build the binary using Make to invoke swiftc\nmake\n# Use Roost to pull its dependencies\nbin/roost update\n# Then build Roost with itself (-B forces a rebuild)\nbin/roost build -B\n```\n\n## Commands\n\n* **`update`**: Clone or pull the dependencies.\n* **`build`**: Build the dependencies (if any) and the project. Pass the `-B` flag to force a rebuild of everything.\n\n## Under the hood\n\nRoost looks for a `Roostfile.yaml` in the current directory. It parses that file and then executes the given command.\n\n#### General program flow\n\n1. **Parsing**: The `Roostfile.yaml` is parsed into a Roostfile object.\n2. **Running**: The Runner object parses the command-line command and options, then invokes the function for that command.\n3. **Packages** (when compiling): A Package object is derived from the Roostfile (packages are also derived for each dependency).\n\n\n##### Roostfile vs. Package\n\nA Roostfile object represents a parsed `Roostfile.yaml`, while a Package object represents the files, directories, objects, and so forth present in the filesystem for a given Roostfile. Roostfiles connect your local project to the outside world (fetching dependencies, publishing your project, etc.). Packages are how Roost manages actually building, linking, and other actions related to the current local state of your project.\n\n## License\n\nLicensed under the 3-clause BSD license. See [LICENSE](LICENSE) for details.\n\n[travis-image]: https://img.shields.io/travis/dirk/Roost/master.svg?style=flat-square\n[travis-url]: https://travis-ci.org/dirk/Roost\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirk%2Froost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirk%2Froost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirk%2Froost/lists"}