Thoth is a multishot system builder. It leverages a visual coding style interface to allows game designers and developers to rapidly create powerful natural language systems and prototype games.
- Generate a Personal Access Token on Github which will allow you to install private latitude packages. Make sure you check the
write:packages
option. (read:packages
will suffice as well if you aren't planning on publishing new versions of @latitudegames/thoth-core) - In your
~/.bashrc
, append the lineexport NPM_TOKEN=YourTokenGoesHere
, and restart your terminal (you can runsource ~/.bashrc
to do so) - Clone the repository
- Navigate to the project root by running
cd thoth
- Run
yarn install
to install project dependencies - Run
yarn start
to start the @thoth/client app
- Core the contents of
core/.env.example
tocore/.env
- Step 2 in Monorepo Development Setup
Within the yarn workspace we need to be mindful of which version of the shared package @latitudegames/thoth-core we are including in our local development setup and our deploys to Netlify.
You can either:
- Target a published version of @latitudegames/thoth-core in client/package.json
- Or actively develop against the current state of the repository. (By ensuring that client/package.json is targetting the same version of @latitudegames/thoth-core that is currently listed in core/package.json)
If you are testing with the Latitude API locally you can point the latitude api to your local thoth package:
- run
yarn link
inthoth/packages/core
- run
yarn link @latitudegames/thoth-core
inlatitude-api
- To reverse this process, simply use
yarn unlink
oryarn unlink @latitudegames/thoth-core
On Pull Request, GitHub actions will first determine if the diff contains changes in the core
directory. If so
and there isn't an active thoth-core
labelled PR already open - it will proceed with building and deploying a Canary Release
to GitHub packages. There can only be one thoth-core
labelled PR active at a time, so if one exists additional PR's will be labelled thoth-core-draft
by the CI. This thoth-core-draft
label can be removed, and the CI re-run to build a canary once the unique thoth-core
label position has been vacated.
The latest canary release can be tested and installed locally with yarn add @latitudegames/thoth-core@canary
. The Netlify Deploy Preview is configured to sense thoth-core
PR's as well and targets the latest canary release, but it runs concurrently to the canary publishing process. You can test a canary release of thoth-core
on your branch's Deploy Preview by re-deploying from the Netlify UI for your branch. It is important to note that thoth-core-draft
PR's will still have a deploy preview on Netlify, but will be building with the latest canary release of thoth-core
which may be unrelated to that PR's changes until it had it's own canary release and been re-deployed.
When a thoth-core
PR has been merged with main, the CI will create a prerelease based on the last commit, publish
@latitudegames/thoth-core to GitHub packages and take care of incrementing the patch version in core/package.json to prepare
for the next prerelease.
In the project directory, you can run:
Runs @thoth/client in the development mode.
Open http://localhost:3003 to view it in the browser.
Builds the @thoth/client app for production to the client/build
folder.
Builds the @thoth/core package for production to the core/build
folder.
Good example here for formatting apache license files for reference. https://www.openntf.org/Internal/home.nsf/dx/Applying_Apache_License