Supsrc Project Context for Gemini AI¶
This document provides comprehensive context for the Gemini AI assistant when working with the supsrc project.
Project Overview¶
The supsrc project is a component within the larger provide-io monorepo. It is an automated Git commit/push utility based on filesystem events and rules. Its core purpose is to enable Python developers to create infrastructure-as-code components without dealing with the complexity of the Terraform plugin protocol, leveraging the pyvider framework.
Core Components¶
The provide-io monorepo contains several core components, with supsrc being one of them. Other related components include:
* pyvider: The main framework for building Terraform providers in Python.
* pyvider-rpcplugin: A high-performance, type-safe RPC plugin framework for Python.
* pyvider-cty: A Python implementation of Terraform's type system.
* pyvider-hcl: A library for parsing and generating HCL (HashiCorp Configuration Language).
* pyvider-telemetry: A library for structured logging and telemetry.
* tofusoup: A testing and conformance suite for providers.
* flavor: An optional packaging system for distributing providers as binaries.
* wrknv: A development environment management tool.
Configuration Files¶
supsrc.toml¶
The supsrc.toml file is the primary configuration file for supsrc projects. It defines:
* Repository monitoring settings.
* Rules for triggering actions (e.g., auto-commits).
* Integration with various engines (e.g., Git).
When starting a new session or analyzing a supsrc project, you should be aware of the presence and contents of supsrc.toml as it dictates the project's behavior.
Building and Running¶
The supsrc project can be built and tested using a combination of hatch, setuptools, pytest, and ruff. The scripts directory contains a number of useful scripts for managing the monorepo.
Key Commands:¶
supsrc --help: Displays thesupsrcCLI help.wrknv status: Checks tool versions.pytest: Runs tests.deactivate: Exits the development environment.uv sync: Activates the development environment.
Development Conventions¶
- Coding Style: The code is formatted with
ruff formatand linted withruff check. - Testing: The projects are tested with
pytest. - Type Checking: Type checking is done with
mypyandpyre. - Dependencies: Dependencies are managed with
uvand specified in thepyproject.tomlfiles. - Virtual Environments: The projects are developed in virtual environments, which can be managed with
wrknv.
This document is intended for the Gemini AI assistant.