Development
Tools, workflows, and resources for contributing to ProteanOS.

Development Overview
The ProteanOS development ecosystem provides tools and infrastructure for building, packaging, and maintaining software for embedded systems. This section serves as the central hub for development-related documentation, covering everything from initial setup to advanced packaging workflows.
Whether you're contributing bug fixes, developing new features, or creating packages for additional software, the resources here will help you understand the project's development practices and tooling.
Development Tools
ProKit
The ProteanOS Development Kit for building and packaging.
Git Repositories
Source code repositories and version control.
Packaging System
The ProteanOS packaging system is central to how software is distributed and managed. Understanding the package format and build process is essential for contributors.
Source Package Format 2.0
Specification for source package structure and metadata.
Packaging Requirements
What's required to create conformant packages.
Archive Layout
Structure and organization of package archives.
Specifications
Technical specifications and standards.
Project History
Documentation of historical development efforts and design decisions provides context for current architecture choices.
- Capstone 2012F — Early development milestone documentation
- Architecture Management — System architecture documentation
Contribution Workflow
Contributing to ProteanOS follows a straightforward workflow designed to maintain code quality while being accessible to new contributors:
- Set up your environment: Install ProKit and configure your development workspace according to the installation guide.
- Identify your contribution: Review open issues, the mailing list discussions, or documentation gaps to find areas where you can help.
- Develop your changes: Work on your contribution locally, following the coding standards and documentation conventions.
- Test thoroughly: Ensure your changes build correctly and don't introduce regressions. Cross-compile for relevant target platforms when applicable.
- Submit for review: Send patches to the development mailing list for review. Address feedback and iterate as needed.
Coding Standards
Consistent coding style improves readability and maintainability. ProteanOS follows these general guidelines:
- Use descriptive variable and function names that convey purpose.
- Keep functions focused on a single responsibility.
- Comment non-obvious code, but prefer self-documenting code where possible.
- Follow the existing style in files you're modifying.
- Write commit messages that explain both what changed and why.
Testing
Testing embedded software presents unique challenges due to hardware dependencies. The project uses several testing approaches:
- Unit tests: Test individual functions and modules in isolation where hardware dependencies can be mocked.
- Build tests: Verify that packages build correctly for all supported target architectures.
- Integration tests: Test interactions between components on emulated or real hardware.
Communication Channels
Development coordination happens primarily through the mailing lists:
- proteanos-dev — Technical discussions, patch reviews, and development coordination.
- proteanos-announce — Release announcements and project news.
Development Resources
Development FAQ
How do I get started contributing?
Set up your development environment using ProKit, then look for areas where you can help—documentation improvements, bug fixes, or feature development. Start with smaller contributions to learn the workflow.
What programming languages does ProteanOS use?
The core system uses C for low-level components and shell scripts for build tools. Higher-level utilities may use other languages. Check individual repositories for language-specific guidelines.
How are patches reviewed?
Patches sent to the development mailing list are reviewed by maintainers and community members. Reviewers provide feedback on code quality, style, and correctness. Iterate based on feedback until the patch is accepted.
Can I work on new features?
Yes, but discuss significant new features on the mailing list before investing substantial effort. This helps ensure alignment with project direction and avoids duplicate work.
How do I set up cross-compilation?
ProKit includes cross-compilation toolchains and configuration. The installation guide covers setup, and the ProKit documentation explains how to configure builds for different target architectures.