Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
acfd720
Update `config`
alexander-yevsyukov Jun 24, 2025
b6984ef
Update `config`
alexander-yevsyukov Jun 24, 2025
e1ca104
Address build errors
alexander-yevsyukov Jun 24, 2025
2740963
Update dependency reports
alexander-yevsyukov Jun 24, 2025
770008b
Remove debug output
alexander-yevsyukov Jun 25, 2025
1ec32dd
Bump version -> `2.0.0-SNAPSHOT.250`
alexander-yevsyukov Jun 25, 2025
5a481ff
Migrate to JSpecify annotations
alexander-yevsyukov Jun 25, 2025
f483914
Update dependency reports
alexander-yevsyukov Jun 25, 2025
98d4153
Restore mutual copyright statement
alexander-yevsyukov Jun 25, 2025
0522789
Restore mutual copyright statement
alexander-yevsyukov Jun 25, 2025
49e7188
Restore mutual copyright statement
alexander-yevsyukov Jun 25, 2025
175a61f
Update dependency reports
alexander-yevsyukov Jun 25, 2025
dbf3701
Update `config`
alexander-yevsyukov Jun 25, 2025
9c84902
Fix description of the `package-info`
alexander-yevsyukov Jun 25, 2025
b902c97
Restore (c) lines
alexander-yevsyukov Jun 25, 2025
a4f7fea
Simplify method return
alexander-yevsyukov Jun 25, 2025
384f5eb
Fix (c) statement
alexander-yevsyukov Jun 25, 2025
5f4e911
Fix (c) statement
alexander-yevsyukov Jun 25, 2025
23e704b
Fix (c) statements
alexander-yevsyukov Jun 25, 2025
b4b2019
Fix (c) year
alexander-yevsyukov Jun 25, 2025
5ecdf74
Update config
alexander-yevsyukov Jun 25, 2025
ad14759
Restore (c) statement
alexander-yevsyukov Jun 25, 2025
765c43f
Restore (c) statement
alexander-yevsyukov Jun 25, 2025
fe31f99
Restore (c) statement
alexander-yevsyukov Jun 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/build-on-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: 11
java-version: 17
distribution: zulu
cache: gradle

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-on-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: 11
java-version: 17
distribution: zulu
cache: gradle

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ on:

jobs:
validation:
name: Validation
name: Gradle Wrapper Validation
runs-on: ubuntu-latest
steps:
- name: Checkout latest code
uses: actions/checkout@v4

- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
uses: gradle/actions/wrapper-validation@v4
2 changes: 1 addition & 1 deletion .github/workflows/increment-guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: 11
java-version: 17
distribution: zulu
cache: gradle

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: 11
java-version: 17
distribution: zulu
cache: gradle

Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/remove-obsolete-artifacts-from-packages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#
# Periodically removes obsolete artifacts from GitHub Packages.
#
# Only non-release artifacts—those containing "SNAPSHOT" in their version name—are eligible
# for removal. The latest non-release artifacts will be retained, with the exact number determined
# by the `VERSION_COUNT_TO_KEEP` environment variable.
#
# Please note the following details:
#
# 1. An artifact cannot be deleted if it is public and has been downloaded more than 5,000 times.
# In this scenario, contact GitHub support for further assistance.
#
# 2. This workflow only applies to artifacts published from this repository.
#
# 3. A maximum of 100 artifacts can be removed per run from each package;
# if there are more than 100 obsolete artifacts, either manually restart the workflow
# or wait for the next scheduled removal.
#
# 4. When artifacts with version `x.x.x-SNAPSHOT` are published, GitHub automatically appends
# the current timestamp, resulting in versions like `x.x.x-SNAPSHOT.20241024.173759`.
# All such artifacts are grouped into one package and treated as a single package
# in GitHub Packages with the version `x.x.x-SNAPSHOT`. Consequently, it is not possible
# to remove obsolete versions within a package; only the entire package can be deleted.
#

name: Remove obsolete Maven artifacts from GitHub Packages

on:
schedule:
- cron: '0 0 * * *' # Run every day at midnight.

env:
VERSION_COUNT_TO_KEEP: 5 # Number of most recent SNAPSHOT versions to retain.

