Skip to content

Technology for workspace management and release tooling #4035

@skaldarnar

Description

@skaldarnar

We've been on and off with discussing the need for more and better workspace tooling. This issue is intended to collect ideas and references regarding the topic to help us make an informed decision how to move forward.

Current Features

🚧 TODO: collect a list of features offered by groovyw ...

Requirements

🚧 TODO: figure out what we really need this for

References

Multi-Repo Tooling

  • Google's repo tool for managing multiple repositories within the same "workspace". Not necessarily something we should use directly, but we can take reference from their API design.

Gradle

There are also Gradle Plugins for semver version management (either via git tag or version file), like https://github.com/ethauvin/semver-gradle.

Maybe this could be integrated into the terasology-module Gradle plugin in some way, so we would use Gradle to perform this task... I don't know how clean the code for that would, though, and how well this works with git interaction.
And release plugins in general: https://github.com/researchgate/gradle-release

They usually work with version.properties or something similar, though.

CLI tooling

  • CLIkt multi-platform command line parser for Kotlin
  • kotlinx.cli seems to be another CLI argument parser for Kotlin
  • http://yargs.js.org/ is a pretty neat library for writing CLIs in Javascript (auto-generating help messages, structure in sub-commands which automatically contribute to the overall CLI tool, ...)
  • PicoCLI - any JVM?

POCs

Metadata

Metadata

Labels

Revive: Convertissue has been looked at and should be converted to a GitHub discussionStatus: Needs InvestigationRequires to be debugged or checked for feasibility, etc.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions