Docs

Reference

Contributing to node-zugferd

A short guide to contributing to node-zugferd

Thank you for considering contributing to node-zugferd! Your potential involvement is greatly appreciated.

Getting Started

Before diving in, take a look at existing:

Development Setup

Make sure you have Node.js installed, preferably on LTS.

1. Fork the repository

Visit https://github.com/jslno/node-zugferd

Click the "Fork" button in the top right.

2. Clone your fork

# Replace YOUR-USERNAME with your GitHub username
git clone https://github.com/YOUR-USERNAME/node-zugferd.git
cd node-zugferd

3. Install dependencies

Make sure you have pnpm installed!

pnpm install

4. Prepare ENV files

Copy the example env file to create your new .env file.

cp -n ./docs/.env.example ./docs/.env

Making changes

Once you have an idea on what you want to contribute, you can start making changes. Here are some steps to get started:

1. Create a new branch

# Make sure you're on main
git checkout main

# Pull latest changes
git pull upstream main

# Create and switch to a new branch
git checkout -b feat/your-feature-name

2. Start development server

Start the development server:

pnpm dev

To start the docs server:

pnpm -F docs dev

To start the bun server:

pnpm -F @dev/bun dev

To start the node server:

pnpm -F @dev/node dev

3. Make your changes

  • Make your changes to the codebase.

  • Write tests if needed.

  • Update documentation.

Issues and Bug Fixes

  • Check our GitHub issues for tasks labeled good first issue
  • When reporting bugs, include steps to reproduce and expected behavior
  • Comment on issues you'd like to work on to avoid duplicate efforts

Documentation

  • Fix typos and errors
  • Add examples and clarify existing content
  • Ensure documentation is up-to-date with code changes

Testing

We use Vitest for testing. Place test files next to the source files they test:

import { describe, it, expect } from "vitest";

describe("Feature", () => {
  it("should work as expected", async () => {
    // Test code here
    expect(result).toBeDefined();
  });
});

Best Practices

  • Write clear commit messages
  • Update documentation to reflect your changes
  • Add tests for new features
  • Follow our coding standards
  • Keep pull requests focused on a single change

Thank you for contributing to node-zugferd!

Need Help?

Don't hesitate to ask for help! You can open an issue with questions.