-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
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
- Tools for mono repo management like https://rushjs.io/ may already solve a couple of our problems, for instance publishing packages or checking for consistent versions
- Octokit to interact with the Github API. Official libraries for Ruby, .NET, and JavaScript, but lots of third party libs available for other languages. The launcher uses hub4j/github-api (kohsuke).
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
- node-gooey. Side project by @skaldarnar to elaborate a CLI tool based on Javascript using yargs and octokit/rest.js
- gooky a Kotlin implementation of prepare-module-release script with CLIkt and JGit.
- GooeyCLI - next gen existing solution