{"id":14982736,"url":"https://github.com/markfinal/cruiz","last_synced_at":"2025-10-29T16:31:01.537Z","repository":{"id":61352302,"uuid":"549183752","full_name":"markfinal/cruiz","owner":"markfinal","description":"Conan recipe user interface","archived":false,"fork":false,"pushed_at":"2025-10-25T21:52:55.000Z","size":898,"stargazers_count":11,"open_issues_count":17,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T22:24:23.854Z","etag":null,"topics":["conan","pyside6","qt6","recipe","user-interface"],"latest_commit_sha":null,"homepage":"https://cruiz.readthedocs.io/","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/markfinal.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,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-10T20:03:02.000Z","updated_at":"2025-10-25T20:51:58.000Z","dependencies_parsed_at":"2024-12-29T19:24:53.842Z","dependency_job_id":"41a2ed76-5e90-48d2-acd6-a0cb6346bc8a","html_url":"https://github.com/markfinal/cruiz","commit_stats":{"total_commits":174,"total_committers":3,"mean_commits":58.0,"dds":0.02298850574712641,"last_synced_commit":"628b36f82f4f694a295ccec055bab28a1ee6a9e5"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/markfinal/cruiz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markfinal%2Fcruiz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markfinal%2Fcruiz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markfinal%2Fcruiz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markfinal%2Fcruiz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markfinal","download_url":"https://codeload.github.com/markfinal/cruiz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markfinal%2Fcruiz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281654317,"owners_count":26538640,"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-29T02:00:06.901Z","response_time":59,"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":["conan","pyside6","qt6","recipe","user-interface"],"created_at":"2024-09-24T14:05:56.229Z","updated_at":"2025-10-29T16:31:01.532Z","avatar_url":"https://github.com/markfinal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cruiz\n\nConan recipe user interface\n\nWritten by Mark Final.\n\n![main action workflow](https://github.com/markfinal/cruiz/actions/workflows/main.yml/badge.svg)\n![Latest documentation](https://img.shields.io/readthedocs/cruiz)\n\n## Documentation\nSee the documentation at [Read The Docs](https://cruiz.readthedocs.io/).\n\n## Prerequisites\n\n- Intel x86_64 platforms:\n  - Windows 10+\n  - Linux (CentOS 7.5+/Ubuntu 18+)\n  - macOS (11.0+)\n- ARM platforms:\n  - macOS (11.0+), Apple silicon\n  - additional details found [here](#arm-platforms)\n- Python 3.9-3.13\n- Conan 1.x (from 1.17.1 onwards) and 2.x (from 2.0.14 onwards)\n\nAll other Python dependencies are installed when the package is installed.\n\nIn order to use the dependency graph visualisation, an additional installation of GraphViz is required from https://graphviz.org/download/. Assign the installed location to the preferences.\n\n## Conan versions\nCruiz does _not_ depend directly on the Conan package in its UI. Instead, it uses child processes to run Conan APIs, which _are_ dependent on the Conan version installed.\n\nCruiz does _not_ support multiple Conan versions simultaneously in the same process. Instead, the UI dynamically changes by detecting the Conan version installed at startup. You will therefore see a slightly different UI depending on which Conan you have. Note the Conan version detected is shown on the status bar in the bottom right corner of the UI.\n\n## Getting started\nIf you have cloned this repository, you will need:\n\n1. A Python 3 environment. Make a virtual env if necessary. `python3 -m venv \u003cfolder to be the env\u003e`\n    - Activate the virtual env with either:\n        - `source \u003cfolder to be the env\u003e/bin/activate` (Linux/macOSX)\n        - `\u003cfolder to be the env\u003e\\Scripts\\activate.bat` (Windows cmd)\n        - `source \u003cfolder to be the env\u003e\\Scripts\\activate` (Windows bash)\n\n2. Ensure latest pip and wheel are being used. `python -m pip install -U pip wheel`\n\n3. Install cruiz and its dependencies\n\n    - From your local clone:\n        - `pip install -r requirements.txt`\n        - `pip install --no-build-isolation -e .`\n\n4. Run from any directory\n\n    - From your Python environment shell, `cruiz` or `python -m cruiz`\n\nStep 3 will need to be re-run when the Python dependencies, or the resource files used, change.\n\n## Linting and testing\nInstall cruiz with linting and teseting dependencies with `pip install -e .[dev]`. Additional quotes may be required around `[dev]` depending on the shell in use.\n\ncruiz uses [tox](https://tox.wiki/en/latest/) to automate linting and testing. Use `tox -e lint`, `tox -e test` or `tox` for everything.\n\n[flake8](https://flake8.pycqa.org/en/latest/) is used for lint checks, specifically using [black](https://black.readthedocs.io/en/stable/) as the formatter.\n\n[mypy](https://mypy.readthedocs.io/en/stable/) is used for static type checking and validating type annotations.\n\n[pytest](https://docs.pytest.org/en/stable/) is used for testing.\n\nPython 3.10+ is highly recommended to run the linting steps.\n\n### VisualStudio Code\nIf using VSCode, a settings file for this Git repository is provided. To enable linting and formatting in the IDE though, you need to install the following extensions:\n* https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter\n* https://marketplace.visualstudio.com/items?itemName=ms-python.flake8\n* https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker\n\n## Making Python packages\n`python setup.py sdist` for a source distribution. Note that `pip` installing from a source distribution, or from an archive of the source tree, is not currently supported.\n\n`pip wheel --no-deps .` for a wheel.\n\n## ARM platforms\nBelow are details of running `cruiz` on ARM platforms.\n\n### macOS\nNo known restrictions are on this platform.\n\n### Windows\nWindows ARM is currently not supported, as there are missing PyPi package wheels, e.g. for PySide 6.\n\n### Ubuntu\n`cruiz` is runnable on Ubuntu 24.04 ARM, after the following steps are executed to satisfy using features of PySide 6:\n* Run `sudo apt install libdouble-conversion3`\n* Run `sudo apt install libminizip1t64`\n* Run `sudo apt install libsnappy1v5`\n* Run `cd /usr/lib/aarch64-linux-gnu \u0026\u0026 sudo ln -s libwebp.so.7 libwebp.so.6`\n* Run `cd /usr/lib/aarch64-linux-gnu \u0026\u0026 sudo ln -s libtiff.so.6 libtiff.so.5`\n\n## Acknowledgements\nMany thanks to [Foundry](https://www.foundry.com/) and its developers for support, inspiration, and testing in making cruiz.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkfinal%2Fcruiz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkfinal%2Fcruiz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkfinal%2Fcruiz/lists"}