From de4fb0bc290da56b0f84dd0c1713b747e5fe9850 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 6 Jun 2026 21:33:34 +0800 Subject: [PATCH 1/5] feat: add .SRCINFO for AUR package metadata --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8fe8f1..48fc48f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -651,6 +651,8 @@ jobs: done } PKG + + cat > packages/aur/dcr/.SRCINFO < Date: Sat, 6 Jun 2026 21:39:17 +0800 Subject: [PATCH 2/5] feat: add Windows target dependencies and update README for MinGW --- Cargo.toml | 3 +++ README.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 1ad9ff1..9a06bcc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,6 +81,9 @@ vendored = [ git2 = "0.20.4" openssl = "0.10" +[target.'cfg(windows)'.dependencies] +git2 = "0.20.4" + [profile.release] opt-level = "z" lto = "thin" diff --git a/README.md b/README.md index 177f71f..aa6416c 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ other in [docs/](docs/), `dcr --help` and `dcr --help` | Linux (Musl) | ✅ | ✅ | ✅ | ✅ | 🚧 | | macOS | ✅ | ✅ | ❌ | ❌ | ❌ | | Windows (MSVC) | ✅ | ✅ | ❌ | ✅ | ❌ | -| Windows (MinGW) | ✅ | 🚧 | ❌ | ✅ | ❌ | +| Windows (MinGW) | ✅ | 🚧 | ❌ | ❌ | ❌ | | FreeBSD | ✅ | 🚧 | ❌ | ❌ | ❌ | | OpenBSD | ✅ | 🚧 | ❌ | ❌ | ❌ | | NetBSD | ✅ | 🚧 | ❌ | ❌ | ❌ | From a6ce0a3332eb87ce86ffb4251672d985852f38c8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 6 Jun 2026 21:41:50 +0800 Subject: [PATCH 3/5] feat: enhance release notes extraction and include release name in GitHub release --- .github/workflows/release.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48fc48f..fc372a2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,24 +83,40 @@ jobs: notes: needs: setup runs-on: ubuntu-latest + outputs: + release_name: ${{ steps.extract.outputs.release_name }} steps: - uses: actions/checkout@v4 with: ref: ${{ needs.setup.outputs.tag }} - name: Prepare Release Notes + id: extract shell: bash run: | set -euo pipefail tag="${{ needs.setup.outputs.version }}" notes_file=".github/release-notes.md" if grep -q "^## \\[${tag}\\]" CHANGELOG.md; then + # Extract release name from header: ## [0.7.1] - 2026-06-02 "Title" + release_name=$(awk -v ver="$tag" ' + $0 ~ "^## \\[" ver "\\]" { + match($0, /"([^"]+)"/, arr) + if (arr[1] != "") { + print "v" ver " - " arr[1] + } else { + print "v" ver + } + } + ' CHANGELOG.md) + echo "release_name=${release_name}" >> "$GITHUB_OUTPUT" awk -v ver="$tag" ' $0 ~ "^## \\[" ver "\\]" {found=1; next} found && $0 ~ "^## \\[" {exit} found {print} ' CHANGELOG.md | sed -e '${/^$/d;}' > "$notes_file" else + echo "release_name=v${tag}" >> "$GITHUB_OUTPUT" echo "No CHANGELOG section for $tag." > "$notes_file" git log -1 --pretty=format:"%s%n%n%b" >> "$notes_file" fi @@ -126,6 +142,7 @@ jobs: uses: softprops/action-gh-release@v2 with: tag_name: ${{ needs.setup.outputs.tag }} + name: ${{ needs.notes.outputs.release_name }} body_path: .github/release-notes.md prerelease: ${{ needs.setup.outputs.prerelease == 'true' }} From 0aa3f87f9988bdb8e9da03e76d61b2286a73cc31 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 6 Jun 2026 22:18:03 +0800 Subject: [PATCH 4/5] feat: temporarily disable Snap Store publishing and update README instructions --- .github/workflows/release.yml | 43 +++++++---------------------------- CHANGELOG.md | 13 +++++++++-- README.md | 7 ++++-- 3 files changed, 24 insertions(+), 39 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc372a2..7098bcf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,10 +41,6 @@ on: description: "Publish to crates.io" type: boolean default: false - run_snap: - description: "Publish to Snap Store (dcrup)" - type: boolean - default: false run_brew: description: "Update Homebrew tap" type: boolean @@ -1248,34 +1244,11 @@ jobs: git commit -m "dcr ${{ needs.setup.outputs.version }}" git push - # ── Snap Store (dcrup) ───────────────────────────────────────────────────── - publish-snap: - if: | - (github.event_name == 'push' && needs.setup.outputs.prerelease == 'false') || - (github.event_name == 'workflow_dispatch' && github.event.inputs.run_snap == 'true') - needs: [setup, build-linux-packages] - runs-on: ubuntu-latest - steps: - - name: Download Built Packages - uses: actions/download-artifact@v4 - with: - name: snap-package - path: dist-packages - - - name: Resolve Snap File - id: snap-file - run: | - snap_file=$(ls dist-packages/*.snap 2>/dev/null | head -1) - if [ -z "$snap_file" ]; then - echo "No .snap file found in dist-packages/" - exit 1 - fi - echo "snap=$snap_file" >> "$GITHUB_OUTPUT" - - - name: Publish to Snap Store - uses: snapcore/action-publish@v1 - env: - SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }} - with: - snap: ${{ steps.snap-file.outputs.snap }} - release: stable \ No newline at end of file + # ── Snap Store (dcrup) — temporarily disabled ──────────────────────────── + # Classic confinement was denied for this project (too new). + # Snap artifact is still built and attached to the release via + # publish-dexoron-packages. Users can install manually: + # sudo snap install --classic --dangerous dcrup_*.snap + # + # publish-snap: + # if: ... \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 3705958..0487067 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - Оптимизация сборки: `opt-level = "z"`, LTO, `codegen-units = 1`, `panic = "abort"`, `strip = true`. - Поддержка новых архитектур (i686, armv7, riscv64gc, aarch64) в рабочих процессах и установочных скриптах. - Сборка пакетов `deb` и `rpm` для всех 5 архитектур Linux через `cargo-zigbuild`. -- Пакеты AUR (`dcr-dev`, `dcr-dev-bin`) и публикация Snap в CI. +- Пакеты AUR (`dcr-dev`, `dcr-dev-bin`) и сборка Snap в CI. **Изменено:** - Функция `validate_package_name` стала публичной. @@ -20,6 +20,15 @@ - Инструкция в README изменена с `| bash` на `| sh` для POSIX. - Отключена архитектура Windows 32-bit (GNU) из-за проблем со сборкой. +**Исправлено:** + +- **`dcr new ` создаёт директорию, затем падает** — валидация теперь происходит до операций с файлами. +- **`dcr init` создаёт dcr.toml, затем падает при невалидном имени директории** — то же исправление. +- **Man-страницы отсутствовали после установки** — теперь устанавливаются через скрипты установки, пакетные менеджеры и Homebrew. +- **Ложное срабатывание на букву диска в Windows** — в парсинге файлов зависимостей. +- **CRLF `\r\n` ломает парсер зависимостей** — теперь обрабатываются смешанные окончания строк. +- **Новая строка после обратного слеша не поглощалась** — в обработке escape-последовательностей `parse_d_file`. + ### EN **Added:** @@ -30,7 +39,7 @@ - Release profile optimizations (`opt-level = "z"`, LTO, `codegen-units = 1`, `panic = "abort"`, `strip = true`). - Linux i686, armv7, riscv64gc, aarch64 architecture support in release workflows and installation scripts. - Multi-arch `deb` and `rpm` package builds for all 5 Linux architectures via `cargo-zigbuild`. -- AUR packages (`dcr-dev`, `dcr-dev-bin`) and automated Snapcraft publishing in CI. +- AUR packages (`dcr-dev`, `dcr-dev-bin`) and Snap build in CI. **Changed:** - `validate_package_name` made public and callable from CLI commands directly. diff --git a/README.md b/README.md index aa6416c..2f92355 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![AUR](https://img.shields.io/aur/version/dcr)](https://aur.archlinux.org/packages/dcr) [![Crates.io](https://img.shields.io/crates/v/dcr)](https://crates.io/crates/dcr) [![Homebrew](https://img.shields.io/badge/homebrew-dexoron%2Fdexoron-orange)](https://github.com/dexoron/homebrew-dexoron) -[![Snap](https://img.shields.io/badge/snap-dcrup-orange)](https://snapcraft.io/dcrup) +
[![GitHub Stars](https://img.shields.io/github/stars/dexoron/dcr?style=flat)](https://github.com/dexoron/dcr/stargazers) [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](LICENSE) @@ -127,8 +127,11 @@ curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh Snap (Linux) +> Snap Store publishing temporarily disabled — see [#51671](https://forum.snapcraft.io/t/classic-confinement-request-for-dcrup/51671). +> Download the `.snap` from [GitHub Releases](https://github.com/dexoron/dcr/releases/latest) and install manually: + ```sh -sudo snap install dcrup +sudo snap install --classic --dangerous dcrup_*.snap ``` From 4c439317e38cee1c737ae30773e5ac0955d048df Mon Sep 17 00:00:00 2001 From: XiaoPengYouCode <120481176+XiaoPengYouCode@users.noreply.github.com> Date: Sun, 7 Jun 2026 05:09:38 +0800 Subject: [PATCH 5/5] docs: fix README badge rendering --- README.md | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2f92355..08ab808 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,21 @@ -
+

DCR — Dexoron Cargo Realization

-# DCR — Dexoron Cargo Realization +

A Cargo-style build tool for C/C++ projects

-**A Cargo-style build tool for C/C++ projects** +

+ CI + GitHub Release + Platform +
+ AUR + Crates.io + Homebrew +
+ GitHub Stars + License: GPL-3.0 +

-[![CI](https://github.com/dexoron/dcr/actions/workflows/ci.yml/badge.svg)](https://github.com/dexoron/dcr/actions/workflows/ci.yml) -[![GitHub Release](https://img.shields.io/github/v/release/dexoron/dcr)](https://github.com/dexoron/dcr/releases/latest) -[![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-lightgrey)](https://github.com/dexoron/dcr/releases) -
-[![AUR](https://img.shields.io/aur/version/dcr)](https://aur.archlinux.org/packages/dcr) -[![Crates.io](https://img.shields.io/crates/v/dcr)](https://crates.io/crates/dcr) -[![Homebrew](https://img.shields.io/badge/homebrew-dexoron%2Fdexoron-orange)](https://github.com/dexoron/homebrew-dexoron) - -
-[![GitHub Stars](https://img.shields.io/github/stars/dexoron/dcr?style=flat)](https://github.com/dexoron/dcr/stargazers) -[![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](LICENSE) - -
+ ---