advent-of-code-kotlin

Utility library offers solutions for Advent of Code challenges, enabling interactive problem-solving with tools like input readers, UI solutions, and test assertions.

JVMKotlin/NativeWasm
GitHub stars0
Authorsavan1235
Open issues0
LicenseMIT License
Creation dateover 1 year ago

Last activity6 months ago
Latest release1.0.2 (over 1 year ago)

Platforms Platforms

License: MIT Maven Central Version

GitHub Repo stars Fork Advent of Code in Kotlin

🎄🎁🎅 Advent of Code in Kotlin 🎅🎁🎄

Kotlin Multiplatform utility library for bringing solutions for Advent of Code and sharing them as an interactive solver.

Project Contents

Kotlin Libraries

implementation("in.procyk.adventofcode:solutions:1.1.0")

  • AdventDay is a single day solution
  • Advent is a collection of solutions from a single year
  • utility functions and classes that are helpful so far in solving the tasks

implementation("in.procyk.adventofcode:runner:1.1.0")

  • FileAdventInputReader is an instance of AdventDay.InputReader that allows to read inputs from system file
  • Advent.solve is a utility function to solve single day from current year if executed during the Advent of Code time, while it runs all days on other days. It's intended to run current day when prototyping the solution for current day.

implementation("in.procyk.adventofcode:test-runner:1.1.0")

implementation("in.procyk.adventofcode:solver:1.1.0")

Publishing Utilities

  • release.yml implements a GitHub Action that publishes Kotlin Multiplatform libraries to Maven Central when git tag in format v*.*.* with a version matching version configured in build.gradle.kts is pushed. Requires following secrets to be configured:
    • OSSRH_USERNAME: a username generated from Maven Central Panel
    • OSSRH_PASSWORD: a password generated from Maven Central Panel
    • SIGNING_KEY_ID: last 8 bytes of signing key ID that can be checked with gpg --list-secret-keys --keyid-format SHORT
    • SIGNING_PASSWORD: password for signing key
    • SIGNING_KEY: signing key in a format extracted with gpg --armor --export-secret-key 'example@gmail.com' | grep -v '\-\-' | grep -v '=.' | tr -d '\n'

Version Catalog

[versions]
procyk-adventofcode = "1.1.0"

[libraries]
procyk-adventofcode-runner = { module = "in.procyk.adventofcode:runner", version.ref = "procyk-adventofcode" }
procyk-adventofcode-solutions = { module = "in.procyk.adventofcode:solutions", version.ref = "procyk-adventofcode" }
procyk-adventofcode-solver = { module = "in.procyk.adventofcode:solver", version.ref = "procyk-adventofcode" }
procyk-adventofcode-test-runner = { module = "in.procyk.adventofcode:test-runner", version.ref = "procyk-adventofcode" }
JVMKotlin/NativeWasm
GitHub stars0
Authorsavan1235
Open issues0
LicenseMIT License
Creation dateover 1 year ago

Last activity6 months ago
Latest release1.0.2 (over 1 year ago)

Platforms Platforms

License: MIT Maven Central Version

GitHub Repo stars Fork Advent of Code in Kotlin

🎄🎁🎅 Advent of Code in Kotlin 🎅🎁🎄

Kotlin Multiplatform utility library for bringing solutions for Advent of Code and sharing them as an interactive solver.

Project Contents

Kotlin Libraries

implementation("in.procyk.adventofcode:solutions:1.1.0")

  • AdventDay is a single day solution
  • Advent is a collection of solutions from a single year
  • utility functions and classes that are helpful so far in solving the tasks

implementation("in.procyk.adventofcode:runner:1.1.0")

  • FileAdventInputReader is an instance of AdventDay.InputReader that allows to read inputs from system file
  • Advent.solve is a utility function to solve single day from current year if executed during the Advent of Code time, while it runs all days on other days. It's intended to run current day when prototyping the solution for current day.

implementation("in.procyk.adventofcode:test-runner:1.1.0")

implementation("in.procyk.adventofcode:solver:1.1.0")

Publishing Utilities

  • release.yml implements a GitHub Action that publishes Kotlin Multiplatform libraries to Maven Central when git tag in format v*.*.* with a version matching version configured in build.gradle.kts is pushed. Requires following secrets to be configured:
    • OSSRH_USERNAME: a username generated from Maven Central Panel
    • OSSRH_PASSWORD: a password generated from Maven Central Panel
    • SIGNING_KEY_ID: last 8 bytes of signing key ID that can be checked with gpg --list-secret-keys --keyid-format SHORT
    • SIGNING_PASSWORD: password for signing key
    • SIGNING_KEY: signing key in a format extracted with gpg --armor --export-secret-key 'example@gmail.com' | grep -v '\-\-' | grep -v '=.' | tr -d '\n'

Version Catalog

[versions]
procyk-adventofcode = "1.1.0"

[libraries]
procyk-adventofcode-runner = { module = "in.procyk.adventofcode:runner", version.ref = "procyk-adventofcode" }
procyk-adventofcode-solutions = { module = "in.procyk.adventofcode:solutions", version.ref = "procyk-adventofcode" }
procyk-adventofcode-solver = { module = "in.procyk.adventofcode:solver", version.ref = "procyk-adventofcode" }
procyk-adventofcode-test-runner = { module = "in.procyk.adventofcode:test-runner", version.ref = "procyk-adventofcode" }