{"id":20373918,"url":"https://github.com/revng/orchestra","last_synced_at":"2025-04-12T07:46:42.310Z","repository":{"id":37979456,"uuid":"313342327","full_name":"revng/orchestra","owner":"revng","description":"rev.ng configuration for orchestra. The starting point for any development.","archived":false,"fork":false,"pushed_at":"2025-03-14T14:58:11.000Z","size":1055,"stargazers_count":36,"open_issues_count":17,"forks_count":19,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-12T07:46:35.035Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/revng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-11-16T15:17:07.000Z","updated_at":"2025-03-22T14:06:49.000Z","dependencies_parsed_at":"2023-02-19T06:30:56.698Z","dependency_job_id":"1fbcbf74-eb4e-4403-8ab5-3179ea06b762","html_url":"https://github.com/revng/orchestra","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revng%2Forchestra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revng%2Forchestra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revng%2Forchestra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revng%2Forchestra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/revng","download_url":"https://codeload.github.com/revng/orchestra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537003,"owners_count":21120687,"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-15T01:21:00.215Z","updated_at":"2025-04-12T07:46:42.277Z","avatar_url":"https://github.com/revng.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rev.ng orchestra configuration\n\nThis repository contains the orchestra configuration for rev.ng.\n\n## Bootstrap\n\n* Clone orchestra\n  ```sh\n  git clone https://github.com/revng/orchestra\n  cd orchestra\n  ```\n* Install dependencies (currently Ubuntu-only):\n  ```sh\n  ./.orchestra/ci/install-dependencies.sh\n  ```\n* Install orchestra script\n  ```sh\n  pip3 cache remove orchestra\n  pip3 install --user --force-reinstall https://github.com/revng/revng-orchestra/archive/master.zip\n  ```\n* Make sure `orc` is in PATH\n  ```sh\n  export PATH=\"$HOME/.local/bin:$PATH\"\n  ```\n* Initialize default configuration (and list components)\n  ```sh\n  orc components\n  ```\n\n### Virtualenv\n\nIf you do not want to install orchestra globally, you can use a `virtualenv`.\n\n* Create and activate a virtualenv\n  ```sh\n  python3 -m venv venv\n  source venv/bin/activate\n  ```\n* Install and upgrade wheel inside the virtualenv\n  ```sh\n  pip install --upgrade pip wheel\n  ```\n* Install orchestra\n  ```sh\n  pip cache remove orchestra\n  pip install --force-reinstall https://github.com/revng/revng-orchestra/archive/master.zip\n  ```\n* Install dependencies (Ubuntu only)\n  ```sh\n  ./.orchestra/ci/install-dependencies.sh\n  ```\n\n## Configuration for the public\n\nThe default configuration gives you read-only access to the rev.ng open source components.\n\nIf you want to work a fork of certain components the suggested workflow is to add your remote to the\nrepository as cloned by orchestra.\nFor example, to fork the `revng` project do the following:\n\n```bash\n# Ensure the revng component is cloned\norc clone revng\ncd sources/revng\ngit remote add myremote \u003cyour-remote-url\u003e\n```\n\n## Configuration for rev.ng developers\n\nIf you have access to rev.ng GitLab, in order to access private components, your configuration should be similar to the following:\n\n```yaml\n#@data/values\n---\n#@overlay/match missing_ok=True\nremote_base_urls:\n  - public: \"git@github.com:revng\"\n  - private: \"git@rev.ng:revng-private\"\n\n#@overlay/match missing_ok=True\nbinary_archives:\n  - origin: \"git@rev.ng:revng/binary-archives.git\"\n  - private: \"git@rev.ng:revng-private/binary-archives.git\"\n```\n\n## Installing from binary-archives\n\n* Update `binary-archives` and information about remote repositories:\n  ```sh\n  orc update\n  ```\n* Install `revng`\n  ```sh\n  orc install revng\n  ```\n\n## Building from source\n\nIn order to build from source certain components, as opposed to fetch them from binary-archives, you need to list them in `.orchestra/config/user_options.yml`:\n\n```yaml\n#@overlay/replace\nbuild_from_source:\n  - revng\n```\n\n* Install and test `revng`\n  ```sh\n  orc install --test revng\n  ```\n* Manually build:\n  ```sh\n  orc shell -c revng\n  ninja\n  ctest -j$(nproc)\n  ```\n\n## Building from a fork\n\nThe recommended workflow is:\n\n* Clone the component you want to fork\n  ```sh\n  orc clone \u003ccomponent\u003e\n  ```\n* Add a remote to the component\n  ```sh\n  cd sources/\u003ccomponent\u003e\n  git remote add \u003cmyremotename\u003e \u003cremote-url\u003e\n  git fetch --all\n  ```\n* Switch to your branch\n  ```sh\n  cd sources/\u003ccomponent\u003e\n  git switch \u003cmyremotename\u003e/\u003cbranch\u003e\n  git checkout -b \u003cbranch\u003e \u003cmyremotename\u003e/\u003cbranch\u003e\n  ```\n* Update orchestra\n  ```sh\n  orc update\n  ```\n\n## How do I...\n\n* **Q**: How do I set the number of parallel jobs for `make`/`ninja`?\n\n  **A**: In `.orchestra/config/user_options.yml`:\n  ```yaml\n  parallelism: 4\n  ```\n* **Q**: How do I print the dependency graph to build a component?\n\n  **A**: `orc graph $COMPONENT | xdot -`\n\n* **Q**: How do I uninstall a component?\n\n  **A**: `orc uninstall $COMPONENT`\n\n* **Q**: Does orchestra leave files around my `$HOME` or elsewhere?\n\n  **A**: No! By default orchestra places *everything* inside the folder containing the configuration\n\n## Writing components\n\nSee `docs/writing_components.md`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevng%2Forchestra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frevng%2Forchestra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevng%2Forchestra/lists"}