docs(governance): LICENSE (MIT) + DCO + CONTRIBUTING + README
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Контрибьютинг в «Штурман»
|
||||
|
||||
Спасибо за интерес! «Штурман» — open-source русскоязычный companion-слой («ОС поверх Linux») для авто на
|
||||
**RK3588**: быстрый Slint-UI + голосовой RU-ассистент, читающий OBD/CAN **только на чтение**, + расширяемый
|
||||
Plugin API. Лицензия **MIT**. Общение и комментарии — по-русски; код-идентификаторы — как есть.
|
||||
|
||||
## 1. Красные линии (нерушимы)
|
||||
|
||||
Это не обсуждается и проверяется в каждом ревью:
|
||||
|
||||
1. **Никогда не safety-critical** — никаких интеграций с управляющими ЭБУ (двигатель/тормоза/ABS/ESP/руль/
|
||||
подушки); в системе нет actuator-путей.
|
||||
2. **CAN только на чтение** — допустимы стандартные OBD-II **read**-запросы (Mode 01/03/07/09/0A); запрещены
|
||||
write/actuator/Mode-04/UDS-write — их не существует в коде, на D-Bus и в SDK.
|
||||
|
||||
PR, добавляющий такой путь, **отклоняется**. Граница и энфорсмент — [`docs/contracts/safety.md`](docs/contracts/safety.md).
|
||||
|
||||
## 2. Источник правды — `docs/`
|
||||
|
||||
Дизайн (Tier 0–3 + контракты + roadmap) — в [`docs/`](docs/). Не противоречь докам; если реальность
|
||||
расходится с доком — **синхронизируй док** (двунаправленный шов), а не «молча обойди». Точка входа —
|
||||
[`CLAUDE.md`](CLAUDE.md).
|
||||
|
||||
## 3. Рабочий цикл (фаза реализации)
|
||||
|
||||
- **Roadmap ведёт** ([`docs/roadmap.md`](docs/roadmap.md)). Цикл на веху: **спека → TDD → реализация →
|
||||
verify в Lima-VM → коммит**. **Код не пишем до утверждённой спеки.** Спеки — в [`docs/specs/`](docs/specs/).
|
||||
- Тестируемость без машины (принцип #13): каждая фича поставляется со своим симулятором/моком.
|
||||
|
||||
## 4. Стиль кода и тесты
|
||||
|
||||
- Rust везде в проде (Python — только dev/симуляторы). Формат и линт: `cargo fmt` + `cargo clippy -D warnings`
|
||||
(через `just lint`).
|
||||
- Пирамида тестов: unit → integration → E2E. `just test` зелёный до PR.
|
||||
|
||||
## 5. Лицензионная гигиена (#12)
|
||||
|
||||
- Зависимости — **MIT/Apache-2.0/BSD/ISC**-совместимые. Заражающий дистрибуцию копилефт (**GPL/AGPL**) —
|
||||
избегаем или изолируем отдельным процессом. **LGPL — гранулярно** (динамическая/системная линковка
|
||||
допустима, не blanket-запрет).
|
||||
- **`cargo deny check` обязателен** (CI-гейт). Любые исключения (напр. `slint` под GPL-3.0 — см.
|
||||
[`docs/specs/`](docs/specs/)) — **явные и задокументированные** в `deny.toml`.
|
||||
|
||||
## 6. Коммиты, ветки, DCO
|
||||
|
||||
- Сообщения: `feat/fix/chore/docs(<area>): …`. Ветка — от `main` (в `main` не коммитим без явного «ок»).
|
||||
- **DCO sign-off обязателен:** каждый коммит — с `git commit -s` (Developer Certificate of Origin,
|
||||
файл [`DCO`](DCO)). CLA нет.
|
||||
- В конце сообщения коммита (для AI-ассистированных правок): `Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>`.
|
||||
|
||||
## 7. PR-чеклист
|
||||
|
||||
- [ ] `just ci` зелёный (lint + test + deny).
|
||||
- [ ] Не нарушает красные линии (§1).
|
||||
- [ ] Доки синхронизированы (§2), если поведение/контракт изменились.
|
||||
- [ ] Добавлены тесты (unit/integration/E2E по уровню изменения).
|
||||
- [ ] Коммиты подписаны (`-s`).
|
||||
|
||||
## 8. Поведение и обсуждение
|
||||
|
||||
Уважительно и по делу (Code of Conduct — будет добавлен `CODE_OF_CONDUCT.md`, ориентир — Contributor
|
||||
Covenant). Вопросы и предложения — в GitHub Issues/Discussions; крупные 🟡-развилки — в «Риск-реестре»
|
||||
[`docs/roadmap.md`](docs/roadmap.md).
|
||||
@@ -0,0 +1,34 @@
|
||||
Developer Certificate of Origin
|
||||
Version 1.1
|
||||
|
||||
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
|
||||
Developer's Certificate of Origin 1.1
|
||||
|
||||
By making a contribution to this project, I certify that:
|
||||
|
||||
(a) The contribution was created in whole or in part by me and I
|
||||
have the right to submit it under the open source license
|
||||
indicated in the file; or
|
||||
|
||||
(b) The contribution is based upon previous work that, to the best
|
||||
of my knowledge, is covered under an appropriate open source
|
||||
license and I have the right under that license to submit that
|
||||
work with modifications, whether created in whole or in part
|
||||
by me, under the same open source license (unless I am
|
||||
permitted to submit under a different license), as indicated
|
||||
in the file; or
|
||||
|
||||
(c) The contribution was provided directly to me by some other
|
||||
person who certified (a), (b) or (c) and I have not modified
|
||||
it.
|
||||
|
||||
(d) I understand and agree that this project and the contribution
|
||||
are public and that a record of the contribution (including all
|
||||
personal information I submit with it, including my sign-off) is
|
||||
maintained indefinitely and may be redistributed consistent with
|
||||
this project or the open source license(s) involved.
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 K9 Shturman
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,39 @@
|
||||
# Штурман
|
||||
|
||||
Open-source русскоязычный companion-слой («ОС поверх Linux») для авто на **RK3588**: быстрый Slint-UI +
|
||||
голосовой RU-ассистент, читающий OBD/CAN **только на чтение**, + расширяемый Plugin API. Лицензия **MIT**.
|
||||
|
||||
> Статус: **реализация v0** (фундамент — образ-болванка + dev-харнесс + первый Slint-кадр). Дизайн
|
||||
> завершён, источник правды — [`docs/`](docs/).
|
||||
|
||||
## Красные линии (нерушимы)
|
||||
|
||||
- **Никогда не safety-critical** — двигатель/тормоза/ABS/ESP/руль/подушки; в системе нет actuator-путей.
|
||||
- **CAN только на чтение** — стандартные OBD-II read (Mode 01/03/07/09/0A); запрещены write/actuator/Mode-04/UDS-write.
|
||||
|
||||
## Документация
|
||||
|
||||
- Точка входа: [`CLAUDE.md`](CLAUDE.md).
|
||||
- Дизайн (источник правды): [`docs/`](docs/) — архитектура, контракты, домены.
|
||||
- План реализации: [`docs/roadmap.md`](docs/roadmap.md); спеки вех — [`docs/specs/`](docs/specs/).
|
||||
|
||||
## Быстрый старт (dev)
|
||||
|
||||
Разработка ведётся в ARM64 Lima-VM (нативно к таргету RK3588). Команды — через `just`:
|
||||
|
||||
```
|
||||
just vm-up # поднять dev-VM (Lima) — появляется в Плане 5
|
||||
just run # boot → стаб-сервисы на D-Bus → первый Slint-кадр
|
||||
just ci # lint + test + deny (локальный гейт)
|
||||
```
|
||||
|
||||
> Сейчас доступно: `just build` / `just test` / `just lint` / `just deny` (сборка/тесты `shturman-common`
|
||||
> на хосте). Lima-VM и сквозной `run`/`e2e` — по мере планов реализации.
|
||||
|
||||
## Лицензия и контрибьютинг
|
||||
|
||||
MIT — см. [`LICENSE`](LICENSE). Контрибьюции — по DCO (`git commit -s`), см. [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
||||
|
||||
> **Примечание о UI-тулките:** Slint для embedded доступен бесплатно под **GPL-3.0** → шипимый UI-бинарь
|
||||
> прод-образа (v4) будет под GPL-3.0; решение по тулкиту/лицензии осознанно отложено к v4 (см.
|
||||
> [`docs/specs/`](docs/specs/)). Ядро и остальной код — MIT.
|
||||
Reference in New Issue
Block a user