ash-flare 1.1.0

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