Skip to content

Add explicit versioning and publish versioned .jars #91

Description

@AlexLandau

The modern way to do versioning is Semantic Versioning (http://semver.org/).

If people are just modifying checkouts of GGP-Base and running their applications from source, we don't really need versioning. If they're going to use it as a dependency from a separate project, publishing versioned jars is important. There's already an artifact on Maven Central involving some version of GGP-Base: http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22ggp-base%22 I believe this was used for incorporating it into a codebase in another JVM language.

Publishing to a Maven repository would be nice (and is doable through Gradle, with some effort) but may not be necessary; it's also possible to publish versioned .jars on Github. Those should come with instructions regarding which dependencies are necessary (and we should make the versions of dependencies explicit, so users can determine if they can replace them with other versions to satisfy their other dependencies). Publishing to Maven would probably require defining dependencies that we get online (handled by Gradle) rather than including them in the repo.

It's also possible that we should restructure GGP-Base to better work as a library. For example, we could have one project as the "library", another for sample gamers that depends on the library, and a third project containing the applications that depends on both the others. A user could insert their own gamer's project next to the sample-gamer project and add a dependency to the applications on their project. The first project could likely also be subdivided. (They should stay in the same repo under the same versioning scheme, though. They would be in separate Eclipse projects and produce separate artifacts.)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions