Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 0 additions & 1 deletion .agents/memory/MEMORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ See [README.md](README.md) for the format and routing rules.

## Project (durable context & rationale)

- [which-fixer applied](which-fixer-applied.md) — bulk sweep done; skill now runs in incremental mode
- [integration tests stale compiler after version bump](project/integration-tests-stale-compiler-after-version-bump.md) — after a version bump, clean-build `integrationTest` or it may launch the old compiler
- [functional-test fixtures](project/functional-test-fixtures.md) — authoring `gradle-plugin` TestKit fixtures: copied buildSrc, import rules, Maven Local prerequisite, `tuneRunner()`

Expand Down
2 changes: 1 addition & 1 deletion .agents/memory/reference/cache-warm-window.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ same cache slot — provided they fall within the TTL.
Developers must have `ENABLE_PROMPT_CACHING_1H=1` set, otherwise the
window is too short for cross-session hits to occur reliably.
This setting will work ONLY for Claude Code which runs the CLI binary.
It will not work for JetBrains Air or any other IDE plugin which does not
It will not work for JetBrains Air or any other IDE plugin that does not
run the Claude Code CLI binary.

**Cache is per Anthropic workspace.** All developers authenticated via the
Expand Down
14 changes: 0 additions & 14 deletions .agents/memory/which-fixer-applied.md

This file was deleted.

