Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
2174968
[WIP] Updated implementation plan
Jun 22, 2025
1454bff
[Refactoring] Pkg installation
Jun 23, 2025
cb36a07
Merge branch 'support-new-hatch_validator' into dev
Jun 23, 2025
205906a
[Update] Version bump v0.4.0
Jun 23, 2025
4b14524
[Add] Deps installer base logic
Jun 23, 2025
8f80f8d
[Add] Hatch Installer
Jun 24, 2025
cec1023
[Add] Python Installer
Jun 24, 2025
581379f
[Add] System Installer
Jun 24, 2025
116192c
[Add] Docker Installer
Jun 28, 2025
605ac17
[Add] Dependency installer registry
Jun 28, 2025
7d1103d
[Add] Dep Installation orchestrator
Jun 29, 2025
3e76ff9
[Fix] Environment name argument value
Jun 29, 2025
7809d8c
[Fix] Use the enum field rather than associated value
Jun 29, 2025
dd6db1c
[Update] Add validity check before hatch dep install
Jun 29, 2025
4c0939a
[Update] `can_handle(...)` of installer registry
Jun 29, 2025
13eeb44
[Update] Tests
Jun 29, 2025
dd354a4
[Update] Use Hatch-Validator@dev
Jun 29, 2025
1c575d0
[Fix] Package import & discovery
Jun 29, 2025
9b2e145
[Fix] Only add Hatch pkgs in Hatch envs pkg list
Jun 29, 2025
5e70d8c
[Add - Major] PythonEnvironmentManager
Jun 29, 2025
6e29de6
[Update] `HatchEnvironmentManager` & Python env
Jun 29, 2025
3d890fd
[Update] CLI commands for Hatch
Jun 29, 2025
fb675a1
[Add] Tests for python environments
Jun 29, 2025
d196d05
[Update] Docker availability
Jun 30, 2025
71dcf42
[Update] Mamba/Conda discovery
Jun 30, 2025
c49282b
[Update] Propagate python exec to Python installer
Jun 30, 2025
46a22b6
[Update] Generalized info for python installer
Jun 30, 2025
3d10690
[Update - Minor] Cli python env info display
Jun 30, 2025
92c3475
[Remove] Duplicated code
Jul 1, 2025
04a9531
[Update - Minor] Docker installer default log lvl
Jul 1, 2025
e8b884f
[Refactor - Minor] Use existing variable
Jul 1, 2025
24bbfb5
[Update] Make hatch env name optional
Jul 2, 2025
c695b3a
[Fix] Registry fetch
Jul 2, 2025
44bbe64
[Update] Use named hatch environments
Jul 3, 2025
f95ea7a
[Fix] Forgot to switch to new function name
Jul 3, 2025
3733270
Merge branch 'fix/decouple-python-env-from-hatch-env' into feat/depen…
Jul 6, 2025
ea8505a
[Add] Installation of `hatch_mcp_server`
Jul 6, 2025
cf13f78
[Remove] stdout & stderr of python installer
Jul 7, 2025
b99058a
[Add] Controlled installation of hatch_mcp_server
Jul 7, 2025
9c8689b
[Update] Prepend `sudo apt install` with `update`
Jul 8, 2025
4f82132
[Remove] `stdout` & `stderr` in system installer
Jul 8, 2025
0ed1724
[Update] Default env is initialized with python
Jul 9, 2025
82736c1
[Fix] Docker client retrieval
Jul 9, 2025
25b31e8
[Update] System dependencies first
Jul 17, 2025
41654f9
[Fix] Configuration of python environment
Jul 17, 2025
4d9555b
[Fix] Hatch package template
Jul 18, 2025
65ee780
[Remove] Timeout of the command to create env
Jul 28, 2025
1dababb
Merge pull request #13 from CrackingShells/feat/dependency-installers
LittleCoinCoin Aug 7, 2025
bcc850b
[Add] Versioning logic
Aug 7, 2025
9948fe4
Update VERSION files in `feat/versioning-system` to v0.4.0.dev0+build2
actions-user Aug 7, 2025
40b9a06
Merge pull request #19 from CrackingShells/feat/versioning-system
LittleCoinCoin Aug 7, 2025
1654823
Update VERSION files in `dev` to v0.4.0.dev1
actions-user Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/commit_version_tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Commit Version Tag

