A: Goal is an automated git push tool that generates smart commit messages, manages versions, updates changelogs, and handles publishing to package registries.
A: No! Goal works out of the box with sensible defaults. Just run goal init in your repository.
A: Goal supports Python, Node.js, Rust, Go, Ruby, PHP, .NET, and Java. It automatically detects your project type.
A: Yes, Goal is open source under the Apache 2.0 license.
A: pip install goal or install from source: git clone https://github.com/wronai/goal.git && cd goal && pip install -e .
A: Python 3.8+ and a git repository.
A: Yes, and it’s recommended. Install it in your project’s virtual environment or globally with pip install --user goal.
A: It’s optional but recommended. Run goal init to create one with auto-detected settings.
A: In order: 1) Path specified with --config, 2) Current directory, 3) Parent directories up to git root.
A: Yes! Use goal --config staging.yaml for different environments.
A: goal config set strategies.python.test "pytest -xvs --cov"
goal and goal push?A: goal is an alias for goal push. Both do the same thing.
A: It analyzes your changes using file patterns, diff content, and heuristics to determine the type (feat/fix/docs/etc) and generates a conventional commit message.
A: Yes: goal push -m "your custom message"
A: Goal can automatically increment your version: patch (1.0.0→1.0.1), minor (1.0.0→1.1.0), or major (1.0.0→2.0.0).
A: Use goal --yes for automatic mode or goal --all for full automation including publishing.
A: Yes, as long as it’s a valid git repository.
A: Yes, Goal works with any git hosting service.
A: Goal hooks don’t interfere with git hooks. You can use them together or call git hooks from Goal hooks.
A: No, you need to resolve merge conflicts manually before running Goal.
A: By default: VERSION, pyproject.toml, package.json, Cargo.toml, setup.py. You can customize this in goal.yaml.
A: Based on the number of files changed and lines added/removed. You can configure thresholds in goal.yaml.
A: Yes: goal config set versioning.strategy "calver"
A: You can customize version files and patterns in goal.yaml.
A: PyPI, npm, crates.io, RubyGems, and any custom registry you configure.
A: Set environment variables like PYPI_TOKEN, NPM_TOKEN, etc. See the Registry Configuration guide.
A: Yes, configure multiple registries and use custom publish commands.
A: Use goal push --no-publish or don’t configure publishing.
A: Yes! See the CI/CD Integration guide for examples.
A: Use repository secrets or environment variables for tokens.
A: Yes, docker run --rm -v $(pwd):/app -w /app goal push
A: Goal works with any CI/CD system. See examples in the documentation.
A: goal push --split creates separate commits for different types of changes (code, docs, ci, etc).
A: Create a TICKET file with prefix=ABC-123 or use goal --ticket JIRA-456
A: Markdown output is structured and perfect for logs/LLMs, ASCII is simpler terminal output.
A: Yes: goal config set git.commit.templates.feat "✨ {scope}: {description}"
A: Stage your changes first: git add .
A: Goal will prompt you. Type ‘y’ to continue or use goal push --yes -m "fix: critical"
A: Check goal config get versioning.files and run goal config update
A: Check your environment variables: echo $PYPI_TOKEN
semantic-release?A: Goal is simpler, works without configuration, and focuses on interactive use with smart commit generation.
standard-version?A: Goal includes git operations, testing, and publishing out of the box, while standard-version focuses on versioning and changelog.
A: Goal automates the entire workflow: commit messages, version bumping, changelog, tagging, pushing, and publishing in one command.
A: Yes, commit it so your team uses the same configuration.
A: Whenever you have changes to commit and push. For releases, use goal --all.
A: Yes, but consider goal push --bump patch -m "fix: critical bug"
A: Yes, configure multiple strategies and version files for each package.
A: Check the contributing guide on GitHub.
A: Open an issue on GitHub Issues.
A: Yes! Open an issue with the “enhancement” label.
A: Yes, it works on Windows, macOS, and Linux.
A: Yes, Goal works with any git repository including those using LFS.
A: No, Goal is command-line only to keep it simple and scriptable.
A: Yes: goal config set git.changelog.enabled false or use goal push --no-changelog