Skip to content

Commit 49297f2

Browse files
feat: Implement CI/CD and release workflows, introduce smart data cleaning, enhance AI formula generation, and update project metadata.
Bump to 1.0.0, add AI formula generation - Updated project version to 1.0.0, reflecting the new AI‑driven feature set. - Revamped README to showcase AI formula generation (Ctrl+K) and support for Gemini, OpenAI, Claude, Mistral, and OpenRouter, enabling natural‑language creation of spreadsheet formulas. - Added a Data Cleaning tool (Ctrl+B) with trim, duplicate removal, and number fixing, plus a Live Visualization panel (V‑v‑1‑4) for bar, line, sparkline, and pie charts. - Introduced column resizing (< / >) and moved configuration access to Ctrl+, for easier provider and API‑key setup. - Updated version badges, release links, and installation instructions to point to the new repository under SreeAditya‑Dev. - Adjusted keybindings and help text to highlight the new capabilities and improve navigation. - Bumped the internal version variable in main.go to 1.0.0. These changes collectively enhance usability by bringing AI assistance, data‑cleaning utilities, and visual analytics into the core editor, while streamlining configuration and navigation for a smoother terminal‑based spreadsheet experience.
1 parent f73ca21 commit 49297f2

5 files changed

Lines changed: 251 additions & 64 deletions

File tree

.github/workflows/ci.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main, develop]
8+
9+
jobs:
10+
test:
11+
name: Test
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
matrix:
15+
os: [ubuntu-latest, macos-latest, windows-latest]
16+
go-version: ["1.22"]
17+
18+
steps:
19+
- name: Check out code
20+
uses: actions/checkout@v4
21+
22+
- name: Set up Go
23+
uses: actions/setup-go@v5
24+
with:
25+
go-version: ${{ matrix.go-version }}
26+
27+
- name: Download dependencies
28+
run: go mod download
29+
30+
- name: Verify dependencies
31+
run: go mod verify
32+
33+
- name: Run tests
34+
run: go test -v ./...
35+
36+
build:
37+
name: Build
38+
runs-on: ubuntu-latest
39+
40+
steps:
41+
- name: Check out code
42+
uses: actions/checkout@v4
43+
44+
- name: Set up Go
45+
uses: actions/setup-go@v5
46+
with:
47+
go-version: "1.22"
48+
49+
- name: Build
50+
run: go build -v .
51+
52+
- name: Test cross-compilation
53+
run: |
54+
GOOS=darwin GOARCH=amd64 go build -o cello-darwin-amd64 .
55+
GOOS=darwin GOARCH=arm64 go build -o cello-darwin-arm64 .
56+
GOOS=linux GOARCH=amd64 go build -o cello-linux-amd64 .
57+
GOOS=linux GOARCH=arm64 go build -o cello-linux-arm64 .
58+
GOOS=windows GOARCH=amd64 go build -o cello-windows-amd64.exe .
59+
60+
lint:
61+
name: Lint
62+
runs-on: ubuntu-latest
63+
64+
steps:
65+
- name: Check out code
66+
uses: actions/checkout@v4
67+
68+
- name: Set up Go
69+
uses: actions/setup-go@v5
70+
with:
71+
go-version: "1.22"
72+
73+
- name: Run go fmt
74+
run: |
75+
if [ -n "$(gofmt -s -l .)" ]; then
76+
echo "Go code is not formatted:"
77+
gofmt -s -d .
78+
exit 1
79+
fi
80+
81+
- name: Run go vet
82+
run: go vet ./...

.github/workflows/release.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
name: Create Release
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Check out code
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Set up Go
23+
uses: actions/setup-go@v5
24+
with:
25+
go-version: "1.22"
26+
27+
- name: Build binaries
28+
run: |
29+
VERSION=${GITHUB_REF#refs/tags/v}
30+
LDFLAGS="-s -w -X main.version=$VERSION"
31+
32+
mkdir -p dist
33+
34+
echo "Building for macOS (AMD64)..."
35+
GOOS=darwin GOARCH=amd64 go build -ldflags="$LDFLAGS" -trimpath -o dist/cello-darwin-amd64 .
36+
37+
echo "Building for macOS (ARM64)..."
38+
GOOS=darwin GOARCH=arm64 go build -ldflags="$LDFLAGS" -trimpath -o dist/cello-darwin-arm64 .
39+
40+
echo "Building for Linux (AMD64)..."
41+
GOOS=linux GOARCH=amd64 go build -ldflags="$LDFLAGS" -trimpath -o dist/cello-linux-amd64 .
42+
43+
echo "Building for Linux (ARM64)..."
44+
GOOS=linux GOARCH=arm64 go build -ldflags="$LDFLAGS" -trimpath -o dist/cello-linux-arm64 .
45+
46+
echo "Building for Windows (AMD64)..."
47+
GOOS=windows GOARCH=amd64 go build -ldflags="$LDFLAGS" -trimpath -o dist/cello-windows-amd64.exe .
48+
49+
cd dist
50+
sha256sum * > checksums.txt
51+
52+
- name: Create archives
53+
run: |
54+
cd dist
55+
tar czf cello-darwin-amd64.tar.gz cello-darwin-amd64
56+
tar czf cello-darwin-arm64.tar.gz cello-darwin-arm64
57+
tar czf cello-linux-amd64.tar.gz cello-linux-amd64
58+
tar czf cello-linux-arm64.tar.gz cello-linux-arm64
59+
zip cello-windows-amd64.zip cello-windows-amd64.exe
60+
61+
- name: Generate changelog
62+
id: changelog
63+
run: |
64+
VERSION=${GITHUB_REF#refs/tags/v}
65+
echo "version=$VERSION" >> $GITHUB_OUTPUT
66+
67+
# Try to extract changelog for this version
68+
if [ -f "CHANGELOG.md" ]; then
69+
sed -n "/## \[$VERSION\]/,/## \[/p" CHANGELOG.md | sed '$d' > release_notes.md
70+
else
71+
echo "Release $VERSION" > release_notes.md
72+
fi
73+
74+
# Fallback if empty
75+
if [ ! -s release_notes.md ]; then
76+
echo "Release $VERSION" > release_notes.md
77+
fi
78+
79+
- name: Create Release
80+
uses: softprops/action-gh-release@v1
81+
with:
82+
body_path: release_notes.md
83+
files: |
84+
dist/*.tar.gz
85+
dist/*.zip
86+
dist/checksums.txt
87+
draft: false
88+
prerelease: false
89+
env:
90+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.PHONY: build run clean install test lint fmt help release
22

33
BINARY_NAME=cello
4-
VERSION=2.0.1
4+
VERSION=1.0.0
55
BUILD_DIR=dist
66
GO_FILES=$(shell find . -name '*.go' -type f)
77

0 commit comments

Comments
 (0)