Skip to content

Commit

Permalink
📦 Release: v0.1.0-rc.1 (#280)
Browse files Browse the repository at this point in the history
The first major update with breaking changes to the language chat schemas 
and begging of work on instrumenting the gateway with OpenTelemetry.

### Added

- 🔧 Use github.com/EinStack/glide as module name to support go install cmd (@gernest)
- ✨🔧 Setup Open Telemetry Metrics and Traces (#237) (@gernest)
-  🔧 #221 Add B3 trace propagator (#242) (@gernest)
- 🔧 #241 Support overriding OTEL resource attributes (#243) (@gernest)
- 🔧 #248 Disable span and metrics by default (#254) (@gernest)
- 🔧 #220 Instrument API server with observability signals (#255) (@gernest)
- 🔧 #164 Make client connection pool configurable across all providers (#251) (@daesu)
- 🔧 Instrument gateway process (#256) (@gernest)
- 🔧 #262: adding connection pool for chat request and response (#271) (@tom-fitz)

### Changed

- 🔧 #238 Implements human-readable durations in config (#253) (@ppmdo)
- 🔧 #266: removing omitempty from response definition (#267) (@tom-fitz)

#### Breaking Changes

- 🔧 💥 #235: Extended the non-streaming chat error schema with new fields to give clients more context around the error (#236) (@roma-glushko)
- 💥 Convert all camelCase config fields to the snake_case in the provider configs (#260) (@roma-glushko)
- ✨💥 #153: Allow to pass multiple model-specific param overrides (#264) (@roma-glushko)

### Fixed

- 🐛 #217: Set build info correctly in Glide images (#218) (@roma-glushko)

### Security

- 🔒 Updated golang to 1.22.4 to address CVE-2024-24790 (#276) (@STAR-173)

### Miscellaneous

- 📝 Defined a way to manage EinStack Glide project (#234) (@roma-glushko)
- 👷 #219: Setup local telemetry stack with Jaeger, Grafana, VictoriaMetrics and OTEL Collector (#225) (@roma-glushko)
- 👷‍♂️ Added a new GH action to watch for glide activity stream (#239, #244) (@roma-glushko)
- ✨ Switched to the new docs (@roma-glushko)
- 🔧 #240: Automatically install air (#277, #270) (@ppmdo, @roma-glushko)
  • Loading branch information
roma-glushko authored Jun 24, 2024
1 parent 754af34 commit 1e2b16f
Show file tree
Hide file tree
Showing 127 changed files with 4,132 additions and 2,959 deletions.
51 changes: 51 additions & 0 deletions .air.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"

[build]
args_bin = ["-c ./config.dev.yaml"]
bin = "./dist/glide"
cmd = "make build"
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata"]
exclude_file = []
exclude_regex = ["_test.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "tmpl", "html"]
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
post_cmd = []
pre_cmd = []
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = false

[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"

[log]
main_only = false
time = false

[misc]
clean_on_exit = false

[proxy]
app_port = 0
enabled = false
proxy_port = 0

[screen]
clear_on_rebuild = false
keep_scroll = true
63 changes: 63 additions & 0 deletions .github/workflows/activity-notifications.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Pull Request Activity Notifications

on:
pull_request_target:
types: [opened, closed, reopened]

jobs:
activity_notifications:
runs-on: ubuntu-latest
steps:
- name: Gather PR context
id: context
uses: actions/github-script@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const pr = context.payload.pull_request;
const author = pr.user.login;
const project = context.payload.repository.full_name;
const action = context.payload.action;
const wasMerged = pr.merged;
console.log(`Action: ${action}`);
console.log(`PR Author: ${author}`);
console.log(`Project: ${project}`);
console.log(`Was Merged?: ${wasMerged}`);
core.setOutput('author', author);
core.setOutput('project', project);
core.setOutput('action', action);
core.setOutput('wasMerged', wasMerged);
- name: Send Discord Notification for opened PR
if: ${{ github.event_name == 'pull_request' && github.event.action == 'opened' }}
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK: ${{ secrets.ACTIVITY_DISCORD_WEBHOOK_URL }}
with:
args: "✨️[New Pull Request]\nProject: ${{ steps.context.outputs.project }}\nAuthor: ${{ steps.context.outputs.author }}\nLink: ${{ github.event.pull_request.html_url }}"

- name: Send Discord Notification for closed PR
if: ${{ github.event_name == 'pull_request' && github.event.action == 'closed' && steps.context.outputs.wasMerged == 'false' }}
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK: ${{ secrets.ACTIVITY_DISCORD_WEBHOOK_URL }}
with:
args: "🚫[Pull Request Closed]\nProject: ${{ steps.context.outputs.project }}\nAuthor: ${{ steps.context.outputs.author }}\nLink: ${{ github.event.pull_request.html_url }}"

- name: Send Discord Notification for merged PR
if: ${{ github.event_name == 'pull_request' && github.event.action == 'closed' && steps.context.outputs.wasMerged == 'true' }}
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK: ${{ secrets.ACTIVITY_DISCORD_WEBHOOK_URL }}
with:
args: "✅[Pull Request Merged]\nProject: ${{ steps.context.outputs.project }}\nAuthor: ${{ steps.context.outputs.author }}\nLink: ${{ github.event.pull_request.html_url }}"

- name: Send Discord Notification for reopened PR
if: ${{ github.event_name == 'pull_request' && github.event.action == 'reopened' }}
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK: ${{ secrets.ACTIVITY_DISCORD_WEBHOOK_URL }}
with:
args: "🛠️[Pull Request Reopened]\nProject: ${{ steps.context.outputs.project }}\nAuthor: ${{ steps.context.outputs.author }}\nLink: ${{ github.event.pull_request.html_url }}"
10 changes: 5 additions & 5 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.22"
go-version: "1.22.4"
check-latest: true

- name: Install
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.22"
go-version: "1.22.4"
check-latest: true
- name: Build
run: go build -v ./...
Expand All @@ -70,7 +70,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.22"
go-version: "1.22.4"
check-latest: true

- name: Install nilaway
Expand All @@ -95,7 +95,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.22"
go-version: "1.22.4"
check-latest: true

- name: Test
Expand All @@ -121,7 +121,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.22"
go-version: "1.22.4"
check-latest: true

- name: Generate OpenAPI Schema
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.22
go-version: 1.22.4

- name: Checkout
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/vuln.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: '1.22.1'
go-version: '1.22.4'
check-latest: true

- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion .go-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.22
1.22.4
49 changes: 47 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,51 @@ TBU

TBU

## [0.0.3-rc2], [0.0.3] (Apr 17, 2024)
## [0.1.0-rc.1] (Jun 24, 2024)

The first major update with breaking changes to the language chat schemas
and begging of work on instrumenting the gateway with OpenTelemetry.

### Added

- 🔧 Use github.com/EinStack/glide as module name to support go install cmd (@gernest)
- ✨🔧 Setup Open Telemetry Metrics and Traces (#237) (@gernest)
- 🔧 #221 Add B3 trace propagator (#242) (@gernest)
- 🔧 #241 Support overriding OTEL resource attributes (#243) (@gernest)
- 🔧 #248 Disable span and metrics by default (#254) (@gernest)
- 🔧 #220 Instrument API server with observability signals (#255) (@gernest)
- 🔧 #164 Make client connection pool configurable across all providers (#251) (@daesu)
- 🔧 Instrument gateway process (#256) (@gernest)
- 🔧 #262: adding connection pool for chat request and response (#271) (@tom-fitz)

### Changed

- 🔧 #238 Implements human-readable durations in config (#253) (@ppmdo)
- 🔧 #266: removing omitempty from response definition (#267) (@tom-fitz)

#### Breaking Changes

- 🔧 💥 #235: Extended the non-streaming chat error schema with new fields to give clients more context around the error (#236) (@roma-glushko)
- 💥 Convert all camelCase config fields to the snake_case in the provider configs (#260) (@roma-glushko)
- ✨💥 #153: Allow to pass multiple model-specific param overrides (#264) (@roma-glushko)

### Fixed

- 🐛 #217: Set build info correctly in Glide images (#218) (@roma-glushko)

### Security

- 🔒 Updated golang to 1.22.4 to address CVE-2024-24790 (#276) (@STAR-173)

### Miscellaneous

- 📝 Defined a way to manage EinStack Glide project (#234) (@roma-glushko)
- 👷 #219: Setup local telemetry stack with Jaeger, Grafana, VictoriaMetrics and OTEL Collector (#225) (@roma-glushko)
- 👷‍♂️ Added a new GH action to watch for glide activity stream (#239, #244) (@roma-glushko)
- ✨ Switched to the new docs (@roma-glushko)
- 🔧 #240: Automatically install air (#277, #270) (@ppmdo, @roma-glushko)

## [0.0.3-rc.2], [0.0.3] (Apr 17, 2024)

Final major improvements to streaming chat workflow. Fixed issues with Cohere streaming chat.
Expanded and revisited Cohere params in config.
Expand Down Expand Up @@ -166,7 +210,8 @@ Bringing support for streaming chat in Glide.
- 🔧 [chores] Automatic coverage reports #39 (@roma-glushko)
- 👷 [build] Setup release workflows #9 (@roma-glushko)

[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/0.0.3...HEAD
[unreleased]: https://github.com/EinStack/glide/compare/0.1.0-rc.1...HEAD
[0.1.0-rc.1]: https://github.com/EinStack/glide/compare/0.0.3...0.1.0-rc.1
[0.0.3]: https://github.com/EinStack/glide/compare/0.0.3-rc.1..0.0.3
[0.0.3-rc.2]: https://github.com/EinStack/glide/compare/0.0.3-rc.1..0.0.3-rc.2
[0.0.3-rc.1]: https://github.com/EinStack/glide/compare/0.0.2..0.0.3-rc.1
Expand Down
21 changes: 21 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,24 @@ That's perfectly fine!
Feel free to connect with us in [Discord](https://discord.gg/rsBzprY7uT) and ask any question you have.
Remember, there are no dumb questions, but there can be missing opportunities to make your life easier if you don't speak up about things you struggle with.



## Project Management

EinStack uses Github functionality to do all sorts of management and planning of Glide functionality:

- We use Github Projects to manage [the Glide's roadmap](https://github.com/orgs/EinStack/projects/1/views/4)
- We use Github issues to manage epics (e.g. bigger functionality that would not fit one task or pull request) and the corresponding tasks
- Github issue labels to indicate epic priority and other horizontal properties of the functionality like type, area, etc
- Github milestones to assign epics to upcoming releases which may be connected to Glide incremental releases or solve some specific use case (e.g. RAG)

<img src="docs/images/einstack-project-management.png" width="400px" alt="Glide Project Management" />

### How to add a new epic?

You can do that by:
- creating a new Github issue
- assigning the `type:epic` to it
- adding it to [the Glide Roadmap project](https://github.com/orgs/EinStack/projects/1/views/4) (the backlog status)

Be sure to let everyone know about this in the EinStack Discord (#general channel is fine).
37 changes: 27 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
CHECKER_BIN=$(PWD)/tmp/bin
VERSION_PACKAGE := glide/pkg
VERSION_PACKAGE := glide/pkg/version
COMMIT ?= $(shell git describe --dirty --long --always --abbrev=15)
BUILD_DATE ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
VERSION ?= "latest"

LDFLAGS_COMMON := "-s -w -X $(VERSION_PACKAGE).commitSha=$(COMMIT) -X $(VERSION_PACKAGE).version=$(VERSION) -X $(VERSION_PACKAGE).buildDate=$(BUILD_DATE)"
LDFLAGS_COMMON := "-X $(VERSION_PACKAGE).commitSha=$(COMMIT) -X $(VERSION_PACKAGE).Version=$(VERSION) -X $(VERSION_PACKAGE).buildDate=$(BUILD_DATE)"

.PHONY: help

Expand All @@ -13,14 +13,16 @@ help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'


install-checkers: ## Install static checkers
$(CHECKER_BIN)/.installed: $(CHECKER_BIN)/.installed ## Install static checkers
@echo "🚚 Downloading binaries.."
@GOBIN=$(CHECKER_BIN) go install mvdan.cc/gofumpt@latest
@GOBIN=$(CHECKER_BIN) go install golang.org/x/vuln/cmd/govulncheck@latest
@GOBIN=$(CHECKER_BIN) go install github.com/securego/gosec/v2/cmd/gosec@latest
@GOBIN=$(CHECKER_BIN) go install github.com/swaggo/swag/cmd/swag@latest
@GOBIN=$(CHECKER_BIN) go install github.com/air-verse/air@latest
@touch $(CHECKER_BIN)/.installed

lint: install-checkers ## Lint the source code
lint: $(CHECKER_BIN)/.installed ## Lint the source code
@echo "🧹 Cleaning go.mod.."
@go mod tidy
@echo "🧹 Formatting files.."
Expand All @@ -31,19 +33,34 @@ lint: install-checkers ## Lint the source code
@echo "🧹 GoCI Lint.."
@golangci-lint run ./...

vuln: install-checkers ## Check for vulnerabilities
vuln: $(CHECKER_BIN)/.installed ## Check for vulnerabilities
@echo "🔍 Checking for vulnerabilities"
@#$(CHECKER_BIN)/govulncheck -test ./... enable in https://github.com/EinStack/glide/issues/169
@$(CHECKER_BIN)/gosec -quiet -exclude=G104 ./...

run: ## Run Glide
@go run -ldflags $(LDFLAGS_COMMON) main.go -c ./config.dev.yaml
run: $(CHECKER_BIN)/.installed ## Run Glide
@$(CHECKER_BIN)/air -c .air.toml

build: ## Build Glide
@go build -ldflags $(LDFLAGS_COMMON) -o ./dist/glide
@echo "🔨Building Glide binary.."
@echo "Version: $(VERSION)"
@echo "Commit: $(COMMIT)"
@echo "Build Date: $(BUILD_DATE)"
@go build -ldflags $(LDFLAGS_COMMON) -o ./dist/glide;

test: ## Run tests
@go test -v -count=1 -race -shuffle=on -coverprofile=coverage.txt ./...
@go test -v -count=1 -race -shuffle=on -coverprofile=coverage.out ./...

docs-api: install-checkers ## Generate OpenAPI API docs
test-cov: ## Run tests with coverage
@go tool cover -func=coverage.out

docs-api: $(CHECKER_BIN)/.installed ## Generate OpenAPI API docs
@$(CHECKER_BIN)/swag init

telemetry-up: ## Start observability services needed to receive Glides signals
@docker-compose --profile telemetry up --wait
@echo "Jaeger UI: http://localhost:16686/"
@echo "Grafana UI: http://localhost:3000/"

telemetry-down: ## Shutdown observability services needed to receive Glides signals
@docker-compose --profile telemetry down
Loading

0 comments on commit 1e2b16f

Please sign in to comment.