Skip to main content

exechain

exechain - система сборки, вдохновленная популярной системой сборки make. Целью проекта является предоставление удобного и гибкого инструмента для автоматизации процесса сборки и управления зависимостями в проектах.

Введение

exechain - это утилита, которая позволяет описывать и выполняет цепочки команд, необходимые для сборки вашего проекта и управления его зависимостями, аналогично тому, как это делает make. Это удобный и мощный инструмент, подходящий для различных типов проектов и сценариев.

Список возможностей

  • Описание процесса сборки декларативным методом
  • Отслеживание изменения файлов для пересборки только необходимых файлов
  • Включение скриптов сборки из подкаталогов

Установка

Установка утилиты выполняется командой: pip install exechain. Так же можно установить из GitVerse: pip install --index-url https://gitverse.ru/api/packages/Depish/pypi/simple/ exechain

Начало работы

Подробная документация по началу работы с exechain будет добавлена, как только проект достигнет более стабильной версии. На данный момент основная концепция работы аналогична работе целей в make.

Примеры использования

Для создания сценария сборки необходимо создать файл exechain. В данном файле используется язык программирования Python и доступны все его функции.

Пример сборочного скрипта:

# Данный импорт для подсказок в IDE
from exechain.exechain import *

Target("hello",
    dependencies = [
        Target("main.cpp", recept=[
            Shell("echo 'int main() {return 0;}' > {{target.name}}")
        ])
    ],
    recept=[
        Shell("g++ main.cpp -o hello")
    ]
)

После создания сборочного скрипта нам необходимо его запустить. Для этого в пакете exechain имеется утилита ech. Необходимо перейти в каталог с файлом exechain и выполнить команду

ech hello

Где hello это имя цели которую необходимо выполнить. Можно указать несколько целей. Любая цель из любого места в файле может быть вызвана через аргументы.

Данный проект так же собирается с помощью exechain.

Пример конфигурационного файла

Target("hello",
    dependencies = [
        Target("main.cpp", recept=[
            Shell("echo 'int main() {return 0;}' > {{target.name}}")
        ])
    ],
    recept=[
        Shell("g++ main.cpp -o hello")
    ]
)

Состояние проекта

Проект находится на ранней стадии разработки. Многие функции все еще находятся в стадии проектирования и реализации. Следите за обновлениями и новыми релизами.

Вклад

Мы приветствуем вклад в развитие проекта. Если у вас есть идеи, исправления или улучшения, пожалуйста, создайте issue или pull request в этом репозитории.

Лицензия

Подробности можно найти в файле LICENSE.md.


Благодарим вас за интерес к exechain! Надеемся, что этот инструмент окажется полезным и облегчит вашу работу над проектами.

Metadata

Release files for exechain 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exechain 0.0.5
File Size Uploaded
exechain-0.0.5.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for exechain 0.0.5
File Interpreter ABI Platform
exechain-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 43.2 kB

Release files / exechain-0.0.5.tar.gz

Download URL exechain-0.0.5.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
89ba95d411a81b8cfdc454aaa6467939eb41e0ad0ca66a586449278b0d3cc77f
BLAKE2b-256 checksum
How to use checksums
efab4f447eef61b53582b909d7c00c4a420ce5ebbd6884063c436f30bc9abfae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release files / exechain-0.0.5-py3-none-any.whl

Download URL exechain-0.0.5-py3-none-any.whl
Size 24.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
76fbba9cfb68d099d50d10ea8c4fad1676518fdaca53b3ee20ce2171d77d4b82
BLAKE2b-256 checksum
How to use checksums
3c60beb06b2e96f394d39e83decf5632029d63c854f4fb10fc4488ab6fd50c6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page