Community

The helixml/dagger project welcomes community contributions. Here’s how you can get involved:

Contributing Code

  1. Fork the repository: Create a fork of the helixml/dagger repository on GitHub.
  2. Create a branch: Create a new branch for your changes.
  3. Make your changes: Implement your changes in the branch. Be sure to write clear and concise commit messages.
  4. Submit a pull request: Submit a pull request to the upstream helixml/dagger repository.

Reporting Issues

You can report bugs, suggest improvements, and request features through the issue tracker on the helixml/dagger GitHub repository.

Discussing the project

The best way to discuss the helixml/dagger project is through the GitHub issue tracker.

Example: Reporting an Issue

Let’s say you find a bug where the dagger CLI fails to build a container image. Here’s how you would report it:

# In the dagger repository's issue tracker
Title: `dagger` CLI fails to build container image

Description:
I'm encountering a problem with the `dagger` CLI when building container images. 

Be sure to provide as much detail as possible, including the following:

  • Steps to reproduce the issue: Provide a clear set of instructions for others to reproduce the problem.
  • Expected behavior: Describe what you expect to happen.
  • Actual behavior: Describe what is actually happening.
  • Environment: Specify your operating system, the version of dagger, and any other relevant software or hardware.
  • Logs: Include any relevant logs or error messages.

Example: Contributing a Feature

Let’s say you want to add a new feature to dagger that allows for building container images from a remote Dockerfile URL. Here’s how you would contribute:

// ... in your feature branch

package main

// ... other code 

func buildFromRemoteDockerfile(url string) error {
  // ... logic to download and build from the remote Dockerfile 
}

Make sure to include comprehensive tests for your new feature.

Example: Contributing a Test

// ... in your test file

package main

import (
  "testing"
)

func TestBuildFromRemoteDockerfile(t *testing.T) {
  // ... test cases to ensure the new feature works as expected
}

This ensures that your code changes are robust and maintain the quality of the helixml/dagger project.