Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 0 additions & 26 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,3 @@ If you want to ask a question, feel free to start a discussion [here](https://gi

>[!NOTE]
> If you want to add an application or a package to the control-toolbox ecosystem, please follow this [set up tutorial](https://github.com/orgs/control-toolbox/discussions/65).

---

## Code philosophy

CTFlows follows a set of design principles that apply to all contributions. Before
writing code, please read the philosophy documents in [`dev/philosophy/`](dev/philosophy/PHILOSOPHY.md).

The short version:

- **One submodule per responsibility.** Each submodule lives in `src/<Name>/` with its
own manifest. The package top-level exports nothing — all symbols are accessed via
qualified paths (`CTFlows.Submodule.symbol`).
- **Qualified imports everywhere.** Use `import Pkg: Pkg` or `using Pkg: Pkg`, never a
bare `using Pkg`. Call sites read `Module.symbol`.
- **One abstract type per noun, one trait-parameter per orthogonal axis.** Conceptual
variants are types; orthogonal axes (autonomous?, in-place?, …) are traits in type
parameters. Dispatch via extractors.
- **Structured errors.** Seven typed exceptions from CTBase; sharp rule between
`IncorrectArgument` (single value) and `PreconditionError` (relational/state).
See [`dev/philosophy/exceptions.md`](dev/philosophy/exceptions.md).
- **Tests: module wrapper + callable entry + qualified imports.**
See [`dev/philosophy/testing.md`](dev/philosophy/testing.md).
- **Docstrings last**, once the API is stable.

Full philosophy: [`dev/philosophy/PHILOSOPHY.md`](dev/philosophy/PHILOSOPHY.md)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The CTFlows.jl package is part of the [control-toolbox ecosystem](https://github

| **Category** | **Badge** |
|-----------------------|-----------|
| **Documentation** | [![Stable Docs](https://img.shields.io/badge/docs-stable-blue.svg)](https://control-toolbox.org/CTFlows.jl/stable/) [![Dev Docs](https://img.shields.io/badge/docs-dev-8A2BE2.svg)](https://control-toolbox.org/CTFlows.jl/dev/) |
| **Documentation** | [![Stable Docs](https://img.shields.io/badge/docs-stable-blue.svg)](https://control-toolbox.org/CTFlows.jl/stable/) [![Dev Docs](https://img.shields.io/badge/docs-dev-8A2BE2.svg)](https://control-toolbox.org/CTFlows.jl/dev/) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/control-toolbox/CTFlows.jl) |
| **CI / Build** | [![Build Status](https://github.com/control-toolbox/CTFlows.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/control-toolbox/CTFlows.jl/actions/workflows/CI.yml?query=branch%3Amain) |
| **Test Coverage** | [![Coverage](https://codecov.io/gh/control-toolbox/CTFlows.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/control-toolbox/CTFlows.jl) |
| **Package Evaluation** | [![PkgEval](https://img.shields.io/badge/Julia-package-purple)](https://juliahub.com/ui/Packages/General/CTFlows) [![Dependencies](https://juliahub.com/docs/General/CTFlows/stable/deps.svg)](https://juliahub.com/ui/Packages/General/CTFlows?t=2) |
Expand Down