6 changes: 5 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"plansDirectory": ".claude/plans",
"permissions": {
"allow": [
"Edit(version.gradle.kts)",
Expand Down Expand Up @@ -32,8 +33,11 @@
"Bash(mkdir:*)",
"Bash(touch:*)",
"Bash(python3 .agents/skills/update-copyright/scripts/update_copyright.py:*)",
"Bash(.agents/skills/version-bumped/scripts/version-bumped.sh)",
"Bash(./config/pull)",
"Bash(./config/migrate)"
"Bash(./config/migrate)",
"Skill(pre-pr)",
"Skill(pre-pr:*)"
],
"deny": [
"Bash(git reset --hard:*)",
Expand Down
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,12 @@
.idea/modules
.idea/shelf

# `.idea/misc.xml` is intentionally NOT re-included below. It is project-local —
# it holds the per-project JDK name and IDEA's own churn (entry-point list
# indices, external-storage toggles) — so `.idea/*.xml` above keeps it ignored.
# `./config/pull` (via `migrate`) untracks any copy an earlier pull committed.

# Do not ignore the following IDEA settings
!.idea/misc.xml
!.idea/codeStyleSettings.xml
!.idea/codeStyles/
!.idea/copyright/
Expand Down Expand Up @@ -173,6 +177,12 @@ __pycache__/

# Claude working files
/.claude/worktrees/
# Ephemeral plan-mode scratch (durable task docs live in `.agents/tasks/`).
/.claude/plans/

# Personal, per-developer Claude Code settings overrides (never committed;
# the distributed `.claude/settings.json` is the shared, committed layer).
/.claude/settings.local.json

# Auto-downloaded Lychee binary used by the `check-links` skill.
/.agents/skills/check-links/.cache/
Expand All @@ -190,7 +200,6 @@ docs/_preview/resources/
# <<< shared config <<<

# >>> repo-local entries (preserved across ./config/pull) >>>
!.idea/misc.xml
!.idea/codeStyleSettings.xml
!.idea/codeStyles/
!.idea/copyright/
Expand Down
1 change: 1 addition & 0 deletions .idea/.gitignore

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

2 changes: 1 addition & 1 deletion .idea/live-templates/README.md

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

44 changes: 0 additions & 44 deletions .idea/misc.xml

This file was deleted.

4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ Code contributions should:
Contributor License Agreement
-----------------------------
Contributions to the code of Spine Event Engine framework and its libraries must be accompanied by
Contributor License Agreement (CLA).
a Contributor License Agreement (CLA).

* If you are an individual writing original source code and you're sure you own
the intellectual property, then you'll need to sign an individual CLA.

* If you work for a company which wants you to contribute your work,
* If you work for a company that wants you to contribute your work,
then an authorized person from your company will need to sign a corporate CLA.

Please [contact us][legal-email] for arranging the paper formalities.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ internal class MemberSpec {
/**
* Creates and runs a pipeline with [ProbeRenderer].
*
* Java language is used in the pipeline for simplicity of the setup
* assisted by ProtoTap Gradle plugin.
* The Java language is used in the pipeline for simplicity of the setup
* assisted by the ProtoTap Gradle plugin.
*
* No Java codegen features are checked by this test suite.
*/
Expand Down Expand Up @@ -160,7 +160,7 @@ internal class MemberSpec {
}

/**
* A diagnostic probe that performs queries as a [Member] of code generation process,
* A diagnostic probe that performs queries as a [Member] of the code generation process,
* but does not render anything.
*/
class ProbeRenderer : Renderer<Java>(Java) {
Expand Down
18 changes: 9 additions & 9 deletions api/src/main/kotlin/io/spine/tools/compiler/Compilation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ import io.spine.tools.compiler.ast.File as PFile
* In the production mode, the [error] method prints an error message to [System.err] and
* exits the process with [ERROR_EXIT_CODE].
*
* In the testing mode, the [error] method throws [Compilation.Error] exception with
* In the testing mode, the [error] method throws a [Compilation.Error] exception with
* the same error message as printed to the console in the production mode.
*
* The execution mode is [detected][Tests.enabled] via the [Tests] environment type.
Expand Down Expand Up @@ -89,7 +89,7 @@ public object Compilation {
* The termination of the compilation in the production mode is done by
* exiting the process with [ERROR_EXIT_CODE].
*
* If the code is run [under tests][Tests] the method throws [Compilation.Error].
* If the code is run [under tests][Tests], the method throws [Compilation.Error].
*
* @param file The file in which the error occurred.
* @param line The one-based number of the line with the error.
Expand All @@ -114,7 +114,7 @@ public object Compilation {
* The termination of the compilation in the production mode is done by
* exiting the process with [ERROR_EXIT_CODE].
*
* If the code is run [under tests][Tests] the method throws [Compilation.Error].
* If the code is run [under tests][Tests], the method throws [Compilation.Error].
*
* @param file The file in which the error occurred.
* @param line The one-based number of the line with the error.
Expand All @@ -131,7 +131,7 @@ public object Compilation {
* The termination of the compilation in the production mode is done by
* exiting the process with [ERROR_EXIT_CODE].
*
* If the code is run [under tests][Tests] the method throws [Compilation.Error].
* If the code is run [under tests][Tests], the method throws [Compilation.Error].
*
* @param file The file in which the error occurred.
* @param span The span of the Protobuf declaration that caused the error.
Expand Down Expand Up @@ -164,7 +164,7 @@ public object Compilation {
}

/**
* Prints the warning diagnostics to [System.out]
* Prints the warning diagnostics to [System.out].
*
* The method returns the string printed to the console so that it could be also
* put into logging output by the calling code.
Expand All @@ -178,7 +178,7 @@ public object Compilation {
warning(file, span.startLine, span.startColumn, message())

/**
* Prints the warning diagnostics to [System.out]
* Prints the warning diagnostics to [System.out].
*
* The method returns the string printed to the console so that it could be also
* put into logging output by the calling code.
Expand Down Expand Up @@ -227,7 +227,7 @@ public object Compilation {
// "+1" counts whitespace between a prefix and the file path.
val indent = Indent(prefix.length + 1)

// The first line is appended to the location, each consequent line is
// The first line is appended to the location; each subsequent line is
// prepended with indentation.
val indentedBody = messageLines.drop(1)
.indent(indent, level = 1)
Expand Down Expand Up @@ -277,8 +277,8 @@ public fun Compilation.check(condition: Boolean, file: PFile, span: Span, messag
* it could be opened in an IDE or a browser.
*
* If the path is relative, it is simply returned as the result of this function.
* Even though file URI could be
* [relative](https://stackoverflow.com/questions/7857416/file-uri-scheme-and-relative-files)
* Even though a file URI could be
* [relative](https://stackoverflow.com/questions/7857416/file-uri-scheme-and-relative-files),
* we do not want to use this because its full path would be resolved relatively
* to a user home directory or the current directory.
* None of these cases represent a directory with proto files.
Expand Down
10 changes: 5 additions & 5 deletions api/src/main/kotlin/io/spine/tools/compiler/ast/Coordinates.kt
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -46,15 +46,15 @@ import io.spine.tools.compiler.util.Cache
public class Coordinates private constructor(file: FileDescriptorProto) : Locations(file) {

/**
* Obtains declaration coordinates the given message.
* Obtains declaration coordinates for the given message.
*/
public fun forMessage(d: Descriptor): Span {
val path = LocationPath.fromMessage(d)
return spanAt(path)
}

/**
* Obtains declaration coordinates the given message.
* Obtains declaration coordinates for the given message.
*/
public fun forField(d: FieldDescriptor): Span {
val path = LocationPath.fromMessage(d.containingType).field(d)
Expand Down Expand Up @@ -145,7 +145,7 @@ private fun Location.toSpan(): Span {
if (this == Location.getDefaultInstance()) {
return Span.getDefaultInstance()
}
// Convert the value of the `span` field into four-elements array.
// Convert the value of the `span` field into a four-element array.
val slots =
if (spanCount == 3)
arrayOf(getSpan(0), getSpan(1), getSpan(0), getSpan(2))
Expand All @@ -161,7 +161,7 @@ private fun Location.toSpan(): Span {
}

/**
* Obtains coordinates for the file this [GenericDescriptor].
* Obtains coordinates for the file of this [GenericDescriptor].
*/
internal fun GenericDescriptor.coordinates(): Coordinates {
val fromResources = withSourceLines()
Expand Down
8 changes: 4 additions & 4 deletions api/src/main/kotlin/io/spine/tools/compiler/ast/FieldExts.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import io.spine.type.typeName
import java.io.File

/**
* Obtains the type of this field as [Type] instance.
* Obtains the type of this field as a [Type] instance.
*
* @throws IllegalStateException If the field is a list or a map.
*/
Expand All @@ -54,23 +54,23 @@ public val Field.isMessage: Boolean
* Shows if this field is a `map`.
*
* If the field is a `map`, the `Field.type` contains the type of the value, and
* the `Field.map.key_type` contains the type the map key.
* the `Field.map.key_type` contains the type of the map key.
*/
public val Field.isMap: Boolean
get() = type.isMap

/**
* Shows if this field is a list.
*
* In Protobuf `repeated` keyword denotes a sequence of values for a field.
* In Protobuf the `repeated` keyword denotes a sequence of values for a field.
* However, a map is also treated as a repeated field for serialization reasons.
* We use the term "list" for repeated fields that are not maps.
*/
public val Field.isList: Boolean
get() = type.isList

/**
* Shows if this field repeated.
* Shows if this field is repeated.
*
* Can be declared in Protobuf either as a `map` or a `repeated` field.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public val FieldType.cardinality: Cardinality
/**
* Converts this field type to [Type].
*
* @throws IllegalStateException If this is field type is a list or a map.
* @throws IllegalStateException If this field type is a list or a map.
*
* @see extractType
*/
Expand All @@ -125,7 +125,7 @@ public fun FieldType.toType(): Type = type {
* @param typeSystem The type system to be used for obtaining type information.
*
* @return the message type instance or `null` if this field type is not a message,
* or if it does not refer to message being a list or a map.
* or if it does not refer to a message being a list or a map.
*
* @see extractType
* @see extractPrimitiveType
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -34,7 +34,7 @@ import io.spine.tools.compiler.ast.FilePattern.KindCase.INFIX
import io.spine.tools.compiler.ast.FilePattern.KindCase.SUFFIX

/**
* Tells if this patterns matches the given [file].
* Tells if this pattern matches the given [file].
*/
public fun FilePattern.matches(file: File): Boolean {
val path = file.path
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -87,7 +87,7 @@ public fun java.io.File.toDirectory(): Directory =
public fun File.toPath(): Path = Path(path)

/**
* Converts this [File] into [java.io] counterpart.
* Converts this [File] into a [java.io] counterpart.
*/
public fun File.toJava(): java.io.File = java.io.File(path)

Expand All @@ -106,7 +106,7 @@ private val PB_JSON_SUFFIX: String by lazy {
/**
* Returns the name of this file without an extension.
*
* Takes care of the special case for "pb.json" quasi-extension.
* Takes care of the special case for the "pb.json" quasi-extension.
*
* @see File.name
*/
Expand Down
Loading
Loading