Skip to content

Commit 62a0c59

Browse files
authored
πŸ“¦ v0.0.2-rc.1 (#143)
### Features - ✨ #117 Allow to load dotenv files (@roma-glushko) ### Improvements - βœ¨πŸ‘· #91 Support for Windows (@roma-glushko) - πŸ‘· #139 Build Glide for OpenBSD and ppc65le, s390x, riscv64 architectures (@roma-glushko) ### Miscellaneous - πŸ‘· #92 Release binaries to Snapcraft (@roma-glushko) - πŸ‘· #123 publish images to DockerHub (@roma-glushko) - πŸ”§ #136 Migrated all API to Fiber (@roma-glushko) - πŸ‘· #139 Create a image tag with pure version (without distro suffix) (@roma-glushko)
1 parent b02c949 commit 62a0c59

30 files changed

Lines changed: 658 additions & 298 deletions

β€Ž.env.sampleβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
OPENAI_API_KEY=

β€Ž.github/workflows/release.yamlβ€Ž

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ jobs:
3333
with:
3434
fetch-depth: 0
3535

36+
- name: Snapcraft Setup
37+
run: |
38+
sudo apt-get update
39+
sudo apt-get -yq --no-install-suggests --no-install-recommends install snapcraft
40+
mkdir -p $HOME/.cache/snapcraft/download
41+
mkdir -p $HOME/.cache/snapcraft/stage-packages
42+
3643
- name: Run GoReleaser
3744
uses: goreleaser/goreleaser-action@v5
3845
with:
@@ -41,6 +48,7 @@ jobs:
4148
args: release --clean
4249
env:
4350
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
51+
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_TOKEN }}
4452
DISCORD_WEBHOOK_ID: ${{ secrets.DISCORD_WEBHOOK_ID }}
4553
DISCORD_WEBHOOK_TOKEN: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
4654
BREW_TAP_PRIVATE_KEY: ${{ secrets.BREW_TAP_PRIVATE_KEY }}
@@ -64,6 +72,9 @@ jobs:
6472
- name: login into Github Container Registry
6573
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
6674

75+
- name: login into Github Container Registry
76+
run: echo "${{ secrets.DOCKER_HUB_TOKEN }}" | docker login -u einstack $ --password-stdin
77+
6778
- name: build ${{ matrix.image }} image
6879
working-directory: ./images
6980
env:
@@ -73,3 +84,7 @@ jobs:
7384
- name: publish ${{ matrix.image }} image to Github Container Registry
7485
working-directory: ./images
7586
run: VERSION=${{ github.ref_name }} make publish-ghcr-${{ matrix.image }}
87+
88+
- name: publish ${{ matrix.image }} image to Github Container Registry
89+
working-directory: ./images
90+
run: VERSION=${{ github.ref_name }} make publish-docherhub-${{ matrix.image }}

β€Ž.goreleaser.ymlβ€Ž

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,21 @@ builds:
1414
- linux
1515
- darwin
1616
- freebsd
17+
- openbsd
18+
- windows
1719
goarch:
1820
- amd64
1921
- arm
2022
- arm64
23+
- ppc64le
24+
- s390x
25+
- riscv64
2126
goarm:
2227
- '7'
2328
- '6'
2429
ignore:
30+
- goos: darwin
31+
goarch: '386'
2532
- goos: openbsd
2633
goarch: arm
2734
- goos: openbsd
@@ -30,7 +37,7 @@ builds:
3037
goarch: arm
3138
- goos: freebsd
3239
goarch: arm64
33-
- goos: linux
40+
- goos: windows
3441
goarch: arm
3542

3643
changelog:
@@ -45,6 +52,8 @@ archives:
4552
format: zip
4653
files:
4754
- LICENSE
55+
- CHANGELOG.md
56+
- ROADMAP.md
4857

4958
checksum:
5059
name_template: "{{ .ProjectName }}_v{{ .Version }}_checksums.txt"
@@ -221,6 +230,107 @@ brews:
221230
url: 'git@github.com:EinStack/homebrew-tap.git'
222231
private_key: '{{ .Env.BREW_TAP_PRIVATE_KEY }}'
223232

233+
snapcrafts:
234+
- #
235+
# ID of the snapcraft config, must be unique.
236+
#
237+
# Default: 'default'
238+
id: glide
239+
240+
# Build IDs for the builds you want to create snapcraft packages for.
241+
builds:
242+
- glide
243+
244+
# You can change the name of the package.
245+
#
246+
# Default: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'
247+
# Templates: allowed
248+
name_template: '{{ .ProjectName }}_v{{ .Tag }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
249+
250+
# The name of the snap. This is optional.
251+
#
252+
# Default: ProjectName
253+
name: glide
254+
255+
# The canonical title of the application, displayed in the software
256+
# centre graphical frontends.
257+
#
258+
# Since: v1.19
259+
title: Glide
260+
261+
# Whether to publish the snap to the snapcraft store.
262+
# Remember you need to `snapcraft login` first.
263+
publish: true
264+
265+
# Single-line elevator pitch for your amazing snap.
266+
# 79 char long at most.
267+
summary: A open simple blazing-fast model gateway
268+
269+
# This the description of your snap. You have a paragraph or two to tell the
270+
# most important story about your snap. Keep it under 100 words though,
271+
# we live in tweetspace and your description wants to look good in the snap
272+
# store.
273+
description: A open simple blazing-fast model gateway for rapid development of production GenAI apps
274+
275+
# Channels in store where snap will be pushed.
276+
#
277+
# More info about channels here:
278+
# https://snapcraft.io/docs/reference/channels
279+
#
280+
# Default:
281+
# grade is 'stable': ["edge", "beta", "candidate", "stable"]
282+
# grade is 'devel': ["edge", "beta"]
283+
# Templates: allowed (since v1.15)
284+
channel_templates:
285+
- edge
286+
- beta
287+
- candidate
288+
- stable
289+
290+
# A guardrail to prevent you from releasing a snap to all your users before
291+
# it is ready.
292+
# `devel` will let you release only to the `edge` and `beta` channels in the
293+
# store. `stable` will let you release also to the `candidate` and `stable`
294+
# channels.
295+
grade: stable
296+
297+
# Snaps can be setup to follow three different confinement policies:
298+
# `strict`, `devmode` and `classic`. A strict confinement where the snap
299+
# can only read and write in its own namespace is recommended. Extra
300+
# permissions for strict snaps can be declared as `plugs` for the app, which
301+
# are explained later. More info about confinement here:
302+
# https://snapcraft.io/docs/reference/confinement
303+
confinement: strict
304+
305+
# Your app's license, based on SPDX license expressions:
306+
# https://spdx.org/licenses
307+
license: Apache-2.0
308+
309+
# A snap of type base to be used as the execution environment for this snap.
310+
# Valid values are:
311+
# * bare - Empty base snap;
312+
# * core - Ubuntu Core 16;
313+
# * core18 - Ubuntu Core 18.
314+
base: core20
315+
316+
# A list of features that must be supported by the core in order for
317+
# this snap to install.
318+
#
319+
# Since: v1.19
320+
assumes:
321+
- snapd2.38
322+
323+
# Each binary built by GoReleaser is an app inside the snap. In this section
324+
# you can declare extra details for those binaries. It is optional.
325+
# See: https://snapcraft.io/docs/snapcraft-app-and-service-metadata
326+
apps:
327+
# The name of the app must be the same name as the binary built or the snapcraft name.
328+
glide:
329+
# You can override the command name.
330+
#
331+
# Default: AppName
332+
command: glide
333+
224334
announce:
225335
discord:
226336
# Whether its enabled or not.

β€ŽCHANGELOG.mdβ€Ž

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ The changelog consists of three categories:
55
- **Improvements** - bugfixes, performance and other types of improvements to existing functionality
66
- **Miscellaneous** - all other updates like build, release, CLI, etc.
77

8+
## 0.0.2-rc.1 (Feb 12th, 2024)
9+
10+
### Features
11+
12+
- ✨#117 Allow to load dotenv files (@roma-glushko)
13+
14+
### Improvements
15+
16+
- βœ¨πŸ‘·#91 Support for Windows (@roma-glushko)
17+
- πŸ‘· #139 Build Glide for OpenBSD and ppc65le, s390x, riscv64 architectures (@roma-glushko)
18+
19+
### Miscellaneous
20+
21+
- πŸ‘· #92 Release binaries to Snapcraft (@roma-glushko)
22+
- πŸ‘· #123 publish images to DockerHub (@roma-glushko)
23+
- πŸ”§ #136 Migrated all API to Fiber (@roma-glushko)
24+
- πŸ‘· #139 Create a image tag with pure version (without distro suffix) (@roma-glushko)
25+
826
## 0.0.1 (Jan 31st, 2024)
927

1028
### Features

β€ŽCONTRIBUTING.mdβ€Ž

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Contribution Guide
2+
3+
First off, we are super excited that you are willing to improve Glide πŸ™Œ
4+
5+
There are three areas to contribute:
6+
7+
- **Technical**: Help us to improve existing functionality, fix bugs, and bring on new features both to Glide and related repositories like Python SDK.
8+
- **Documentation**: Improve documentation content, uncover undocumented features & gotchas, write guides and walkthroughs.
9+
- **Vision**: Help us to uncover use cases where Glide could have helped that might be useful for a broader set of people
10+
11+
---
12+
13+
## Technical Contribution
14+
15+
### Communication & Coordination
16+
17+
We value your time.
18+
To make your onboarding as smooth as possible while reducing amount of back and forth,
19+
we coordinate and communicate in [the EinStack's Discord space](https://discord.gg/rsBzprY7uT) before jumping on anything major.
20+
21+
Overcommunication is the key to solving many problems.
22+
23+
### GEPs
24+
25+
We are using [enhancement proposals](https://github.com/EinStack/geps) to
26+
define bigger problems and suggest our solutions to them.
27+
28+
The enhancement proposals share your ideas on solving the problem and let other people give a feedback,
29+
identify areas to investigate, brainstorm alternatives.
30+
31+
To start a new GEP, you don't have to know all the answers to all questions.
32+
You can outline gaps and let other people contribute their ideas on possible solutions.
33+
34+
### Dev Commands
35+
36+
Many useful commands are in [the root makefile](Makefile).
37+
We use make as a convenient interface to automate a bunch of commands like codebase linting, running tests, running dev binary, etc.
38+
Be sure to take a look at all available commands.
39+
40+
### CI Checks
41+
42+
All important checks are automated on the level of pull request checks.
43+
Be sure to keep your PRs green, before moving the PR to the review stage.
44+
45+
## Improve Our Documentation
46+
47+
### Typos & Uncovered Functionality
48+
49+
If you spot a typo or incorrect information, please do use the `raise issue` or `suggest edits` functionality directly on the documentation page.
50+
51+
If you see some uncovered functionality, please fill briefly [a Github issue](https://github.com/EinStack/docs/issues).
52+
53+
### Guides
54+
55+
A special place takes our guides. Guide is a walkthrough that solves a concrete use case or problem step by step.
56+
57+
To inspire our end users and illustrate the true capabilities of Glide, we want to grow the number of guides.
58+
59+
If you have any specific use cases to cover, please do let us know in [Discord](https://discord.gg/rsBzprY7uT) or [our docs repo](https://github.com/EinStack/docs) (even if you don't have a chance to work on that).
60+
61+
## Expand Our Vision
62+
63+
If you feel like we have overlooked
64+
some useful functionality or features that would be great to have,
65+
feel free to create a new discussion in [our Github Discussions](https://github.com/EinStack/glide/discussions/categories/ideas).
66+
67+
We will review and discuss all ideas and will try to fit them into [the Glide's roadmap](ROADMAP.md).
68+
69+
## Don't want to contribute but uses Glide
70+
71+
That's perfectly fine!
72+
73+
Feel free to connect with us in [Discord](https://discord.gg/rsBzprY7uT) and ask any question you have.
74+
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.
75+

β€ŽREADME.mdβ€Ž

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Check out our [documentation](https://glide.einstack.ai)!
3535
- **High availability** and **resiliency** when working with external model providers. Automatic **fallbacks** on provider failures, rate limits, transient errors. Smart retries to reduce communication latency.
3636
- Support **popular LLM providers**.
3737
- **High performance**. Performance is our priority. We want to keep Glide "invisible" for your latency-wise, while providing rich functionality.
38-
- **Production-ready observability** via OpenTelemetry, emit metrics on models health, allows whitebox monitoring.
38+
- **Production-ready observability** via OpenTelemetry, emit metrics on models health, allows whitebox monitoring (coming soon)
3939
- Straightforward and simple maintenance and configuration, centralized API key control & management & rotation, etc.
4040

4141
## Supported Providers
@@ -72,6 +72,9 @@ Detailed info on routers can be found [here](https://glide.einstack.ai/essential
7272

7373
### Installation
7474

75+
> [!Note]
76+
> Windows users should follow an instruction right from [the demo README file](https://github.com/EinStack/glide-demo) that specifies how to do the steps without the `make` command as Windows doesn't come with it by default.
77+
7578
The easiest way to deploy Glide is to our [demo repository](https://github.com/EinStack/glide-demo.git) and [docker-compose](https://docs.docker.com/compose/).
7679

7780
### 1. Clone the demo repository
@@ -120,7 +123,7 @@ See [API Reference](https://glide.einstack.ai/api-reference/introduction) for mo
120123

121124
### API Docs
122125

123-
Finally, Glide comes with OpenAPI documentation that is accessible via http://127.0.0.1:9099/v1/swagger/index.html
126+
Finally, Glide comes with OpenAPI documentation that is accessible via http://127.0.0.1:9099/v1/swagger
124127

125128
That's it πŸ™Œ
126129

@@ -139,11 +142,37 @@ brew install einstack/tap/glide
139142

140143
### Snapcraft (Linux)
141144

142-
Coming Soon
145+
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-white.svg)](https://snapcraft.io/glide)
146+
147+
```bash
148+
snap install glide
149+
```
150+
151+
To upgrade the already installed package, you just need to run:
152+
153+
```bash
154+
snap refresh glide
155+
```
156+
157+
Detailed instruction on Snapcraft installation for different Linux distos:
158+
159+
- [Arch](https://snapcraft.io/install/glide/arch)
160+
- [CentOS](https://snapcraft.io/install/glide/centos)
161+
- [Debian](https://snapcraft.io/install/glide/debian)
162+
- [elementaryOS](https://snapcraft.io/install/glide/elementary)
163+
- [Fedora](https://snapcraft.io/install/glide/fedora)
164+
- [KDE Neon](https://snapcraft.io/install/glide/kde-neon)
165+
- [Kubuntu](https://snapcraft.io/install/glide/kubuntu)
166+
- [Manjaro](https://snapcraft.io/install/glide/manjaro)
167+
- [Pop! OS](https://snapcraft.io/install/glide/pop)
168+
- [openSUSE](https://snapcraft.io/install/glide/opensuse)
169+
- [RHEL](https://snapcraft.io/install/glide/rhel)
170+
- [Ubuntu](https://snapcraft.io/install/glide/ubuntu)
171+
- [Raspberry Pi](https://snapcraft.io/install/glide/raspbian)
143172

144173
### Docker Images
145174

146-
Glide provides official images in our [GHCR](https://github.com/EinStack/glide/pkgs/container/glide):
175+
Glide provides official images in our [GHCR](https://github.com/EinStack/glide/pkgs/container/glide) & [DockerHub](https://hub.docker.com/u/einstack ):
147176

148177
- Alpine 3.19:
149178
```bash

0 commit comments

Comments
Β (0)