Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: Bug Report
about: Report a bug in @offload-project/rrule
title: "[Bug]: "
labels: bug
assignees: ''
---

### Description

A clear and concise description of the bug.

### Steps to Reproduce

Provide a minimal code sample reproducing the issue. Include the exact RRULE string and any `Date` values you used (timestamps in UTC are easiest to compare).

```ts
import { datetime, RRule, rrulestr } from '@offload-project/rrule'

// e.g. constructing a rule, calling .all(), parsing an RFC string, etc.
```

1. Build rule with '...'
2. Call '...'
3. See the unexpected output / error.

### Expected Output

What dates / string / behavior did you expect?

### Actual Output

What did you actually get? Paste returned dates, thrown errors, or stack traces.

```
// Paste output / error here
```

### Environment

- `@offload-project/rrule` version: [e.g., 2.9.0]
- Node version: [e.g., 20.19, 22.x]
- Runtime: [Node / Bun / browser — include browser name + version if applicable]
- Operating system: [e.g., macOS 14, Ubuntu 22.04, Windows 11]
- Local timezone: [run `date` in your terminal and paste the timezone, e.g., `PDT`, `Europe/Berlin`]

### Additional Context

Anything else that might help — TZID being used, whether you saw the bug only after DST, related packages, etc.
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
blank_issues_enabled: false
issue_templates:
- name: "Bug Report"
description: "Report a bug."
title: "[Bug]: "
labels: ["bug"]
body: "./ISSUE_TEMPLATE/bug_report.md"
- name: "Feature Request"
description: "Propose a new feature or improvement."
title: "[Feature]: "
labels: ["enhancement"]
body: "./ISSUE_TEMPLATE/feature_request.md"
- name: "Documentation"
description: "Suggest updates or additions to documentation."
title: "[Docs]: "
labels: ["documentation"]
body: "./ISSUE_TEMPLATE/documentation_request.md"
- name: "General Report"
description: "Provide general feedback or inquiries."
title: "[General]: "
labels: ["general"]
body: "./ISSUE_TEMPLATE/general_report.md"
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Documentation
about: Suggest updates or additions to documentation
title: "[Docs]: "
labels: documentation
assignees: ''
---

### Affected Documentation

Which file or section needs updating? (e.g., `README.md`, API reference, timezone support, natural-language text methods, `CHANGELOG.md`)

### What Is Missing or Incorrect?

Describe what's unclear, outdated, or absent.

### Suggested Changes

Provide a detailed description — or a draft — of the proposed wording or examples.

### Why Is This Needed?

Explain who benefits and how (e.g., new adopters, users migrating from `rrule`, contributors).

### Additional Context

Links to related issues, PRs, RFC references, or external resources.
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Feature Request
about: Suggest a new feature or improvement for @offload-project/rrule
title: "[Feature]: "
labels: enhancement
assignees: ''
---

### Feature Description

What feature would you like to see in the library?

### Why Is This Needed?

Describe the problem this solves or the use case it enables. Is it related to recurrence parsing, occurrence retrieval, natural-language text, timezone handling, RFC compliance, etc.?

### Suggested API / Implementation

If you have an idea of how this should look, share a code sketch.

```ts
// e.g. proposed method signature or usage example
import { RRule } from '@offload-project/rrule'
```

### Alternatives Considered

Are there workarounds you've tried, or alternative approaches you've ruled out?

### Backwards Compatibility

Would this change break existing API surface (`RRule`, `RRuleSet`, `rrulestr`, `validate`, exported types, RFC string output)?

### Additional Context

Add any relevant links — RFC sections, python-dateutil behavior, related issues, etc.
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/general_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: General Report
about: Provide general feedback, questions, or inquiries about @offload-project/rrule
title: "[General]: "
labels: general
assignees: ''
---

### Topic

What is this about? (e.g., question, feedback, discussion, support inquiry)

### Details

Describe your question, feedback, or inquiry clearly. Include code samples if relevant.

```ts
// Optional: code context
```

### Environment (if applicable)

- `@offload-project/rrule` version: [e.g., 2.9.0]
- Node version: [e.g., 20.19, 22.x]
- Runtime: [Node / Bun / browser]

### Additional Context

Add any other information that might help us respond.
15 changes: 0 additions & 15 deletions .github/issue_template.md

This file was deleted.

44 changes: 37 additions & 7 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,40 @@
---
# Description

### Thanks for contributing to `rrule`!
Please include a summary of the changes and the related issue. Include the motivation and context, and list any package dependencies impacted by this change.

To submit a pull request, please verify that you have done the following:
Fixes # (issue)

- [ ] Merged in or rebased on the latest `master` commit
- [ ] Linked to an existing bug or issue describing the bug or feature you're
addressing
- [ ] Written one or more tests showing that your change works as advertised
## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Deprecation (marks existing API as deprecated)
- [ ] Refactor / internal change (no functional impact)
- [ ] Documentation update
- [ ] CI / tooling change

## How Has This Been Tested?

Describe the tests you ran to verify your changes (Jest tests, manual checks in a host app, etc.). Provide instructions so reviewers can reproduce.

- [ ] `bun run test` passes
- [ ] `bun run lint` passes
- [ ] `bun run build` produces a clean `dist/`
- [ ] Added or updated tests covering the change
- [ ] Added a changeset (`bun run change`) if this is a user-facing change

**Test Configuration**:

- Node version(s): [e.g., 20.19, 22.x]
- Runtime: [Node / Bun / browser]
- Local timezone: [e.g., `PDT`, `Europe/Berlin`]

## Checklist

- [ ] My code follows the style guidelines of this project (Biome)
- [ ] I have performed a self-review of my code
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing tests pass locally with my changes
- [ ] I have updated the README / docs where relevant
- [ ] Any breaking changes are clearly called out above
46 changes: 46 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Code of Conduct

## Our pledge

We want this project to be a welcoming, respectful space for everyone who wants to contribute — regardless of background, identity, or experience level.

## Expected behavior

- Be kind and patient. Assume good faith.
- Critique code and ideas, not people.
- Welcome questions, including basic ones.
- Acknowledge differing viewpoints and accept constructive feedback gracefully.
- Take responsibility for mistakes; learn and move on.

## Unacceptable behavior

- Personal attacks, insults, or demeaning language.
- Harassment of any kind, in public or private channels.
- Discriminatory language or behavior.
- Publishing others' private information without consent.
- Disruptive behavior that derails productive discussion.
- Any conduct a reasonable person would consider inappropriate in a professional setting.

## Scope

This Code of Conduct applies to all project spaces — issues, pull requests, discussions, commit messages, and any other communication tied to the project. It also applies when an individual is representing the project in public spaces.

## Enforcement

If you experience or witness behavior that violates this Code of Conduct, please report it via [GitHub Security Advisories](https://github.com/offload-project/rrule/security/advisories/new) (which supports private reporting) or by opening a private channel with a maintainer.

Maintainers will review reports promptly and respond with appropriate action, which may include:

- A private warning
- A temporary ban from project spaces
- A permanent ban from project spaces

Reports will be handled with discretion. The reporter's identity will be kept confidential unless they choose otherwise.

## Maintainer responsibilities

Maintainers are responsible for clarifying standards, responding to reports fairly, and applying enforcement consistently. Maintainers who do not uphold this Code of Conduct in good faith may face consequences as determined by other maintainers.

## Attribution

This Code of Conduct is inspired by the [Contributor Covenant](https://www.contributor-covenant.org/), adapted to be concise for this project.
Loading
Loading