diff --git a/Makefile b/Makefile index 29e9caa3..2ba9ed2b 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,8 @@ ollama: llama .PHONY: app app: ollama - npm run --prefix app make + npm install --prefix app + npm run --prefix app make:sign clean: go clean diff --git a/docs/development.md b/docs/development.md index 6703cfdf..883ec361 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,33 +1,40 @@ # Development -ollama is built using Python 3 and uses [Poetry](https://python-poetry.org/) to manage dependencies and build packages. +Install required tools: ``` -pip install poetry +brew install cmake go node ``` -Install ollama and its dependencies: +Then run `make`: ``` -poetry install --extras server --with dev +make ``` -Run ollama server: +Now you can run `ollama`: ``` -poetry run ollama server +./ollama ``` -Update dependencies: +## Releasing + +To release a new version of Ollama you'll need to set some environment variables: + +* `GITHUB_TOKEN`: your GitHub token +* `APPLE_IDENTITY`: the Apple signing identity (macOS only) +* `APPLE_ID`: your Apple ID +* `APPLE_PASSWORD`: your Apple ID app-specific password +* `APPLE_TEAM_ID`: the Apple team ID for the signing identity +* `TELEMETRY_WRITE_KEY`: segment write key for telemetry + +Then run the publish script with the target version: ``` -poetry update --extras server --with dev -poetry lock -poetry export >requirements.txt +VERSION=0.0.2 ./scripts/publish.sh ``` -Build binary package: -``` -poetry build -``` + + diff --git a/scripts/publish.sh b/scripts/publish.sh new file mode 100755 index 00000000..b6dea418 --- /dev/null +++ b/scripts/publish.sh @@ -0,0 +1,29 @@ +# Set your variables here. +REPO="jmorganca/ollama" + +# Check if VERSION is set +if [[ -z "${VERSION}" ]]; then + echo "VERSION is not set. Please set the VERSION environment variable." + exit 1 +fi + +OS=$(go env GOOS) +ARCH=$(go env GOARCH) + +make app + +# Create a new tag if it doesn't exist. +if ! git rev-parse v$VERSION >/dev/null 2>&1; then + git tag v$VERSION + git push origin v$VERSION +fi + +# Create a new release. +gh release create v$VERSION + +# Upload the zip file. +gh release upload v$VERSION "app/out/make/zip/${OS}/${ARCH}/Ollama-${OS}-${ARCH}-${VERSION}.zip#Ollama-${OS}-${ARCH}.zip" + +# Upload the binary. +gh release upload v$VERSION "./ollama#ollama-${OS}-${ARCH}" +