Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

πŸ“¦ Release: v0.1.0-rc.1 #280

Merged
merged 51 commits into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
4edb644
✨ #149: Streaming Chat Workflow (#150)
roma-glushko Mar 2, 2024
ec690f4
πŸ› Update README.md to fix helm chart location (#167)
arjunnair22 Mar 7, 2024
c480cfe
πŸ”“ #148 update crypto lib, golang, fiber (#168)
roma-glushko Mar 11, 2024
1add6e3
πŸ”§ updated .go-version
roma-glushko Mar 11, 2024
a04eccf
✨ #163: Evolving the resiliency & routing architecture to support cha…
roma-glushko Mar 17, 2024
3742035
βœ… #146: Covered the telemetry by tests (#176)
roma-glushko Mar 17, 2024
dc7d42f
πŸ”§ #161: Refined the chat stream req/responses (#179)
roma-glushko Mar 19, 2024
369ddea
✨ #170 Handle unauthorized error in health tracker (#180)
roma-glushko Mar 19, 2024
e37b0f8
βœ¨πŸ› #183: Fix Anthropic API key header and start counting its token us…
roma-glushko Mar 24, 2024
bc1a665
πŸ“ Separate and list all supported capabilities per provider (#190)
roma-glushko Mar 24, 2024
428c467
✨ #173: Add Streaming Support for Azure OpenAI (#188)
mkrueger12 Mar 24, 2024
f76eb86
✨ #171: Cohere Streaming Chat Support (#189)
mkrueger12 Mar 26, 2024
f27e889
πŸ“ Made Glide's changelog compatible with the keepchangelog.com format
roma-glushko Apr 7, 2024
12df04f
πŸ“ Kept Python & NodeJS clients in SDK section
roma-glushko Apr 7, 2024
a3bcba0
πŸ›πŸ”§ #197: Handle max_tokens & content_filtered finish reasons across O…
roma-glushko Apr 11, 2024
45d9aa1
πŸ”§ #186: Rendering Durations in a human-friendly way (#202)
roma-glushko Apr 11, 2024
9a0ee6d
πŸ› #200: Implemented a custom json per line stream reader to read Cohe…
roma-glushko Apr 15, 2024
de3677e
πŸ“ Updated providers that support chat streaming
roma-glushko Apr 15, 2024
4a9735c
πŸ”§ #195 #196: Set router ctx in stream chunks & handle end of stream i…
roma-glushko Apr 16, 2024
8e95a4f
πŸ”§ πŸ’₯ #198: Expose more Cohere params (#199)
roma-glushko Apr 16, 2024
8e77c63
πŸ› #209: Embed Swagger specs into binary to fix panic caused by missin…
roma-glushko Apr 16, 2024
d923742
Merge branch 'main' into develop
roma-glushko Apr 16, 2024
75c2df3
πŸ“ Added 0.0.3-rc.2 changelog
roma-glushko Apr 16, 2024
1b9e9f6
πŸ“ Marked 0,03-rc.2 as stable version 0.0.3
roma-glushko Apr 16, 2024
8f4a8be
Merge branch 'main' into develop
roma-glushko Apr 16, 2024
cad92f5
πŸ“ Fixed typo
roma-glushko Apr 23, 2024
bc5d95f
πŸ› #217: Set build info correctly in Glide images (#218)
roma-glushko Apr 27, 2024
cf137da
πŸ‘· #219: Setup local telemetry stack with Jaeger, Grafana, VictoriaMet…
roma-glushko Apr 29, 2024
2db285c
πŸ”§ Use github.com/EinStack/glide as module name to support go install cmd
gernest May 1, 2024
66c5f5b
πŸ“ Defined a way to manage EinStack Glide project (#234)
roma-glushko May 5, 2024
d453ca6
πŸ‘·β€β™‚οΈ Added a new GH action to watch for glide activity stream (#239)
roma-glushko May 5, 2024
602f53e
βœ¨πŸ”§ Setup Open Telemetry Metrics and Traces (#237)
gernest May 5, 2024
8b420f7
πŸ› Running the notification action from the base repo context to share…
roma-glushko May 5, 2024
a54eb57
πŸ”§ #221 Add B3 propagator (#242)
gernest May 6, 2024
ab244b2
πŸ”§ #241 Support overriding OTEL resource attributes (#243)
gernest May 6, 2024
bd03442
πŸ”§ #164 Make client connection pool configurable across all providers …
daesu May 8, 2024
321b002
πŸ”§ #248 Disable span and metrics by default (#254)
gernest May 12, 2024
3b37d0b
πŸ”§ #220 Instrument API server (#255)
gernest May 12, 2024
3fa5b45
πŸ”§ πŸ’₯ #235: Extended the non-streaming chat error schema with new field…
roma-glushko May 12, 2024
70f1207
πŸ’₯ Convert all camelCase config fields to the snake_case in the provid…
roma-glushko May 19, 2024
8986edb
πŸ”§ Instrument gateway process (#256)
gernest May 19, 2024
03f1805
πŸ”§ #238 Implements human readable durations in config (#253)
ppmdo May 22, 2024
da72edb
πŸ”§ #266: removing omitempty from response definition (#267)
tom-fitz Jun 5, 2024
b80a3f9
✨πŸ’₯ #153: Allow to pass multiple model-specific param overrides (#264)
roma-glushko Jun 5, 2024
0bb4878
πŸ”§ #262: adding connection pool for chat request and response (#271)
tom-fitz Jun 13, 2024
27b98af
✨ Switched to the new docs
roma-glushko Jun 19, 2024
b7e7db4
πŸ”’ Updated golang to 1.22.4 to address CVE-2024-24790 (#276)
STAR-173 Jun 23, 2024
08ee414
πŸ”§ Adds support for Air live reloading (#270)
ppmdo Jun 23, 2024
765f874
πŸ”§ #240: Automatically install air (#277)
roma-glushko Jun 23, 2024
7faf386
#67: Collected changelog for 0.1.0-rc.1
roma-glushko Jun 24, 2024
59aafab
Merge branch 'main' into develop
roma-glushko Jun 24, 2024
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
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
Loading