ash-flare 1.0.2

Fault-tolerant supervision trees for Rust with distributed capabilities inspired by Erlang/OTP
Documentation
.PHONY: help test build clean release-major release-minor release-patch publish

help:
	@echo "Available targets:"
	@echo "  test           - Run all tests"
	@echo "  build          - Build the project"
	@echo "  clean          - Clean build artifacts"
	@echo "  release-major  - Bump major version, tag, and publish (x.0.0)"
	@echo "  release-minor  - Bump minor version, tag, and publish (0.x.0)"
	@echo "  release-patch  - Bump patch version, tag, and publish (0.0.x)"
	@echo "  publish        - Publish to crates.io (without version bump)"

test:
	@echo "Running tests..."
	cargo test

build:
	@echo "Building project..."
	cargo build --release

clean:
	@echo "Cleaning build artifacts..."
	cargo clean

release-major: test
	@echo "Creating major release..."
	@current_version=$$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/'); \
	major=$$(echo $$current_version | cut -d. -f1); \
	new_version=$$(($$major + 1)).0.0; \
	echo "Bumping version from $$current_version to $$new_version"; \
	sed -i "s/^version = \"$$current_version\"/version = \"$$new_version\"/" Cargo.toml; \
	git add Cargo.toml; \
	git commit -m "chore: bump version to $$new_version"; \
	git tag -a "v$$new_version" -m "Release v$$new_version"; \
	echo "Tagged as v$$new_version"; \
	cargo publish; \
	git push && git push --tags

release-minor: test
	@echo "Creating minor release..."
	@current_version=$$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/'); \
	major=$$(echo $$current_version | cut -d. -f1); \
	minor=$$(echo $$current_version | cut -d. -f2); \
	new_version=$$major.$$(($$minor + 1)).0; \
	echo "Bumping version from $$current_version to $$new_version"; \
	sed -i "s/^version = \"$$current_version\"/version = \"$$new_version\"/" Cargo.toml; \
	git add Cargo.toml; \
	git commit -m "chore: bump version to $$new_version"; \
	git tag -a "v$$new_version" -m "Release v$$new_version"; \
	echo "Tagged as v$$new_version"; \
	cargo publish; \
	git push && git push --tags

release-patch: test
	@echo "Creating patch release..."
	@current_version=$$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/'); \
	major=$$(echo $$current_version | cut -d. -f1); \
	minor=$$(echo $$current_version | cut -d. -f2); \
	patch=$$(echo $$current_version | cut -d. -f3); \
	new_version=$$major.$$minor.$$(($$patch + 1)); \
	echo "Bumping version from $$current_version to $$new_version"; \
	sed -i "s/^version = \"$$current_version\"/version = \"$$new_version\"/" Cargo.toml; \
	git add Cargo.toml; \
	git commit -m "chore: bump version to $$new_version"; \
	git tag -a "v$$new_version" -m "Release v$$new_version"; \
	echo "Tagged as v$$new_version"; \
	cargo publish; \
	git push && git push --tags

publish:
	@echo "Publishing to crates.io..."
	@current_version=$$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/'); \
	echo "Publishing version $$current_version"; \
	cargo publish