From d1e23a317926a7701ecf46106dd2b0d346e78775 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Wed, 18 Feb 2026 19:53:39 +0800 Subject: [PATCH] Update project docs lang to Eng Add FAQ.md and docs/ --- FAQ.md | 102 ++++++++++++++++++++++++++++++++ README.md | 102 ++++++++++++++++---------------- docs/CONTRIBUTING_ru.md | 57 ++++++++++++++++++ docs/FAQ_ru.md | 102 ++++++++++++++++++++++++++++++++ docs/README_ru.md | 128 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 440 insertions(+), 51 deletions(-) create mode 100644 FAQ.md create mode 100644 docs/CONTRIBUTING_ru.md create mode 100644 docs/FAQ_ru.md create mode 100644 docs/README_ru.md diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..6aab3da --- /dev/null +++ b/FAQ.md @@ -0,0 +1,102 @@ +# FAQ + +## What is this project about? +`dcr` is a tool for managing C/C++ projects and their dependencies. +It is inspired by Cargo, but it is not a direct equivalent of Makefile, CMake, or other classic build systems. + +The goal is to provide a simpler and easier-to-configure development workflow. + +## How is the project developed? +The project is written in Rust and is primarily developed by one maintainer, Dexoron. + +AI tools are used during development, but they do not write the project end-to-end. Their role is limited to supporting specific tasks (for example, suggestions, wording checks, and translations). + +## Which tools are used for development? +Main development stack: +- `RustRover` 2025 - development IDE. +- `Codex` (`GPT-5.3-Codex (medium)`) - primary AI tool, integrated via JetBrains AI Chat. +- `Rust` - main project language. +- `Cargo` - tool for building, testing, and dependency management in Rust projects. + +## Is the project open source? +Yes, the project is open source. +You can propose ideas, report issues, and contribute code changes. + +The project is distributed under the MIT license (see `LICENSE`). + +## How can I contribute? +Thank you for contributing. +You can: +- help with code; +- help with translations; +- help with documentation; +- suggest an idea or report a bug. + +### If you want to submit changes (code, translation, documentation) +1. Fork the required repository: `dexoron/dcr` (main project) or `dexoron/dcr-site` (project website). +2. Make your changes following the rules in `CONTRIBUTING.md`. +3. Push changes to your fork. +4. Open a Pull Request. +5. Wait for review. + +### If you want to report a problem or suggest an idea +1. Open the relevant repository: `dexoron/dcr` or `dexoron/dcr-site`. +2. Go to the `Issues` tab. +3. Create an Issue and specify its type (bug, suggestion, question/help). +4. Describe the problem or idea clearly and concisely. +5. Wait for feedback. + +## How do I install `dcr`? +Available installation methods may vary by project version. +Recommended path: +- check instructions in `README.md`; +- if there is no prebuilt package for your platform, build from source using `cargo build --release`. + +## How can I get started quickly? +Minimal workflow: +1. Install `dcr`. +2. Create a project (or open an existing C/C++ project). +3. Initialize `dcr` configuration. +4. Add project dependencies. +5. Build using `dcr`. + +For detailed commands and examples, see `README.md` and the project documentation. + +## What is the project status? +`dcr` is under active development. +This means some interfaces and behaviors may change between versions. + +Before upgrading, check the changelog and release notes. + +## Which systems does `dcr` support? +`dcr` targets modern C/C++ development environments. +Actual compatibility depends on the `dcr` version, operating system, and toolchain. + +Before starting, check documentation for: +- supported operating systems; +- supported compilers and linkers; +- version-specific limitations. + +## How is `dcr` different from Make/CMake? +`dcr` does not aim to be a direct replacement for Make/CMake. +Its main focus is simplifying project and dependency management with a Cargo-like experience. + +If you need low-level, full control over build steps, classic tools may be a better fit. +If you want a simpler and more uniform configuration model, `dcr` may be more convenient. + +## Where can I find documentation and examples? +Primary sources: +- `README.md` in the repository; +- project documentation (see the project website); +- `Issues` for known problems and discussions. + +## How do I report a bug properly? +To make a bug report easy to reproduce, include: +1. `dcr` version. +2. OS and compiler/toolchain version. +3. Steps to reproduce. +4. Expected behavior. +5. Actual behavior and error output. +6. Minimal project example (if possible). + +Submit bugs and issues through `Issues` in the relevant repository. diff --git a/README.md b/README.md index 145ca82..82c3bf6 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,31 @@ # DCR (Dexoron Cargo Realization) -DCR — это утилита для управления проектами на C/C++ в стиле Cargo. +DCR is a utility for managing C/C++ projects in a Cargo-like style. -Текущая реализация написана на Rust. +The current implementation is written in Rust. -## Зачем DCR -- Единая структура проекта без ручной настройки -- Простые команды для типовых задач -- Прозрачная компиляция и предсказуемые профили сборки +## Why DCR +- Unified project structure without manual setup +- Simple commands for common tasks +- Transparent compilation and predictable build profiles -## Возможности -- Создание нового проекта или инициализация текущей директории -- Сборка проекта в профилях `debug` и `release` -- Запуск собранного бинарника -- Очистка результатов сборки -- Генерация минимального шаблона C-проекта -- Обновление бинарника через `dcr --update` (GitHub Releases) +## Features +- Create a new project or initialize the current directory +- Build a project with `debug` and `release` profiles +- Run the compiled binary +- Clean build artifacts +- Generate a minimal C project template +- Update the binary via `dcr --update` (GitHub Releases) -## Поддерживаемые платформы +## Supported Platforms - Linux: `x86_64-unknown-linux-gnu` - macOS Intel: `x86_64-apple-darwin` - macOS Apple Silicon: `aarch64-apple-darwin` - Windows: `x86_64-pc-windows-msvc` -## Установка +## Installation -### Из исходников +### From Source ```sh git clone https://github.com/dexoron/dcr.git @@ -35,37 +35,37 @@ mkdir -p ~/.local/bin ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr ``` -### Через install.sh (Linux/macOS) +### Via `install.sh` (Linux/macOS) ```sh -curl -fsSL https://raw.githubusercontent.com/dexoron/dcr/master/install.sh | bash +curl -fsSL https://dcr.dexoron.su/install.sh | bash ``` -### Через install.ps1 (Windows) +### Via `install.ps1` (Windows) ```powershell -irm https://raw.githubusercontent.com/dexoron/dcr/master/install.ps1 | iex +irm https://dcr.dexoron.su/install.ps1 | iex ``` -Оба скрипта при запуске спрашивают: -- скачать готовый бинарник из GitHub Release -- или собрать проект из `git` +When executed, both scripts ask whether to: +- download a prebuilt binary from GitHub Releases +- or build the project from `git` -Релизные ассеты: +Release assets: - `dcr-x86_64-unknown-linux-gnu` - `dcr-x86_64-apple-darwin` - `dcr-aarch64-apple-darwin` - `dcr-x86_64-pc-windows-msvc.exe` -## Быстрый старт +## Quick Start -Создать новый проект: +Create a new project: `dcr new hello` -Или инициализировать текущую директорию (директория должна быть пустой): +Or initialize the current directory (the directory must be empty): `dcr init` -Структура проекта: +Project structure: ```txt hello/ @@ -74,38 +74,38 @@ hello/ - dcr.toml ``` -Сборка и запуск проекта: -`dcr run` или `dcr run --release` +Build and run the project: +`dcr run` or `dcr run --release` -## Команды +## Commands ### `dcr new ` -Создает проект в текущей директории с указанным именем. +Creates a project with the specified name in the current directory. ### `dcr init` -Создает проект в текущей директории. Имя проекта будет равно имени директории. Директория должна быть пустой. +Creates a project in the current directory. The project name is taken from the directory name. The directory must be empty. ### `dcr build [profile]` -Собирает проект. Если профиль не указан, используется `--debug`. +Builds the project. If no profile is specified, `--debug` is used. ### `dcr run [profile]` -Собирает проект и запускает бинарник. Если профиль не указан, используется `--debug`. +Builds the project and runs the binary. If no profile is specified, `--debug` is used. -Запуск вручную: +Run manually: `./target//main` ### `dcr clean` -Удаляет папку `target` в корне проекта. +Removes the `target` directory in the project root. -## Профили сборки -Поддерживаются два профиля: -- `--debug` (по умолчанию) — флаги: `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDEBUG` -- `--release` — флаги: `-O3 -DNDEBUG -march=native` +## Build Profiles +Two profiles are supported: +- `--debug` (default) - flags: `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDEBUG` +- `--release` - flags: `-O3 -DNDEBUG -march=native` -## Конфигурация -Основной файл проекта — `dcr.toml`. +## Configuration +The main project file is `dcr.toml`. -Пример `dcr.toml`: +Example `dcr.toml`: ```toml [package] @@ -117,12 +117,12 @@ compiler = "clang" [dependencies] ``` -## Требования -- Rust toolchain (`rustc`, `cargo`) - Для ручной сборки DCR -- C-компилятор (`clang`, `gcc` или другие) +## Requirements +- Rust toolchain (`rustc`, `cargo`) - for building DCR from source +- C compiler (`clang`, `gcc`, or others) -## Релизы -Релизы собираются автоматически через GitHub Actions (`.github/workflows/release.yml`) при пуше тега формата `v*`. +## Releases +Releases are built automatically via GitHub Actions (`.github/workflows/release.yml`) when a tag matching `v*` is pushed. -## Лицензия -См. файл `LICENSE`. +## License +See `LICENSE`. diff --git a/docs/CONTRIBUTING_ru.md b/docs/CONTRIBUTING_ru.md new file mode 100644 index 0000000..96a46df --- /dev/null +++ b/docs/CONTRIBUTING_ru.md @@ -0,0 +1,57 @@ +# Вклад в проект + +Спасибо за интерес к проекту. + +## Требования + +- Использовать Rust stable. +- Перед PR код должен проходить форматирование, линт и сборку. + +## Быстрый старт + +```bash +git clone https://github.com/dexoron/dcr.git +cd dcr +cargo check +``` + +## Стиль кода + +- Форматируйте код через `cargo fmt`. +- Проверяйте предупреждения через `cargo clippy`. +- Держите функции небольшими и сфокусированными. +- Предпочитайте понятные имена вместо "хитрых". + +## Проверки + +Перед PR запускайте: + +```bash +cargo fmt --all +cargo clippy --all-targets --all-features -- -D warnings +cargo check +``` + +## CI/CD и релизы + +- CI: `.github/workflows/ci.yml` +- Release: `.github/workflows/release.yml` +- Релиз запускается по тегу `v*` и публикует бинарники для: +- `x86_64-unknown-linux-gnu` +- `x86_64-apple-darwin` +- `aarch64-apple-darwin` +- `x86_64-pc-windows-msvc` + +## Коммиты и PR + +- Делайте коммиты понятными. +- В PR указывайте краткое описание и мотивацию изменений. +- Обновляйте документацию при изменении поведения. + +## Вопросы + +Если что-то непонятно, открой issue или задайте вопрос в PR. + +Также можно задать вопрос напрямую: +- TG: @dexoron +- DS: dexoron diff --git a/docs/FAQ_ru.md b/docs/FAQ_ru.md new file mode 100644 index 0000000..87fd362 --- /dev/null +++ b/docs/FAQ_ru.md @@ -0,0 +1,102 @@ +# FAQ + +## В чем суть проекта? +`dcr` - это инструмент для управления C/C++ проектами и их зависимостями. +Он вдохновлен Cargo, но не является аналогом Makefile, CMake или других классических систем сборки. + +Цель проекта - дать более простую и удобную в настройке среду для разработки. + +## Как разрабатывается проект? +Проект написан на Rust и в основном развивается одним разработчиком - Dexoron. + +В работе используются ИИ-инструменты, но они не пишут проект целиком: их роль - помощь с отдельными задачами (например, советы, проверка формулировок, переводы и т.д.). + +## Какие инструменты используются для разработки? +Основной стек разработки: +- `RustRover` 2025 - IDE для разработки. +- `Codex` (`GPT-5.3-Codex (medium)`) - основной ИИ-инструмент, интегрированный через JetBrains AI Chat. +- `Rust` - основной язык проекта. +- `Cargo` - инструмент сборки, тестов и управления зависимостями Rust-проектов. + +## Проект открытый? +Да, проект открыт (Open Source). +Вы можете предлагать идеи, находить ошибки и вносить изменения в код. + +Проект распространяется по лицензии MIT (см. `LICENSE`). + +## Как внести вклад? +Спасибо за желание помочь проекту. +Вы можете: +- помочь с кодом; +- помочь с переводом; +- помочь с документацией; +- предложить идею или сообщить о баге. + +### Если вы хотите внести изменения (код, перевод, документация) +1. Сделайте форк нужного репозитория: `dexoron/dcr` (основной проект) или `dexoron/dcr-site` (сайт проекта). +2. Внесите изменения с учетом правил из `CONTRIBUTING.md`. +3. Отправьте изменения в свой форк. +4. Создайте Pull Request. +5. Дождитесь ревью. + +### Если вы хотите сообщить о проблеме или предложить идею +1. Откройте нужный репозиторий: `dexoron/dcr` или `dexoron/dcr-site`. +2. Перейдите во вкладку `Issues`. +3. Создайте Issue и укажите тип (баг, предложение, вопрос/помощь). +4. Опишите проблему или идею кратко и понятно. +5. Дождитесь обратной связи. + +## Как установить `dcr`? +Актуальные способы установки зависят от текущей версии проекта. +Рекомендуемый путь: +- проверьте инструкции в `README.md`; +- если готового пакета для вашей платформы нет, соберите проект из исходников через `cargo build --release`. + +## Как быстро начать работу? +Минимальный сценарий: +1. Установите `dcr`. +2. Создайте проект (или перейдите в существующий C/C++ проект). +3. Инициализируйте конфигурацию `dcr`. +4. Добавьте зависимости проекта. +5. Запустите сборку через `dcr`. + +Подробные команды и примеры смотрите в `README.md` и документации проекта. + +## На какой стадии проект? +`dcr` активно развивается. +Это означает, что интерфейсы и поведение некоторых функций могут меняться между версиями. + +Перед обновлением рекомендуется читать changelog и проверять заметки к релизу. + +## С какими системами работает `dcr`? +`dcr` ориентирован на современные среды разработки C/C++. +Фактическая совместимость зависит от версии `dcr`, операционной системы и используемого toolchain. + +Перед началом работы проверьте в документации: +- поддерживаемые ОС; +- поддерживаемые компиляторы и линкеры; +- ограничения конкретной версии. + +## Чем `dcr` отличается от Make/CMake? +`dcr` не пытается быть прямой заменой Make/CMake. +Главный фокус `dcr` - упростить управление проектом и зависимостями в стиле, близком к опыту Cargo. + +Если вам нужен низкоуровневый полный контроль над процессом сборки, классические инструменты могут быть привычнее. +Если нужна более простая и единообразная модель конфигурации - `dcr` может быть удобнее. + +## Где смотреть документацию и примеры? +Основные источники: +- `README.md` в репозитории; +- документация проекта (смотреть сайт проекта); +- `Issues` для известных проблем и обсуждений; + +## Как правильно сообщить о баге? +Чтобы баг-репорт можно было быстро воспроизвести, укажите: +1. Версию `dcr`. +2. ОС и версию компилятора/toolchain. +3. Шаги воспроизведения. +4. Ожидаемое поведение. +5. Фактическое поведение и текст ошибки. +6. Минимальный пример проекта (по возможности). + +Баги и проблемы отправляйте через `Issues` в соответствующем репозитории. diff --git a/docs/README_ru.md b/docs/README_ru.md new file mode 100644 index 0000000..ecfd311 --- /dev/null +++ b/docs/README_ru.md @@ -0,0 +1,128 @@ +# DCR (Dexoron Cargo Realization) + +DCR — это утилита для управления проектами на C/C++ в стиле Cargo. + +Текущая реализация написана на Rust. + +## Зачем DCR +- Единая структура проекта без ручной настройки +- Простые команды для типовых задач +- Прозрачная компиляция и предсказуемые профили сборки + +## Возможности +- Создание нового проекта или инициализация текущей директории +- Сборка проекта в профилях `debug` и `release` +- Запуск собранного бинарника +- Очистка результатов сборки +- Генерация минимального шаблона C-проекта +- Обновление бинарника через `dcr --update` (GitHub Releases) + +## Поддерживаемые платформы +- Linux: `x86_64-unknown-linux-gnu` +- macOS Intel: `x86_64-apple-darwin` +- macOS Apple Silicon: `aarch64-apple-darwin` +- Windows: `x86_64-pc-windows-msvc` + +## Установка + +### Из исходников + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr +cargo build --release +mkdir -p ~/.local/bin +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +### Через install.sh (Linux/macOS) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | bash +``` + +### Через install.ps1 (Windows) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +Оба скрипта при запуске спрашивают: +- скачать готовый бинарник из GitHub Release +- или собрать проект из `git` + +Релизные ассеты: +- `dcr-x86_64-unknown-linux-gnu` +- `dcr-x86_64-apple-darwin` +- `dcr-aarch64-apple-darwin` +- `dcr-x86_64-pc-windows-msvc.exe` + +## Быстрый старт + +Создать новый проект: +`dcr new hello` + +Или инициализировать текущую директорию (директория должна быть пустой): +`dcr init` + +Структура проекта: + +```txt +hello/ +- src/ +- - main.c +- dcr.toml +``` + +Сборка и запуск проекта: +`dcr run` или `dcr run --release` + +## Команды + +### `dcr new ` +Создает проект в текущей директории с указанным именем. + +### `dcr init` +Создает проект в текущей директории. Имя проекта будет равно имени директории. Директория должна быть пустой. + +### `dcr build [profile]` +Собирает проект. Если профиль не указан, используется `--debug`. + +### `dcr run [profile]` +Собирает проект и запускает бинарник. Если профиль не указан, используется `--debug`. + +Запуск вручную: +`./target//main` + +### `dcr clean` +Удаляет папку `target` в корне проекта. + +## Профили сборки +Поддерживаются два профиля: +- `--debug` (по умолчанию) — флаги: `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDEBUG` +- `--release` — флаги: `-O3 -DNDEBUG -march=native` + +## Конфигурация +Основной файл проекта — `dcr.toml`. + +Пример `dcr.toml`: + +```toml +[package] +name = "hello" +version = "0.1.0" +language = "c" +compiler = "clang" + +[dependencies] +``` + +## Требования +- Rust toolchain (`rustc`, `cargo`) - Для ручной сборки DCR +- C-компилятор (`clang`, `gcc` или другие) + +## Релизы +Релизы собираются автоматически через GitHub Actions (`.github/workflows/release.yml`) при пуше тега формата `v*`. + +## Лицензия +См. файл `LICENSE`.