on:
push:
branches:
- dev
- main
- feat/*
- fix/*

jobs:
test-build:
uses: ./.github/workflows/test_build.yml
with:
branch: ${{ github.ref_name }}
permissions:
contents: write

commit-version-tag:
needs: test-build
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Download VERSION files
uses: actions/download-artifact@v4
with:
name: version-files

- name: Commit updated VERSION files
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add VERSION VERSION.meta
git diff --staged --quiet || git commit -m "Update VERSION files in \`${{ github.ref_name }}\` to ${{ needs.test-build.outputs.version }}"
git push

- name: Create lightweight tag
run: |
git tag -a "${{ needs.test-build.outputs.version }}" -m "Release ${{ needs.test-build.outputs.version }}"
git push origin "${{ needs.test-build.outputs.version }}"
50 changes: 50 additions & 0 deletions .github/workflows/tag-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Tag Cleanup

on:
# We will run this workflow only manually to check behaviors for a while.
# Later we will enable it to run on a schedule that is yet to be determined (below weekly is only an example).
#schedule:
# Run weekly on Sundays at 2:00 AM UTC
#- cron: '0 2 * * 0'
workflow_dispatch:
inputs:
dry_run:
description: 'Dry run (show what would be deleted without actually deleting)'
required: false
default: 'true'
type: choice
options:
- 'true'
- 'false'

env:
PYTHON_VERSION: '3.12'

jobs:
cleanup-tags:
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Run tag cleanup
run: |
DRY_RUN="${{ github.event.inputs.dry_run || 'true' }}"
python scripts/tag_cleanup.py "$DRY_RUN"

- name: Summary
run: |
if [ "${{ github.event.inputs.dry_run || 'true' }}" = "true" ]; then
echo "Tag cleanup completed in dry-run mode. No tags were actually deleted."
else
echo "Tag cleanup completed. Old build and dev tags have been removed."
fi
45 changes: 45 additions & 0 deletions .github/workflows/tag-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Tagged Release

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+.dev[0-9]+'

jobs:
releasing:
runs-on: ubuntu-latest
steps:
- name: Create Pre-Release
if: ${{ contains(github.ref_name, '.dev') }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: Pre-Release ${{ github.ref_name }}
body: |
Pre-release ${{ github.ref_name }}

## Changes
- See commit history for detailed changes

⚠️ **This is a pre-release version**

draft: false
prerelease: true
token: ${{ secrets.GITHUB_TOKEN }}

- name: Create Release
if: ${{ !contains(github.ref_name, '.dev') }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
body: |
Release ${{ github.ref_name }}

## Changes
- See commit history for detailed changes

draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
72 changes: 72 additions & 0 deletions .github/workflows/test_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Update VERSION and test build

on:
workflow_call:
inputs:
python-version:
required: false
type: string
default: '3.12'
branch:
required: false
type: string
default: 'main'
outputs:
version:
description: The version of the package built
value: ${{ jobs.test-build.outputs.version }}

jobs:
test-build:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version-extract.outputs.version }}
permissions:
contents: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine

- name: Update VERSION file for branch
run: |
echo "Updating VERSION file for branch: ${{ inputs.branch }}"
python versioning/version_manager.py --update-for-branch ${{ inputs.branch }}

- name: Get version info
id: version-extract
run: |
VERSION=$(python versioning/version_manager.py --get)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Updated to version: $VERSION"

- name: Prepare version for build
run: |
python versioning/prepare_version.py

- name: Build package
run: |
python -m build

- name: Test package installation
run: |
pip install dist/*.whl

- name: Upload VERSION files
uses: actions/upload-artifact@v4
with:
name: version-files
path: |
VERSION
VERSION.meta
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.4.0.dev1
10 changes: 10 additions & 0 deletions VERSION.meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Structured version file for human readability and CI/CD
# This file maintains detailed version component information
# The companion VERSION file contains the simple format for setuptools

MAJOR=0
MINOR=4
PATCH=0
DEV_NUMBER=1
BUILD_NUMBER=
BRANCH=dev
Loading
Loading