Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d1a3200
Reduce using "please" in docs
alexander-yevsyukov Jan 20, 2026
11c6121
Improve text layout
alexander-yevsyukov Jan 20, 2026
b16788a
Bump version -> `2.0.0-SNAPSHOT.394`
alexander-yevsyukov Jan 20, 2026
9c0a34b
Bump Validation and CoreJvm Compiler
alexander-yevsyukov Jan 20, 2026
6379b9f
Update dependency reports
alexander-yevsyukov Jan 20, 2026
1d17e3b
Merge remote-tracking branch 'origin/master' into docs-set-1
alexander-yevsyukov Jan 20, 2026
1397636
Update config ref.
alexander-yevsyukov Jan 20, 2026
6e2fe2b
Remove "Migration Guide" section
alexander-yevsyukov Jan 21, 2026
479c28c
Improve text layout
alexander-yevsyukov Jan 21, 2026
4230509
Remove unnecessary decorations
alexander-yevsyukov Jan 21, 2026
77bbd9c
Remove hallucinated section links
alexander-yevsyukov Jan 21, 2026
4bf36f0
Remove redundant horizontal lines
alexander-yevsyukov Jan 21, 2026
09a9d47
Convert titles to sentence case
alexander-yevsyukov Jan 22, 2026
90bc7db
Allow empty lines after headers
alexander-yevsyukov Jan 22, 2026
78da3fb
Fix the proto options example
alexander-yevsyukov Jan 22, 2026
2d1f0aa
Use braces around proto options
alexander-yevsyukov Jan 22, 2026
0300e79
Temporarily add source code of proto options
alexander-yevsyukov Jan 22, 2026
94f69c0
Fix capitalization
alexander-yevsyukov Jan 22, 2026
449a789
Backtick code in ToC
alexander-yevsyukov Jan 22, 2026
3671ae4
Put the "Collection constraints" section after "Temporal constraints"
alexander-yevsyukov Jan 22, 2026
16a2736
Describe Validation components
alexander-yevsyukov Jan 22, 2026
7fb87ac
Remove "Configuration & tooling" section
alexander-yevsyukov Jan 22, 2026
51c5036
Rename "Installation" to "Adding Validation to your build"
alexander-yevsyukov Jan 22, 2026
d3d0b60
Describe adding Validation to a Gradle build
alexander-yevsyukov Jan 22, 2026
5383ae2
Improve the example type name in the `ValidationError` docs
alexander-yevsyukov Jan 22, 2026
0bb6196
Remove the leading zero in the Introduction section title
alexander-yevsyukov Jan 22, 2026
f99685a
Add wording for the `first-model.md`
alexander-yevsyukov Jan 22, 2026
9f5204a
Remove mentioning of temporal constraints
alexander-yevsyukov Jan 23, 2026
e409aa5
Add `code/first-model` subproject
alexander-yevsyukov Jan 23, 2026
c681d66
Make JVM runtime expose `Base.lib` at the `api` level
alexander-yevsyukov Jan 23, 2026
9e97727
Remove redundant dependencies
alexander-yevsyukov Jan 23, 2026
5918462
Remove commented out code
alexander-yevsyukov Jan 23, 2026
fe8e722
Improve package name for the `BankCard` example
alexander-yevsyukov Jan 23, 2026
fe75e36
Fix Kotlin package path
alexander-yevsyukov Jan 23, 2026
5316c03
Add Java test for `BankCard`
alexander-yevsyukov Jan 23, 2026
8ee49bd
Improve Kotlin test name
alexander-yevsyukov Jan 23, 2026
652a545
Bump Gradle -> `9.3.0`
alexander-yevsyukov Jan 23, 2026
c1dde85
Update dependency reports
alexander-yevsyukov Jan 23, 2026
de11e7e
Add `spine-compiler` plugin dependency
alexander-yevsyukov Jan 29, 2026
e48782a
Remove outdated configuration proto code
alexander-yevsyukov Jan 29, 2026
5cc8b40
Update dependency reports
alexander-yevsyukov Jan 29, 2026
01e5e12
Add requirements for supported browsers
alexander-yevsyukov Jan 29, 2026
7300c06
Auto-updated by IDEA
alexander-yevsyukov Jan 29, 2026
a274f85
Improve the structure of the `docs` directory
alexander-yevsyukov Jan 31, 2026
b7f6ab0
Add structure proposal
alexander-yevsyukov Jan 31, 2026
ebe0672
Improve formatting
alexander-yevsyukov Jan 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions buildSrc/src/main/kotlin/BuildExtensions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,9 @@ val PluginDependenciesSpec.protobuf: PluginDependencySpec
val PluginDependenciesSpec.prototap: PluginDependencySpec
get() = id(ProtoTap.gradlePluginId).version(ProtoTap.version)

val PluginDependenciesSpec.`spine-compiler`: PluginDependencySpec
get() = id(Compiler.pluginId).version(Compiler.version)

