{"id":19963353,"url":"https://github.com/advrhumanoids/forest","last_synced_at":"2025-09-19T17:30:54.673Z","repository":{"id":40260701,"uuid":"378693636","full_name":"ADVRHumanoids/forest","owner":"ADVRHumanoids","description":"Minimal python-based clone \u0026 build tool with dependencies","archived":false,"fork":false,"pushed_at":"2024-12-16T12:32:24.000Z","size":278,"stargazers_count":7,"open_issues_count":15,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-12-16T13:38:41.903Z","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/ADVRHumanoids.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-20T16:40:14.000Z","updated_at":"2024-12-16T12:32:28.000Z","dependencies_parsed_at":"2023-11-30T09:46:12.611Z","dependency_job_id":"af00f836-7f33-4750-8d73-2aed552fc6bf","html_url":"https://github.com/ADVRHumanoids/forest","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fforest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fforest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fforest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fforest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADVRHumanoids","download_url":"https://codeload.github.com/ADVRHumanoids/forest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233579699,"owners_count":18697354,"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-13T02:15:51.659Z","updated_at":"2025-09-19T17:30:49.307Z","avatar_url":"https://github.com/ADVRHumanoids.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# forest [![Build Status](https://app.travis-ci.com/ADVRHumanoids/forest.svg?branch=master)](https://app.travis-ci.com/ADVRHumanoids/forest)\nThe forest project aims at automatizing the clone and build process for open source software. Differently from other systems such as [Conda](https://docs.conda.io/en/latest/), or [Conan](https://conan.io/), it is a non-intrusive system which does not aim at environment management. \n\n## Quickstart\nSetup a new workspace and add new recipes. Optional arguments are surrounded by [square brackets].\n - `[sudo] pip3 install hhcm-forest`\n - `mkdir my_ws \u0026\u0026 cd my_ws` \n - `forest init`\n - `source setup.bash`\n - `forest add-recipes git@github.com:advrhumanoids/multidof_recipes.git [--tag master]`\n\n Install the `xbot2_examples` recipe with its dependencies. \n - `forest grow xbot2_examples [-j8] [--clone-protocol https]`\n \n## Command line interface\nForest's CLI is divided into three main *verbs*, i.e. `init`, `add-recipes`, and `grow`.\n\n### forest init\nInitialize the current folder as a forest workspace, i.e. it creates\n - a `src` folder that will contain source code\n - a `recipes` folder that will contain forest's recipe files (more on this later)\n - a `build` folder to carry out compilation and store build artifacts \n - an `install` folder \n - a `setup.bash` file which makes installed items visible to the system\n \n ### forest add-recipes\n Adds recipes from a remote.\n\n ```bash\n usage: forest add-recipes [-h] [--tag TAG] [--verbose] url\n\npositional arguments:\n  url                   url of the remote (e.g. git@github.com:\u003cusername\u003e/\u003creponame\u003e.git \n                        or https://github.com/\u003cusername\u003e/\u003creponame\u003e.git)\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --tag TAG, -t TAG\n  --verbose, -v         print additional information\n\n```\n\n ### forest grow\n Builds a project according to the given recipe name, alongside its dependencies.\n\n ```bash\n usage: forest grow [-h] [--jobs JOBS] [--mode MODE [MODE ...]]\n                   [--config CONFIG [CONFIG ...]]\n                   [--default-build-type {None,RelWithDebInfo,Release,Debug}]\n                   [--force-reconfigure] [--list-eval-locals]\n                   [--clone-protocol {ssh,https}] [--clone-depth CLONE_DEPTH]\n                   [--cmake-args CMAKE_ARGS [CMAKE_ARGS ...]] [--no-deps]\n                   [--uninstall] [--clean] [--pwd PWD] [--verbose]\n                   [RECIPE]\n\npositional arguments:\n  RECIPE                name of recipe with fetch and build information\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --jobs JOBS, -j JOBS  parallel jobs for building\n  --mode MODE [MODE ...], -m MODE [MODE ...]\n                        specify modes that are used to set conditional\n                        compilation flags (e.g., cmake args)\n  --config CONFIG [CONFIG ...], -c CONFIG [CONFIG ...]\n                        specify configuration variables that can be used\n                        inside recipes\n  --default-build-type {None,RelWithDebInfo,Release,Debug}, -t {None,RelWithDebInfo,Release,Debug}\n                        build type for cmake, it is overridden by recipe\n  --force-reconfigure   force calling cmake before building with args from the\n                        recipe\n  --list-eval-locals    print available attributes when using conditional\n                        build args\n  --clone-protocol {ssh,https}\n                        override clone protocol\n  --clone-depth CLONE_DEPTH\n                        set maximum history depth to save bandwidth\n  --cmake-args CMAKE_ARGS [CMAKE_ARGS ...]\n                        specify additional cmake args to be appended to each\n                        recipe (leading -D must be omitted)\n  --no-deps, -n         skip dependency fetch and build step\n  --uninstall           uninstall recipe\n  --clean               uninstall recipe and remove build\n  --pwd PWD, -p PWD     user password to be used when sudo permission is\n                        required (if empty, user is prompted for password);\n                        note: to be used with care, as exposing your password\n                        might be harmful!\n  --verbose, -v         print additional information\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fforest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadvrhumanoids%2Fforest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fforest/lists"}