# Development

Developer documentation, such as how to update the docs, where the test frameworks are, who develops the software, and conventions to use when developing new code can be found in this section.

Note

Users looking for documentation on how to use PDAL’s command line applications should look here and users looking to use the PDAL API in their own applications should look here.

- PDAL Architecture Overview
  - The PDAL model
- Compilation
  - Unix Compilation
  - Building Under Windows
  - Dependencies
- Coding Conventions
  - Source Formatting
  - Naming Conventions
  - Other Conventions
  - Layout/Organization of Source Tree
  - #include Conventions
- Contributors
  - Engineering Contributors
  - Funding Contributors
- Docs
  - Requirements
  - Generation
  - Website
  - Building With Docker
- Building Docker Containers for PDAL
  - Dependencies
  - Maintenance
  - Latest (or master)
- Errors and Error Handling
  - Exceptions
  - PDAL Position on (Non)conformance
- Metadata
  - Metadata Nodes
  - Metadata and Stages
- Project Goals
- Testing
  - Unit Tests
  - Running the Tests
  - Test Data
- Continuous Integration
  - Travis
  - AppVeyor
- Writing with PDAL
  - Includes
  - Compiling and running the program
- Writing a filter
  - The header
  - The source
  - StageFactory
- Writing a kernel
  - The header
  - The source
- Writing a reader
  - The header
  - The source
  - Compiling and Usage
- Writing a writer
  - The header
  - The source
  - Compiling and Usage
- Using PDAL with CMake
  - Basic CMake configuration
  - CMakeLists explained
  - Compiling the project