Edit build.sbt:
version := "0.2.0" // Update version number# Set Java 17
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
# Build distribution ZIP
sbt clean packageZipOutput: llm-0.2.0.zip (11MB)
# Automated deterministic tests (no API/network required)
sbt test
# Extract and install release package
unzip llm-0.2.0.zip
cp -r llm-0.2.0 "/Applications/NetLogo 7.0.0/extensions/llm"
# Optional manual integration checks (real providers)
# Open NetLogo and run demos/tests/tests.nlogoxgit add build.sbt llm-0.2.0.zip
git commit -m "Release v0.2.0"
git tag v0.2.0
git push origin main
git push origin v0.2.0- Go to: https://github.com/JNK234/Netlogo-LLM-Extension/releases
- Click "Create a new release"
- Select tag:
v0.2.0 - Title:
LLM Extension v0.2.0 - Attach:
llm-0.2.0.zip - Write release notes
- Publish release
- Version updated in
build.sbt -
sbt clean packageZipcompleted successfully -
sbt testpassed - ZIP file tested in NetLogo
- Optional live-provider checks run (
demos/tests/tests.nlogox) - Documentation updated if needed
- Git tag created
- GitHub release published
- ZIP file attached to release
sbt clean assembly- Output:
target/scala-3.7.0/llm.jar(172MB) - Use: Local testing, quick install
sbt clean packageZip- Output:
llm-x.x.x.zip(11MB) - Use: Official releases, NetLogo Library submission
Follow semantic versioning: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes to API
- MINOR: New features, backward compatible
- PATCH: Bug fixes, backward compatible
Examples:
0.1.0- Initial release0.2.0- Added new primitives0.2.1- Fixed bug in config loading1.0.0- Stable API, production ready
After creating a GitHub release:
-
The package metadata is generated by
sbt packageZip:{ name: "LLM-Extension" codeName: "llm" version: "0.x.x" downloadURL: "https://github.com/.../llm-0.x.x.zip" } -
Submit to NetLogo Extension Library:
- Fork: https://github.com/NetLogo/NetLogo-Libraries
- Add entry to
libraries.conf - Create pull request
Remove old build artifacts:
# Remove old JARs from root (keep only latest ZIP)
rm -f *.jar
# Remove old version directories
rm -rf llm-0.0.*/
# Keep only:
# - llm-0.x.x.zip (latest version)
# - target/ (regenerated on build)