This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to uclacreatives@gmail.com.
Watchdog
is a monorepo. We run two systems, javascript
and python
. Our
javascript
set up is run primarily for our web services. Our python
set
up is for data processing and analysis. We use lerna
to manage our javascript
packages and pants
to manage our python
packages.
Pants and Lerna are tools to help dependency management for larger scale repositories. They fit into our current model as a tool to help us create a distinct, yet interdependent web of shared packages for both our data processsing and our web services.
Read this blog post to learn more about the benefits and challenges of using a monorepo.
Below are the prerequisites for watchdog
:
Node Requirements
We use yarn
as
our package manager. Run nvm use
to get the right version.
node v16
Python Requirements
One of:
+ Linux (x86_64)
+ MacOS (Intel or Apple Silicon, 10.15 Catalina or newer)
+ Microsoft Windows 10 with WSL 2
Python 3.7+ discoverable on your PATH
Internet access (so that Pants can bootstrap)
Step One
The basic commands to get this repository and start are:
$ git clone https://github.com/UCLA-Creative-Labs/watchdog.git
$ cd watchdog
$ yarn install
$ ./pants
If you run into an issue, feel free to make an issue here. If you have a fix, even better! Check out the follow section to learn how to contribute!
Thanks for your interest in contributing to watchdog
! ❤️
Here's a quick guide on how to get started.
-
Fork the repository or checkout a branch;
main
is protected and is managed through our pipeline. -
Create an issue and/or mark an existing one to let everyone know that you are working your magic ⚡️
-
Beep boop away!
-
Before you push, it's always a good idea to check that your changes follow our linter rules! Run
yarn lint
at the root directory and watch it judge your code. -
Stage, commit, and push your changes to make a pull request!
-
A maintainer will review your code and if it passes all the checks, your contribution will be merged on to
main
🥳
If you ever need help with a feature or bug fix, no worries! Feel free to mark the
issue as guidance
so that our maintainers can start thinking about a solution.
If you are comfortable making a draft pull request,
you can also tag the Creative Labs team in a comment: @UCLA-Creative-Labs/team
!