jobs:
retrieve-package-names:
name: Retrieve the package names published from this repository
runs-on: ubuntu-latest
outputs:
package-names: ${{ steps.request-package-names.outputs.package-names }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'

- name: Retrieve the names of packages
id: request-package-names
shell: bash
run: |
repoName=$(echo ${{ github.repository }} | cut -d '/' -f2)
chmod +x ./config/scripts/request-package-names.sh
./config/scripts/request-package-names.sh ${{ github.token }} \
$repoName ${{ github.repository_owner }} ./package-names.json
echo "package-names=$(<./package-names.json)" >> $GITHUB_OUTPUT

delete-obsolete-artifacts:
name: Remove obsolete artifacts published from this repository to GitHub Packages
needs: retrieve-package-names
runs-on: ubuntu-latest
strategy:
matrix:
package-name: ${{ fromJson(needs.retrieve-package-names.outputs.package-names) }}
steps:
- name: Remove obsolete artifacts from '${{ matrix.package-name }}' package
uses: actions/delete-package-versions@v5
with:
owner: ${{ github.repository_owner }}
package-name: ${{ matrix.package-name }}
package-type: 'maven'
token: ${{ github.token }}
min-versions-to-keep: ${{ env.VERSION_COUNT_TO_KEEP }}
# Ignores artifacts that do not contain the word "SNAPSHOT".
ignore-versions: '^(?!.+SNAPSHOT).*$'
38 changes: 32 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#
# Copyright 2022, TeamDev. All rights reserved.
# 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
# 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
Expand All @@ -31,6 +31,18 @@
#
# Therefore, instructions below are superset of instructions required for all the projects.

# Temporary output of AI agents.
.output

# `jenv` local configuration.
.java-version

# Internal tool directories.
.fleet/

# Kotlin temp directories.
**/.kotlin/

# IntelliJ IDEA modules and interim config files.
*.iml
.idea/*.xml
Expand All @@ -42,16 +54,31 @@

# Do not ignore the following IDEA settings
!.idea/misc.xml
!.idea/kotlinc.xml
!.idea/codeStyleSettings.xml
!.idea/codeStyles/
!.idea/copyright/

# Ignore IDEA config files under `tests`
/tests/.idea/**

# Gradle interim configs
**/.gradle/**

# Temp directory for Gradle TestKit runners
**/.gradle-test-kit/**

# Integration test log files
/tests/_out/**

# Generated source code
**/generated/**
**/*.pb.dart
**/*.pbenum.dart
**/*.pbserver.dart
**/*.pbjson.dart

# Generated source code with custom path under `tests`
/tests/**/proto-gen/**

# Gradle build files
**/build/**
Expand All @@ -75,9 +102,6 @@ gradle-app.setting
# Spine internal directory for storing intermediate artifacts
**/.spine/**

# Spine model compiler auto-generated resources
/tools/gradle-plugins/model-compiler/src/main/resources/spine-protoc.gradle

# Login details to Maven repository.
# Each workstation should have developer's login defined in this file.
credentials.tar
Expand All @@ -104,3 +128,5 @@ pubspec.lock

# Ignore the `tmp` directory used for building dependant repositories.
/tmp

.gradle-test-kit/
3 changes: 2 additions & 1 deletion .idea/codeStyles/Project.xml

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

4 changes: 3 additions & 1 deletion .idea/dictionaries/common.xml

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

26 changes: 15 additions & 11 deletions .idea/inspectionProfiles/Project_Default.xml

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

8 changes: 4 additions & 4 deletions .idea/kotlinc.xml

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

2 changes: 1 addition & 1 deletion .idea/misc.xml

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

21 changes: 21 additions & 0 deletions .junie/guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## Guidelines for Junie and AI Agent from JetBrains

Read the `AGENTS.md` file at the root of the project to understand:
- the agent responsibilities,
- project overview,
- coding guidelines,
- other relevant topics.

Also follow the Junie-specific rules described below.

## Junie Assistance Tips

When working with Junie AI on the Spine Tool-Base project:

1. **Project Navigation**: Use `search_project` to find relevant files and code segments.
2. **Code Understanding**: Request file structure with `get_file_structure` before editing.
3. **Code Editing**: Make minimal changes with `search_replace` to maintain project consistency.
4. **Testing**: Verify changes with `run_test` on relevant test files.
5. **Documentation**: Follow KDoc style for documentation.
6. **Kotlin Idioms**: Prefer Kotlin-style solutions over Java-style approaches.
7. **Version Updates**: Remember to update `version.gradle.kts` for PRs.
Loading
Loading