Contribution Guide

We welcome contributions of any size and skill level. If you have an idea for a new feature or have found a bug, please open an issue on the GitHub repository.

Prerequisite

Setting up your local environment

  1. Clone the repository to your local machine.

  2. Navigate to the root directory of the cloned repository and build the frontend project by running the following command:

    make build-ui
    
  3. Run the following command to start the Dagu application:

    go run main.go
    
  4. Now you can change the source code and build the binary by running the following command:

    make build
    
  5. Run the following command to start the Dagu application:

    ./bin/dagu
    

Running Tests

Run the following command to run the tests:

make test

Code Structure

  • ui: Frontend code for the Web UI.

  • cmd: Contains the main application entry point.

  • docs: Contains the documentation for the project.

  • examples: Contains the example workflows.

  • internal: Contains the internal code for the project.

    • web: Contains the backend code for the Web UI.

    • agent: Contains the code for running the workflows.

    • config: Contains the code for loading the configuration.

    • controller: Contains the code for managing the workflows.

    • dag: Contains the code for parsing the workflow definition.

    • database: Contains the code for interacting with the database.

    • executor: Contains the code for different types of executors.

    • runner: Contains the code for scheduler.

    • sock: Contains the code for interacting with the socket.

Setting up your local environment for front end development

  1. Clone the repository to your local machine.

  2. Navigate to the root directory of the cloned repository and build the frontend project by running the following command:

    make build-ui
    
  3. Run the following command to start the Dagu application:

    go run main.go server
    
  4. Navigate to ui directory and run the following command to install the dependencies:

    yarn install
    yarn start
    
  5. Open the browser and navigate to http://localhost:8081.

  6. Make changes to the source code and refresh the browser to see the changes.

Branches

  • main: The main branch where the source code always reflects a production-ready state.