val PluginDependenciesSpec.`gradle-doctor`: PluginDependencySpec
get() = id(GradleDoctor.pluginId).version(GradleDoctor.version)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ object CoreJvmCompiler {
/**
* The version used to in the build classpath.
*/
const val dogfoodingVersion = "2.0.0-SNAPSHOT.050"
const val dogfoodingVersion = "2.0.0-SNAPSHOT.051"

/**
* The version to be used for integration tests.
*/
const val version = "2.0.0-SNAPSHOT.050"
const val version = "2.0.0-SNAPSHOT.051"

/**
* The ID of the Gradle plugin.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ object Validation {
/**
* The version of the Validation library artifacts.
*/
const val version = "2.0.0-SNAPSHOT.392"
const val version = "2.0.0-SNAPSHOT.393"

/**
* The last version of Validation compatible with ProtoData.
Expand Down
100 changes: 50 additions & 50 deletions dependencies.md

Large diffs are not rendered by default.

175 changes: 175 additions & 0 deletions docs/STRUCTURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# Structuring repositories for Hugo documentation using Go modules

This document describes the **recommended repository layout and Hugo
Module mount strategy** for building modular documentation where:

- The **main site** assembles documentation from multiple repositories
- Each framework/library keeps **all documentation isolated under
`docs/`**
- Hugo Modules (Go modules) are used for versioning and composition

------------------------------------------------------------------------

## High-level architecture

- **Main site repository**
- Hugo site that assembles all documentation
- Imports documentation modules only
- **Documentation provider repositories** (framework, libraries)
- Each repo exposes its documentation as a **Hugo Module**
- All doc-related files live under `docs/`

Each `docs/` directory is:
- a **Go module root** (`go.mod`)
- a **Hugo project root** (`hugo.yaml`)

------------------------------------------------------------------------

## Main site repository

main-site/
go.mod
hugo.yaml
content/
layouts/
assets/

### hugo.yaml

``` yaml
module:
imports:
- path: github.com/your-org/framework/docs
- path: github.com/your-org/lib-foo/docs
- path: github.com/your-org/lib-bar/docs
```

------------------------------------------------------------------------

## Framework documentation repository

framework/
docs/
go.mod
go.sum
hugo.yaml
content/
framework/
_index.md
layouts/
assets/

### docs/go.mod

``` go
module github.com/your-org/framework/docs
go 1.22
```

### docs/hugo.yaml

``` yaml
module:
mounts:
- source: content
target: content/framework
- source: layouts
target: layouts
- source: assets
target: assets
```

------------------------------------------------------------------------

## Library documentation repository (example: lib-foo)

lib-foo/
docs/
go.mod
hugo.yaml
content/
libraries/
foo/
_index.md

### docs/go.mod

``` go
module github.com/your-org/lib-foo/docs
go 1.22
```

### docs/hugo.yaml

``` yaml
module:
mounts:
- source: content
target: content/libraries/foo
- source: layouts
target: layouts
- source: assets
target: assets
```

------------------------------------------------------------------------

## Content conventions
* Always mount into namespaced sections:
* `content/framework/...`
* `content/libraries/<libname>/...`
* Use `_index.md` at section roots to create proper landing pages
* Avoid mounting directly to `content/` without a subdirectory

------------------------------------------------------------------------

## Optional: shared documentation UI module

For shared shortcodes, partials, and styling:

docs-ui/
go.mod
hugo.yaml
layouts/
shortcodes/
partials/
assets/

**docs-ui/hugo.yaml:**

```yaml
module:
mounts:
- source: layouts
target: layouts
- source: assets
target: assets
```
Import this module before content modules in the main site.

------------------------------------------------------------------------

## Local development

Run documentation standalone from a repo:

cd framework
hugo server --source docs

For multi-repo development, consider a go.work file to use local checkouts instead of remote module versions.

------------------------------------------------------------------------

## Key rules to follow
* docs/ is the only Hugo + Go module root in doc-providing repos
* Each docs module defines its own mounts
* The main site only imports modules
* Mount targets must be unique and namespaced
* Commit both go.mod and go.sum for reproducible builds

------------------------------------------------------------------------

## References
* Hugo Modules overview: https://gohugo.io/hugo-modules/
* Hugo module configuration: https://gohugo.io/configuration/module/
* Go modules reference: https://go.dev/ref/mod
96 changes: 0 additions & 96 deletions docs/ToC.md

This file was deleted.

64 changes: 64 additions & 0 deletions docs/_code/first-model/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import io.spine.dependency.lib.Guava
import io.spine.dependency.local.Base
import io.spine.gradle.repo.standardToSpineSdk

/*
* 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.
* You may obtain a copy of the License at
*
* https://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.
*/

buildscript {
standardSpineSdkRepositories()
dependencies {
classpath(io.spine.dependency.local.Compiler.pluginLib)
}
}

plugins {
`java-library`
kotlin("jvm")
id("com.google.protobuf")
`spine-compiler`
id("io.spine.validation")
}

group = "io.spine.docs"
version = "2.0.0"

repositories {
mavenLocal()
standardToSpineSdk()
}

dependencies {
testImplementation(kotlin("test"))
}

kotlin {
jvmToolchain(17)
}

tasks.test {
useJUnitPlatform()
}
1 change: 1 addition & 0 deletions docs/_code/first-model/buildSrc
1 change: 1 addition & 0 deletions docs/_code/first-model/gradle.properties
1 change: 1 addition & 0 deletions docs/_code/first-model/gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/_code/first-model/gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading