Skip to content

Conversation

@LittleCoinCoin
Copy link
Member

This pull request introduces a major overhaul of the project's CI/CD workflows and release automation, shifting from custom Python-based versioning and release scripts to a modern, semantic-release-driven approach. It removes several deprecated and redundant GitHub Actions workflows and configuration files, and adds new configuration for commit linting, semantic release automation, and changelog generation. These changes streamline the release process, enforce commit standards, and automate changelog updates.

Release and CI/CD automation:

  • Added .github/workflows/semantic-release.yml to automate releases using semantic-release, including changelog generation, tagging, and publishing for both main and dev branches.
  • Added .releaserc.json to configure semantic-release plugins, branch rules, changelog file, and release note generation, enabling automated semantic versioning and improved release note quality.
  • Removed legacy workflows: .github/workflows/release.yml, .github/workflows/feature-fix.yml, .github/workflows/tag-release.yml, .github/workflows/tag-cleanup.yml, .github/workflows/validate-pr-to-dev.yml, .github/workflows/validate-pr-to-main.yml, and .github/workflows/commit_version_tag.yml, cleaning up redundant or deprecated release and validation logic. [1] [2] [3] [4] [5] [6] [7]

Commit linting and standards enforcement:

  • Added .github/workflows/commitlint.yml and .commitlintrc.json to enforce conventional commit messages on pull requests, ensuring commit history consistency and compatibility with semantic-release. [1] [2]

Changelog automation:

  • Added CHANGELOG.md and configured semantic-release to update it automatically with categorized release notes based on commit messages. [1] [2]

LittleCoinCoin and others added 20 commits August 26, 2025 09:48
Major: Replace custom versioning system with semantic-release.
This requires using Conventional Commits for all future changes.

- Remove custom scripts and workflows (327+ lines eliminated)
- Add semantic-release configuration with Node.js dependencies
- Update project structure for automated releases
- Replace VERSION/VERSION.meta files with pyproject.toml version
- Add commitizen for guided commit messages
- Update documentation for Conventional Commits workflow
- Add CONTRIBUTING.md with development guidelines
- Configure GitHub Actions for semantic-release automation

Migration benefits:
- Fully automated versioning without manual intervention
- Industry-standard Conventional Commits workflow
- Elimination of complex custom code and potential infinite loops
- Better compliance with GitHub best practices
- Improved developer experience with guided tooling
**Major**:
- Cleaning up the context documentation used for the CI update to `semantic-release`
Before switching to `semantic-release` the version was 0.4.2
Commands `mcp:tool:execute`, `mcp:tool:schema`, `mcp:citations`, and
`mcp:reset` were commented out of release v0.4.2 of Hatchling for
instability.
This makes sure that the regression test deoesn't look for them.
The integration tests for OpenAI all require the API key at test setup
when creating the LLM provider instance.
Hence we must add the appropriate tag for skipping them when no api keys
are available (i.e. often during automation).
The methods `hatchling_to_llm_tool_call` and
`hatchling_to_provider_tool_result` were added in the previous update,
so the tests checking the integrity of the implementation of this
interface were failing.

We add the expected implementations.
We were before implementing a custom system to manage versions
automatically. We moved to `semantic-release`, so we must adapt the
regression tests associated to the versioning system.
Testing the way an OpenAI provider handles events required an api key.

Minor: deleted useless import statements
`tomli` is the library actually referenced in the dependencies of
`Hatchling` instead of `toml`.
Hence, trying to run the tests after simply installing `Hatchling` from
the `pyproject.toml`'s definition would fail when trying to use `toml`
for other setting file load.

test: some forgotten `toml` usage
We cannot expect the running ci to have access to LLM API keys for all
the tests. There are some protections by default in how the tests are
written but, to be sure, we explicitly indicate that we skip these.
Expected IO mode is binary.
test: fixing expected IO mode for `tomli.load`
## 1.0.0-dev.1 (2025-08-26)

### Features

* Add comprehensive OpenAI API integration ([e722ab3](e722ab3))
* Add OpenAI-specific translations and resolve i18n warnings ([7b60de7](7b60de7))
* Integrate OpenAI API support in core LLM components ([770b90c](770b90c))
* Update CLI chat interface for multi-provider LLM support ([9699bf3](9699bf3))
* Update Docker configuration for multi-provider LLM support ([5964216](5964216))
* Update package configuration for translation files inclusion ([89d68f4](89d68f4))

### Bug Fixes

* Extend MCP tool execution timeouts for long-running operations ([aeae562](aeae562))
* Make Docker entrypoint script executable ([4bb6acb](4bb6acb))
* Update settings parameter paths for tool calling configuration ([c50df34](c50df34))

### Documentation

* **dev:** remove design reports ([2dfd324](2dfd324))

### Code Refactoring

* Restructure LLM settings architecture for multi-provider support ([306f227](306f227))
@LittleCoinCoin LittleCoinCoin changed the title Dev Fixing versioning and release process Aug 26, 2025
We still want the commit-lint test to pass but we must also authorize the automated commit message for changelogs to pass with lines that can be longer that default's 100 chars because of SHA's or links.
@LittleCoinCoin LittleCoinCoin merged commit 77364d6 into main Aug 26, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants