diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index d78775e8..58362b73 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -8,7 +8,6 @@ on: env: HUGO_VERSION: 0.150.0 - GH_USER: site-commons-machine-user jobs: deploy: @@ -49,9 +48,6 @@ jobs: restore-keys: | ${{ runner.os }}-hugomod- - - name: Prepare Environment - run: git config --global url."https://${{ env.GH_USER }}:${{ secrets.GH_SITE_COMMONS_PAT }}@github.com".insteadOf "https://github.com" - - name: Install Dependencies working-directory: site run: npm ci diff --git a/.github/workflows/proof-links.yml b/.github/workflows/proof-links.yml index 502dd8b4..93b3a4c2 100644 --- a/.github/workflows/proof-links.yml +++ b/.github/workflows/proof-links.yml @@ -3,7 +3,6 @@ on: [pull_request, workflow_dispatch] env: HUGO_VERSION: 0.147.8 - GH_USER: site-commons-machine-user LYCHEE_RELEASE: "lychee-v0.15.1-x86_64-unknown-linux-gnu.tar.gz" LYCHEE_VERSION_TAG: "v0.15.1" @@ -43,9 +42,6 @@ jobs: restore-keys: | ${{ runner.os }}-hugomod- - - name: Prepare environment - run: git config --global url."https://${{ env.GH_USER }}:${{ secrets.GH_SITE_COMMONS_PAT }}@github.com".insteadOf "https://github.com" - - name: Install Dependencies working-directory: site run: npm ci diff --git a/AUTHORING.md b/AUTHORING.md index 6176998e..956f7606 100644 --- a/AUTHORING.md +++ b/AUTHORING.md @@ -7,6 +7,7 @@ This document is a guide for adding content to the [spine.io](https://spine.io) * [URLs in markdown](#urls-in-markdown) * [Rule 1](#rule-1----all-internal-links-must-not-start-with-a-slash) * [Rule 2](#rule-2----each-link-should-end-with-a-slash-to-prevent-unnecessary-redirects) + * [Variables](#variables) * [Images](#images) * [URLs in HTML](#urls-in-html) * [Navigation](#navigation) @@ -44,6 +45,30 @@ There are two rules to follow: |--------------------------------------|-------------------------------------| | `[Introduction](docs/introduction/)` | `[Introduction](/docs/introduction)`| +#### Variables + +This example shows how to use data variables and a version variable in a URL: + +```markdown +[Hello World]({{% get-site-data "repositories.examples" %}}/hello/) + +[Introduction](docs/{{% version %}}/) +``` + +Will be rendered as: + +```html +Hello World + +Introduction +``` + +Where: + +* {{% get-site-data "repositories.core_jvm_repo" %}} will apply the `core_jvm_repo` + from the `site-commons` -> `data/repositories.yml` file. +* {{% version %}} adds the version label of the current page -> `1.9.0`. + ### Images To render an image in markdown use: @@ -70,22 +95,57 @@ When working with layout partials, URLs should be specified using the following ``` +# Markdown pages + +It is nice to have the following parameters on every markdown page, especially in documentation: + +```markdown +--- +title: Getting Started in Java +description: This guide shows how to start working with Spine in Java. +headline: Documentation +--- +``` + +Where: +* `title` page title. +* `description` a short summary of what this page is about. Used for SEO. +* `headline` shown under the main navigation. If omitted, it is not rendered. + +Optional parameters: + +```markdown +--- +header_type: fixed-header +body_class: privacy +customjs: js/pages/privacy.js +--- +``` + +Where: +* `header_type` controls how the page header behaves (for example, stays fixed while scrolling). +* `body_class` adds a CSS class to style a specific page. By default, the body class is based on the page type. +* `customjs` loads page-specific JavaScript. + # Navigation ### Main navigation To edit navigation items, modify `site/data/navbar.yml`. -The navigation template is located at `site/layouts/_partials/components/navbar/navigation.html`. +The navigation layout template is located at `site/layouts/_partials/components/navbar/navigation.html`. ### Documentation side navigation -The documentation side navigation can be edited in the [SpineEventEngine/documentation](https://github.com/SpineEventEngine/documentation) -repository in the `docs/data/docs//sidenav.yml` file. +The documentation side navigation can be edited in the [SpineEventEngine/documentation][documentation-repo] +repository in the `docs/data/docs//sidenav.yml` file. + +If it is part of a specific documentation module, it can be found in the corresponding repository +at `docs/data/docs///sidenav.yml`. ### Documentation “Next/Prev” buttons -The “Prev”/“Next” buttons are generated automatically for all document pages. -The implementation is inside the [SpineEventEngine/documentation](https://github.com/SpineEventEngine/documentation). +The “Prev”/“Next” buttons are generated automatically for all document pages based on the `sidenav.yml`. +The implementation is inside the [SpineEventEngine/site-commons][site-commons]. # Adding code samples to the site @@ -120,18 +180,18 @@ file for details. # Cloak email The `cloakemail` shortcode is used to cloak emails or phone numbers from -spamming bots. We store all email variables in the `site/data/spine.yml` file. +spamming bots. We store all email variables in the `site/data/emails.yml` file in the `site-commons`. In markdown files, use the shortcode with a provided variable from a data file, for example: ```markdown -{{< cloakemail address_variable="spine.sales_email" >}} +{{< cloakemail address_variable="emails.sales_email" >}} ``` or with the display text: ```markdown -{{< cloakemail address_variable="spine.sales_email" display="Contact us" >}} +{{< cloakemail address_variable="emails.sales_email" display="Contact us" >}} ``` # Note blocks @@ -216,3 +276,5 @@ the entire line with background. [code-fences-doc]: https://gohugo.io/content-management/syntax-highlighting/#highlighting-in-code-fences [syntax-highlighting-languages]: https://gohugo.io/content-management/syntax-highlighting/#languages +[documentation-repo]: https://github.com/SpineEventEngine/documentation +[site-commons]: https://github.com/SpineEventEngine/site-commons diff --git a/README.md b/README.md index 348c939e..13667f71 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,10 @@ into the pages, please see the [`_code/EMBEDDING.md`](_code/EMBEDDING.md) file. 2. [Go][go] `1.12` or newer. 3. [Node.js][nodejs] `18+`. 4. [Hugo Extended][hugo-quick-start] in version `v0.150.0` or higher. -5. Access to the [`site-commons`][site-commons] repository — to download the theme. ## Configuration -1. Make sure [SSH][site-commons-ssh] configured correctly and the passphrase is stored in the keychain. -2. Install project dependencies from the `site` directory by running `npm install`. +1. Install project dependencies from the `site` directory by running `npm install`. ## Running the site locally @@ -49,9 +47,7 @@ Another way to run the site locally is to follow these steps: hugo server ``` -If you receive a `permission denied` message, but you are sure that you have -all the rights to the [required repositories](#prerequisites), try clearing -the cache: +If you receive an error, try clearing the cache: ```shell hugo mod clean --all @@ -64,7 +60,8 @@ Then run the `hugo serve` again. The documentation is located in a [separate repository][documentation-repo]. It is added to this site as a Hugo Module. -Any changes to the documentation must be made in its own [repository][documentation-repo]. +Any changes to the documentation must be made in its own [repository][documentation-repo] +or documentation modules. The `documentation` repository is made to be self-sustainable in terms of editing. A fully-fledged Hugo site has been set up for it. All the contents and links in it are working as intended. @@ -76,21 +73,27 @@ are used to embed the content. ### Steps to get documentation updates 1. Navigate to the `site` directory. -2. Clean the module cache: +2. Get the documentation Hugo Module: ```shell - hugo mod clean + hugo mod get -u github.com/SpineEventEngine/documentation/docs ``` -3. Get the documentation Hugo Module: + or update all the modules recursively (including the site-commons): ```shell - hugo mod get -u github.com/SpineEventEngine/documentation/docs + hugo mod get -u ./... ``` -4. Commit and push changes from `go.mod` and `go.sum` files. +3. Commit and push changes from `go.mod` and `go.sum` files. In the `go.sum` file, keep only the two required entries for each theme to avoid file clutter. + If there is an error while getting new updates, clear the cache and repeat step 2: + + ```shell + hugo mod clean + ``` + ## Common theme This project uses the [`site-commons`][site-commons] Hugo theme for general components such @@ -100,7 +103,7 @@ as anchor icons, snackbars, etc. 2. To get theme updates, run: ```shell - hugo mod get -u github.com/TeamDev-Ltd/site-commons + hugo mod get -u github.com/SpineEventEngine/site-commons ``` 3. Commit and push changes from `go.mod` and `go.sum` files. @@ -114,8 +117,7 @@ the [`AUTHORING.md`](AUTHORING.md) file. [go]: https://go.dev/doc/install [nodejs]: https://nodejs.org/en/download/current [hugo-quick-start]: https://gohugo.io/getting-started/quick-start/#step-1-install-hugo -[site-commons]: https://github.com/TeamDev-Ltd/site-commons -[site-commons-ssh]: https://github.com/TeamDev-Ltd/site-commons/tree/master?tab=readme-ov-file#configure-go-to-use-ssh-for-github +[site-commons]: https://github.com/SpineEventEngine/site-commons [hugo-modules]: https://gohugo.io/hugo-modules/introduction [embed-code]: https://github.com/SpineEventEngine/embed-code/tree/embed-code-go [documentation-repo]: https://github.com/SpineEventEngine/documentation.git diff --git a/site/.browserslistrc b/site/.browserslistrc deleted file mode 100644 index b4e0f562..00000000 --- a/site/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -> 0.5% -last 2 versions diff --git a/site/assets/js/bootstrap.js b/site/assets/js/bootstrap.js deleted file mode 100644 index 89909c42..00000000 --- a/site/assets/js/bootstrap.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -import 'bootstrap/js/dist/collapse'; -import 'bootstrap/js/dist/dropdown'; -import 'bootstrap/js/dist/tooltip'; diff --git a/site/assets/js/pages/faq.js b/site/assets/js/pages/faq.js index 277b31a9..bb13f613 100644 --- a/site/assets/js/pages/faq.js +++ b/site/assets/js/pages/faq.js @@ -26,7 +26,7 @@ 'use strict'; -import {copyToClipboard} from "js/components/copy-to-clipboard"; +import {copyToClipboard} from "js/theme/copy-to-clipboard"; /** * Opens the collapsed FAQ item on hash change and handles the anchor icon click. diff --git a/site/assets/scss/base/_colors.scss b/site/assets/scss/base/_colors.scss index a3b9ac74..eecd9989 100755 --- a/site/assets/scss/base/_colors.scss +++ b/site/assets/scss/base/_colors.scss @@ -1,5 +1,5 @@ /*! - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,45 +24,14 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -// Brand Colors -$main-brand-color: #1a96de; -$second-brand-color: #116db4; -$inverse-brand-color: #ffffff; -$body-light-gray-color: #f6f8fA; -$warning-color: #deba32; -$nav-blue-gradient: linear-gradient(152deg, #1378DA 0%, #0B64CC 100%); -$light-blue-bg-color: #edf8ff; -$note-bg-color: #e0f2ff; +/* Extends colors from `site-commons`. */ -// Dividers -$divider-color: rgba(0, 0, 0, .08); +$nav-blue-gradient: linear-gradient(152deg, #1378da 0%, #0b64cc 100%); +$light-blue-bg-color: #edf8ff; $divider: 1px solid $divider-color; -$article-border-color: #e6ecf1; - -// General Colors -$black: #2e2e2e; -$white: #ffffff; $light-gray-blue: #eef1f3; -$text-color: #3a3a3a; -$error-color: #c40003; -// Links -$link-color: $main-brand-color; -$link-hover-color: darken($link-color, 10%); -$link-blue-color: #5dc4ff; - -// Footer $footer-color: #232526; -$footer-text: #eaeaea; - -// Grays -$gray-100: rgba(black, .12); -$gray-200: rgba(black, .26); -$gray-300: rgba(black, .38); -$gray-500: rgba(black, .54); -$gray-600: rgba(black, .6); -$gray-700: rgba(black, .7); +$footer-text-color: #eaeaea; -// Shadows -$feature-card-shadow: 0 1px 3px 0 rgba($footer-color, .08); $navbar-shadow: 0 3px 4px 0 rgba(0, 0, 0, .25); diff --git a/site/assets/scss/base/_common.scss b/site/assets/scss/base/_common.scss index 66023a66..74380b83 100755 --- a/site/assets/scss/base/_common.scss +++ b/site/assets/scss/base/_common.scss @@ -1,5 +1,5 @@ /*! - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,10 +49,6 @@ transition: all .3s ease-in-out; } -.nobr { - white-space: nowrap; -} - .section { padding: 50px 0; position: relative; @@ -72,17 +68,6 @@ } } -table, -th, -td { - border: 1px solid lighten($text-color, 20%); - padding: 6px -} - -table { - border-collapse: collapse; -} - // Expandable title with caret icon before. %expandable-title { font-size: $font-size--primary; @@ -95,8 +80,8 @@ table { content: ''; position: absolute; background: url('img/icons/icon-caret-right.svg') no-repeat center/cover; - width: $icon-size--s; - height: $icon-size--s; + width: $icon-size-s; + height: $icon-size-s; margin-left: -40px; margin-top: -2px; opacity: .54; diff --git a/site/assets/scss/base/_mixins.scss b/site/assets/scss/base/_mixins.scss deleted file mode 100644 index 87ee76bb..00000000 --- a/site/assets/scss/base/_mixins.scss +++ /dev/null @@ -1,85 +0,0 @@ -/*! - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - Ordered and unordered list styles. - Usage: `@include list();` - */ -@mixin list($item-line-height: 1.6) { - ol, ul { - margin: 0 0 32px 0; - line-height: $item-line-height; - - @include breakpoint(tablet) { - margin-bottom: 24px; - } - - li { - margin-left: 18px; - margin-top: .6em; - padding-left: 6px; // Adds additional space between bullet and text. - - ol, ul { - margin-bottom: 32px; - - li { - margin-top: .45em; - } - } - } - } - - ul { - list-style: disc; - - li { - ul { - list-style: circle; - } - } - } - - ol { - list-style: decimal; - } -} - -/* - Adds an arrow icon. - - By default, the arrow points to left: `@include arrow-icon();` - To place the arrow on the right, set the rotation angle: - `@include arrow-icon($rotate-angle: -45deg);` -*/ -@mixin arrow-icon($line-width: 2px, $icon-size: 3px, $rotate-angle: 135deg, $color: $main-brand-color) { - border: solid $color; - border-width: 0 $line-width $line-width 0; - display: inline-block; - padding: $icon-size; - vertical-align: middle; - margin-top: -2px; - transform: rotate($rotate-angle); -} diff --git a/site/assets/scss/base/_override.scss b/site/assets/scss/base/_override.scss deleted file mode 100755 index d6c16017..00000000 --- a/site/assets/scss/base/_override.scss +++ /dev/null @@ -1,70 +0,0 @@ -/*! - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// By default Bootstrap v5 has display:flex. It breaks TOC navigation. -.nav { - display: block; -} - -a { - color: $main-brand-color; - font-weight: 400; - transition: all .3s ease-in-out; -} - -a:hover, -a:focus { - color: $link-hover-color; - text-decoration: underline; -} - -a:focus { - text-decoration: none; -} - -.nofloat { - float: none; -} - -.icon-copy-code { - background: url('img/copy-code.svg') no-repeat center/cover; - position: absolute; - cursor: pointer; - right: 16px; - top: 12px; - width: 32px; - height: 32px; - opacity: .26; - transition: all .24s ease-in-out; - - &:hover, - &:focus { - opacity: .4; - background-color: fade-out($black, .87); - border-radius: 50%; - outline: none; - } -} diff --git a/site/assets/scss/base/_text.scss b/site/assets/scss/base/_text.scss deleted file mode 100755 index 43cfa907..00000000 --- a/site/assets/scss/base/_text.scss +++ /dev/null @@ -1,163 +0,0 @@ -/*! - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -h1 { - font-size: $font-size--xl; - color: $black; - font-weight: 400; - line-height: 1.2; - padding-top: 16px; - margin-bottom: 24px; - - &.bold { - font-weight: 700; - } - - &.light { - font-weight: 300; - } -} - -h2 { - font-size: 1.75rem; - color: $black; - font-weight: 300; - line-height: 1.3; - margin-bottom: 12px; - - @include breakpoint(desktop) { - margin-bottom: 8px; - } -} - -h3 { - font-size: 1.25rem; - color: $black; - font-weight: 700; - padding-top: 24px; - margin-bottom: 8px; - line-height: 1.4; -} - -h4 { - margin: 32px 0 8px; - font-size: $font-size--s; - font-weight: 700; - color: $black; -} - -h5 { - font-size: $font-size--s; - font-weight: 300; - color: $black; -} - -h6 { - font-size: .9rem; - font-weight: 500; - color: $black; -} - -p { - font-size: $font-size--xs; - color: $text-color; - font-weight: 400; - line-height: 1.6; - margin-bottom: 16px; - - &.lead { - font-size: 1.5rem; - color: $text-color; - line-height: 1.5; - padding-top: 8px; - margin-bottom: 32px; - } - - &.note { - background-color: $note-bg-color; - border-left: 4px solid $main-brand-color; - padding: 12px 24px 13px; - color: $black; - font-size: 15px; - line-height: 24px; - border-radius: $border-radius-s; - margin-bottom: 24px; - - code { - background-color: transparent; - padding: 0; - } - } - - &.warning { - background-color: #fffde6; - border-left: 4px solid $warning-color; - padding: 12px 24px 13px; - color: $black; - font-size: 15px; - line-height: 24px; - border-radius: $border-radius-s; - margin-bottom: 24px; - - code { - background-color: transparent; - padding: 0; - } - } -} - -strong { - font-weight: 700; -} - -em { - font-style: italic; -} - -blockquote { - border-left: 2px solid #eeeeee; - padding: 0 24px 0 10px; - margin: 24px 0 32px; - - p { - position: relative; - padding-left: 32px; - font-size: 22px; - line-height: 32px; - font-style: italic; - font-weight: 300; - color: rgba($text-color, .64); - - &:before { - content: ''; - position: absolute; - left: 0; - width: $icon-size--s; - height: $icon-size--s; - background: url('img/icons/quote.svg') no-repeat center/cover; - } - } -} diff --git a/site/assets/scss/main.scss b/site/assets/scss/main.scss index 92c02ccb..3f9c416f 100644 --- a/site/assets/scss/main.scss +++ b/site/assets/scss/main.scss @@ -1,5 +1,5 @@ /*! - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,16 +24,11 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -@import "node_modules/bootstrap/scss/bootstrap"; +/* Styles from `SpineEventEngine/site-commons`. */ +@import "theme-main"; -// Common docs styles from the `SpineEventEngine/documentation`. -@import "docs-common"; - -@import "base/mixins"; @import "base/colors"; -@import "base/override"; @import "base/common"; -@import "base/text"; @import "modules/navbar"; @import "modules/nav-search"; @@ -49,10 +44,6 @@ @import "modules/loader"; @import "pages/landing"; - -// Page styles from the `SpineEventEngine/documentation`. -@import "docs"; - @import "pages/release-notes/release-notes"; @import "pages/release-notes/sidenav"; @import "pages/faq"; diff --git a/site/assets/scss/modules/_buttons.scss b/site/assets/scss/modules/_buttons.scss index f0918389..0a39913c 100644 --- a/site/assets/scss/modules/_buttons.scss +++ b/site/assets/scss/modules/_buttons.scss @@ -43,6 +43,7 @@ $btn-font-size: 14px; } &:focus { + text-decoration: none; box-shadow: none; outline: 1px dotted; outline-offset: -5px; @@ -98,15 +99,12 @@ $btn-font-size: 14px; color: $main-brand-color; border: 2px solid $main-brand-color; - &:hover { + &:hover, + &:focus { background-color: rgba($main-brand-color, .12); color: $main-brand-color; border: 2px solid $main-brand-color; } - - &:focus { - color: $main-brand-color; - } } .link-back, diff --git a/site/assets/scss/modules/_feature-cards.scss b/site/assets/scss/modules/_feature-cards.scss index 4a9a9562..9a4788e8 100644 --- a/site/assets/scss/modules/_feature-cards.scss +++ b/site/assets/scss/modules/_feature-cards.scss @@ -24,6 +24,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +$feature-card-shadow: 0 1px 3px 0 rgba($footer-color, .08); + .feature-section { background-color: $light-gray-blue; padding: 64px 0 72px; @@ -57,8 +59,8 @@ [class*="card-icon"] { position: absolute; display: inline-block; - width: $icon-size--m; - height: $icon-size--m; + width: $icon-size-m; + height: $icon-size-m; margin: 20px 24px; @include breakpoint(desktop) { @@ -67,7 +69,7 @@ } .card-icon-font { - line-height: $icon-size--m; + line-height: $icon-size-m; font-size: 22px; color: $main-brand-color; text-align: center; diff --git a/site/assets/scss/modules/_footer.scss b/site/assets/scss/modules/_footer.scss index 04e7775d..75dd2c04 100755 --- a/site/assets/scss/modules/_footer.scss +++ b/site/assets/scss/modules/_footer.scss @@ -94,7 +94,7 @@ footer { } .left-links { - color: $footer-text; + color: $footer-text-color; display: block; text-align: left; width: 88%; diff --git a/site/assets/scss/modules/_go-top-button.scss b/site/assets/scss/modules/_go-top-button.scss index 2253774d..2da9aba3 100644 --- a/site/assets/scss/modules/_go-top-button.scss +++ b/site/assets/scss/modules/_go-top-button.scss @@ -26,7 +26,7 @@ #go-top-button { $top-button-size: 60px; - $top-button-icon-size: $icon-size--l; + $top-button-icon-size: $icon-size-l; $icon-position: $top-button-size - $top-button-icon-size; display: none; diff --git a/site/assets/scss/modules/_hero.scss b/site/assets/scss/modules/_hero.scss index adf29909..60526c1c 100755 --- a/site/assets/scss/modules/_hero.scss +++ b/site/assets/scss/modules/_hero.scss @@ -1,5 +1,5 @@ /*! - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ .nav-hero-container { background-image: $nav-blue-gradient; position: relative; - padding-bottom: 12px; &:not(.home-hero) { box-shadow: $navbar-shadow; @@ -36,12 +35,11 @@ &.home-hero { @include breakpoint(md-phone) { height: 100vh; - padding-bottom: 0; } } .page-headline-container { - padding-top: 64px; + padding-top: $header-height; .page-headline { font-family: $main-mono-font; @@ -49,15 +47,15 @@ font-size: 32px; line-height: 1.2; font-weight: 400; - padding-top: 16px; - margin-bottom: 24px; + padding-top: 12px; + margin-bottom: 32px; } } } // Landing page hero. .hero { - padding: 96px 0; + padding: 96px 0 108px; position: relative; text-align: center; diff --git a/site/assets/scss/modules/_nav-search.scss b/site/assets/scss/modules/_nav-search.scss index 83ebf837..395e9ddf 100644 --- a/site/assets/scss/modules/_nav-search.scss +++ b/site/assets/scss/modules/_nav-search.scss @@ -1,5 +1,5 @@ /*! - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ */ $docsearch-icon-color: rgba(white, .54); -$docsearch-mobile-breakpoint: 800px; +$docsearch-mobile-breakpoint: map-get($breakpoints, mobile-navbar); $docsearch-algolia-mobile: 750px; $docsearch-border-color: #ebedf5; diff --git a/site/assets/scss/modules/_navbar.scss b/site/assets/scss/modules/_navbar.scss index 075258c5..1e04fa85 100755 --- a/site/assets/scss/modules/_navbar.scss +++ b/site/assets/scss/modules/_navbar.scss @@ -1,5 +1,5 @@ /*! - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,12 +24,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -// `$navbar-mobile-breakpoint` is a screen size on which the mobile navigation will be shown. -// The variable is used in the `_nav-search.scss` file. -$navbar-mobile-breakpoint: 800px; - .navigation-opened { - @include breakpoint($navbar-mobile-breakpoint) { + @include breakpoint(mobile-navbar) { overflow: hidden; } @@ -42,7 +38,7 @@ $navbar-mobile-breakpoint: 800px; #header { width: 100%; - min-height: 64px; + min-height: $header-height; z-index: map_get($z-index, 'header'); position: absolute; @@ -91,7 +87,7 @@ $navbar-mobile-breakpoint: 800px; .navigation-holder { margin-left: auto; // Makes float:right; for the Bootstrap v5. - @include breakpoint($navbar-mobile-breakpoint) { + @include breakpoint(mobile-navbar) { background-color: $footer-color; box-shadow: -1px 0px 8px 0px rgba(black, .25); z-index: map_get($z-index, 'nav-mobile'); @@ -119,7 +115,7 @@ $navbar-mobile-breakpoint: 800px; .navigation { margin: 0 -24px 48px; - @include breakpoint-min($navbar-mobile-breakpoint) { + @include breakpoint-min(mobile-navbar) { float: right; margin: 5px 0; } @@ -130,7 +126,7 @@ $navbar-mobile-breakpoint: 800px; -webkit-transform: translateZ(0); line-height: 22px; - @include breakpoint-min($navbar-mobile-breakpoint) { + @include breakpoint-min(mobile-navbar) { display: inline-block; } @@ -143,7 +139,7 @@ $navbar-mobile-breakpoint: 800px; transition: all .2s ease-in-out; -webkit-transform: translateZ(0); - @include breakpoint-min($navbar-mobile-breakpoint) { + @include breakpoint-min(mobile-navbar) { padding: 16px; font-size: 15px; letter-spacing: 0.5px; @@ -178,13 +174,13 @@ $navbar-mobile-breakpoint: 800px; } &.home-item { - @include breakpoint-min($navbar-mobile-breakpoint) { + @include breakpoint-min(mobile-navbar) { display: none; } } .mobile-caret-icon { - @include breakpoint-min($navbar-mobile-breakpoint) { + @include breakpoint-min(mobile-navbar) { display: none; } @@ -223,7 +219,7 @@ $navbar-mobile-breakpoint: 800px; .doc-list-inside { margin-bottom: 8px; - @include breakpoint-min($navbar-mobile-breakpoint) { + @include breakpoint-min(mobile-navbar) { display: none; } } @@ -276,7 +272,7 @@ $navbar-mobile-breakpoint: 800px; margin-right: 16px; position: absolute; - @include breakpoint($navbar-mobile-breakpoint) { + @include breakpoint(mobile-navbar) { display: block; } diff --git a/site/assets/scss/pages/_faq.scss b/site/assets/scss/pages/_faq.scss index ad5526c4..b32bcc9a 100644 --- a/site/assets/scss/pages/_faq.scss +++ b/site/assets/scss/pages/_faq.scss @@ -75,8 +75,8 @@ $anchor-icon-size: 24px; content: ''; position: absolute; background: url('img/icons/icon-caret-right.svg') no-repeat center/cover; - width: $icon-size--s; - height: $icon-size--s; + width: $icon-size-s; + height: $icon-size-s; left: 12px; top: 15px; transform: rotate(90deg); diff --git a/site/assets/scss/pages/_getting-help.scss b/site/assets/scss/pages/_getting-help.scss index e584a197..c8a86133 100644 --- a/site/assets/scss/pages/_getting-help.scss +++ b/site/assets/scss/pages/_getting-help.scss @@ -58,7 +58,7 @@ // A custom width is used here to keep the compared items together as long as possible. $mobile-card-screen-size: 610px; - background-color: $body-light-gray-color; + background-color: var(--body-bg-color); .section-title { font-size: 34px; diff --git a/site/assets/scss/pages/_privacy.scss b/site/assets/scss/pages/_privacy.scss index cbee5e71..95650b8e 100644 --- a/site/assets/scss/pages/_privacy.scss +++ b/site/assets/scss/pages/_privacy.scss @@ -25,7 +25,7 @@ */ .privacy { - background-color: $body-light-gray-color; + background-color: var(--body-bg-color); @include breakpoint(lg-phone) { background-color: white; diff --git a/site/assets/scss/pages/blog/_blog.scss b/site/assets/scss/pages/blog/_blog.scss index b1f4c4a6..065bfeb2 100755 --- a/site/assets/scss/pages/blog/_blog.scss +++ b/site/assets/scss/pages/blog/_blog.scss @@ -25,7 +25,7 @@ */ .blog { - background-color: $body-light-gray-color; + background-color: var(--body-bg-color); @include breakpoint(lg-phone) { background-color: white; diff --git a/site/assets/scss/pages/blog/_post.scss b/site/assets/scss/pages/blog/_post.scss index e3a39837..ff77a450 100644 --- a/site/assets/scss/pages/blog/_post.scss +++ b/site/assets/scss/pages/blog/_post.scss @@ -25,7 +25,7 @@ */ .post { - background-color: $body-light-gray-color; + background-color: var(--body-bg-color); @include breakpoint(lg-phone) { background-color: white; diff --git a/site/config/_default/hugo.toml b/site/config/_default/hugo.toml index 013a7842..0641b07a 100644 --- a/site/config/_default/hugo.toml +++ b/site/config/_default/hugo.toml @@ -9,7 +9,7 @@ disableKinds = ['taxonomy', 'term'] [[module.imports]] path = 'github.com/SpineEventEngine/documentation/docs' [[module.imports]] - path = 'github.com/TeamDev-Ltd/site-commons' + path = 'github.com/SpineEventEngine/site-commons' [params] description = 'Open-source CQRS/ES framework for modern cloud applications' @@ -45,32 +45,3 @@ disableKinds = ['taxonomy', 'term'] title = true [markup.highlight] noClasses = false - -# Version control config. -# To change the current main version, update only the `path` parameter. -# Read more in the `SpineEventEngine/documentation/SPINE_RELEASE.md` guide. -# -# The configuration is currently duplicated from the `SpineEventEngine/documentation` -# repository due to a known issue with cascading arrays: -# https://github.com/gohugoio/hugo/issues/13869 -[[cascade]] - [cascade.params] - url = 'docs/' - [cascade.target] - # The path to the `_index.md` of the current main version. - path = '{/docs/1}' - kind = 'section' -[[cascade]] - [cascade.params] - url = 'docs/:sections[2:]/' - [cascade.target] - # The path to the current main version. - path = '{/docs/1/**}' - kind = 'section' -[[cascade]] - [cascade.params] - url = 'docs/:sections[2:]/:contentbasename/' - [cascade.target] - # The path to the current main version. - path = '{/docs/1/**}' - kind = 'page' diff --git a/site/content/blog/blog-is-now-live/index.md b/site/content/blog/blog-is-now-live/index.md index 2c4c83d8..1e395348 100644 --- a/site/content/blog/blog-is-now-live/index.md +++ b/site/content/blog/blog-is-now-live/index.md @@ -14,6 +14,6 @@ start blogging about the framework development, the ES/CQRS-based projects, our The plan is to do this on a regular basis, so stay tuned. Your feedback and questions are welcome at -[@SpineEngine][xtwitter] or {{< cloakemail address_variable="spine.dev_email" >}}. +[@SpineEngine][xtwitter] or {{< cloakemail address_variable="emails.dev_email" >}}. -[xtwitter]: {{% get-site-data "spine.socials.xtwitter" %}} +[xtwitter]: {{% get-site-data "socials.xtwitter" %}} diff --git a/site/content/blog/protobuf-immutability/index.md b/site/content/blog/protobuf-immutability/index.md index 94468f0c..0e97329c 100644 --- a/site/content/blog/protobuf-immutability/index.md +++ b/site/content/blog/protobuf-immutability/index.md @@ -76,7 +76,7 @@ Such a difference between Java and client-side languages can be explained by a d Nevertheless, in Dart, there are a few tools, as well as language structures, which can help you with immutability. For instance, `built_value` and `freezed` are two libraries that allow their users to create immutable data types with [almost no extra effort](https://levelup.gitconnected.com/flutter-dart-immutable-objects-and-values-5e321c4c654e). But in order to achieve immutability for data types that originate in Protobuf, we’d have to arrange the conversion from mutable to immutable types, which is a lot of manual work. And in the end, we’d get two classes for one Protobuf type. This is a suboptimal solution, to say the least. -We have tried creating a symbiosis between `built_value` and Protobuf to achieve immutable “front-facing” types, which would rely on standard Protobuf Dart code for serialization. This attempt has failed as we have found ourselves juggling too many noncoherent abstractions. At the time of writing, we [plan]({{% get-site-data "spine.core_jvm_repo" %}}/issues/1334) to implement custom code generation to support Dart, JavaScript, and Java, which addresses the limitations we face and provides immutability. +We have tried creating a symbiosis between `built_value` and Protobuf to achieve immutable “front-facing” types, which would rely on standard Protobuf Dart code for serialization. This attempt has failed as we have found ourselves juggling too many noncoherent abstractions. At the time of writing, we [plan]({{% get-site-data "repositories.core_jvm_repo" %}}/issues/1334) to implement custom code generation to support Dart, JavaScript, and Java, which addresses the limitations we face and provides immutability. ## What’s Next? diff --git a/site/content/blog/spine-event-engine-1-0-is-out/index.md b/site/content/blog/spine-event-engine-1-0-is-out/index.md index 80d20f1b..1f55b9d6 100644 --- a/site/content/blog/spine-event-engine-1-0-is-out/index.md +++ b/site/content/blog/spine-event-engine-1-0-is-out/index.md @@ -51,4 +51,4 @@ integration with web UI. We will announce the updates [@SpineEngine 𝕏][xtwitt [examples]: https://github.com/spine-examples/ [gitter-room]: https://gitter.im/SpineEventEngine/community [spine-github]: https://github.com/SpineEventEngine/ -[xtwitter]: {{% get-site-data "spine.socials.xtwitter" %}} +[xtwitter]: {{% get-site-data "socials.xtwitter" %}} diff --git a/site/content/features.json b/site/content/features.json index 931d8f28..d76b4d71 100644 --- a/site/content/features.json +++ b/site/content/features.json @@ -30,7 +30,7 @@ { "icon": "fas fa-lightbulb-on", "title": "Clear API", - "description": "Concepts from the DDD books, such as [`Aggregate`]({{% get-site-data \"spine.core_api_doc\" %}}/server/server/io.spine.server.aggregate/-aggregate/index.html), [`Projection`]({{% get-site-data \"spine.core_api_doc\" %}}/server/server/io.spine.server.projection/-projection/index.html), [`ProcessManager`]({{% get-site-data \"spine.core_api_doc\" %}}/server/server/io.spine.server.procman/-process-manager/index.html), [`Repository`]({{% get-site-data \"spine.core_api_doc\" %}}/server/server/io.spine.server.entity/-repository/index.html) are right in the code. Ever guessed how to cook a [`BoundedContext`]({{% get-site-data \"spine.core_api_doc\" %}}/server/server/io.spine.server/-bounded-context/index.html)? Guess no more!" + "description": "Concepts from the DDD books, such as [`Aggregate`]({{% get-site-data \"repositories.core_api_doc\" %}}/server/server/io.spine.server.aggregate/-aggregate/index.html), [`Projection`]({{% get-site-data \"repositories.core_api_doc\" %}}/server/server/io.spine.server.projection/-projection/index.html), [`ProcessManager`]({{% get-site-data \"repositories.core_api_doc\" %}}/server/server/io.spine.server.procman/-process-manager/index.html), [`Repository`]({{% get-site-data \"repositories.core_api_doc\" %}}/server/server/io.spine.server.entity/-repository/index.html) are right in the code. Ever guessed how to cook a [`BoundedContext`]({{% get-site-data \"repositories.core_api_doc\" %}}/server/server/io.spine.server/-bounded-context/index.html)? Guess no more!" }, { "icon": "fas fa-clipboard-check", @@ -40,7 +40,7 @@ { "icon": "far fa-hexagon", "title": "Multiple Storage and Deployment Platforms", - "description": "The framework promotes development of storage- and platform-agnostic code. You can start with [JDBC]({{% get-site-data \"spine.jdbc_storage_repo\" %}}) and later switch to Google Cloud Platform [Datastore]({{% get-site-data \"spine.gcloud_java_repo\" %}}) simply changing a few lines of code." + "description": "The framework promotes development of storage- and platform-agnostic code. You can start with [JDBC]({{% get-site-data \"repositories.jdbc_storage_repo\" %}}) and later switch to Google Cloud Platform [Datastore]({{% get-site-data \"repositories.gcloud_java_repo\" %}}) simply changing a few lines of code." }, { "icon": "fas fa-feather-alt", diff --git a/site/content/getting-help/support-section.json b/site/content/getting-help/support-section.json index e8546ed9..cab24f49 100644 --- a/site/content/getting-help/support-section.json +++ b/site/content/getting-help/support-section.json @@ -19,8 +19,8 @@ { "title": "Ask Community", "content": [ - "Look up for answers or post your questions under [Spine-Event-Engine]({{% get-site-data \"spine.socials.stackoverflow\" %}}) tag on Stack Overflow.", - "Discuss your issues in the [mailing list]({{% get-site-data \"spine.socials.google_group_discussion\" %}})." + "Look up for answers or post your questions under [Spine-Event-Engine]({{% get-site-data \"socials.stackoverflow\" %}}) tag on Stack Overflow.", + "Discuss your issues in the [mailing list]({{% get-site-data \"socials.google_group_discussion\" %}})." ] } ] diff --git a/site/content/oss-licenses/_index.md b/site/content/oss-licenses/_index.md index 2304e3b7..851720f9 100644 --- a/site/content/oss-licenses/_index.md +++ b/site/content/oss-licenses/_index.md @@ -1,6 +1,6 @@ --- title: Open-Source Libraries and Licenses -bodyclass: licenses +body_class: licenses customjs: js/pages/oss-licenses.js --- diff --git a/site/content/privacy/contributor-agreement.md b/site/content/privacy/contributor-agreement.md index 8cad39c9..4d12b8db 100644 --- a/site/content/privacy/contributor-agreement.md +++ b/site/content/privacy/contributor-agreement.md @@ -1,10 +1,10 @@ --- title: Contributor License Agreement -bodyclass: privacy contributor-agreement -header_type: fixed-header +lastmod: 2020-09-04 url: /contributor-agreement customjs: js/pages/privacy.js -lastmod: 2020-09-04 +header_type: fixed-header +body_class: privacy contributor-agreement --- # Spine Event Engine Contributor License Agreement diff --git a/site/content/privacy/development-support-agreement.md b/site/content/privacy/development-support-agreement.md index 23e70987..cbe9f4f0 100644 --- a/site/content/privacy/development-support-agreement.md +++ b/site/content/privacy/development-support-agreement.md @@ -1,10 +1,10 @@ --- title: Development Support Agreement -bodyclass: privacy development-support-agreement -header_type: fixed-header +lastmod: 2020-09-07 url: /development-support-agreement customjs: js/pages/privacy.js -lastmod: 2020-09-07 +header_type: fixed-header +body_class: privacy development-support-agreement --- # Spine Event Engine Development Support Agreement diff --git a/site/content/privacy/privacy-statement.md b/site/content/privacy/privacy-statement.md index 45c5ccf0..440a63ae 100644 --- a/site/content/privacy/privacy-statement.md +++ b/site/content/privacy/privacy-statement.md @@ -167,4 +167,4 @@ and of the Council of 27 April 2016 (GDPR). ### Send Requests For any requests concerning your Personal Data, please email us at: -{{< cloakemail address_variable="spine.privacy_email" >}} +{{< cloakemail address_variable="emails.privacy_email" >}} diff --git a/site/content/release-notes/2015/v0.2.md b/site/content/release-notes/2015/v0.2.md index d14cbf12..0b3981c9 100644 --- a/site/content/release-notes/2015/v0.2.md +++ b/site/content/release-notes/2015/v0.2.md @@ -2,7 +2,7 @@ title: Release Notes v0.2 version: "0.2" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2015-12-11 --- diff --git a/site/content/release-notes/2016/v0.3.md b/site/content/release-notes/2016/v0.3.md index d30f74db..899a4e33 100644 --- a/site/content/release-notes/2016/v0.3.md +++ b/site/content/release-notes/2016/v0.3.md @@ -2,7 +2,7 @@ title: Release Notes v0.3 version: "0.3" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-04-20 --- diff --git a/site/content/release-notes/2016/v0.4.1.md b/site/content/release-notes/2016/v0.4.1.md index 5ba31426..02d414b4 100644 --- a/site/content/release-notes/2016/v0.4.1.md +++ b/site/content/release-notes/2016/v0.4.1.md @@ -2,7 +2,7 @@ title: Release Notes v0.4.1 version: "0.4.1" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-06-07 --- diff --git a/site/content/release-notes/2016/v0.4.2.md b/site/content/release-notes/2016/v0.4.2.md index f104aa46..9c20e19b 100644 --- a/site/content/release-notes/2016/v0.4.2.md +++ b/site/content/release-notes/2016/v0.4.2.md @@ -2,7 +2,7 @@ title: Release Notes v0.4.2 version: "0.4.2" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-06-10 --- diff --git a/site/content/release-notes/2016/v0.4.4.md b/site/content/release-notes/2016/v0.4.4.md index d12a1b37..6da1c248 100644 --- a/site/content/release-notes/2016/v0.4.4.md +++ b/site/content/release-notes/2016/v0.4.4.md @@ -2,7 +2,7 @@ title: Release Notes v0.4.4 version: "0.4.4" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-06-13 --- diff --git a/site/content/release-notes/2016/v0.5.md b/site/content/release-notes/2016/v0.5.md index 79365599..b2c9dfeb 100644 --- a/site/content/release-notes/2016/v0.5.md +++ b/site/content/release-notes/2016/v0.5.md @@ -2,7 +2,7 @@ title: Release Notes v0.5 version: "0.5" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-08-08 --- diff --git a/site/content/release-notes/2016/v0.6.0.md b/site/content/release-notes/2016/v0.6.0.md index db1ad010..26035333 100644 --- a/site/content/release-notes/2016/v0.6.0.md +++ b/site/content/release-notes/2016/v0.6.0.md @@ -2,7 +2,7 @@ title: Release Notes v0.6.0 version: "0.6.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-10-14 --- diff --git a/site/content/release-notes/2016/v0.7.0.md b/site/content/release-notes/2016/v0.7.0.md index 9af60805..ed9766ec 100644 --- a/site/content/release-notes/2016/v0.7.0.md +++ b/site/content/release-notes/2016/v0.7.0.md @@ -2,7 +2,7 @@ title: Release Notes v0.7.0 version: "0.7.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2016-12-30 --- diff --git a/site/content/release-notes/2017/v0.10.0.md b/site/content/release-notes/2017/v0.10.0.md index 3e03f53a..848b9f56 100644 --- a/site/content/release-notes/2017/v0.10.0.md +++ b/site/content/release-notes/2017/v0.10.0.md @@ -2,7 +2,7 @@ title: Release Notes v0.10.0 version: "0.10.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2017-10-17 --- @@ -15,7 +15,7 @@ This release brings even more features to the framework, making it very close to IMPORTANT. The framework package names were renamed from `org.spine3.*` to `io.spine.*`. Here is a quick summary of changes. For more details please refer to the -[list of pull requests]({{% get-site-data "spine.core_jvm_repo" %}}/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aclosed%20merged%3A2017-05-03T16%3A00%3A00%2B03%3A00..2017-10-17) and Javadocs. +[list of pull requests]({{% get-site-data "repositories.core_jvm_repo" %}}/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aclosed%20merged%3A2017-05-03T16%3A00%3A00%2B03%3A00..2017-10-17) and Javadocs. #### Reacting upon `Events` and `Rejection`s @@ -87,7 +87,7 @@ available anymore. The designed way to modify the entity is via `getBuilder().se In addition, an automatic version management is introduced. For each applied event the version is automatically incremented. Direct version modification is not exposed as public API anymore. -For more details please see [#466]({{% get-site-data "spine.core_jvm_repo" %}}/pull/466). +For more details please see [#466]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/466). #### Entity Column Queries @@ -155,11 +155,11 @@ Let's say the second bounded context is `Users`. In case these bounded contexts transport, any `UserDeleted` event emitted inside of `Users` will also get delivered to `ProjectListView` of `Projects` bounded context. It will be done via `IntegrationBus`. -For more details see [#580]({{% get-site-data "spine.core_jvm_repo" %}}/pull/580). +For more details see [#580]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/580). #### One-liner updates -- Base data types and utilities have been extracted into [`base` repository]({{% get-site-data "spine.base_libraries_repo" %}}). +- Base data types and utilities have been extracted into [`base` repository]({{% get-site-data "repositories.base_libraries_repo" %}}). - `core` module was introduced in the `core-java` repository; it defines classes and interfaces, that are essential for building application in the Event Sourcing paradigm. - Custom Protobuf options defined by the framework now take numbers in the range `73812-75000`. diff --git a/site/content/release-notes/2017/v0.8.0.md b/site/content/release-notes/2017/v0.8.0.md index 51fe4c2d..5a69109d 100644 --- a/site/content/release-notes/2017/v0.8.0.md +++ b/site/content/release-notes/2017/v0.8.0.md @@ -2,7 +2,7 @@ title: Release Notes v0.8.0 version: "0.8.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2017-01-31 --- @@ -208,7 +208,7 @@ This is done to reflect the class nature better. - `UnexpectedTypeException` is thrown in response to packing/unpacking the Protobuf values instead of plain `RuntimeException` as previously. -- Issue [#255]({{% get-site-data "spine.core_jvm_repo" %}}/issues/255) fixed: return `Optional` on `load()` in +- Issue [#255]({{% get-site-data "repositories.core_jvm_repo" %}}/issues/255) fixed: return `Optional` on `load()` in `Repository` instances. - `Identifiers` utility class has been refactored, with a object-to-String conversion routines split into the separate `Stringifiers` utility class. diff --git a/site/content/release-notes/2017/v0.9.0.md b/site/content/release-notes/2017/v0.9.0.md index 4d4d7d79..4ab73000 100644 --- a/site/content/release-notes/2017/v0.9.0.md +++ b/site/content/release-notes/2017/v0.9.0.md @@ -2,7 +2,7 @@ title: Release Notes v0.9.0 version: "0.9.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2017-03-03 --- @@ -26,50 +26,50 @@ More feature details are available upon the PR link. #### Client-side features: - `ActorRequestFactory` is introduced as a single client-side utility to produce Commands, -Queries and Topics: [#431]({{% get-site-data "spine.core_jvm_repo" %}}/pull/431). +Queries and Topics: [#431]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/431). - IDs now belong to `Command`, `Event` and `Failure`, not to their -contexts: [#450]({{% get-site-data "spine.core_jvm_repo" %}}/pull/450), [#452]({{% get-site-data "spine.core_jvm_repo" %}}/pull/452). +contexts: [#450]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/450), [#452]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/452). - An ability to define the custom `Command` attributes is introduced to the public -API ([#448]({{% get-site-data "spine.core_jvm_repo" %}}/pull/448)). Also, `Command` now has the system-only properties -hidden from the public access ([#455]({{% get-site-data "spine.core_jvm_repo" %}}/pull/455)). +API ([#448]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/448)). Also, `Command` now has the system-only properties +hidden from the public access ([#455]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/455)). - `ActorContext` is now a unified context, reflecting the properties of an environment, where a `Command`, `Query` or `Topic` instance is created. - Fail-fast `Command` creation is available via `ValidatingBuilder`s. They are automatically generated for each `Command` and serve to validate the field values while building `Command` messages. - `Stand` input parameters are now validated according to the Protobuf annotations set for -the requests: [#437]({{% get-site-data "spine.core_jvm_repo" %}}/pull/437). +the requests: [#437]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/437). #### Server-side changes: -- It is now possible to `@Subscribe` to Failures: [#362]({{% get-site-data "spine.core_jvm_repo" %}}/pull/362), [#299]({{% get-site-data "spine.core_jvm_repo" %}}/pull/299). -- `FailureThrowable` API simplification: [#454]({{% get-site-data "spine.core_jvm_repo" %}}/pull/454). +- It is now possible to `@Subscribe` to Failures: [#362]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/362), [#299]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/299). +- `FailureThrowable` API simplification: [#454]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/454). - Entity lifecycle: - repository views for “archived” and “deleted” items; - - lifecycle flags: [#294]({{% get-site-data "spine.core_jvm_repo" %}}/pull/294), [#352]({{% get-site-data "spine.core_jvm_repo" %}}/pull/352), [#371]({{% get-site-data "spine.core_jvm_repo" %}}/pull/371), [#372]({{% get-site-data "spine.core_jvm_repo" %}}/pull/372). -- Improvements to entity versioning: [#346]({{% get-site-data "spine.core_jvm_repo" %}}/pull/346). -- `AggregatePart` and `AggregateRoot` API improvements: [#347]({{% get-site-data "spine.core_jvm_repo" %}}/pull/347). -- Changes to `Command` dispatchers and handlers: [#354]({{% get-site-data "spine.core_jvm_repo" %}}/pull/354), [#358]({{% get-site-data "spine.core_jvm_repo" %}}/pull/358). -- Simpler routing of commands for Process Managers: [#313]({{% get-site-data "spine.core_jvm_repo" %}}/pull/313). + - lifecycle flags: [#294]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/294), [#352]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/352), [#371]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/371), [#372]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/372). +- Improvements to entity versioning: [#346]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/346). +- `AggregatePart` and `AggregateRoot` API improvements: [#347]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/347). +- Changes to `Command` dispatchers and handlers: [#354]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/354), [#358]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/358). +- Simpler routing of commands for Process Managers: [#313]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/313). - `StorageFactory` is made more configurable for different environments. In particular, it is now easier to provide different Storage implementations for testing and production deployment -cases: [#289]({{% get-site-data "spine.core_jvm_repo" %}}/pull/289), [#290]({{% get-site-data "spine.core_jvm_repo" %}}/pull/290). +cases: [#289]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/289), [#290]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/290). It is now possible to store some of Entity fields separately to allow the further efficient - querying: [#398]({{% get-site-data "spine.core_jvm_repo" %}}/pull/398). -- `CommandStore` and `EventStorage` are now Repositories, based upon `RecordStorage`: [#394]({{% get-site-data "spine.core_jvm_repo" %}}/pull/394), [#395]({{% get-site-data "spine.core_jvm_repo" %}}/pull/395). + querying: [#398]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/398). +- `CommandStore` and `EventStorage` are now Repositories, based upon `RecordStorage`: [#394]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/394), [#395]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/395). #### Utilities: - `StringifierRegistry` is introduced to organize and simplify string-to-object and object-to-string conversion for Entity state objects and other user-defined types: -[#389]({{% get-site-data "spine.core_jvm_repo" %}}/pull/389), -[#382]({{% get-site-data "spine.core_jvm_repo" %}}/pull/382), -[#383]({{% get-site-data "spine.core_jvm_repo" %}}/pull/383), -[#378]({{% get-site-data "spine.core_jvm_repo" %}}/pull/378), -[#423]({{% get-site-data "spine.core_jvm_repo" %}}/pull/423), -[#436]({{% get-site-data "spine.core_jvm_repo" %}}/pull/436). -- Improvements to Date/Time API: [#387]({{% get-site-data "spine.core_jvm_repo" %}}/pull/387). +[#389]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/389), +[#382]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/382), +[#383]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/383), +[#378]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/378), +[#423]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/423), +[#436]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/436). +- Improvements to Date/Time API: [#387]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/387). Lots of less valuable changes were made as well, including performance improvements, extended configurability of the framework building blocks, more helper utilities and object factories @@ -77,7 +77,7 @@ for testing. #### Version updates: -- gRPC 1.1.2 ([#341]({{% get-site-data "spine.core_jvm_repo" %}}/pull/341)). +- gRPC 1.1.2 ([#341]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/341)). - Gradle 3.5. #### New test dependencies: diff --git a/site/content/release-notes/2018/v1.0.0-pre1.md b/site/content/release-notes/2018/v1.0.0-pre1.md index bb8c678b..6a577a9d 100644 --- a/site/content/release-notes/2018/v1.0.0-pre1.md +++ b/site/content/release-notes/2018/v1.0.0-pre1.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.0-pre1 version: "1.0.0-pre1" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2018-11-03 --- @@ -17,7 +17,7 @@ This is a pre-release of the `base` library. This release contains numerous small improvements in the code base, such as: - `Color` model is improved, as the transparency channel is added to the basic RGB color definition; -- `Money` and utilities for working with money were moved into a separate [repository]({{% get-site-data "spine.money_repo" %}}); +- `Money` and utilities for working with money were moved into a separate [repository]({{% get-site-data "repositories.money_repo" %}}); - build-time and test-time logging was improved by removing unnecessary build warnings and introducing a JUnit extension for muting redundant test output; - several new convenient APIs added (see `Identifier.generate(Class)`); @@ -46,8 +46,8 @@ feature completeness: and `Entity`, allowing to trace paths and consequences of incoming end-user imperatives. - Make `Rejection`s a special kind of `Event`s to simplify thinking for framework users. -For more details on the features please see [#733]({{% get-site-data "spine.core_jvm_repo" %}}/issues/733), -[#804]({{% get-site-data "spine.core_jvm_repo" %}}/pull/804) and [#810]({{% get-site-data "spine.core_jvm_repo" %}}/pull/810) and consult +For more details on the features please see [#733]({{% get-site-data "repositories.core_jvm_repo" %}}/issues/733), +[#804]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/804) and [#810]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/810) and consult the source code. In addition the framework now uses [Error Prone](https://errorprone.info/) with a conjunction diff --git a/site/content/release-notes/2018/v1.0.0-pre2.md b/site/content/release-notes/2018/v1.0.0-pre2.md index f5b4ed3b..13c05c48 100644 --- a/site/content/release-notes/2018/v1.0.0-pre2.md +++ b/site/content/release-notes/2018/v1.0.0-pre2.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.0-pre2 version: "1.0.0-pre2" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2018-12-20 --- @@ -14,19 +14,19 @@ This version brings test API updates, bug fixes and performance optimizations. #### Improvements in the test framework -- `TestClient` utility ([#884]({{% get-site-data "spine.core_jvm_repo" %}}/pull/884)). -- Several features in `BlackBoxBoundedContext` ([#897]({{% get-site-data "spine.core_jvm_repo" %}}/pull/897), [#903]({{% get-site-data "spine.core_jvm_repo" %}}/pull/903), [#904]({{% get-site-data "spine.core_jvm_repo" %}}/pull/904)). -- New factory methods in `GivenUserId` ([#891]({{% get-site-data "spine.core_jvm_repo" %}}/pull/891)). +- `TestClient` utility ([#884]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/884)). +- Several features in `BlackBoxBoundedContext` ([#897]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/897), [#903]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/903), [#904]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/904)). +- New factory methods in `GivenUserId` ([#891]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/891)). #### Optimizations -- Read less data upon each Aggregate load ([#892]({{% get-site-data "spine.core_jvm_repo" %}}/pull/892)). -- Add forceful `GrpcContainer. shutdownNowAndWait ()` to reduce waiting time ([#883]({{% get-site-data "spine.core_jvm_repo" %}}/pull/883)). +- Read less data upon each Aggregate load ([#892]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/892)). +- Add forceful `GrpcContainer. shutdownNowAndWait ()` to reduce waiting time ([#883]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/883)). #### Resolved issues -- Make `ProcessManager` versioned properly ([#893]({{% get-site-data "spine.core_jvm_repo" %}}/pull/893)). -- Ignore `Empty` and `Nothing` returning values from `@Command`-er handlers ([#895]({{% get-site-data "spine.core_jvm_repo" %}}/pull/895)). -- Do not detect entity columns if no `@Column` annotation was explicitly set ([#917]({{% get-site-data "spine.core_jvm_repo" %}}/pull/917)). +- Make `ProcessManager` versioned properly ([#893]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/893)). +- Ignore `Empty` and `Nothing` returning values from `@Command`-er handlers ([#895]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/895)). +- Do not detect entity columns if no `@Column` annotation was explicitly set ([#917]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/917)). - When creating actor requests, do not require both zone offset and zone ID from clients; -calculate zone offset automatically ([#915]({{% get-site-data "spine.core_jvm_repo" %}}/pull/915)). +calculate zone offset automatically ([#915]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/915)). diff --git a/site/content/release-notes/2019/v1.0.0-pre3.md b/site/content/release-notes/2019/v1.0.0-pre3.md index ced28f19..6135fb19 100644 --- a/site/content/release-notes/2019/v1.0.0-pre3.md +++ b/site/content/release-notes/2019/v1.0.0-pre3.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.0-pre3 version: "1.0.0-pre3" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-01-16 --- @@ -14,26 +14,26 @@ This pre-release brings several fixes and API improvements to the `base` library #### Fixes -- `required` option now works for `oneof` fields ([#240]({{% get-site-data "spine.base_libraries_repo" %}}/pull/240)); -- `repeated` fields now may be included in `FieldMasks` ([#250]({{% get-site-data "spine.base_libraries_repo" %}}/pull/250)); -- removed `ValidatingBuilder`s for standard types ([#252]({{% get-site-data "spine.base_libraries_repo" %}}/pull/252)); -- removed `modelCompiler. generateBuildersFromClasspath` ([#252]({{% get-site-data "spine.base_libraries_repo" %}}/pull/252)); +- `required` option now works for `oneof` fields ([#240]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/240)); +- `repeated` fields now may be included in `FieldMasks` ([#250]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/250)); +- removed `ValidatingBuilder`s for standard types ([#252]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/252)); +- removed `modelCompiler. generateBuildersFromClasspath` ([#252]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/252)); - `ValidatingBuilder`s generation attempts are dropped and warnings are not logged any -more ([#268]({{% get-site-data "spine.base_libraries_repo" %}}/pull/268)). -- generated field annotation lookup bug is fixed ([#269]({{% get-site-data "spine.base_libraries_repo" %}}/pull/269)); -- `ValidatingBuilder`s for nested types are now generated ([#272]({{% get-site-data "spine.base_libraries_repo" %}}/pull/272)); -- constraint validation error messages are now more readable ([#279]({{% get-site-data "spine.base_libraries_repo" %}}/pull/279)); +more ([#268]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/268)). +- generated field annotation lookup bug is fixed ([#269]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/269)); +- `ValidatingBuilder`s for nested types are now generated ([#272]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/272)); +- constraint validation error messages are now more readable ([#279]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/279)); #### API improvements -- `(is)` and `(every_is)` options now allow implementing existing Java interfaces ([#248]({{% get-site-data "spine.base_libraries_repo" %}}/pull/248)); +- `(is)` and `(every_is)` options now allow implementing existing Java interfaces ([#248]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/248)); - introduced `(set_once)` field option, which does not allow to change the value of a field after -it was once set ([#257]({{% get-site-data "spine.base_libraries_repo" %}}/pull/257), [#275]({{% get-site-data "spine.base_libraries_repo" %}}/pull/275)); +it was once set ([#257]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/257), [#275]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/275)); - numeric and boolean Protobuf types do not support `(required)`; a message is logged on the -option misuse; ([#266]({{% get-site-data "spine.base_libraries_repo" %}}/pull/266)); -- generated identifier types now support factory methods for convenience ([#267]({{% get-site-data "spine.base_libraries_repo" %}}/pull/267)); -- generated code is now marked with Java annotation types which can be specified ([#280]({{% get-site-data "spine.base_libraries_repo" %}}/pull/280)); -- selected generated methods and classes now can be marked as `@Internal` ([#284]({{% get-site-data "spine.base_libraries_repo" %}}/pull/284), [#287]({{% get-site-data "spine.base_libraries_repo" %}}/pull/287)). +option misuse; ([#266]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/266)); +- generated identifier types now support factory methods for convenience ([#267]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/267)); +- generated code is now marked with Java annotation types which can be specified ([#280]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/280)); +- selected generated methods and classes now can be marked as `@Internal` ([#284]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/284), [#287]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/287)). ## CoreJvm @@ -42,21 +42,21 @@ infrastructure refactoring. #### Framework API Changes -- the `Sharding` and all the connected concepts are deleted ([#929]({{% get-site-data "spine.core_jvm_repo" %}}/pull/929)); +- the `Sharding` and all the connected concepts are deleted ([#929]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/929)); - the Model Verifier plugin now runs the command handler signature checks and fails/logs warnings -on signature mismatches ([#930]({{% get-site-data "spine.core_jvm_repo" %}}/pull/930)); +on signature mismatches ([#930]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/930)); - `BoundedContextBuilder` now facades the context components building (such as `IntegrationBus`) -([#929]({{% get-site-data "spine.core_jvm_repo" %}}/pull/929)); +([#929]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/929)); - `PmSubject` class is added in order to allow testing process managers using Truth -([#939]({{% get-site-data "spine.core_jvm_repo" %}}/pull/939)); -- `Entity` hierarchy is flattened and cleaned up ([#940]({{% get-site-data "spine.core_jvm_repo" %}}/pull/940)); +([#939]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/939)); +- `Entity` hierarchy is flattened and cleaned up ([#940]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/940)); - the version of Gradle is updated to `5.1.1` which affects the users of Spine Gradle plugins -([#932]({{% get-site-data "spine.core_jvm_repo" %}}/pull/932)). +([#932]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/932)). #### Various Fixes - `@VisibleForTesting` annotation on `ProcessManager.getBuilder()` method is properly -documented ([#913]({{% get-site-data "spine.core_jvm_repo" %}}/pull/913)); -- internal API clean up ([#933]({{% get-site-data "spine.core_jvm_repo" %}}/pull/933)); +documented ([#913]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/913)); +- internal API clean up ([#933]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/933)); - make the `RecordBasedRepository` able to find archived or/and deleted entities -([#939]({{% get-site-data "spine.core_jvm_repo" %}}/pull/939)). +([#939]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/939)). diff --git a/site/content/release-notes/2019/v1.0.0-pre4.md b/site/content/release-notes/2019/v1.0.0-pre4.md index 74ca171a..64dd8787 100644 --- a/site/content/release-notes/2019/v1.0.0-pre4.md +++ b/site/content/release-notes/2019/v1.0.0-pre4.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.0-pre4 version: "1.0.0-pre4" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-02-08 --- @@ -13,12 +13,12 @@ date: 2019-02-08 Since `1.0.0-pre3` there were several improvements to the library. Notable changes are listed below. - Spine JavaScript plugin for Gradle sets proper `require`s for the Protobuf-generated -files ([#298]({{% get-site-data "spine.base_libraries_repo" %}}/pull/298)). +files ([#298]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/298)). - Duplicated rejections are no longer generated for the libraries in the -classpath ([#299]({{% get-site-data "spine.base_libraries_repo" %}}/pull/299)). -- `enrichment` option was removed ([#312]({{% get-site-data "spine.base_libraries_repo" %}}/pull/312)). -- Proto descriptors are no longer merged into one file by default ([#307]({{% get-site-data "spine.base_libraries_repo" %}}/pull/307)). -- Marker interfaces are now generated for enrichments as well ([#314]({{% get-site-data "spine.base_libraries_repo" %}}/pull/314)). +classpath ([#299]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/299)). +- `enrichment` option was removed ([#312]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/312)). +- Proto descriptors are no longer merged into one file by default ([#307]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/307)). +- Marker interfaces are now generated for enrichments as well ([#314]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/314)). ## CoreJvm @@ -26,8 +26,8 @@ Moving closer to the public release, this pre-release brings a few improvements the library users. - `SubscriptionService` now allows to subscribe to domain events in addition to entity state updates. -See [#961]({{% get-site-data "spine.core_jvm_repo" %}}/pull/961). +See [#961]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/961). - `(enrichment)` option is removed in favor of `(enrichment_for)` and `(by)` options. -See [base#308]({{% get-site-data "spine.base_libraries_repo" %}}/issues/308). +See [base#308]({{% get-site-data "repositories.base_libraries_repo" %}}/issues/308). The Gradle version was updated to 5.2. diff --git a/site/content/release-notes/2019/v1.0.0-pre7.md b/site/content/release-notes/2019/v1.0.0-pre7.md index e65e32df..81cd2146 100644 --- a/site/content/release-notes/2019/v1.0.0-pre7.md +++ b/site/content/release-notes/2019/v1.0.0-pre7.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.0-pre7 version: "1.0.0-pre7" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-05-03 --- diff --git a/site/content/release-notes/2019/v1.0.0.md b/site/content/release-notes/2019/v1.0.0.md index a67a5a61..b3428740 100644 --- a/site/content/release-notes/2019/v1.0.0.md +++ b/site/content/release-notes/2019/v1.0.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.0 version: "1.0.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-08-05 --- @@ -14,11 +14,11 @@ This is the first public release of `base` modules. #### Notable API changes: -- SLF4J logging is replaced by Flogger ([#451]({{% get-site-data "spine.base_libraries_repo" %}}/pull/451)). +- SLF4J logging is replaced by Flogger ([#451]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/451)). - Protobuf messages generated with Spine plugins may now be built with validation by -calling `.vBuild()` ([#409]({{% get-site-data "spine.base_libraries_repo" %}}/pull/409)). The generation of separate `...VBuilder` +calling `.vBuild()` ([#409]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/409)). The generation of separate `...VBuilder` classes was removed. -- External libraries may now register custom validation options ([#408]({{% get-site-data "spine.base_libraries_repo" %}}/pull/408)). +- External libraries may now register custom validation options ([#408]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/408)). ## CoreJvm @@ -28,30 +28,30 @@ This is the first public release of Spine core modules. - `ServerEnvironment` is now responsible for the configuration of the server-wide routines, such as `StorageFactory`, `TransportFactory` and `Delivery`. -- System Bounded Context is now configurable — [#1115]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1115). It was -simplified and made less intrusive — [#1084]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1084). +- System Bounded Context is now configurable — [#1115]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1115). It was +simplified and made less intrusive — [#1084]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1084). - Entities now receive messages via `Inbox`, which supports message sharding and de-duplication -in a multi-node environment — [#1096]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1096). -- Trace API was introduced — [#1090]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1090). +in a multi-node environment — [#1096]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1096). +- Trace API was introduced — [#1090]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1090). - Errors during the message dispatching no longer throw exceptions. A series of system events -was introduced instead — [#1104]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1104). -- `ConstraintViolated` system event was introduced — [#1081]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1081). +was introduced instead — [#1104]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1104). +- `ConstraintViolated` system event was introduced — [#1081]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1081). - `BoundedContext` configuration was simplified. Also, `BoundedContextBuilder` is now the only API to set up the context; all the duplicating API calls were removed from the `BoundedContext` -itself — [#1108]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1108). -- It is now possible to `@Command` upon external events — [#1116]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1116). -- `@Command` methods which accept events, may now ignore them — [#1114]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1114). +itself — [#1108]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1108). +- It is now possible to `@Command` upon external events — [#1116]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1116). +- `@Command` methods which accept events, may now ignore them — [#1114]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1114). - `BlackBoxBoundedContext` API was extended with an ability to assert `Query` and `Subscription` -behavior by using the corresponding test subjects — [#1124]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1124), -[#1126]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1126). +behavior by using the corresponding test subjects — [#1124]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1124), +[#1126]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1126). - `BlackBoxBoundedContext` API is now the only way to test the applications built with Spine. -The previous unit-testing framework was removed — [#1110]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1110). +The previous unit-testing framework was removed — [#1110]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1110). - Entity `@Column` API marked as `@Experimental`, as we can still see a room for API improvement -and further changes — [#1134]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1134). -- `IntegrationBus` behavior on handling new `BoundedContext`s was fixed — [#1120]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1120). -- Previously deprecated API was removed — [#1122]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1122). +and further changes — [#1134]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1134). +- `IntegrationBus` behavior on handling new `BoundedContext`s was fixed — [#1120]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1120). +- Previously deprecated API was removed — [#1122]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1122). -Also, we created a [chat on Discussions]({{% get-site-data "spine.socials.github_discussions" %}}) +Also, we created a [chat on Discussions]({{% get-site-data "socials.github_discussions" %}}) for answering the questions on the framework use. Please feel free to join and say hi! ## JDBC Storage diff --git a/site/content/release-notes/2019/v1.0.1.md b/site/content/release-notes/2019/v1.0.1.md index b4d88776..e3bec820 100644 --- a/site/content/release-notes/2019/v1.0.1.md +++ b/site/content/release-notes/2019/v1.0.1.md @@ -2,7 +2,7 @@ title: Release Notes v1.0.1 version: "1.0.1" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-08-08 --- @@ -15,6 +15,6 @@ This is a performance and maintenance release of Spine `core` libraries. #### Changes: - The performance of `AggregateRepository.index()` was improved by delegating to an Aggregate -mirror — [#1138]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1138). +mirror — [#1138]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1138). - The subscription registry synchronization was improved. Now the creation of the repetitive -subscriptions to the same `Target` behaves as expected — [#1139]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1139). +subscriptions to the same `Target` behaves as expected — [#1139]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1139). diff --git a/site/content/release-notes/2019/v1.1.0.md b/site/content/release-notes/2019/v1.1.0.md index b430627c..813f232b 100644 --- a/site/content/release-notes/2019/v1.1.0.md +++ b/site/content/release-notes/2019/v1.1.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.1.0 version: "1.1.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-09-10 --- @@ -15,7 +15,7 @@ stability improvements. #### API changes -- New API for importing events from third-party systems ([#1152]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1152)). +- New API for importing events from third-party systems ([#1152]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1152)). For that, users may represent a third-party system as a Bounded Context. A `ThirdPartyContext` publishes events submitted by the user as external events so that Spine-based Contexts may subscribe/react on them. Example: @@ -31,15 +31,15 @@ context.emittedEvent(event, actor); ``` - Deprecation of `@ByField` filtering in event subscribers. Now, the subscriber parameter itself -should be annotated with `@Where` ([#1159]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1159)). -- New extension points in the `Delivery` mechanism allow for fine-tuning ([#1153]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1153)). +should be annotated with `@Where` ([#1159]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1159)). +- New extension points in the `Delivery` mechanism allow for fine-tuning ([#1153]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1153)). - `IntegrationBus` seized to exist. Instead, we introduce new internal components which perform -the same job. Public API for SPI users was NOT changed ([#1156]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1156)). +the same job. Public API for SPI users was NOT changed ([#1156]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1156)). - Test utilities now use the latest release version of Google Truth. Minor backward compatibility -issues may be expected at the users' end ([#1146]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1146)). +issues may be expected at the users' end ([#1146]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1146)). #### Other changes This release brings a number of performance improvements, most notably in the System Context -([#1140]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1140)) and in the handler method scan process -([#1147]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1147), [#1148]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1148)). +([#1140]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1140)) and in the handler method scan process +([#1147]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1147), [#1148]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1148)). diff --git a/site/content/release-notes/2019/v1.1.2.md b/site/content/release-notes/2019/v1.1.2.md index cbf75e3c..546bfc84 100644 --- a/site/content/release-notes/2019/v1.1.2.md +++ b/site/content/release-notes/2019/v1.1.2.md @@ -2,7 +2,7 @@ title: Release Notes v1.1.2 version: "1.1.2" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-09-26 --- @@ -14,18 +14,18 @@ This release brings several improvements and bug fixes to the library. #### Notable changes: - A new `Field` utility is introduced for working with Protobuf field paths. The new functionality -mirrors and extends the existing `FieldPaths` utility which is now deprecated ([#467]({{% get-site-data "spine.base_libraries_repo" %}}/pull/467)). -- `Tests` utility is extended with method `halt()` for failing on unexpected method calls ([#464]({{% get-site-data "spine.base_libraries_repo" %}}/pull/464)). -- `Stringifiers.toString(...)` now correctly processes the `enum` values ([#462]({{% get-site-data "spine.base_libraries_repo" %}}/pull/462)). +mirrors and extends the existing `FieldPaths` utility which is now deprecated ([#467]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/467)). +- `Tests` utility is extended with method `halt()` for failing on unexpected method calls ([#464]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/464)). +- `Stringifiers.toString(...)` now correctly processes the `enum` values ([#462]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/462)). - Test utilities now use the latest release version of Google Truth. Minor backward compatibility -issues may be expected at the users' end ([#463]({{% get-site-data "spine.base_libraries_repo" %}}/pull/463)). +issues may be expected at the users' end ([#463]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/463)). ## CoreJvm This release of Spine `core` libraries includes: -- Several API improvements for entity repositories - [#1172]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1172). -- The documentation improvements for the `@React` annotation - [#1171]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1171). +- Several API improvements for entity repositories - [#1172]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1172). +- The documentation improvements for the `@React` annotation - [#1171]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1171). ## Bootstrap diff --git a/site/content/release-notes/2019/v1.2.0.md b/site/content/release-notes/2019/v1.2.0.md index ba11ad3b..7b60de25 100644 --- a/site/content/release-notes/2019/v1.2.0.md +++ b/site/content/release-notes/2019/v1.2.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.2.0 version: "1.2.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-11-08 --- @@ -13,47 +13,47 @@ This release includes several new features and some existing feature improvement #### Notable changes: -- The [client]({{% get-site-data "spine.dart_repo" %}}) based on [Dart](https://dart.dev/) +- The [client]({{% get-site-data "repositories.dart_repo" %}}) based on [Dart](https://dart.dev/) programming language is now available. The `base` is extended with Dart-related -[tools]({{% get-site-data "spine.base_libraries_repo" %}}/tree/v1.2.0/tools/proto-dart-plugin). -- Several API improvements for precondition checks ([#486]({{% get-site-data "spine.base_libraries_repo" %}}/pull/486), -[#487]({{% get-site-data "spine.base_libraries_repo" %}}/pull/487)). +[tools]({{% get-site-data "repositories.base_libraries_repo" %}}/tree/v1.2.0/tools/proto-dart-plugin). +- Several API improvements for precondition checks ([#486]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/486), +[#487]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/487)). - It is now allowed to disable the validating builders generation when using Spine Model -Compiler ([#493]({{% get-site-data "spine.base_libraries_repo" %}}/pull/493)). +Compiler ([#493]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/493)). - A new `EntityState` marker interface is introduced for proto messages that represent a state -of an entity ([#494]({{% get-site-data "spine.base_libraries_repo" %}}/pull/494)). +of an entity ([#494]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/494)). ## CoreJvm This release includes several new features and some API improvements for the library. #### Notable changes: -- The [client]({{% get-site-data "spine.dart_repo" %}}) based on [Dart](https://dart.dev/) +- The [client]({{% get-site-data "repositories.dart_repo" %}}) based on [Dart](https://dart.dev/) programming language is now available. -- The rules applied to handler methods are now strictly enforced. See [#1175]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1175) -- A new `(column)` option is introduced in place of an old column API ([#1184]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1184)). -- Several API extensions for the Delivery process ([#1182]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1182)). -- The entity state is now properly rolled back on rejections ([#1181]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1181)). -- An ability to create system request factories is added ([#1177]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1177)). -- Performance improvements for the `external` events dispatching ([#1180]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1180)). -- An `EmptyContext` placeholder is introduced to easier API for messages that do not require a context ([#1185]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1185)). +- The rules applied to handler methods are now strictly enforced. See [#1175]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1175) +- A new `(column)` option is introduced in place of an old column API ([#1184]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1184)). +- Several API extensions for the Delivery process ([#1182]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1182)). +- The entity state is now properly rolled back on rejections ([#1181]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1181)). +- An ability to create system request factories is added ([#1177]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1177)). +- Performance improvements for the `external` events dispatching ([#1180]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1180)). +- An `EmptyContext` placeholder is introduced to easier API for messages that do not require a context ([#1185]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1185)). ## Web A public release of the Spine Web library. #### Notable changes: -- The [client]({{% get-site-data "spine.dart_repo" %}}) based on [Dart](https://dart.dev/) +- The [client]({{% get-site-data "repositories.dart_repo" %}}) based on [Dart](https://dart.dev/) programming language is now available. -- The `order_by` query attribute is now supported in the JS client ([#121]({{% get-site-data "spine.web_repo" %}}/pull/121)). +- The `order_by` query attribute is now supported in the JS client ([#121]({{% get-site-data "repositories.web_repo" %}}/pull/121)). ## Google Cloud Java This release brings a couple of API improvements to the library. #### Notable changes: -- A new API for Datastore transactions is introduced, making them thread-safe ([#132]({{% get-site-data "spine.gcloud_java_repo" %}}/pull/132)). -- All Datastore-related test utilities are moved to a separate `testutil-gcloud` module ([#131]({{% get-site-data "spine.gcloud_java_repo" %}}/pull/131)). +- A new API for Datastore transactions is introduced, making them thread-safe ([#132]({{% get-site-data "repositories.gcloud_java_repo" %}}/pull/132)). +- All Datastore-related test utilities are moved to a separate `testutil-gcloud` module ([#131]({{% get-site-data "repositories.gcloud_java_repo" %}}/pull/131)).
diff --git a/site/content/release-notes/2019/v1.3.0.md b/site/content/release-notes/2019/v1.3.0.md index 8b567437..9db29928 100644 --- a/site/content/release-notes/2019/v1.3.0.md +++ b/site/content/release-notes/2019/v1.3.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.3.0 version: "1.3.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2019-12-17 --- @@ -14,37 +14,37 @@ This PR brings several API improvements to the library. #### Notable changes: - A `KnownMessage` interface is introduced. It marks the messages that are generated with Spine -Model Compiler and can provide their `typeUrl()` ([#495]({{% get-site-data "spine.base_libraries_repo" %}}/pull/495)). -- The deprecated `FieldPaths` utility is now removed ([#495]({{% get-site-data "spine.base_libraries_repo" %}}/pull/495)). -- A lot of third-party dependencies are updated to the newer version ([#496]({{% get-site-data "spine.base_libraries_repo" %}}/pull/496)). +Model Compiler and can provide their `typeUrl()` ([#495]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/495)). +- The deprecated `FieldPaths` utility is now removed ([#495]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/495)). +- A lot of third-party dependencies are updated to the newer version ([#496]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/496)). - The conversion routines in `TypeConverter` will now support the number-based `EnumValue` -instances ([#501]({{% get-site-data "spine.base_libraries_repo" %}}/pull/501)). +instances ([#501]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/501)). ## CoreJvm This release includes several API improvements for the library, as well as some new features. #### Notable changes: -- The new high-level client API is introduced ([#1186]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1186)). -- Rejection classes can now be properly subscribed to ([#1193]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1193)) -- Several multi-threading tweaks are applied to improve the delivery process ([#1200]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1200)). +- The new high-level client API is introduced ([#1186]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1186)). +- Rejection classes can now be properly subscribed to ([#1193]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1193)) +- Several multi-threading tweaks are applied to improve the delivery process ([#1200]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1200)). - The `AggregateHistoryCorrupted` event is added. It signals to the user that the aggregate state -has become invalid and the aggregate cannot handle any more incoming signals ([#1199]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1199)). -- It's now allowed to subscribe to the same rejection type multiple times with the different causes ([#1205]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1205)). +has become invalid and the aggregate cannot handle any more incoming signals ([#1199]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1199)). +- It's now allowed to subscribe to the same rejection type multiple times with the different causes ([#1205]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1205)). - The subscription topic is now additionally validated on the client to fail fast on invalid topic -creation ([#1197]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1197)). -- The `spine.core.Version` can now be specified in the ordering filters for queries and subscriptions ([#1198]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1198)). +creation ([#1197]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1197)). +- The `spine.core.Version` can now be specified in the ordering filters for queries and subscriptions ([#1198]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1198)). - The `BlackBoxBoundedContext`-based tests now have a `DiagnosticLog` which logs all received diagnostic -events with a meaningful message ([#1209]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1209)). +events with a meaningful message ([#1209]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1209)). - The `CannotDispatchDuplicateEvent` and `CannotDispatchDuplicateCommand` now provide the type of -the duplicate signal ([#1209]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1209)). -- A lot of third-party dependencies are updated to the newer version ([#1195]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1195)). +the duplicate signal ([#1209]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1209)). +- A lot of third-party dependencies are updated to the newer version ([#1195]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1195)). ## Web A public release of the Spine Web library. In this release, the client API got a revamp to simplify calls and provide all the features that -the Java client provides. See [#125]({{% get-site-data "spine.web_repo" %}}/pull/125), [#127]({{% get-site-data "spine.web_repo" %}}/pull/127). +the Java client provides. See [#125]({{% get-site-data "repositories.web_repo" %}}/pull/125), [#127]({{% get-site-data "repositories.web_repo" %}}/pull/127).
diff --git a/site/content/release-notes/2020/v1.4.0.md b/site/content/release-notes/2020/v1.4.0.md index 6077ad95..d2a55ce5 100644 --- a/site/content/release-notes/2020/v1.4.0.md +++ b/site/content/release-notes/2020/v1.4.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.4.0 version: "1.4.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2020-01-08 --- @@ -12,8 +12,8 @@ date: 2020-01-08 This release concentrates mainly on performance improvements. -- The new [generated validation API]({{% get-site-data "spine.base_libraries_repo" %}}/pull/497) is now +- The new [generated validation API]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/497) is now available with the **beta** status. - `(pattern)` option now only applies to non-empty string values. -- The bug preventing users from declaring enum-type columns is [fixed]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1215). -- API of code libraries is [extended]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1216). +- The bug preventing users from declaring enum-type columns is [fixed]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1215). +- API of code libraries is [extended]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1216). diff --git a/site/content/release-notes/2020/v1.5.0.md b/site/content/release-notes/2020/v1.5.0.md index 600db54b..a2488061 100644 --- a/site/content/release-notes/2020/v1.5.0.md +++ b/site/content/release-notes/2020/v1.5.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.5.0 version: "1.5.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2020-03-08 --- @@ -15,10 +15,10 @@ This release includes numerous API updates and performance improvements. The most noticeable are listed below. - `Time.currentTime()` now returns the time with microsecond precision. The values are emulated, -increasing for each consequent call ([#504]({{% get-site-data "spine.base_libraries_repo" %}}/pull/504), [#512]({{% get-site-data "spine.base_libraries_repo" %}}/pull/512)). -- `(constraint_for)` is now supported by the Spine compiler ([#505]({{% get-site-data "spine.base_libraries_repo" %}}/pull/505)). -- Support for the new Column API has been added to the Spine compiler ([#508]({{% get-site-data "spine.base_libraries_repo" %}}/pull/508)). -- Logging API has been extended ([#513]({{% get-site-data "spine.base_libraries_repo" %}}/pull/513)). +increasing for each consequent call ([#504]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/504), [#512]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/512)). +- `(constraint_for)` is now supported by the Spine compiler ([#505]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/505)). +- Support for the new Column API has been added to the Spine compiler ([#508]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/508)). +- Logging API has been extended ([#513]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/513)). For more details please navigate to the list of the closed pull requests and their descriptions. @@ -27,21 +27,21 @@ For more details please navigate to the list of the closed pull requests and the This major update of the library brings a number of new features and performance improvements. -- Projections now support an automated run-time catch-up ([#1221]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1221)). +- Projections now support an automated run-time catch-up ([#1221]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1221)). - The client API was made less error-prone by enforcing the strong typing for the columns and properties of Entities and Events. The list of the model fields is generated as Java code by the -Spine compiler at build-time ([#1229]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1229), [#1246]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1246)). +Spine compiler at build-time ([#1229]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1229), [#1246]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1246)). - A data migration API is now available for `ProcessManager`s and `Projection`s. It automates the -process of updating the existing data upon the changes in the domain model ([#1241]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1241)). +process of updating the existing data upon the changes in the domain model ([#1241]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1241)). - The logging records made from within the Entity handlers now print the full signature of the -called method ([#1242]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1242)). +called method ([#1242]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1242)). - It is now possible to specify an actor when composing a test scenario with `BlackBoxBoundedContext` -API ([#1242]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1242)). +API ([#1242]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1242)). - `CommandBus` is no longer responsible for validating the first field of the transmitted -`Command`s; instead, this is a job of the `Repository` for the target `Entity` ([#1245]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1245)). +`Command`s; instead, this is a job of the `Repository` for the target `Entity` ([#1245]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1245)). The API of `InboxMessage` has been changed so that any of the existing `InboxMessages` become -incompatible ([#1239]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1239)). Please make sure to deliver the messages +incompatible ([#1239]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1239)). Please make sure to deliver the messages from all of your production `Inbox`es prior to updating to the new version. Also, a number of minor improvements and issues were addressed. Please see the list of closed pull diff --git a/site/content/release-notes/2020/v1.6.0.md b/site/content/release-notes/2020/v1.6.0.md index ab07d618..6df493a1 100644 --- a/site/content/release-notes/2020/v1.6.0.md +++ b/site/content/release-notes/2020/v1.6.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.6.0 version: "1.6.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2020-09-14 --- @@ -17,8 +17,8 @@ to the framework. #### Execution environment -1. Custom environments support is introduced [[#539]({{% get-site-data "spine.base_libraries_repo" %}}/pull/539), -[#542]({{% get-site-data "spine.base_libraries_repo" %}}/pull/542), [#545]({{% get-site-data "spine.base_libraries_repo" %}}/pull/545)]. +1. Custom environments support is introduced [[#539]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/539), +[#542]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/542), [#545]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/545)]. The `Environment` now exposes API to register user-defined environment types. This can be done by extending the `EnvironmentType` class: @@ -51,51 +51,51 @@ to the framework. 1. The `io.spine.testing` package is added to the list of known testing libraries. When it occurs in the class path, the environment will always be resolved to -`Tests` [[#544]({{% get-site-data "spine.base_libraries_repo" %}}/pull/544)]. +`Tests` [[#544]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/544)]. #### Protobuf Model definition 1. `(min)`, `(max)` and `(range)` constraints will now be verified to be the whole numbers when -applied to a whole number field (`int32`, etc.) [[#560]({{% get-site-data "spine.base_libraries_repo" %}}/pull/560)]. +applied to a whole number field (`int32`, etc.) [[#560]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/560)]. 1. `(is)` and `(every_is)` options will now be applied simultaneously instead of `(is)` taking -priority over `(every_is)` [[#531]({{% get-site-data "spine.base_libraries_repo" %}}/pull/531)]. +priority over `(every_is)` [[#531]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/531)]. -1. New tools are added for working with regex-es in Protobuf [[#520]({{% get-site-data "spine.base_libraries_repo" %}}/pull/520)]. +1. New tools are added for working with regex-es in Protobuf [[#520]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/520)]. 1. An `(is_required)` validation option is added for `oneof` group fields -[[#523]({{% get-site-data "spine.base_libraries_repo" %}}/pull/523)]. +[[#523]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/523)]. 1. The `spine.ui.Language` enumeration is now defined and contains language codes defined by -ISO 639-1 [[#522]({{% get-site-data "spine.base_libraries_repo" %}}/pull/522)]. +ISO 639-1 [[#522]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/522)]. #### Other JSON parser will now ignore unknown fields, allowing easier data migrations between old/new -Protobuf schemas [[#518]({{% get-site-data "spine.base_libraries_repo" %}}/pull/518)]. +Protobuf schemas [[#518]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/518)]. ### Fixes 1. The Spine `protoc` plugin location process is simplified. This enables creation of [composite builds](https://docs.gradle.org/current/userguide/composite_builds.html) for -Spine-based projects [[#559]({{% get-site-data "spine.base_libraries_repo" %}}/pull/559)]. +Spine-based projects [[#559]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/559)]. 1. `Time` is tweaked to provide identical behaviour on all platforms under Java 8 and -Java 9+ [[#554]({{% get-site-data "spine.base_libraries_repo" %}}/pull/554)]. +Java 9+ [[#554]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/554)]. 1. The proper import resolution is implemented for the Dart client -[[#524]({{% get-site-data "spine.base_libraries_repo" %}}/pull/524)]. +[[#524]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/524)]. 1. `javax.annotations-api` dependency is added to the project so the Spine `protoc` plugin can -be run safely with Java 11 [[#546]({{% get-site-data "spine.base_libraries_repo" %}}/pull/546)]. +be run safely with Java 11 [[#546]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/546)]. ### Infrastructure 1. Stricter Gradle task ordering is introduced to eliminate randomness in build execution and -improve the process reliability [[#562]({{% get-site-data "spine.base_libraries_repo" %}}/pull/562)]. +improve the process reliability [[#562]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/562)]. 1. The project build scripts are migrated to Kotlin -[[#532]({{% get-site-data "spine.base_libraries_repo" %}}/pull/532), [#534]({{% get-site-data "spine.base_libraries_repo" %}}/pull/534)]. +[[#532]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/532), [#534]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/534)]. ## CoreJvm @@ -109,23 +109,23 @@ called when the user does not care about events/rejections produced by a command The previously used `post()` method is reserved for cases when one or more event types are actually observed by the client. The value returned by `post()` can no longer be - ignored [[#1292]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1292)]. + ignored [[#1292]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1292)]. 1. Event subscriptions are now more flexible, allowing to subscribe to events produced by non-entity objects (e.g. `AbstractEventReactor`) as well as events not explicitly declared -in any `BoundedContext` [[#1258]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1258)]. +in any `BoundedContext` [[#1258]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1258)]. 1. The `Client` is extended with methods to handle streaming and server errors when executing -requests [[#1270]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1270)]. +requests [[#1270]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1270)]. #### Server -1. The custom environments support is introduced [[#1274]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1274), -[#1293]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1293)]. +1. The custom environments support is introduced [[#1274]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1274), +[#1293]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1293)]. The `Environment` now exposes API to register user-defined environment types and to determine which one is enabled at any given moment of time. See the - [release notes]({{% get-site-data "spine.base_libraries_repo" %}}/pull/565) of `base`. + [release notes]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/565) of `base`. The `ServerEnvironment` allows to configure environment-dependent values, as follows: @@ -143,39 +143,39 @@ class `InternalAccess` instance of which is available via the `internalAccess()` The method is available only to the server-side framework code. 1. Delivery API is extended with a factory method which allows to create asynchronous version of -local `Delivery` [[#1265]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1265)]. +local `Delivery` [[#1265]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1265)]. 1. The `Pair` can now be created from an already existing `Optional` -[[#1296]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1296)]. +[[#1296]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1296)]. 1. The proper support to the `CommandBus` filters which throw rejections is added -[[#1295]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1295)]. +[[#1295]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1295)]. #### Model 1. The `@External` annotation is introduced to mark the handler method parameters of an external origin. It replaces the previously used for this purpose `(external = true)` attribute of `@Subscribe`, `@React`, and `@Command` annotation. The attribute is deprecated -[[#1269]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1269)]. +[[#1269]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1269)]. 1. `(set_once)` constraint in entity states is no longer ignored -[[#1268]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1268)]. +[[#1268]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1268)]. -1. `@ByField` is deprecated in favour of `@Where` [[#1270]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1270)]. +1. `@ByField` is deprecated in favour of `@Where` [[#1270]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1270)]. #### Logging -1. The `DiagnosticLog` messages are made more detailed [[#1262]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1262)]. +1. The `DiagnosticLog` messages are made more detailed [[#1262]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1262)]. 1. The standard framework exceptions are expanded with more info -[[#1255]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1255)]. +[[#1255]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1255)]. #### Testing Various quality-of-life changes are introduced for the testing API. -See [#1249]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1249), [#1251]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1251), -[#1252]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1252), and [#1261]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1261) +See [#1249]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1249), [#1251]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1251), +[#1252]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1252), and [#1261]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1261) for details. Some of the testing API changes are breaking. They include: @@ -184,22 +184,22 @@ Some of the testing API changes are breaking. They include: 1. Outdated `Verify`-based API is removed. 1. `BlackBoxContext` no longer exposes `eventBus()` and `commandBus()`. 1. The `BlackBoxContext.subscribeTo(Topic)` semantics changed. See -[#1249]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1249). +[#1249]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1249). 1. Simplified combinations of `UserId` and `ZoneId` parameters of `BlackBoxContext`. ### Fixes The `Migration` logic is fixed to properly support entity state updates -[[#1298]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1298)]. +[[#1298]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1298)]. ### Infrastructure -The project build scripts are migrated to Kotlin [[#1278]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1278)]. +The project build scripts are migrated to Kotlin [[#1278]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1278)]. ## Bootstrap With this release the `bootstrap` plugin receives support for more automated project -configurations [[#65]({{% get-site-data "spine.bootstrap_repo" %}}/pull/65)]. +configurations [[#65]({{% get-site-data "repositories.bootstrap_repo" %}}/pull/65)]. ### Library dependencies @@ -230,13 +230,13 @@ that the IDE displays sources and generated sources as expected. ### Infrastructure -The project build scripts are migrated to Kotlin [[#50]({{% get-site-data "spine.bootstrap_repo" %}}/pull/50)]. +The project build scripts are migrated to Kotlin [[#50]({{% get-site-data "repositories.bootstrap_repo" %}}/pull/50)]. ## Web ### API changes -1. The JS Client now supports multitenancy [[#141]({{% get-site-data "spine.web_repo" %}}/pull/141)]. +1. The JS Client now supports multitenancy [[#141]({{% get-site-data "repositories.web_repo" %}}/pull/141)]. The `Client` factory API now accepts a `TenantProvider` as an element of the passed client options. @@ -263,18 +263,18 @@ The project build scripts are migrated to Kotlin [[#50]({{% get-site-data "spine 1. The `FirebaseCredentials` are now constructed from `GoogleCrendetials` rather than the deprecated `GoogleCredential`. The factory method accepting `GoogleCredential` is -deprecated [[#137]({{% get-site-data "spine.web_repo" %}}/pull/137)]. +deprecated [[#137]({{% get-site-data "repositories.web_repo" %}}/pull/137)]. 1. The `onRejection` callback of `CommandRequest` is renamed to `onImmediateRejection` to better -reflect its purpose [[#151]({{% get-site-data "spine.web_repo" %}}/pull/151)]. See also the corresponding -[changes]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1295) in core-java. +reflect its purpose [[#151]({{% get-site-data "repositories.web_repo" %}}/pull/151)]. See also the corresponding +[changes]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1295) in core-java. ### Infrastructure 1. The JS client docs are now published to [spine.io](https://spine.io/) -[[#136]({{% get-site-data "spine.web_repo" %}}/pull/136)]. +[[#136]({{% get-site-data "repositories.web_repo" %}}/pull/136)]. -1. The project build scripts are migrated to Kotlin [[#142]({{% get-site-data "spine.web_repo" %}}/pull/142)]. +1. The project build scripts are migrated to Kotlin [[#142]({{% get-site-data "repositories.web_repo" %}}/pull/142)]. ## Google Cloud Java @@ -284,23 +284,23 @@ A public release of Datastore-related Spine libraries. ### Notable changes 1. The definition of Pub/Sub push request message is added -[[#150]({{% get-site-data "spine.gcloud_java_repo" %}}/pull/150)]. +[[#150]({{% get-site-data "repositories.gcloud_java_repo" %}}/pull/150)]. It can be used for endpoints that are used with Pub/Sub `push` subscriptions in order to easily transform incoming JSON data into a respective Protobuf definitions. -1. The project build scripts are migrated to Kotlin [[#148]({{% get-site-data "spine.gcloud_java_repo" %}}/pull/148)]. +1. The project build scripts are migrated to Kotlin [[#148]({{% get-site-data "repositories.gcloud_java_repo" %}}/pull/148)]. ## JDBC Storage A public release of Spine library supporting the JDBC-compliant storage engines. -The library as of now is still in the [experimental]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/149) status. +The library as of now is still in the [experimental]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/149) status. ### Infrastructure -The project build scripts are migrated to Kotlin [[#148]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/148)]. +The project build scripts are migrated to Kotlin [[#148]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/148)]. ## Time diff --git a/site/content/release-notes/2020/v1.7.0.md b/site/content/release-notes/2020/v1.7.0.md index 0259d754..3770f59b 100644 --- a/site/content/release-notes/2020/v1.7.0.md +++ b/site/content/release-notes/2020/v1.7.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.7.0 version: "1.7.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2020-12-21 --- @@ -22,7 +22,7 @@ improvements to the `Environment` and tests APIs. 2. Removed deprecated methods in the `Validate` utility. Please consider migrating to mirrored methods in `Preconditions2` and check out the - related PR [#596]({{% get-site-data "spine.base_libraries_repo" %}}/pull/596). + related PR [#596]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/596). 3. Removed deprecated methods in the `Environment` utility and introduced a new `CustomEnvironmentType` abstraction for custom environments. @@ -43,7 +43,7 @@ improvements to the `Environment` and tests APIs. method over the previously deprecated and now removed `Environment.setToTests()` and `Environment.setToProduction()`. - Consult PR [#594]({{% get-site-data "spine.base_libraries_repo" %}}/pull/594) for extra details on the improvements and + Consult PR [#594]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/594) for extra details on the improvements and removals of the deprecated APIs. 4. `MethodFactory` and `NestedClassFactory` interfaces are extracted into a separate @@ -68,10 +68,10 @@ On top of the breaking changes here are some minor API changes introduced in the It is always recommended to provide a particular `ClassLoader` instance to achieve predictable and reproducible access to resources while using the `Resource` utility. Please consult - PR [#566]({{% get-site-data "spine.base_libraries_repo" %}}/pull/566) for more details on the matter. + PR [#566]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/566) for more details on the matter. 2. The new `SingletonClassTest` test abstraction to simplify testing singletons. -(see PR [#583]({{% get-site-data "spine.base_libraries_repo" %}}/pull/583) for details). +(see PR [#583]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/583) for details). 3. Improved test assertions support with the new `Assertions` and `TempDir` utilities available in the `testlib` project. @@ -107,7 +107,7 @@ in the `testlib` project. The `TempDir` provides a replacement for the deprecated `com.google.common.io.Files#createTempDir()`. - Please consult PR [#585]({{% get-site-data "spine.base_libraries_repo" %}}/pull/585) for additional details. + Please consult PR [#585]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/585) for additional details. 4. The `TypeUrl` prefix is the Protobuf file declaration may now be empty. @@ -133,7 +133,7 @@ in the `testlib` project. } ``` - PR [#588]({{% get-site-data "spine.base_libraries_repo" %}}/pull/588) provides more information on the matter. + PR [#588]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/588) provides more information on the matter. 5. The `Diags` utility now provides additional `Collector`s for commonly used diagnostics. @@ -157,24 +157,24 @@ in the `testlib` project. ### Fixes -1. Gradle Proto Dart plugin now resolves relative imports (see [#572]({{% get-site-data "spine.base_libraries_repo" %}}/pull/572) -and [#573]({{% get-site-data "spine.base_libraries_repo" %}}/pull/573)). +1. Gradle Proto Dart plugin now resolves relative imports (see [#572]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/572) +and [#573]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/573)). 2. Enum values now also support `(distinct)` validation options (see -[#437]({{% get-site-data "spine.base_libraries_repo" %}}/issues/437) and [#587]({{% get-site-data "spine.base_libraries_repo" %}}/pull/587)). +[#437]({{% get-site-data "repositories.base_libraries_repo" %}}/issues/437) and [#587]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/587)). ### Infrastructure 1. Spine Protoc plugin is now started by the Gradle Protobuf plugin without custom launch scripts -(see [#586]({{% get-site-data "spine.base_libraries_repo" %}}/pull/586) for details). +(see [#586]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/586) for details). 2. Proto Dart plugin resolves the `pub` cache better with the new `PubCache` utility -(see [#589]({{% get-site-data "spine.base_libraries_repo" %}}/pull/589)). +(see [#589]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/589)). 3. The libraries now do not use `implementation` for compile-only annotations like `errorprone` annotations but use the newly [introduced](https://docs.gradle.org/6.7.1/release-notes.html#new-dependency-management-features) -`compileOnlyApi` configuration for such dependencies (see [#597]({{% get-site-data "spine.base_libraries_repo" %}}/pull/597)). +`compileOnlyApi` configuration for such dependencies (see [#597]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/597)). #### Dependency upgrades @@ -197,7 +197,7 @@ and [#573]({{% get-site-data "spine.base_libraries_repo" %}}/pull/573)). - AssertK: `0.22` -> `0.23` - SLF4J: `1.7.29` -> `1.7.30` -[Compare]({{% get-site-data "spine.base_libraries_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.base_libraries_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. ## CoreJvm @@ -209,8 +209,8 @@ to the framework. 1. The `BlackBoxContext`-based tests now fail if a runtime exception was thrown within the signal handlers. - In order to address [#1314]({{% get-site-data "spine.core_jvm_repo" %}}/issues/1314), we've decided to enforce - the fail-fast approach within the BBC tests done in [#1322]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1322). + In order to address [#1314]({{% get-site-data "repositories.core_jvm_repo" %}}/issues/1314), we've decided to enforce + the fail-fast approach within the BBC tests done in [#1322]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1322). From now on, if a test case had any runtime exceptions thrown from signal handlers the test is failed by the BBC. While it may be a breaking change for some, we believe it worth fixing such issues right away than hiding them under the carpet. @@ -219,12 +219,12 @@ signal handlers. the newly introduced `tolerateFailures` method. 2. The `grand_origin` field is no longer set to a default instance for the signal `Origin` if no -grand origin is present (see [#1341]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1341) for details). +grand origin is present (see [#1341]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1341) for details). 3. The `ServerEnvironment` API is improved and changed as a result of the -[#1315]({{% get-site-data "spine.core_jvm_repo" %}}/issues/1315) and related discussions in a series of PRs -([#1327]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1327), [#1331]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1331), -[#1336]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1336)). +[#1315]({{% get-site-data "repositories.core_jvm_repo" %}}/issues/1315) and related discussions in a series of PRs +([#1327]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1327), [#1331]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1331), +[#1336]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1336)). The previously deprecated `configure...()` API is removed in favor of the new fluent `when().use()` API. @@ -252,7 +252,7 @@ grand origin is present (see [#1341]({{% get-site-data "spine.core_jvm_repo" %}} 1. `Change` type validation requirements are relaxed for primitive type changes. The `new_value` field is no longer a required one for `StringChange` and `BytesChange` types. - See [#1307]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1307) for details. + See [#1307]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1307) for details. 2. Introduced simplified `unicast()` methods in the `EventRouting`. @@ -281,7 +281,7 @@ grand origin is present (see [#1341]({{% get-site-data "spine.core_jvm_repo" %}} } ``` - To find out more details on the new API please check [#1317]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1317). + To find out more details on the new API please check [#1317]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1317). 3. Added `localDate` and `localDateTime` helpers to the `WithTime` interface. @@ -290,26 +290,26 @@ grand origin is present (see [#1341]({{% get-site-data "spine.core_jvm_repo" %}} the Protobuf `Timestamp` or Java `Instant` that were previously available for signals, they may use the new API to simplify such a conversion and access to the signals `timestamp` field. - See [#1319]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1319) for additional details. + See [#1319]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1319) for additional details. ### Fixes 1. Improved multitenant delivery support by ensuring the tenant is properly propagated within the -delivery (see [#1308]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1308)). +delivery (see [#1308]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1308)). 2. Fixed a typo in the `io.spine.client.Client` `shutdownTimeout` method -(see [#1339]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1339)). +(see [#1339]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1339)). 3. Fixed dispatching of rejections caused by a particular command -(see [#1318]({{% get-site-data "spine.core_jvm_repo" %}}/issues/1318) and [#1343]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1343)). +(see [#1318]({{% get-site-data "repositories.core_jvm_repo" %}}/issues/1318) and [#1343]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1343)). ### Infrastructure 1. The libraries now do not use `implementation` for compile-only annotations like `errorprone` annotations but use the newly [introduced](https://docs.gradle.org/6.7.1/release-notes.html#new-dependency-management-features) -`compileOnlyApi` configuration for such dependencies (see [#1340]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1340)). +`compileOnlyApi` configuration for such dependencies (see [#1340]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1340)). -[Compare]({{% get-site-data "spine.core_jvm_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.core_jvm_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. ## Bootstrap @@ -319,11 +319,11 @@ This release brings the support of Spine components in version `1.7.0`. ### Dart support This release brings experimental support for configuring -[`spine-dart`]({{% get-site-data "spine.dart_repo" %}}) and Protobuf code generation for Dart projects. +[`spine-dart`]({{% get-site-data "repositories.dart_repo" %}}) and Protobuf code generation for Dart projects. -For the Dart project setup instructions please see [#74]({{% get-site-data "spine.bootstrap_repo" %}}/pull/74). +For the Dart project setup instructions please see [#74]({{% get-site-data "repositories.bootstrap_repo" %}}/pull/74). -[Compare]({{% get-site-data "spine.bootstrap_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.bootstrap_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. ## Web @@ -335,13 +335,13 @@ A public release of web-related Spine libraries. 1. The default `grand_origin` value must not be set for the signal `Origin` for the filtering anymore. - With the [#160]({{% get-site-data "spine.web_repo" %}}/pull/160) and upgrade to the newest version of the - [`spine-server`]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1341), the default (empty) `grand_origin` + With the [#160]({{% get-site-data "repositories.web_repo" %}}/pull/160) and upgrade to the newest version of the + [`spine-server`]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1341), the default (empty) `grand_origin` instance must not be set anymore. This change is already done for the JS client, but if one is using a custom solution, she must not set the default `grand_origin`. 2. The `firebase-web` artifact no longer provides the `appengine-sdk` dependency -(see [#153]({{% get-site-data "spine.web_repo" %}}/issues/153) and [#155]({{% get-site-data "spine.web_repo" %}}/pull/155)). +(see [#153]({{% get-site-data "repositories.web_repo" %}}/issues/153) and [#155]({{% get-site-data "repositories.web_repo" %}}/pull/155)). ### API Changes @@ -362,18 +362,18 @@ anymore. provide default no-op overrides for the respective `HttpServletRequest` and `HttpServletResponse` interfaces and could be implemented to match specific needs. - See [#159]({{% get-site-data "spine.web_repo" %}}/pull/159) for additional details. + See [#159]({{% get-site-data "repositories.web_repo" %}}/pull/159) for additional details. ### Fixes 1. Fixed keep-up and cancellation of Firebase subscriptions from the `spine-web` client -(see [#154]({{% get-site-data "spine.web_repo" %}}/pull/154)). +(see [#154]({{% get-site-data "repositories.web_repo" %}}/pull/154)). ### Infrastructure 1. The libraries now do not use `implementation` for compile-only annotations like `errorprone` annotations but use the newly [introduced](https://docs.gradle.org/6.7.1/release-notes.html#new-dependency-management-features) -`compileOnlyApi` configuration for such dependencies (see [#159]({{% get-site-data "spine.web_repo" %}}/pull/159)). +`compileOnlyApi` configuration for such dependencies (see [#159]({{% get-site-data "repositories.web_repo" %}}/pull/159)). #### Dependency upgrades @@ -382,7 +382,7 @@ annotations but use the newly [introduced](https://docs.gradle.org/6.7.1/release - isomorphic-fetch: `2.2.1` -> `3.0.0` - uuid: `3.4.0` -> `8.3.2` -[Compare]({{% get-site-data "spine.web_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.web_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. ## Google Cloud Java @@ -393,7 +393,7 @@ A public release of GCP-related Spine libraries. The libraries now do not use `implementation` for compile-only annotations like `errorprone` annotations but use the newly [introduced](https://docs.gradle.org/6.7.1/release-notes.html#new-dependency-management-features) -`compileOnlyApi` configuration for such dependencies (see [#158]({{% get-site-data "spine.gcloud_java_repo" %}}/pull/158)). +`compileOnlyApi` configuration for such dependencies (see [#158]({{% get-site-data "repositories.gcloud_java_repo" %}}/pull/158)). #### Dependency upgrades @@ -401,7 +401,7 @@ annotations but use the newly [introduced](https://docs.gradle.org/6.7.1/release - Cloud Pub/Sub protos: `1.89.0` -> `1.92.1` - Cloud Trace: `0.109.3-beta` -> `1.2.8` -[Compare]({{% get-site-data "spine.gcloud_java_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.gcloud_java_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. ## JDBC Storage @@ -412,7 +412,7 @@ A public release of the Spine `spine-rdbms` library. The library now does not use `implementation` for compile-only annotations like `errorprone` annotations but uses the newly [introduced](https://docs.gradle.org/6.7.1/release-notes.html#new-dependency-management-features) -`compileOnlyApi` configuration for such dependencies (see [#152]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/152)). +`compileOnlyApi` configuration for such dependencies (see [#152]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/152)). #### Dependency upgrades @@ -420,7 +420,7 @@ annotations but uses the newly [introduced](https://docs.gradle.org/6.7.1/releas - HikariCP: `3.4.2` -> `3.4.5` - HSQL DB: `2.5.0` -> `2.5.1` -[Compare]({{% get-site-data "spine.jdbc_storage_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.jdbc_storage_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. ## Time @@ -429,6 +429,6 @@ A public release of the Spine `time` library. The library now does not use `implementation` for compile-only annotations like `errorprone` annotations but uses the newly [introduced](https://docs.gradle.org/6.7.1/release-notes.html#new-dependency-management-features) -`compileOnlyApi` configuration for such dependencies (see [#105]({{% get-site-data "spine.time_repo" %}}/pull/105)). +`compileOnlyApi` configuration for such dependencies (see [#105]({{% get-site-data "repositories.time_repo" %}}/pull/105)). -[Compare]({{% get-site-data "spine.time_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. +[Compare]({{% get-site-data "repositories.time_repo" %}}/compare/v1.6.0...v1.7.0) v1.6.0 and v1.7.0. diff --git a/site/content/release-notes/2021/v1.7.5.md b/site/content/release-notes/2021/v1.7.5.md index b9dab8ed..0a556ffd 100644 --- a/site/content/release-notes/2021/v1.7.5.md +++ b/site/content/release-notes/2021/v1.7.5.md @@ -2,7 +2,7 @@ title: Release Notes v1.7.5 version: "1.7.5" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2021-09-21 --- @@ -19,4 +19,4 @@ subscriptions. Additionally, several improvements of `config` scripts were brought to this version. -[Compare]({{% get-site-data "spine.core_jvm_repo" %}}/compare/v1.7.0...v1.7.5) v1.7.0 and v1.7.5. +[Compare]({{% get-site-data "repositories.core_jvm_repo" %}}/compare/v1.7.0...v1.7.5) v1.7.0 and v1.7.5. diff --git a/site/content/release-notes/2021/v1.8.0.md b/site/content/release-notes/2021/v1.8.0.md index 0e3a8c26..44e63ec0 100644 --- a/site/content/release-notes/2021/v1.8.0.md +++ b/site/content/release-notes/2021/v1.8.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.8.0 version: "1.8.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2021-12-21 --- @@ -24,11 +24,11 @@ who is currently processing which shard. Thus, all shard processing sessions should be completed before the migration. - Please see [#1433]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1433) for details. + Please see [#1433]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1433) for details. #### API Changes -- Made `BlackBoxContext` implement `Closeable` (as addition of [#1402]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1402)). +- Made `BlackBoxContext` implement `Closeable` (as addition of [#1402]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1402)). - `BlackBoxContext` API has been extended to provide an instance of `Client` linked to the context under the test. @@ -49,7 +49,7 @@ context under the test. Please note, that provided `Client` would inherit `TenantId` from `BlackBoxContext`, but would NOT inherit `UserId` and `ZoneId`. - Check [#1407]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1407) for details. + Check [#1407]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1407) for details. - Made API calls for the conditional settings of `ServerEnvironment` "lazy". @@ -69,39 +69,39 @@ but would NOT inherit `UserId` and `ZoneId`. postpone the initialization of environment-specific settings until they start to make sense. This release addresses the issue by making the behavior truly "lazy" -(see [#1421]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1421)). +(see [#1421]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1421)). #### Fixes - Enabled `IntegrationBroker` dispatch events regardless of registration order of subscribing -and publishing Bounded Contexts (see [#1402]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1402)). +and publishing Bounded Contexts (see [#1402]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1402)). - Transformation of an Entity's state during `Migration` has been changed so that the `newState` completely overwrites the old one within the migration transaction -(see [#1405]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1405)). +(see [#1405]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1405)). - The internals of `IntegrationBroker` were made more thread-safe -(see [#1423]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1423)). +(see [#1423]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1423)). - `SubscriptionService` now properly locates the Bounded Context when subscribing to events produced by standalone producers, such as descendants of `AbstractCommandHandler` or -`AbstractEventReactor` (see [#1423]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1423)). +`AbstractEventReactor` (see [#1423]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1423)). #### Performance -- Improved Catch-up caching (see [#1406]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1406) for details). +- Improved Catch-up caching (see [#1406]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1406) for details). ## JDBC Storage This is a public release of Spine libraries providing the `Storage` implementations for JDBC-compatible DB engines. -It supports all the features [recently introduced]({{% get-site-data "spine.core_jvm_repo" %}}/releases/tag/v1.8.0) +It supports all the features [recently introduced]({{% get-site-data "repositories.core_jvm_repo" %}}/releases/tag/v1.8.0) in the corresponding `core-java:1.8.0` release. ### Migration -Due to the changes introduces in [core-java#1433]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1433), +Due to the changes introduces in [core-java#1433]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1433), the structure of `shard_session_registry` table was changed. `NODE_ID` field should be renamed to `WORKER_ID`. The field type remains the same. @@ -111,18 +111,18 @@ It is also recommended to remove all `shard_session_registry` entries before mig * The reported `DbIterator` issue was resolved. Previously, in some corner cases, it was breaking the read operations for Aggregates. - See [#155]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/155) for more details. + See [#155]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/155) for more details. ## Google Cloud Java This is another public release of Spine libraries which streamline the development of apps running under GCP. -It supports all the features [recently introduced]({{% get-site-data "spine.core_jvm_repo" %}}/releases/tag/v1.8.0) +It supports all the features [recently introduced]({{% get-site-data "repositories.core_jvm_repo" %}}/releases/tag/v1.8.0) in the corresponding `core-java:1.8.0` release. **Migration** -In order to support the API change introduced in [core-java#1433]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1433), +In order to support the API change introduced in [core-java#1433]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1433), the `datastore` library updates the storage schema. Instead of the `ShardSessionRecord.node` field, `ShardSessionRecord.worker` field is now used. @@ -151,7 +151,7 @@ The package is compatible with Spine servers in version `1.8.0`. ## Web This is a public release of Spine `web` libraries, which support all the features -[recently introduced]({{% get-site-data "spine.core_jvm_repo" %}}/releases/tag/v1.8.0) +[recently introduced]({{% get-site-data "repositories.core_jvm_repo" %}}/releases/tag/v1.8.0) in the corresponding `core-java:1.8.0` release. ## Bootstrap diff --git a/site/content/release-notes/2022/v1.8.2.md b/site/content/release-notes/2022/v1.8.2.md index 9f917dbd..2914758d 100644 --- a/site/content/release-notes/2022/v1.8.2.md +++ b/site/content/release-notes/2022/v1.8.2.md @@ -2,7 +2,7 @@ title: Release Notes v1.8.2 version: "1.8.2" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2022-06-29 --- @@ -15,15 +15,15 @@ primarily focusing on adding new configuration knobs. In particular, these changes were made since the last release: -* [#1443]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1443): +* [#1443]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1443): Expand the `io.spine.server.Server` API to allow to: * obtain the Query, Subscription, and Command services after the `Server` is built; * add extra gRPC services to the same server. -* [#1448]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1448): +* [#1448]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1448): Allow supplying `Executor` for `SystemWriteSide`. -* [#1454]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1454): +* [#1454]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1454): Allow to configure the underlying gRPC server via `GrpcContainer` API. No breaking changes to the existing API were made. @@ -44,7 +44,7 @@ One notable change in this update is an ability to order and limit storage recor when executing read-side queries. Previously, there were issues in some scenarios. -See [this PR]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/162) for more details. +See [this PR]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/162) for more details. Also, the versions of dependencies were updated: diff --git a/site/content/release-notes/2023/v1.9.0.md b/site/content/release-notes/2023/v1.9.0.md index 489c093a..735799b4 100644 --- a/site/content/release-notes/2023/v1.9.0.md +++ b/site/content/release-notes/2023/v1.9.0.md @@ -2,7 +2,7 @@ title: Release Notes v1.9.0 version: "1.9.0" headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes date: 2023-05-24 --- @@ -36,9 +36,9 @@ Several significant changes have been made in this release to `base` modules. See the following pull requests for more detail: -* [#757]({{% get-site-data "spine.base_libraries_repo" %}}/pull/757) -* [#758]({{% get-site-data "spine.base_libraries_repo" %}}/pull/758) -* [#759]({{% get-site-data "spine.base_libraries_repo" %}}/pull/759) +* [#757]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/757) +* [#758]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/758) +* [#759]({{% get-site-data "repositories.base_libraries_repo" %}}/pull/759) ## CoreJvm @@ -91,7 +91,7 @@ if (outcome.hasAlreadyPickedBy()) { ### Other changes -- **Custom `Executor` for `SystemSettings` ([#1448]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1448))** +- **Custom `Executor` for `SystemSettings` ([#1448]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1448))** Now, `SystemSettings` allows customizing an `Executor` to post the system events in parallel. This provides an opportunity to improve the control over the available CPU resources on a server instance. @@ -104,7 +104,7 @@ if (outcome.hasAlreadyPickedBy()) { .useCustomExecutor(executor); ``` -- **Customization of gRPC `Server` via `GrpcContainer` ([#1454]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1454))** +- **Customization of gRPC `Server` via `GrpcContainer` ([#1454]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1454))** It is now possible to access an underlying instance of `Server`'s builder when configuring the `GrpcContainer`: @@ -119,14 +119,14 @@ if (outcome.hasAlreadyPickedBy()) { This API is **experimental** and may change in future versions of Spine. -- **Thorough copying of Bounded Contexts by `BlackBoxContext`'s builder ([#1495]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1495))** +- **Thorough copying of Bounded Contexts by `BlackBoxContext`'s builder ([#1495]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1495))** Previously, the` BlackBoxContext` instances were built on top of `BoundedContextBuilder`s by copying the internals of the latter builder. However, not all the parts were copied properly. This release improves the copying by including more pieces from the source `BoundedContextBuilder`. In particular, all changes made to `BoundedContextBuilder.systemSettings()` are now transferred as well. -- **Custom handlers for failed delivery of a signal ([#1496]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1496))** +- **Custom handlers for failed delivery of a signal ([#1496]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1496))** Now, the Delivery API allows to subscribe for any failures which occur during the reception of each signal. Additionally, end-users may now choose the way to handle the reception failures in terms of action in respect to the InboxMessage of interest. @@ -177,24 +177,24 @@ if (outcome.hasAlreadyPickedBy()) { By default, `InboxMessages` are marked as DELIVERED in case of failure of their reception. -- **Prohibit calling `state()` from `@Apply`-ers ([#1501]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1501))** +- **Prohibit calling `state()` from `@Apply`-ers ([#1501]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1501))** It is now not possible to call `Aggregate.state()` from `@Apply`-ers. Previously, it was possible, but as discovered from real-world cases, such a functionality is prone to logical errors. End-users must use `Aggregate.builder()` instead. -- **Fix delivering signals to aggregate `Mirror`s in a multi-Bounded Context environment ([#1502]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1502))** +- **Fix delivering signals to aggregate `Mirror`s in a multi-Bounded Context environment ([#1502]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1502))** Previously, when several Bounded Contexts had their `Aggregate`s "visible" (i.e. exposed via `Mirror`), the delivery mechanism was confused with multiple `Mirror` entity types which technically were distinct, but at the same time had exactly the same Type URL. Such a use-cases led to failures when `Aggregate` state on read-side is updated by the framework code. This release alters Type URLs, under which Mirror projections register themselves in `Delivery`. The new type URL value includes the name of the Bounded Context — which makes this type URL invalid in terms of type discovery, but addresses the issue. -- **Importing domain events from 3rd-party contexts properly in multi-tenant environments ([#1503]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1503))** +- **Importing domain events from 3rd-party contexts properly in multi-tenant environments ([#1503]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1503))** Previously, in a multi-tenant application, the imported events were dispatched in a straightforward manner, without specifying the `TenantId` in the dispatching context. Now, this issue is resolved. -- **Allow subscribers to receive a notification once an Entity stops matching the subscription criteria ([#1504]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1504))** +- **Allow subscribers to receive a notification once an Entity stops matching the subscription criteria ([#1504]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1504))** Starting this release, clients of gRPC Subscription API will start receiving updates once entities previously included into some subscription as matching, are modified and no longer pass the subscription criteria. @@ -212,7 +212,7 @@ if (outcome.hasAlreadyPickedBy()) { .post(); ``` -- **More granularity into `Shard` pick-up results ([#1505]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1505))** +- **More granularity into `Shard` pick-up results ([#1505]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1505))** In this release we start to distinguish the shard pick-up results. In particular, it is now possible to find out the reason of an unsuccessful shard pick-up. In particular, there may be some runtime issues, or a shard may already be picked-up by another worker. @@ -250,13 +250,13 @@ if (outcome.hasAlreadyPickedBy()) { } ``` -- **A built-in `Sample` type providing the generation of sample Proto messages was improved in relation to generation more humane `String` values ([#1506]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1506))** +- **A built-in `Sample` type providing the generation of sample Proto messages was improved in relation to generation more humane `String` values ([#1506]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1506))** ## Google Cloud Java -- **Support of the shard pick-up result distinguishing introduced in `core-java` ([#181]({{% get-site-data "spine.gcloud_java_repo" %}}/pull/181))**. +- **Support of the shard pick-up result distinguishing introduced in `core-java` ([#181]({{% get-site-data "repositories.gcloud_java_repo" %}}/pull/181))**. - See [core-java#1505]({{% get-site-data "spine.core_jvm_repo" %}}/pull/1505) for more detail. + See [core-java#1505]({{% get-site-data "repositories.core_jvm_repo" %}}/pull/1505) for more detail. - **Updates of third-party dependencies**: @@ -266,12 +266,12 @@ if (outcome.hasAlreadyPickedBy()) { ## JDBC Storage -- **Widen the database-specific data type for `InboxId` and other IDs ([#168]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/168))** +- **Widen the database-specific data type for `InboxId` and other IDs ([#168]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/168))** `VARCHAR(512)` is now to store identifiers (turned into strings) for all known Spine-specific tables. -- **Improve actual SQL-based querying when running against `MySQL` ([#169]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/169))** +- **Improve actual SQL-based querying when running against `MySQL` ([#169]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/169))** SQL queries generated via Querydsl are optimised, when the underlying RDBMS is MySQL. @@ -281,14 +281,14 @@ if (outcome.hasAlreadyPickedBy()) { * previously available functionality on trimming the `Aggregate` storage was implemented properly, as its execution against real MySQL server led to SQL errors earlier. -- **`ORDER BY` validation ([#169]({{% get-site-data "spine.jdbc_storage_repo" %}}/pull/169))** +- **`ORDER BY` validation ([#169]({{% get-site-data "repositories.jdbc_storage_repo" %}}/pull/169))** - The `ORDER BY` column names are now checked for correctness prior to using them in a query, addressing [#160]({{% get-site-data "spine.jdbc_storage_repo" %}}/issues/160). + The `ORDER BY` column names are now checked for correctness prior to using them in a query, addressing [#160]({{% get-site-data "repositories.jdbc_storage_repo" %}}/issues/160). - **Proper `Inbox` pagination.** - `Inbox` contents are now properly paginated, addressing [#136]({{% get-site-data "spine.jdbc_storage_repo" %}}/issues/136). + `Inbox` contents are now properly paginated, addressing [#136]({{% get-site-data "repositories.jdbc_storage_repo" %}}/issues/136). - **Third-party dependency updates:** @@ -297,12 +297,12 @@ if (outcome.hasAlreadyPickedBy()) { ## Web -- **Bulk keep-up and cancellation requests for subscriptions ([#193]({{% get-site-data "spine.web_repo" %}}/pull/193))** +- **Bulk keep-up and cancellation requests for subscriptions ([#193]({{% get-site-data "repositories.web_repo" %}}/pull/193))** This feature was previously a hot-update for Spine 1.7.4. Now, the functionality is fully ported to `v1` branch. -- **`HttpClient` customisation ([#194]({{% get-site-data "spine.web_repo" %}}/pull/194))** +- **`HttpClient` customisation ([#194]({{% get-site-data "repositories.web_repo" %}}/pull/194))** It is now possible to customise `HttpClient` for each type of requests (sending commands, queries, or interacting with subscriptions). @@ -312,14 +312,14 @@ if (outcome.hasAlreadyPickedBy()) { It is responsible for transforming the raw response content into JS objects. The default implementation — what we used to have in previous versions as a hard-coded behaviour — expects the server-side to return a JSON string, and parses it into a JS object. -- **Immediate subscription cancellation ([#195]({{% get-site-data "spine.web_repo" %}}/pull/195))** +- **Immediate subscription cancellation ([#195]({{% get-site-data "repositories.web_repo" %}}/pull/195))** Calling unsubscribe for any subscription now leads to an immediate cancellation on both client- and server-side. Previously, all such cancellations were only processed during the next "keep-up" propagation. Client now allows cancelling all known subscription via `cancelAllSubscriptions()` no-args call. Its invocation leads to sending the bulk cancellation request to server-side, as well as shutting down the client-level subscriptions. Such an API is useful in case end-users choose to log out from the application. -- **Observing Entity deletions at client-side ([#197]({{% get-site-data "spine.web_repo" %}}/pull/197))** +- **Observing Entity deletions at client-side ([#197]({{% get-site-data "repositories.web_repo" %}}/pull/197))** Previously `itemRemoved` callback for subscriptions was not functioning properly. Now, it is invoked whenever a target Entity becomes archived or deleted. diff --git a/site/content/release-notes/_index.md b/site/content/release-notes/_index.md index ef2aaaf2..a30154fa 100644 --- a/site/content/release-notes/_index.md +++ b/site/content/release-notes/_index.md @@ -1,7 +1,7 @@ --- title: Release Notes headline: Release Notes -bodyclass: docs release-notes +body_class: docs release-notes --- {{% note-block class="lead" %}} diff --git a/site/data/footer.yml b/site/data/footer.yml index a01530a6..b5792677 100644 --- a/site/data/footer.yml +++ b/site/data/footer.yml @@ -28,7 +28,7 @@ columns: links: - name: GitHub icon_name: icon-github - url: '{{< get-site-data "spine.socials.github_discussions" >}}' + url: '{{< get-site-data "socials.github_discussions" >}}' - name: X icon_name: icon-xtwitter - url: '{{< get-site-data "spine.socials.xtwitter" >}}' + url: '{{< get-site-data "socials.xtwitter" >}}' diff --git a/site/data/spine.yml b/site/data/spine.yml index f532a11a..94d4d5ca 100644 --- a/site/data/spine.yml +++ b/site/data/spine.yml @@ -1,16 +1,3 @@ -# This YAML file will be merged with the `data/spine.yml` from `SpineEventEngine/documentation`. - name: Spine full_name: Spine Event Engine github_organization: SpineEventEngine - -dev_email: developers@spine.io -sales_email: sales@spine.io -# TODO:2025-12-09:julia.evseeva: https://github.com/SpineEventEngine/SpineEventEngine.github.io/issues/514 -privacy_email: privacy@teamdev.com - -socials: - xtwitter: https://x.com/SpineEngine - stackoverflow: https://stackoverflow.com/tags/Spine-Event-Engine - github_discussions: https://github.com/orgs/SpineEventEngine/discussions - google_group_discussion: https://groups.google.com/a/spine.io/g/discussion diff --git a/site/go.mod b/site/go.mod index 1751dda4..e0fbc37a 100644 --- a/site/go.mod +++ b/site/go.mod @@ -3,6 +3,10 @@ module github.com/SpineEventEngine/SpineEventEngine.github.io go 1.22.0 require ( - github.com/SpineEventEngine/documentation/docs v0.0.0-20260205111752-62120db9b2d1 // indirect - github.com/TeamDev-Ltd/site-commons v0.0.0-20251202150534-a795438915ff // indirect + github.com/SpineEventEngine/documentation/docs v0.0.0-20260216105724-a69879c81a47 // indirect + github.com/SpineEventEngine/site-commons v0.0.0-20260213171221-c1157022c545 // indirect + github.com/SpineEventEngine/validation/docs v0.0.0-20260205202311-181ba8844107 // indirect + github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20400 // indirect + github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000 // indirect + github.com/twbs/bootstrap v5.3.8+incompatible // indirect ) diff --git a/site/go.sum b/site/go.sum index b4218406..9190ae4b 100644 --- a/site/go.sum +++ b/site/go.sum @@ -1,4 +1,13 @@ -github.com/SpineEventEngine/documentation/docs v0.0.0-20260205111752-62120db9b2d1 h1:/vyN532WobxlG5eCnyWxif2GoNfmHYKrQuV+vg3vqZM= -github.com/SpineEventEngine/documentation/docs v0.0.0-20260205111752-62120db9b2d1/go.mod h1:0lSB4kPZY9Qk429mepYiraNIEucYDIwiNVhJ3Wn3gKo= -github.com/TeamDev-Ltd/site-commons v0.0.0-20251202150534-a795438915ff h1:8kjfGJhf6LeS+IlK9NRktxtcv6O/WDneBuQD3QLPGIs= -github.com/TeamDev-Ltd/site-commons v0.0.0-20251202150534-a795438915ff/go.mod h1:atDeksDWBzsIidpW6Ivz2yYHwp2JPa1i1KXIxkctQ3c= +github.com/SpineEventEngine/documentation/docs v0.0.0-20260216105724-a69879c81a47 h1:CrAc7Izj0nduNO3SIvoc+x0Ve3jGlpROjD4zoZ2VjTk= +github.com/SpineEventEngine/documentation/docs v0.0.0-20260216105724-a69879c81a47/go.mod h1:0lSB4kPZY9Qk429mepYiraNIEucYDIwiNVhJ3Wn3gKo= +github.com/SpineEventEngine/site-commons v0.0.0-20260213171221-c1157022c545 h1:NI8WYIfw5yv/FXNhxG2zgiU3J0YChheRQugosxkopoc= +github.com/SpineEventEngine/site-commons v0.0.0-20260213171221-c1157022c545/go.mod h1:tkAl4StIREKmz9r5PiJtuDhvwMMkFXKWcaTyxhIikho= +github.com/SpineEventEngine/validation/docs v0.0.0-20260205202311-181ba8844107 h1:2DHRIwwLudP6l3Kh7Nd4KR4uXcsDtIAXE9adW68ivME= +github.com/SpineEventEngine/validation/docs v0.0.0-20260205202311-181ba8844107/go.mod h1:STHyjXejVvPmfrxujfDvhofmjg55mMk+fwI3TVL0b4Y= +github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20400 h1:L6+F22i76xmeWWwrtijAhUbf3BiRLmpO5j34bgl1ggU= +github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20400/go.mod h1:uekq1D4ebeXgduLj8VIZy8TgfTjrLdSl6nPtVczso78= +github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000 h1:GZxx4Hc+yb0/t3/rau1j8XlAxLE4CyXns2fqQbyqWfs= +github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000/go.mod h1:mFberT6ZtcchrsDtfvJM7aAH2bDKLdOnruUHl0hlapI= +github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= +github.com/twbs/bootstrap v5.3.8+incompatible h1:eK1fsXP7R/FWFt+sSNmmvUH9usPocf240nWVw7Dh02o= +github.com/twbs/bootstrap v5.3.8+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/site/layouts/_default/baseof.html b/site/layouts/_default/baseof.html index fcd8e795..e08e7e82 100644 --- a/site/layouts/_default/baseof.html +++ b/site/layouts/_default/baseof.html @@ -3,7 +3,7 @@ itemscope itemtype="https://schema.org/WebPage" prefix="og: http://ogp.me/ns#"> {{ partial "head/head.html" . }} -{{ $bodyClass := partial "functions/get-body-class.html" . }} +{{ $bodyClass := partial "theme/functions/get-body-class.html" . }} {{ partial "scripts/body/gtm.html" . }}
diff --git a/site/layouts/_partials/blog/post-info.html b/site/layouts/_partials/blog/post-info.html index 494740e4..b173f2b4 100644 --- a/site/layouts/_partials/blog/post-info.html +++ b/site/layouts/_partials/blog/post-info.html @@ -36,7 +36,8 @@
- {{ $email := site.Data.spine.dev_email }} + {{ $email := site.Data.emails.dev_email }} {{ $cloakedEmail := printf "{{< cloakemail address=\"%s\" >}}" $email }}

Sorry, the redirection was interrupted

Please try again. If the issue persists, contact us at diff --git a/site/layouts/_partials/components/subscribe-container.html b/site/layouts/_partials/components/subscribe-container.html index a21924af..50f3f501 100644 --- a/site/layouts/_partials/components/subscribe-container.html +++ b/site/layouts/_partials/components/subscribe-container.html @@ -31,7 +31,7 @@

diff --git a/site/layouts/_partials/getting-help/mailto-button.html b/site/layouts/_partials/getting-help/mailto-button.html index 577265e3..06fc6074 100644 --- a/site/layouts/_partials/getting-help/mailto-button.html +++ b/site/layouts/_partials/getting-help/mailto-button.html @@ -26,7 +26,7 @@ -{{ $email := site.Data.spine.sales_email }} +{{ $email := site.Data.emails.sales_email }} {{ $class := "btn btn-bordered-blue pricing-btn" }} {{ $label := "Contact Us" }} diff --git a/site/layouts/_partials/head/canonical.html b/site/layouts/_partials/head/canonical.html index b84616ac..e01b7de0 100644 --- a/site/layouts/_partials/head/canonical.html +++ b/site/layouts/_partials/head/canonical.html @@ -44,10 +44,14 @@ {{ with $.Page.File }} {{ $currentPath = .Path }} {{ end }} -{{ $versions := site.Data.versions }} -{{ $mainVersion := index (where $versions "is_main" true) 0 }} -{{ $mainVersionDocsFolder := printf "docs/%s/" $mainVersion.short }} -{{ $mainVersionPath := replaceRE "^docs/[0-9]+/" $mainVersionDocsFolder $currentPath }} + +{{ $currentVersionData := partial "theme/functions/get-doc-version-data.html" $page }} +{{ $currentModule := $currentVersionData.module }} +{{ $currentVersion := index site.Data.versions $currentModule | default (slice) }} +{{ $mainVersion := index (where $currentVersion "is_main" true) 0 }} +{{ $moduleBase := cond (eq $currentModule "docs") "docs" (printf "docs/%s" $currentModule) }} +{{ $pathPattern := printf `^%s/[0-9]+/` $moduleBase }} +{{ $mainVersionPath := replaceRE $pathPattern (print $mainVersion.content_path "/") $currentPath }} {{ with site.GetPage $mainVersionPath }} {{ $page = . }} diff --git a/site/layouts/_partials/head/head.html b/site/layouts/_partials/head/head.html index f02a0b52..94795374 100644 --- a/site/layouts/_partials/head/head.html +++ b/site/layouts/_partials/head/head.html @@ -31,8 +31,8 @@ {{ partial "head/robots.html" . }} {{ partial "head/title.html" . }} {{ partial "head/seo.html" . }} - {{ partial "docs/head/code-theme.html" . }} - {{ partial "docs/head/favicon.html" . }} + {{ partial "theme/head/code-theme.html" . }} + {{ partial "theme/head/favicon.html" . }} {{ partial "head/stylesheet.html" . }} {{ partial "scripts/head-scripts.html" . }} {{ partial "head/opengraph.html" . }} diff --git a/site/layouts/_partials/head/microdata/get-emails.html b/site/layouts/_partials/head/microdata/get-emails.html index 216b201c..70fa4b36 100644 --- a/site/layouts/_partials/head/microdata/get-emails.html +++ b/site/layouts/_partials/head/microdata/get-emails.html @@ -24,7 +24,7 @@ ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --> -{{ $data := site.Data.spine }} +{{ $data := site.Data.emails }} {{ $devEmail := $data.dev_email }} {{ $salesEmail := $data.sales_email }} diff --git a/site/layouts/_partials/head/microdata/get-socials.html b/site/layouts/_partials/head/microdata/get-socials.html index 2fb0dd9c..46288b67 100644 --- a/site/layouts/_partials/head/microdata/get-socials.html +++ b/site/layouts/_partials/head/microdata/get-socials.html @@ -24,7 +24,7 @@ ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --> -{{ $data := site.Data.spine.socials }} +{{ $data := site.Data.socials }} {{ $socials := slice $data.github_discussions diff --git a/site/layouts/_partials/head/stylesheet.html b/site/layouts/_partials/head/stylesheet.html index 8a9e7fd7..7692c601 100644 --- a/site/layouts/_partials/head/stylesheet.html +++ b/site/layouts/_partials/head/stylesheet.html @@ -1,5 +1,5 @@ - -{{ partial "docs/head/icon-font.html" . }} {{ partial "head/styles/docsearch.html" . }} - -{{ $options := (dict - "targetPath" "main.css" - "outputStyle" "compressed" - "includePaths" (slice "node_modules") -) }} - -{{ $postCSSConfig := dict "config" "postcss.config.js" }} -{{ $scssPath := "scss/main.scss" }} -{{ $style := resources.Get $scssPath | toCSS $options | postCSS $postCSSConfig }} - -{{ if ne hugo.Environment "development" }} - {{ $style = $style | resources.Minify | fingerprint }} -{{ end }} - - +{{ partial "theme/head/stylesheet.html" (dict "scss_path" "scss/main.scss") }} diff --git a/site/layouts/_partials/head/title.html b/site/layouts/_partials/head/title.html index b74518f8..69575db2 100644 --- a/site/layouts/_partials/head/title.html +++ b/site/layouts/_partials/head/title.html @@ -1,5 +1,5 @@ -{{ $title := .Title | default site.Params.title }} +{{ $title := .Title | default site.Title }} {{ $title = replace $title " " " " }} {{ $pageURL := .RelPermalink }} {{ $productPrefix := site.Data.spine.name }} -{{ $currentVersion := partial "functions/get-doc-version.html" . }} +{{ $currentVersionData := partial "theme/functions/get-doc-version-data.html" . }} -{{ if not $currentVersion.is_main }} - {{ $versionLabel := "version" }} - {{ $title = printf "%s — %s %s" $title $versionLabel $currentVersion.short }} +{{ with $currentVersionData.version }} + {{ if not .is_main }} + {{ $versionLabel := .label }} + {{ $title = printf "%s — version %s" $title $versionLabel }} + {{ end }} {{ end }} {{ if not .IsHome }} diff --git a/site/layouts/_partials/release-notes/functions/get-releases.html b/site/layouts/_partials/release-notes/functions/get-releases.html index f4e6fcd9..f5b353a4 100644 --- a/site/layouts/_partials/release-notes/functions/get-releases.html +++ b/site/layouts/_partials/release-notes/functions/get-releases.html @@ -39,17 +39,12 @@ {{ $releases := where site.RegularPages "Section" "release-notes" }} {{ $years := partial "release-notes/functions/get-release-years.html" $releases }} -{{- /* Uncomment this block to render the Release Notes index page. -{{ with site.GetPage "release-notes" }} - {{ $pageURL := .RelPermalink }} - {{ $pageTitle := partial "components/sidenav/functions/get-page-title.html" (dict "page" dict "context" .) }} - {{ $data = $data | append (dict "url" $pageURL "page" $pageTitle) }} -{{ end }} -*/ -}} - {{ range $years }} {{ $pages := slice }} - {{ $groupedReleases := partial "components/release-notes/functions/get-grouped-releases.html" (dict "releases" $releases "year" .) }} + {{ $groupedReleases := partial "release-notes/functions/get-grouped-releases.html" (dict + "releases" $releases + "year" . + ) }} {{ range $groupedReleases }} {{ range .pages }} {{ $pageURL := .RelPermalink }} diff --git a/site/layouts/_partials/release-notes/sidenav.html b/site/layouts/_partials/release-notes/sidenav.html index 4c9df53f..93c19bab 100644 --- a/site/layouts/_partials/release-notes/sidenav.html +++ b/site/layouts/_partials/release-notes/sidenav.html @@ -1,5 +1,5 @@ - -{{ partial "scripts/libs.html" . }} - -{{ partial "scripts/body/baseurl.html" . }} - {{ $environment := hugo.Environment }} -{{ $defaultCodeTheme := site.Params.defaultCodeTheme }} {{ $payment := site.Params.payment }} {{ $params := (dict "environment" $environment - "defaultCodeTheme" $defaultCodeTheme "payment" $payment )}} +{{ partial "theme/scripts/body/baseurl.html" . }} +{{ partial "theme/scripts/body/libs.html" . }} + {{ $jsBootstrap := resources.Get "js/bootstrap.js" }} +{{ $jsThemeMain := resources.Get "js/theme-main.js" }} {{ $jsMain := resources.Get "js/main.js" }} -{{ $jsDocsMain := resources.Get "js/docs-main.js" }} {{ $js := (slice - $jsBootstrap $jsMain $jsDocsMain + $jsBootstrap $jsThemeMain $jsMain ) }} {{ $js = $js | resources.Concat "js/main.js" | js.Build (dict "params" $params) }} -{{ partial "scripts/script.html" (dict "js" $js) }} +{{ partial "theme/scripts/script.html" (dict "js" $js) }} {{ partial "scripts/body/docsearch.html" . }} -{{ with .Page.Params.customjs }} - {{ $jsCustom := . }} - {{ if reflect.IsSlice $jsCustom }} - {{ range $jsCustom }} - {{ $path := strings.TrimPrefix "/" . }} - {{ $js := resources.Get $path | js.Build (dict "params" $params) }} - {{ partial "scripts/script.html" (dict "js" $js) }} - {{ end }} - {{ else }} - {{ $path := strings.TrimPrefix "/" $jsCustom }} - {{ $js := resources.Get $path | js.Build (dict "params" $params) }} - {{ partial "scripts/script.html" (dict "js" $js) }} - {{ end }} -{{ end }} +{{ partial "theme/scripts/page-custom-js.html" (dict + "context" . + "params" $params +) }} diff --git a/site/layouts/_partials/scripts/body/docsearch.html b/site/layouts/_partials/scripts/body/docsearch.html index a2f96262..e077e7a5 100644 --- a/site/layouts/_partials/scripts/body/docsearch.html +++ b/site/layouts/_partials/scripts/body/docsearch.html @@ -37,6 +37,7 @@ appId: '{{ .appId }}', indexName: '{{ .index }}', apiKey: '{{ .apiKey }}', + theme: 'light', }); {{ end }} diff --git a/site/layouts/_partials/scripts/head-scripts.html b/site/layouts/_partials/scripts/head-scripts.html index 149e04bc..c198304e 100644 --- a/site/layouts/_partials/scripts/head-scripts.html +++ b/site/layouts/_partials/scripts/head-scripts.html @@ -25,6 +25,6 @@ --> {{ partial "scripts/head/gtm.html" . }} -{{ partial "scripts/head/jquery.html" . }} +{{ partial "theme/scripts/head/jquery.html" . }} {{ partial "scripts/head/docsearch.html" . }} {{ partial "scripts/head/cookie-notice.html" . }} diff --git a/site/layouts/_partials/scripts/head/cookie-notice.html b/site/layouts/_partials/scripts/head/cookie-notice.html index cefc5d81..d161ccb9 100644 --- a/site/layouts/_partials/scripts/head/cookie-notice.html +++ b/site/layouts/_partials/scripts/head/cookie-notice.html @@ -34,5 +34,6 @@ {{ $id := site.Params.cookieScript.id }} {{ if $id }} - {{ partial "scripts/cookie-script.html" (dict "cookie_script_id" $id) }} + {{ $scriptURL := printf "//cdn.cookie-script.com/s/%s.js" $id }} + {{ end }} diff --git a/site/layouts/_partials/scripts/head/jquery.html b/site/layouts/_partials/scripts/head/jquery.html deleted file mode 100644 index 5bfb2d53..00000000 --- a/site/layouts/_partials/scripts/head/jquery.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/site/layouts/blog/post/_markup/render-image.html b/site/layouts/blog/post/_markup/render-image.html deleted file mode 100644 index 25c4cb35..00000000 --- a/site/layouts/blog/post/_markup/render-image.html +++ /dev/null @@ -1,37 +0,0 @@ -{{- /* -Renders the image based on the provided image path. - -The path can be provided in different ways: - -- From the `static` folder: - ![Image alt](images/case-studies/challenge.svg) - -- From any folder inside the `content` directory: - ![Image alt](/dotnetbrowser/case-studies/mirabyte/museum-touch-screen.webp) - -- From the current page folder: - ![Image alt](museum-touch-screen.webp) - -By default, each image will be rendered with `lazy` loading. -To change this, add `"loading=eager"` as follows: -![Image alt](museum-touch-screen.webp "loading=eager") -*/ -}} - -{{ $link := .Destination }} -{{ $loading := "lazy" }} - -{{ if not (strings.HasPrefix $link "/") }} - {{ $cleanedLink := replaceRE "#.*$" "" $link }} - {{ with .Page.Resources.GetMatch $cleanedLink }} - {{ $link = .RelPermalink }} - {{ else }} - {{ $link = $link | relURL }} - {{ end }} -{{ end }} - -{{ if (eq .Title "loading=eager") }} - {{ $loading = "eager" }} -{{ end }} - -{{ .Text }} -{{- /* Strip trailing newline. */ -}} diff --git a/site/layouts/docs/section.html b/site/layouts/docs/section.html index caa308f1..34d5982c 100644 --- a/site/layouts/docs/section.html +++ b/site/layouts/docs/section.html @@ -1,6 +1,6 @@ {{ define "main" }} {{ partial "components/navbar/navbar.html" . }} {{ partial "components/nav-hero.html" . }} - {{ partial "docs/components/content-layout/three-column.html" . }} + {{ partial "theme/docs/layout/three-column.html" . }} {{ partial "components/go-top-button.html" . }} {{ end }} diff --git a/site/layouts/docs/single.html b/site/layouts/docs/single.html index caa308f1..34d5982c 100644 --- a/site/layouts/docs/single.html +++ b/site/layouts/docs/single.html @@ -1,6 +1,6 @@ {{ define "main" }} {{ partial "components/navbar/navbar.html" . }} {{ partial "components/nav-hero.html" . }} - {{ partial "docs/components/content-layout/three-column.html" . }} + {{ partial "theme/docs/layout/three-column.html" . }} {{ partial "components/go-top-button.html" . }} {{ end }} diff --git a/site/layouts/privacy/single.html b/site/layouts/privacy/single.html index 7aae5b6a..36e4a853 100644 --- a/site/layouts/privacy/single.html +++ b/site/layouts/privacy/single.html @@ -3,8 +3,10 @@
-
- {{ .Content }} +
+
+ {{ .Content }} +
diff --git a/site/package-lock.json b/site/package-lock.json index 11407c13..2397ea5f 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -8,9 +8,6 @@ "name": "spine", "version": "1.0.0", "license": "ISC", - "dependencies": { - "bootstrap": "^5.3.8" - }, "devDependencies": { "@fullhuman/postcss-purgecss": "^7.0.2", "autoprefixer": "^10.4.22", @@ -148,16 +145,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -253,24 +240,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bootstrap": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", - "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "peerDependencies": { - "@popperjs/core": "^2.11.8" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", diff --git a/site/package.json b/site/package.json index 52a5f174..ae4db2b0 100644 --- a/site/package.json +++ b/site/package.json @@ -14,8 +14,5 @@ "postcss": "^8.5.6", "postcss-cli": "^11.0.1", "postcss-discard-comments": "^7.0.5" - }, - "dependencies": { - "bootstrap": "^5.3.8" } } diff --git a/site/postcss.config.js b/site/postcss.config.js deleted file mode 100644 index a69ff3e4..00000000 --- a/site/postcss.config.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Adds vendor prefixes to CSS. - * - * See the `.browserslistrc` file in the root for the actual list of browsers, - * where `> 0.5%` means all browsers that are used by more than 0.5% - * of users worldwide. See https://github.com/browserslist/browserslist#queries. - */ -const autoprefixer = require('autoprefixer'); - -/** - * Discards comments from the CSS. - * - * See https://www.npmjs.com/package/postcss-discard-comments. - */ -const discardComments = require('postcss-discard-comments'); - -module.exports = { - plugins: [ - autoprefixer, - discardComments({removeAllButFirst: true}) - ] -} diff --git a/site/static/libs/docsearch/variables.css b/site/static/libs/docsearch/variables.css index 0371cec3..02b3f1e1 100644 --- a/site/static/libs/docsearch/variables.css +++ b/site/static/libs/docsearch/variables.css @@ -46,26 +46,46 @@ /* Darkmode */ html[data-theme='dark'] { - --docsearch-text-color: rgb(245, 246, 247); - --docsearch-container-background: rgba(9, 10, 17, 0.8); - --docsearch-modal-background: rgb(21, 23, 42); - --docsearch-modal-shadow: inset 1px 1px 0 0 rgb(44, 46, 64), - 0 3px 8px 0 rgb(0, 3, 9); - --docsearch-searchbox-background: rgb(9, 10, 17); - --docsearch-searchbox-focus-background: #000; - --docsearch-hit-color: rgb(190, 195, 201); + --docsearch-primary-color: #1378da; + --docsearch-text-color: rgb(28, 30, 33); + --docsearch-spacing: 12px; + --docsearch-icon-stroke-width: 1.4; + --docsearch-highlight-color: var(--docsearch-primary-color); + --docsearch-muted-color: rgb(150, 159, 175); + --docsearch-container-background: rgba(40, 66, 81, 0.64); + --docsearch-logo-color: rgb(84, 104, 255); + + /* modal */ + --docsearch-modal-width: 560px; + --docsearch-modal-height: 600px; + --docsearch-modal-background: #fff; + --docsearch-modal-shadow: inset 1px 1px 0 0 rgba(255, 255, 255, 0.5), + 0 3px 8px 0 rgba(85, 90, 100, 1); + + /* searchbox */ + --docsearch-searchbox-height: 48px; + --docsearch-searchbox-background: rgb(235, 237, 240); + --docsearch-searchbox-focus-background: #fff; + --docsearch-searchbox-shadow: none; + + /* hit */ + --docsearch-hit-height: 56px; + --docsearch-hit-color: rgb(68, 73, 80); + --docsearch-hit-active-color: #fff; + --docsearch-hit-background: #f7f8fd; --docsearch-hit-shadow: none; - --docsearch-hit-background: rgb(9, 10, 17); + + /* key */ --docsearch-key-gradient: linear-gradient( - -26.5deg, - rgb(86, 88, 114) 0%, - rgb(49, 53, 91) 100% + -225deg, + rgb(213, 219, 228) 0%, + rgb(248, 248, 248) 100% ); - --docsearch-key-shadow: inset 0 -2px 0 0 rgb(40, 45, 85), - inset 0 0 1px 1px rgb(81, 87, 125), 0 2px 2px 0 rgba(3, 4, 9, 0.3); - --docsearch-footer-background: rgb(30, 33, 54); - --docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5), - 0 -4px 8px 0 rgba(0, 0, 0, 0.2); - --docsearch-logo-color: rgb(255, 255, 255); - --docsearch-muted-color: rgb(127, 132, 151); + --docsearch-key-shadow: inset 0 -2px 0 0 rgb(205, 205, 230), + inset 0 0 1px 1px #fff, 0 1px 2px 1px rgba(30, 35, 90, 0.4); + + /* footer */ + --docsearch-footer-height: 44px; + --docsearch-footer-background: #fff; + --docsearch-footer-shadow: 0 -1px 0 0 #ebedf5; }