Skip to content

Commit

Permalink
chore: update dependency versions (#103)
Browse files Browse the repository at this point in the history
  • Loading branch information
utybo authored Oct 20, 2024
1 parent 9fa9827 commit 6a9a6c7
Show file tree
Hide file tree
Showing 47 changed files with 11,509 additions and 6,699 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ jobs:
java-version: "11"
- uses: pnpm/action-setup@v4
with:
version: 7
version: 9
- uses: actions/setup-node@v4
with:
cache: "pnpm"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ bin
!.idea/icon.png
.sgp
dev.db
.kotlin
12 changes: 4 additions & 8 deletions docs/blog/2022-06-02-tegral-001/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,15 @@
title: Welcome to Tegral 0.0.1!
description: The first release of Tegral is now available!
slug: welcome-to-tegral-v0-0-1
authors:
- name: utybo
title: Maintainer
url: https://github.com/utybo
image_url: https://github.com/utybo.png
authors: utybo
tags: [release]
image: damien-cornu-VzsixizA4c8-unsplash.jpg
hide_table_of_contents: false
---

Welcome to the first release of Tegral! Let's discuss what Tegral aims to be, give you a little context, and talk about what's already available. 👀

<!--truncate-->
<!-- truncate -->

![Mountain](damien-cornu-VzsixizA4c8-unsplash.jpg)

Expand All @@ -30,11 +26,11 @@ So here it is! Tegral has a few fundamental ideas behind it:

### Integrable-first

I.e., build everything expecting that people will want to use your libraries *without* necessarily using the entire framework.
I.e., build everything expecting that people will want to use your libraries _without_ necessarily using the entire framework.

This is something that drove me crazy with [Quarkus'](https://quarkus.io) OIDC implementation. It had everything I needed, but was basically impossible to use without using a) the entire framework and b) in the ultra integrated way. That's a fine strategy, but I also find it extremely counter-productive, as it means you would have to reimplement logic you could just use cleanly from somewhere else.

This is one of the big design decisions behind Tegral: it's a collection of libraries *before* being a framework. It just so happens that, when you combine everything, it gives you a really nice platform to build apps.
This is one of the big design decisions behind Tegral: it's a collection of libraries _before_ being a framework. It just so happens that, when you combine everything, it gives you a really nice platform to build apps.

### No code generation

Expand Down
14 changes: 5 additions & 9 deletions docs/blog/2022-08-14-tegral-002/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,15 @@
title: Introducing Tegral 0.0.2
description: OpenAPI support, integration testing and much more!
slug: introducing-tegral-0-0-2
authors:
- name: utybo
title: Maintainer
url: https://github.com/utybo
image_url: https://github.com/utybo.png
authors: utybo
tags: [release]
image: john-towner-p-rN-n6Miag-unsplash.jpg
hide_table_of_contents: false
---

Tegral 0.0.2 is a massive update, with over 40 bullet points in our [changelog](https://github.com/utybo/Tegral/tree/main/CHANGELOG.md)! Let's go through the biggest changes, including new OpenAPI support, integration testing support, and more robust dependency injection internals!

<!--truncate-->
<!-- truncate -->

![Splash art for version 0.0.2](john-towner-p-rN-n6Miag-unsplash.jpg)

Expand Down Expand Up @@ -306,7 +302,7 @@ Not anymore!

### The solution

The components contained in an environment were overhauled to now map identifiers to *resolvers*.
The components contained in an environment were overhauled to now map identifiers to _resolvers_.

```mermaid
graph LR
Expand Down Expand Up @@ -385,7 +381,7 @@ You can now configure logging levels for the various loggers directly in your `t
```toml
[tegral.logging]
# Default root logging level
level = "Debug"
level = "Debug"

[tegral.logging.loggers."my.logger"]
# Logging level for the "my.logger" logger
Expand All @@ -398,7 +394,7 @@ Logs will look a bit nicer by default in your Tegral Web applications (with colo

## Miscellaneous highlights

*For a full list of changes, please refer to our [changelog](https://github.com/utybo/Tegral/tree/main/CHANGELOG.md).*
_For a full list of changes, please refer to our [changelog](https://github.com/utybo/Tegral/tree/main/CHANGELOG.md)._

- Tegral DI: `UnsafeMutableEnvironment`, which is the environment you use when testing Tegral DI-powered components, is now extensible. This allows you to install Tegral DI extensions in tests.

Expand Down
8 changes: 2 additions & 6 deletions docs/blog/2022-10-01-tegral-003/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,14 @@
title: Tegral 0.0.3 release
description: Just a big ol' bunch of bug fixes and improvements
slug: tegral-0-0-3-release
authors:
- name: utybo
title: Maintainer
url: https://github.com/utybo
image_url: https://github.com/utybo.png
authors: utybo
tags: [release]
image: zhao-chen-ag-RTLJgy54-unsplash.jpg
---

Tegral 0.0.3 fixes a few things from the 0.0.2 updates. It also adds a new integration for Ktor resources.

<!--truncate-->
<!-- truncate -->

![An image of a foggy mountain scenery](zhao-chen-ag-RTLJgy54-unsplash.jpg)

Expand Down
10 changes: 3 additions & 7 deletions docs/blog/2023-05-14-tegral-004/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@
title: "Tegral 0.0.4 release"
description: 0.0.4 is now available! New modules for parsers, lexers, a Prisma generator and more!
slug: tegral-0-0-4-release
authors:
- name: utybo
title: Maintainer
url: https://github.com/utybo
image_url: https://github.com/utybo.png
authors: utybo
tags: [release]
image: steel-scaffolding-g85ea1a499_1280.jpg
---
Expand Down Expand Up @@ -142,7 +138,7 @@ OpenAPI documents are made of paths (e.g. `/foo/bar`), which themselves contain

Previously, you could only define operation attributes (descriptions, responses, headers, etc.) on the operation. That ended up being somewhat cumbersome as all operations in a single path tend to have some similar details (e.g. two operations under `/cat/{id}` will both have information on the `id` parameter).

Moreover, as a @Ribesg pointed out [in a GitHub issue](https://github.com/utybo/Tegral/issues/59), that ended up making things like properly defining multiple operations on a single Ktor resource impossible. More specifically, Ktor resources provide an *operation* description while they actually really only represent *paths*. That meant that you could not define multiple descriptions for the same resource.
Moreover, as a @Ribesg pointed out [in a GitHub issue](https://github.com/utybo/Tegral/issues/59), that ended up making things like properly defining multiple operations on a single Ktor resource impossible. More specifically, Ktor resources provide an _operation_ description while they actually really only represent _paths_. That meant that you could not define multiple descriptions for the same resource.

You can now define properties that should be present on all operations of a path directly in the path. For example:

Expand Down Expand Up @@ -211,7 +207,7 @@ class Cat(val id: Long) {

### Cascading OpenAPI descriptions for Ktor resources

Ktor resources' descriptions will now *cascade*. Anything defined at the path level of an outer resource will be replicated in the inner resource, e.g.:
Ktor resources' descriptions will now _cascade_. Anything defined at the path level of an outer resource will be replicated in the inner resource, e.g.:

```kotlin
@Resource("/cat") @Serializable
Expand Down
18 changes: 8 additions & 10 deletions docs/blog/2023-12-31-tegral-005/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@
title: "Tegral 0.0.5 release"
description: 0.0.5 is now available!
slug: tegral-0-0-5-release
authors:
- name: Matthieu
title: Maintainer
url: https://github.com/utybo
image_url: https://github.com/utybo.png
authors: utybo
tags: [release]
draft: true
image: steel-scaffolding-g85ea1a499_1280.jpg
Expand All @@ -16,6 +12,8 @@ Welcome to the release notes for Tegral 0.0.5!

<!-- TODO -->

<!-- truncate -->

## Fundefs, phase 2

:::note Experimental
Expand All @@ -24,7 +22,7 @@ Everything discussed in this section is experimental and requires the `@OptIn(Ex

:::

In the [0.0.4 release](../2023-05-14-tegral-004/index.md#experimental-fundefs-in-tegral-di), I announced the availability of *fundefs* in Tegral DI. As a reminder, fundefs are a relatively low-level part of Tegral DI which allow you to create *functional component definitions*, like this one:
In the [0.0.4 release](../2023-05-14-tegral-004/index.md#experimental-fundefs-in-tegral-di), I announced the availability of _fundefs_ in Tegral DI. As a reminder, fundefs are a relatively low-level part of Tegral DI which allow you to create _functional component definitions_, like this one:

```kotlin title="Tegral 0.0.4"
class Greeter {
Expand Down Expand Up @@ -69,7 +67,7 @@ val result = fundef.invoke()
// result == "Hello, Alice!"
```

The `@Fundef` *should* be a temporary measure, and may be removed in the future if all goes according to plan.
The `@Fundef` _should_ be a temporary measure, and may be removed in the future if all goes according to plan.

### Tegral Web Controllers support

Expand Down Expand Up @@ -127,11 +125,11 @@ fun Application.myModule() {

## Configurable features

Tegral Featureful features, which are the basic building block of Tegral applications, can now be configured *in-code*.
Tegral Featureful features, which are the basic building block of Tegral applications, can now be configured _in-code_.

Previously, if you wanted to add configuration to your feature, you had to use *external configuration*, as in relying on a configuration file from a user. This can get quite cumbersome and limited quite quickly, and I believed we needed an alternative to simply declare some internal configuration that pretty much never changes based on some external configuration.
Previously, if you wanted to add configuration to your feature, you had to use _external configuration_, as in relying on a configuration file from a user. This can get quite cumbersome and limited quite quickly, and I believed we needed an alternative to simply declare some internal configuration that pretty much never changes based on some external configuration.

This is possible thanks to a significant redesign of the core `Feature` interfaces. In a nutshell, you can now configure compatible features (as in, features that *can* be configured this way) like so:
This is possible thanks to a significant redesign of the core `Feature` interfaces. In a nutshell, you can now configure compatible features (as in, features that _can_ be configured this way) like so:

```kotlin
tegral {
Expand Down
6 changes: 6 additions & 0 deletions docs/blog/authors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
utybo:
name: Matthieu
title: Maintainer
url: https://github.com/utybo
image_url: https://github.com/utybo.png
github: utybo
2 changes: 1 addition & 1 deletion docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ configurations {

def docsInputFiles = [
'babel.config.js',
'docusaurus.config.js',
'docusaurus.config.ts',
'sidebars.js'
]

Expand Down
38 changes: 18 additions & 20 deletions docs/docusaurus.config.js → docs/docusaurus.config.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
/* eslint-env node */

const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
import { themes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import path from "path";

/** @type {import('@docusaurus/types').Config} */
const config = {
export default {
title: "Tegral",
tagline: "A collection of reusable Kotlin libraries and frameworks, and a web framework that ties them together.",
tagline:
"A collection of reusable Kotlin libraries and frameworks, and a web framework that ties them together.",
url: "https://tegral.zoroark.guru",
baseUrl: "/",
onBrokenLinks: "throw",
Expand All @@ -30,10 +30,10 @@ const config = {
presets: [
[
"classic",
/** @type {import('@docusaurus/preset-classic').Options} */
({
{
/** @type {import('@docusaurus/preset-classic').Options} */
docs: {
sidebarPath: require.resolve("./sidebars.js"),
sidebarPath: path.resolve(__dirname, "./sidebars.js"),
editUrl: "https://github.com/utybo/Tegral/tree/main/docs/",
},
blog: {
Expand All @@ -44,15 +44,15 @@ const config = {
// 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/'
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
customCss: path.resolve(__dirname, "./src/css/custom.css"),
},
}),
},
],
],

themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
{
navbar: {
title: "Tegral",
logo: {
Expand Down Expand Up @@ -161,21 +161,19 @@ const config = {
copyright: `Copyright © ${new Date().getFullYear()} Tegral maintainers & contributors. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
theme: themes.github,
darkTheme: themes.dracula,
additionalLanguages: ["kotlin", "groovy", "toml", "yaml"],
},
algolia: {
appId: "XKS5FWH0DJ",
apiKey: "6f8c788df7af2f39272bb5497cc19a8b",
indexName: "tegral-zoroark",
},
}),
clientModules: [require.resolve("./src/routeobserver.js")],
},
clientModules: [path.resolve(__dirname, "./src/routeobserver.js")],
markdown: {
mermaid: true,
},
themes: ["@docusaurus/theme-mermaid"],
};

module.exports = config;
} satisfies Config;
32 changes: 17 additions & 15 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,27 @@
"preinstall": "npx -y only-allow pnpm"
},
"dependencies": {
"@algolia/client-search": "^4.14.3",
"@docusaurus/core": "2.4.0",
"@docusaurus/preset-classic": "2.4.0",
"@docusaurus/theme-mermaid": "^2.4.0",
"@mdx-js/react": "^1.6.22",
"@algolia/client-search": "^5.9.1",
"@docusaurus/core": "3.5.2",
"@docusaurus/preset-classic": "3.5.2",
"@docusaurus/theme-mermaid": "^3.5.2",
"@mdx-js/react": "^3.1.0",
"ackee-tracker": "^5.1.0",
"clsx": "^1.2.1",
"mdx-mermaid": "^1.3.2",
"mermaid": "~9.1.7",
"prism-react-renderer": "^1.3.5",
"clsx": "^2.1.1",
"mdx-mermaid": "^2.0.1",
"mermaid": "~11.3.0",
"prism-react-renderer": "^2.4.0",
"raw-loader": "^4.0.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"typescript": "^4.9.4",
"unist-util-visit": "^2.0.3"
"react": "^18.3.1",
"react-dom": "^18.3.1",
"typescript": "^5.6.3",
"unist-util-visit": "^5.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.0",
"@types/react": "^18.0.27"
"@docusaurus/module-type-aliases": "3.5.2",
"@docusaurus/types": "^3.5.2",
"@types/node": "^22.7.7",
"@types/react": "^18.3.11"
},
"browserslist": {
"production": [
Expand Down
Loading

0 comments on commit 6a9a6c7

Please sign in to comment.