{"id":15616588,"url":"https://github.com/ringods/pulumi-python-poetry-monorepo","last_synced_at":"2026-03-17T22:09:15.795Z","repository":{"id":96886176,"uuid":"550752912","full_name":"ringods/pulumi-python-poetry-monorepo","owner":"ringods","description":"Monorepo example for a Python based Pulumi setup managed by Poetry","archived":false,"fork":false,"pushed_at":"2025-08-26T07:20:11.000Z","size":35,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-26T09:22:17.235Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ringods.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,"zenodo":null}},"created_at":"2022-10-13T09:15:11.000Z","updated_at":"2025-08-26T07:20:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"b7abb83f-ba41-48a0-a681-45d6a28537d2","html_url":"https://github.com/ringods/pulumi-python-poetry-monorepo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ringods/pulumi-python-poetry-monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringods%2Fpulumi-python-poetry-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringods%2Fpulumi-python-poetry-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringods%2Fpulumi-python-poetry-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringods%2Fpulumi-python-poetry-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ringods","download_url":"https://codeload.github.com/ringods/pulumi-python-poetry-monorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringods%2Fpulumi-python-poetry-monorepo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280923455,"owners_count":26414237,"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","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-03T07:10:56.779Z","updated_at":"2025-10-25T08:05:39.272Z","avatar_url":"https://github.com/ringods.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Monorepo example for a Python based Pulumi setup managed by Poetry\n\nThis monorepo contains the following for [Pulumi](https://www.pulumi.com) in Python:\n\n* shared infrastructure code library in [`core`](/code)\n* two Pulumi projects using the shared library as a local library dependency.\n  * [`project1`](/project1)\n  * [`project2`](/project2)\n\nThe Pulumi projects and the shared Python library are managed by [Poetry](https://python-poetry.org/).\n\n## Things to know\n\n### Python Virtual Environments\n\nPulumi works fluent with Python virtual environments available within the project folder. Therefore, we configure Poetry to create the virtual environment within the project folder. You can do this in 2 ways:\n\n* per project using the config file `poetry.toml` with content:\n  ```\n  [virtualenvs]\n  in-project = true\n  ```\n* globally using the command `poetry config virtualenvs.in-project true`\n\nAfter cloning the repository, run `poetry install` in each of the folders to retrieve the Python dependencies.\n\nWhen I set up `project1` and `project2`, I defined the dependency on `core` in such a way that any local change to the core library is immediately reflected in the projects. To have it this way, you define the dependency as editable:\n\n```sh\n./project1 $ poetry add --editable ../core\n```\n\nThis creates a relative folder dependency from the project to `core`. If you forget the `--editable` flag, it copies the current state of `core` in the virtual environment of the project but any later changes will not ripple through.\n\n### VSCode\n\nIf you use VSCode, open this setup using the workspace file `python-monorepo.code-workspace`:\n\n\u003e File -\u003e Open Workspace from File...\n\nEach folder is now a project to VSCode. For the Python virtual environments to be picked up automatically, a `.vscode/settings.json` file is available in each folder, pointing to the in-project virtual environment folder.\n\n## References\n\n* [Non-Pulumi Python monorepo with Poetry](https://github.com/dermidgen/python-monorepo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fringods%2Fpulumi-python-poetry-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fringods%2Fpulumi-python-poetry-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fringods%2Fpulumi-python-poetry-monorepo/lists"}