From e92262e039c393f21454b59998d38bd284ede82e Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Sun, 7 Dec 2025 23:15:34 -0800 Subject: [PATCH 01/10] Add CI workflows and GoReleaser config Introduces GitHub Actions workflows for release and test automation, and adds a GoReleaser configuration for cross-platform builds and Homebrew support. Also updates root command to use dynamic version, commit, and build date variables for improved release metadata. --- .github/workflows/release.yml | 38 +++++++++++ .github/workflows/test.yml | 31 +++++++++ .goreleaser.yml | 117 ++++++++++++++++++++++++++++++++++ cmd/root.go | 13 +++- 4 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml create mode 100644 .goreleaser.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..cf2fb28 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + + # Install cross-compilation tools for CGO + - name: Install cross-compilation dependencies + run: | + sudo apt-get update + sudo apt-get install -y gcc-mingw-w64-x86-64 gcc-aarch64-linux-gnu + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser + version: latest + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..b624ab1 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,31 @@ +name: Test + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + + - name: Build + run: go build -v ./... + + - name: Test basic commands + run: | + go build -o tmpo${{ matrix.os == 'windows-latest' && '.exe' || '' }} . + ./tmpo${{ matrix.os == 'windows-latest' && '.exe' || '' }} --version + ./tmpo${{ matrix.os == 'windows-latest' && '.exe' || '' }} --help \ No newline at end of file diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..e21d79b --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,117 @@ +version: 2 + +before: + hooks: + - go mod tidy + +builds: + # macOS (both Intel and Apple Silicon) + - id: darwin + binary: tmpo + env: + - CGO_ENABLED=1 + goos: + - darwin + goarch: + - amd64 + - arm64 + ldflags: + - -s -w + - -X github.com/DylanDevelops/tmpo/cmd.Version={{.Version}} + - -X github.com/DylanDevelops/tmpo/cmd.Commit={{.Commit}} + - -X github.com/DylanDevelops/tmpo/cmd.Date={{.Date}} + + # Windows + - id: windows + binary: tmpo + env: + - CGO_ENABLED=1 + - CC=x86_64-w64-mingw32-gcc + - CXX=x86_64-w64-mingw32-g++ + goos: + - windows + goarch: + - amd64 + ldflags: + - -s -w + - -X github.com/DylanDevelops/tmpo/cmd.Version={{.Version}} + - -X github.com/DylanDevelops/tmpo/cmd.Commit={{.Commit}} + - -X github.com/DylanDevelops/tmpo/cmd.Date={{.Date}} + + # Linux + - id: linux + binary: tmpo + env: + - CGO_ENABLED=1 + goos: + - linux + goarch: + - amd64 + - arm64 + ldflags: + - -s -w + - -X github.com/DylanDevelops/tmpo/cmd.Version={{.Version}} + - -X github.com/DylanDevelops/tmpo/cmd.Commit={{.Commit}} + - -X github.com/DylanDevelops/tmpo/cmd.Date={{.Date}} + +archives: + - id: default + format: tar.gz + name_template: >- + {{ .ProjectName }}_ + {{- .Version }}_ + {{- title .Os }}_ + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + format_overrides: + - goos: windows + format: zip + files: + - README.md + - LICENSE + +checksum: + name_template: 'checksums.txt' + algorithm: sha256 + +snapshot: + version_template: "{{ incpatch .Version }}-next" + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' + - '^chore:' + - '^ci:' + +release: + github: + owner: DylanDevelops + name: tmpo + draft: false + prerelease: auto + name_template: "{{.ProjectName}} v{{.Version}}" + +# Homebrew +brews: + - name: tmpo + repository: + owner: DylanDevelops + name: tmpo + commit_author: + name: goreleaserbot + email: bot@goreleaser.com + homepage: "https://github.com/DylanDevelops/tmpo" + description: "Minimal CLI time tracker for developers" + license: "MIT" + + skip_upload: true # Turn to false when first release is ready + + install: | + bin.install "tmpo" + + test: | + system "#{bin}/tmpo", "--version" diff --git a/cmd/root.go b/cmd/root.go index 241df2e..15c1faa 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,11 +1,18 @@ package cmd import ( + "fmt" "os" "github.com/spf13/cobra" ) +var ( + Version = "dev" + Commit = "none" + Date = "unknown" +) + var rootCmd = &cobra.Command{ Use: "tmpo", Short: "Minimal CLI time tracker for developers", @@ -13,6 +20,7 @@ var rootCmd = &cobra.Command{ A minimal, developer-friendly time tracking tool that lives in your terminal. Track time effortlessly with automatic project detection and simple commands.`, + Version: Version, } func Execute() { @@ -23,5 +31,8 @@ func Execute() { } func init() { - rootCmd.Version = "0.1.0" + rootCmd.SetVersionTemplate(fmt.Sprintf( + "tmpo version %s\ncommit: %s\nbuilt: %s\n", + Version, Commit, Date, + )) } From d15c96003229018254abc6bc4df2480f1c13bed6 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Sun, 7 Dec 2025 23:22:56 -0800 Subject: [PATCH 02/10] Test: GitHub Actions release workflow --- .goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index e21d79b..c13d483 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -91,7 +91,7 @@ release: github: owner: DylanDevelops name: tmpo - draft: false + draft: true # Turn to false when first release is ready prerelease: auto name_template: "{{.ProjectName}} v{{.Version}}" From 3ca1373cb1e9e7f42d4edf98c4e423f925c5e0db Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Mon, 8 Dec 2025 18:16:08 -0800 Subject: [PATCH 03/10] Switch to modernc.org/sqlite for SQLite driver Replaces github.com/mattn/go-sqlite3 with modernc.org/sqlite for database operations. Updates GoReleaser config to use CGO_ENABLED=0 for cross-platform builds, removes cross-compilation dependencies from release workflow, and updates dependencies in go.mod and go.sum accordingly. --- .github/workflows/release.yml | 6 ----- .goreleaser.yml | 47 +++++++++++--------------------- go.mod | 12 ++++++++- go.sum | 51 +++++++++++++++++++++++++++++++++-- internal/storage/db.go | 4 +-- 5 files changed, 78 insertions(+), 42 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf2fb28..965d6ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,12 +22,6 @@ jobs: with: go-version: '1.21' - # Install cross-compilation tools for CGO - - name: Install cross-compilation dependencies - run: | - sudo apt-get update - sudo apt-get install -y gcc-mingw-w64-x86-64 gcc-aarch64-linux-gnu - - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 with: diff --git a/.goreleaser.yml b/.goreleaser.yml index c13d483..c0d7f81 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -6,48 +6,36 @@ before: builds: # macOS (both Intel and Apple Silicon) - - id: darwin + - id: macos + goos: [darwin] + goarch: [amd64, arm64] binary: tmpo - env: - - CGO_ENABLED=1 - goos: - - darwin - goarch: - - amd64 - - arm64 ldflags: - -s -w - -X github.com/DylanDevelops/tmpo/cmd.Version={{.Version}} - -X github.com/DylanDevelops/tmpo/cmd.Commit={{.Commit}} - -X github.com/DylanDevelops/tmpo/cmd.Date={{.Date}} - # Windows - - id: windows - binary: tmpo + # Linux + - id: linux + goos: [linux] + goarch: [amd64, arm64] env: - - CGO_ENABLED=1 - - CC=x86_64-w64-mingw32-gcc - - CXX=x86_64-w64-mingw32-g++ - goos: - - windows - goarch: - - amd64 + - CGO_ENABLED=0 + binary: tmpo ldflags: - -s -w - -X github.com/DylanDevelops/tmpo/cmd.Version={{.Version}} - -X github.com/DylanDevelops/tmpo/cmd.Commit={{.Commit}} - -X github.com/DylanDevelops/tmpo/cmd.Date={{.Date}} - # Linux - - id: linux - binary: tmpo + # Windows + - id: windows + goos: [windows] + goarch: [amd64, arm64] env: - - CGO_ENABLED=1 - goos: - - linux - goarch: - - amd64 - - arm64 + - CGO_ENABLED=0 + binary: tmpo ldflags: - -s -w - -X github.com/DylanDevelops/tmpo/cmd.Version={{.Version}} @@ -107,11 +95,8 @@ brews: homepage: "https://github.com/DylanDevelops/tmpo" description: "Minimal CLI time tracker for developers" license: "MIT" - skip_upload: true # Turn to false when first release is ready - install: | bin.install "tmpo" - test: | - system "#{bin}/tmpo", "--version" + system "#{bin}/tmpo", "--version" \ No newline at end of file diff --git a/go.mod b/go.mod index 4ef1b95..225ea47 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,22 @@ module github.com/DylanDevelops/tmpo go 1.25.5 require ( - github.com/mattn/go-sqlite3 v1.14.32 github.com/spf13/cobra v1.10.2 go.yaml.in/yaml/v3 v3.0.4 + modernc.org/sqlite v1.40.1 ) require ( + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/ncruces/go-strftime v0.1.9 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/spf13/pflag v1.0.10 // indirect + golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect + golang.org/x/sys v0.36.0 // indirect + modernc.org/libc v1.66.10 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect ) diff --git a/go.sum b/go.sum index a33fca2..96201ff 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,18 @@ github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs= -github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= +github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= @@ -11,5 +21,42 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= +golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +modernc.org/cc/v4 v4.26.5 h1:xM3bX7Mve6G8K8b+T11ReenJOT+BmVqQj0FY5T4+5Y4= +modernc.org/cc/v4 v4.26.5/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.28.1 h1:wPKYn5EC/mYTqBO373jKjvX2n+3+aK7+sICCv4Fjy1A= +modernc.org/ccgo/v4 v4.28.1/go.mod h1:uD+4RnfrVgE6ec9NGguUNdhqzNIeeomeXf6CL0GTE5Q= +modernc.org/fileutil v1.3.40 h1:ZGMswMNc9JOCrcrakF1HrvmergNLAmxOPjizirpfqBA= +modernc.org/fileutil v1.3.40/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks= +modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI= +modernc.org/libc v1.66.10 h1:yZkb3YeLx4oynyR+iUsXsybsX4Ubx7MQlSYEw4yj59A= +modernc.org/libc v1.66.10/go.mod h1:8vGSEwvoUoltr4dlywvHqjtAqHBaw0j1jI7iFBTAr2I= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= +modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= +modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= +modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= +modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= +modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= +modernc.org/sqlite v1.40.1 h1:VfuXcxcUWWKRBuP8+BR9L7VnmusMgBNNnBYGEe9w/iY= +modernc.org/sqlite v1.40.1/go.mod h1:9fjQZ0mB1LLP0GYrp39oOJXx/I2sxEnZtzCmEQIKvGE= +modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= +modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/internal/storage/db.go b/internal/storage/db.go index a14a774..5f70e1b 100644 --- a/internal/storage/db.go +++ b/internal/storage/db.go @@ -7,7 +7,7 @@ import ( "path/filepath" "time" - _ "github.com/mattn/go-sqlite3" + _ "modernc.org/sqlite" ) // Database is a thin wrapper around an *sql.DB connection pool. @@ -53,7 +53,7 @@ func Initialize() (*Database, error) { } dbPath := filepath.Join(tmpoDir, "tmpo.db") - db, err := sql.Open("sqlite3", dbPath) + db, err := sql.Open("sqlite", dbPath) if err != nil { return nil, fmt.Errorf("failed to open database: %w", err) From 612e2939df01b757a956ae9362b0b8eefcf2f163 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Mon, 8 Dec 2025 19:35:48 -0800 Subject: [PATCH 04/10] Update .goreleaser.yml --- .goreleaser.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.goreleaser.yml b/.goreleaser.yml index c0d7f81..046d72a 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -59,6 +59,34 @@ archives: - README.md - LICENSE + - id: windows-zip + builds: [windows] + name_template: >- + {{ .ProjectName }}_ + {{- .Version }}_ + {{- title .Os }}_ + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + format: zip + files: + - README.md + - LICENSE + + - id: unix-targz + builds: [macos, linux] + name_template: >- + {{ .ProjectName }}_ + {{- .Version }}_ + {{- title .Os }}_ + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + format: tar.gz + files: + - README.md + - LICENSE + checksum: name_template: 'checksums.txt' algorithm: sha256 From 6bedb9fb41039f2ff633d21eca6fb6e6a43fd7c5 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Mon, 8 Dec 2025 19:46:36 -0800 Subject: [PATCH 05/10] Update .goreleaser.yml --- .goreleaser.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 046d72a..f114600 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -43,22 +43,6 @@ builds: - -X github.com/DylanDevelops/tmpo/cmd.Date={{.Date}} archives: - - id: default - format: tar.gz - name_template: >- - {{ .ProjectName }}_ - {{- .Version }}_ - {{- title .Os }}_ - {{- if eq .Arch "amd64" }}x86_64 - {{- else if eq .Arch "386" }}i386 - {{- else }}{{ .Arch }}{{ end }} - format_overrides: - - goos: windows - format: zip - files: - - README.md - - LICENSE - - id: windows-zip builds: [windows] name_template: >- From 70498086be1d8c022f04e0b12a39da9aa6927985 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Mon, 8 Dec 2025 20:44:46 -0800 Subject: [PATCH 06/10] Update .goreleaser.yml --- .goreleaser.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index f114600..de16b3b 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -79,21 +79,46 @@ snapshot: version_template: "{{ incpatch .Version }}-next" changelog: + use: github sort: asc + abbrev: 0 + groups: + - title: Features + regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$' + order: 0 + - title: 'Bug Fixes' + regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$' + order: 1 + - title: 'Performance Improvements' + regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$' + order: 2 + - title: 'Documentation' + regexp: '^.*?docs?(\([[:word:]]+\))??!?:.+$' + order: 3 + - title: 'Dependency Updates' + regexp: '^.*?(feat|fix|chore)\(deps?\):?.+$' + order: 4 + - title: Other + order: 999 filters: exclude: - '^docs:' - '^test:' - '^chore:' - '^ci:' + - Merge pull request + - Merge remote-tracking branch + - Merge branch + - go mod tidy release: github: owner: DylanDevelops name: tmpo draft: true # Turn to false when first release is ready + draft: true prerelease: auto - name_template: "{{.ProjectName}} v{{.Version}}" + name_template: "tmpo {{.Version}}" # Homebrew brews: From 8143a4581980fbeae0107bb6f9bb7faa7e505645 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Mon, 8 Dec 2025 20:49:32 -0800 Subject: [PATCH 07/10] Update .goreleaser.yml --- .goreleaser.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index de16b3b..3946d3d 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -116,7 +116,6 @@ release: owner: DylanDevelops name: tmpo draft: true # Turn to false when first release is ready - draft: true prerelease: auto name_template: "tmpo {{.Version}}" From 6b12f22815455ffb0984f45108dcca19f5c9da76 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Wed, 10 Dec 2025 22:02:54 -0800 Subject: [PATCH 08/10] Update .goreleaser.yml --- .goreleaser.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 3946d3d..9a1e4aa 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -83,28 +83,26 @@ changelog: sort: asc abbrev: 0 groups: - - title: Features + - title: โœจ Features regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$' order: 0 - - title: 'Bug Fixes' + - title: ๐Ÿ› Fixes regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$' order: 1 - - title: 'Performance Improvements' - regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$' + - title: ๐Ÿ“š Docs & Chores + regexp: '^.*?(docs?|chore|style|refactor)(\([[:word:]]+\))??!?:.+$' order: 2 - - title: 'Documentation' - regexp: '^.*?docs?(\([[:word:]]+\))??!?:.+$' + - title: โฌ†๏ธ Dependencies + regexp: '^.*?(feat|fix|chore|build)\(deps?\):?.+$' order: 3 - - title: 'Dependency Updates' - regexp: '^.*?(feat|fix|chore)\(deps?\):?.+$' + - title: ๐Ÿš€ Performance + regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$' order: 4 - title: Other order: 999 filters: exclude: - - '^docs:' - '^test:' - - '^chore:' - '^ci:' - Merge pull request - Merge remote-tracking branch From 6877dc4cbad4cf410b4787766a8894548e327ed9 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Wed, 10 Dec 2025 22:27:29 -0800 Subject: [PATCH 09/10] Update .goreleaser.yml --- .goreleaser.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 9a1e4aa..137478f 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -79,9 +79,8 @@ snapshot: version_template: "{{ incpatch .Version }}-next" changelog: - use: github + use: github-native sort: asc - abbrev: 0 groups: - title: โœจ Features regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$' From dfbd55ab5ed54d030c87fdb55719279c948e8d67 Mon Sep 17 00:00:00 2001 From: Dylan Ravel Date: Wed, 10 Dec 2025 22:45:33 -0800 Subject: [PATCH 10/10] Update .goreleaser.yml --- .goreleaser.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 137478f..166983f 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -85,19 +85,25 @@ changelog: - title: โœจ Features regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$' order: 0 - - title: ๐Ÿ› Fixes + - title: ๐Ÿ› Bug Fixes regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$' order: 1 - - title: ๐Ÿ“š Docs & Chores - regexp: '^.*?(docs?|chore|style|refactor)(\([[:word:]]+\))??!?:.+$' + - title: ๐Ÿš€ Performance Improvements + regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$' order: 2 - - title: โฌ†๏ธ Dependencies - regexp: '^.*?(feat|fix|chore|build)\(deps?\):?.+$' + - title: ๐Ÿ”จ Refactoring + regexp: '^.*?refactor(\([[:word:]]+\))??!?:.+$' order: 3 - - title: ๐Ÿš€ Performance - regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$' + - title: ๐Ÿ“š Documentation + regexp: '^.*?docs?(\([[:word:]]+\))??!?:.+$' order: 4 - - title: Other + - title: ๐Ÿ”ง Build & Dependencies + regexp: '^.*?(build|ci)(\([[:word:]]+\))??!?:.+$' + order: 5 + - title: ๐Ÿงน Maintenance + regexp: '^.*?chore(\([[:word:]]+\))??!?:.+$' + order: 6 + - title: ๐Ÿ“ฆ Other Changes order: 999 filters: exclude: