<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dev Setup :: OAT Developer Documentation</title>
    <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev-setup/index.html</link>
    <description>Guidance for setting up a developer. Last updated 2025-08-06.&#xA;“I” and “me” etc, below, refers to Byron.&#xA;Issues that this doesn’t cover: I’ve typically set up my IDE to reformat the file upon save using the ScalaFmt formatter with a specified config. Need to integrate that setup, below. Varun and I have been trying to figure out whether VSCode can replace IntelliJ. No conclusion yet. Caveats This project is now more than a decade old. Scala, Play, and IntelliJ have all evolved substantially over that period of time. As new developers come on board, it may be appropriate to question my habits WRT to development. Examples: Does it still make sense to develop with two windows – one for the IDE and one for SBT? Why not let IntelliJ run OAT? Is there a better way to test with the database? There are test suites for the queries and the running system that have been allowed to attrify to the point they are probably useless. There are some things that Byron should have figured out but hasn’t: How to put libraries on a server for common usage. How to reliably debug a project (especially OAT) while using SBT. Basics Create a directory, oatdev, at a convenient place. mkdir oatdev/bin Add export OAT_HOME=&lt;PATH_TO_OATDEV_DIR&gt; to ~/.zshenv. Add ${OAT_HOME}/bin to the PATH variable in ~/.zshenv. Install Software Install the following software. If you’re on a Mac, the brew package manager is an easy way to go. It feels like these could be run in parallel, but not a good idea because dependent packages could be installed multiple times.</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://cs.uwaterloo.ca/~cs-oat/devdoc/dev-setup/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>