Skip to content

Commit c2305f9

Browse files
committed
Merge remote-tracking branch 'origin/main' into experiment/dimereaction
2 parents 11e3931 + 1f797fb commit c2305f9

150 files changed

Lines changed: 22565 additions & 3650 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# CODEOWNERS determines automatically requested reviewers for PRs touching these paths.
2+
# Syntax: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
3+
4+
# Core library code
5+
src/chemtorch/ @heid-lab/chemtorch-maintainers
6+
7+
# Configuration schemas and experiment presets
8+
conf/ @heid-lab/chemtorch-maintainers
9+
10+
# Documentation
11+
docs/source/ @heid-lab/chemtorch-maintainers
12+
13+
# CI workflows
14+
.github/workflows/ @heid-lab/chemtorch-maintainers
15+
16+
# Release management files
17+
CHANGELOG.md @heid-lab/chemtorch-maintainers
18+
.github/release-drafter.yml @heid-lab/chemtorch-maintainers
19+
20+
# Package metadata
21+
pyproject.toml @heid-lab/chemtorch-maintainers
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Bug report
2+
description: Report a reproducible bug or regression in ChemTorch.
3+
labels:
4+
- bug
5+
- needs-triage
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
## Thanks for helping us improve ChemTorch!
11+
Please provide as much detail as possible so we can reproduce and fix the issue quickly.
12+
- type: input
13+
id: summary
14+
attributes:
15+
label: Summary
16+
description: What went wrong?
17+
placeholder: Short, descriptive title of the problem.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: description
22+
attributes:
23+
label: What happened?
24+
description: Describe the behavior you observed. Include any error messages or stack traces (use fenced code blocks for logs).
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: expected
29+
attributes:
30+
label: What did you expect to happen?
31+
description: Describe the behavior you expected instead.
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: reproduction
36+
attributes:
37+
label: How can we reproduce it?
38+
description: |
39+
Provide a minimal reproduction: CLI command(s), configuration overrides, dataset(s), and any code snippets required.
40+
Feel free to link to a GitHub gist or attach a `yaml` file when helpful.
41+
placeholder: |
42+
```bash
43+
chemtorch +experiment=graph ...
44+
```
45+
validations:
46+
required: true
47+
- type: dropdown
48+
id: install
49+
attributes:
50+
label: Installation method
51+
options:
52+
- uv sync
53+
- conda / mamba
54+
- other (explain below)
55+
validations:
56+
required: true
57+
- type: input
58+
id: version
59+
attributes:
60+
label: ChemTorch version / commit SHA
61+
description: Run `chemtorch --version` or `git rev-parse HEAD`.
62+
validations:
63+
required: true
64+
- type: input
65+
id: python
66+
attributes:
67+
label: Python version
68+
placeholder: e.g. 3.10.15
69+
validations:
70+
required: true
71+
- type: input
72+
id: os
73+
attributes:
74+
label: Operating system
75+
placeholder: e.g. Ubuntu 22.04, macOS 14.3, Windows 11
76+
validations:
77+
required: true
78+
- type: input
79+
id: hardware
80+
attributes:
81+
label: Hardware / accelerator
82+
placeholder: e.g. CPU only, NVIDIA RTX 4090 (CUDA 12.1)
83+
- type: textarea
84+
id: integrations
85+
attributes:
86+
label: Relevant integrations
87+
description: Mention frameworks or services involved (Hydra, PyTorch Lightning, Weights & Biases, custom datasets, etc.).
88+
- type: checkboxes
89+
id: confirmations
90+
attributes:
91+
label: Checklist
92+
options:
93+
- label: I have searched existing [issues](https://github.com/heid-lab/chemtorch/issues?q=is%3Aissue) and discussions.
94+
required: true
95+
- label: I can reproduce this issue consistently on the latest `main` commit.
96+
required: false
97+
- label: I am willing to submit a pull request to help fix this.
98+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: ChemTorch Documentation
4+
url: https://heid-lab.github.io/chemtorch
5+
about: Browse the guides and API reference for tutorials and troubleshooting.
6+
- name: ChemTorch White Paper (ChemRxiv)
7+
url: https://chemrxiv.org/engage/chemrxiv/article-details/690357d9a482cba122e366b6
8+
about: Read the research paper for methodology details and benchmark results.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Documentation improvement
2+
description: Help us improve tutorials, guides, and reference material.
3+
labels:
4+
- documentation
5+
- needs-triage
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
## Documentation feedback
11+
Let us know what is missing or confusing in the docs or README.
12+
- type: input
13+
id: summary
14+
attributes:
15+
label: Summary
16+
placeholder: e.g. "Quick Start sample command fails on macOS".
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: section
21+
attributes:
22+
label: Affected page or section
23+
description: Provide a URL or path (e.g. `docs/source/getting_started/quick_start.rst`).
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: details
28+
attributes:
29+
label: What needs to change?
30+
description: Describe the correction, addition, or clarification that would help future users.
31+
validations:
32+
required: true
33+
- type: textarea
34+
id: context
35+
attributes:
36+
label: Additional context
37+
description: Screenshots, logs, or references to other docs are helpful.
38+
- type: checkboxes
39+
id: contribution
40+
attributes:
41+
label: Can you help us update the docs?
42+
options:
43+
- label: I will open a pull request with the proposed changes.
44+
- label: I can review updated documentation.
45+
- label: I am only reporting the issue.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Feature request
2+
description: Suggest a new capability, component, or workflow improvement.
3+
labels:
4+
- enhancement
5+
- needs-triage
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
## Shape the ChemTorch roadmap
11+
Tell us what you would like to build or see us support.
12+
- type: input
13+
id: summary
14+
attributes:
15+
label: Summary
16+
description: What is the high-level idea?
17+
placeholder: e.g. "Add a pretrained reaction classification model".
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: problem
22+
attributes:
23+
label: What problem does this solve?
24+
description: Explain the research or workflow gap the feature addresses.
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: proposal
29+
attributes:
30+
label: Proposed solution
31+
description: Outline how you imagine this feature working. Include CLI commands, configuration options, or API sketches if relevant.
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: alternatives
36+
attributes:
37+
label: Alternatives considered
38+
description: Have you tried anything else? Why is it insufficient?
39+
- type: textarea
40+
id: data
41+
attributes:
42+
label: Related datasets or benchmarks
43+
description: Link to datasets, reaction families, or evaluation protocols this feature should support.
44+
- type: textarea
45+
id: references
46+
attributes:
47+
label: References & supporting material
48+
description: Link to papers, blog posts, or code that inform this request.
49+
- type: checkboxes
50+
id: involvement
51+
attributes:
52+
label: How can you help?
53+
options:
54+
- label: I am willing to contribute implementation work (code, configs, or docs).
55+
- label: I can help validate the feature on my data / benchmarks.
56+
- label: I am only proposing the idea.

.github/dependabot.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "monthly" # Keep actions noise low; Renovate will manage Python deps biweekly
7+
target-branch: "main"
8+
labels:
9+
- "dependencies"
10+
- "ci"
11+
open-pull-requests-limit: 5
12+
reviewers:
13+
- "heid-lab/chemtorch-maintainers"
14+
15+
# Note:
16+
# - We use Renovate (see .github/renovate.json5) for Python/uv dependency updates on a biweekly cadence.
17+
# - Dependabot remains enabled for GitHub Actions only. Security alerts for Python are still surfaced via GitHub Advisories.

.github/pull_request_template.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Summary
2+
What *problem* does this PR solve, and what is the *user-visible outcome*?
3+
4+
Fixes #<issue-number> (optional)
5+
6+
## Type of change
7+
- [ ] Feature
8+
- [ ] Bug fix
9+
- [ ] Documentation
10+
- [ ] Refactor / Maintenance
11+
- [ ] CI / Build
12+
- [ ] Tests
13+
- [ ] Other: ___
14+
15+
## Changes
16+
- Bullet the key changes (1–5 bullets)
17+
- Keep it concise but specificg
18+
19+
## Breaking changes
20+
- [ ] None
21+
- [ ] Yes (describe impact and migration notes):
22+
23+
## How I tested this
24+
- [ ] Unit tests pass
25+
- [ ] Integration / e2e checks
26+
- [ ] Docs build locally
27+
- [ ] Manual verification (brief steps):
28+
29+
## Checklist
30+
Before PR:
31+
- [ ] Branch name follows policy (feature/bugfix/hotfix/docs/chore/ci/tests/perf/build)
32+
- [ ] Ran test locally and ALL tests pass
33+
- [ ] Updated or added tests covering new behavior (if applicable)
34+
- [ ] Updated configuration defaults (if applicable).
35+
36+
PR:
37+
- [ ] This pull request has a clear but concise title (prefixed with a [git commit emoji](https://gist.github.com/parmentf/035de27d6ed1dce0b36a), use`:emoji_name:` to select an emoji)
38+
- [ ] Relevant labels added
39+
- [ ] If this PR introduces breaking changes it is labelled with `breaking-change` and provides a migration guide
40+
41+
## Reviewer notes (optional)
42+
Anything that would help reviewers focus (areas of risk, follow-ups, docs to check).

.github/renovate.json5

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
{
2+
// Renovate configuration for uv-managed Python project.
3+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
4+
"extends": [
5+
"config:base",
6+
":semanticCommits",
7+
":disableRateLimiting"
8+
],
9+
"timezone": "UTC",
10+
// Biweekly schedule: runs early Monday every 2 weeks.
11+
"schedule": ["before 06:00 on Monday every 2 weeks"],
12+
"labels": ["dependencies"],
13+
"prConcurrentLimit": 10,
14+
"branchConcurrentLimit": 10,
15+
"platformAutomerge": false,
16+
"dependencyDashboard": true,
17+
18+
// Managers: Python (pyproject) and GitHub Actions. uv.lock is regenerated via post-upgrade task below.
19+
"enabledManagers": ["pip", "github-actions"],
20+
"pip": {
21+
// Keep broader constraints when appropriate and rely on uv.lock for exact reproducibility.
22+
"rangeStrategy": "auto"
23+
},
24+
25+
// After updating pyproject, refresh uv.lock so PRs are self-contained.
26+
"postUpgradeTasks": {
27+
"commands": ["uv lock"],
28+
"fileFilters": ["pyproject.toml", "uv.lock"],
29+
"executionMode": "update"
30+
},
31+
"packageRules": [
32+
{
33+
"matchPackageNames": ["numpy"],
34+
"separateMinorPatch": true,
35+
"stabilityDays": 3,
36+
"labels": ["dependencies", "numpy"],
37+
"automerge": false
38+
},
39+
{
40+
"matchPackageNames": ["torch"],
41+
"separateMinorPatch": true,
42+
"stabilityDays": 7,
43+
"labels": ["dependencies", "requires-wheels-check"],
44+
"automerge": false
45+
},
46+
{
47+
"matchPackagePatterns": ["^sphinx", "myst-parser", "pydata-sphinx-theme", "sphinx-.*"],
48+
"groupName": "docs-stack",
49+
"labels": ["dependencies", "docs"],
50+
"stabilityDays": 3,
51+
"automerge": false
52+
},
53+
{
54+
"matchPackagePatterns": ["^sphinx", "myst-parser", "pydata-sphinx-theme", "sphinx-.*"],
55+
"matchUpdateTypes": ["patch"],
56+
"automerge": true
57+
},
58+
{
59+
"matchPackagePatterns": ["^pytest", "coverage", "pytest-.*"],
60+
"groupName": "test-stack",
61+
"labels": ["dependencies", "tests"],
62+
"stabilityDays": 3,
63+
"automerge": false
64+
},
65+
{
66+
"matchPackagePatterns": ["^pytest", "coverage", "pytest-.*"],
67+
"matchUpdateTypes": ["patch"],
68+
"automerge": true
69+
},
70+
{
71+
"matchPackagePatterns": ["^lightning$", "pytorch-lightning"],
72+
"groupName": "lightning-stack",
73+
"labels": ["dependencies"],
74+
"automerge": false
75+
},
76+
{
77+
"matchManagers": ["github-actions"],
78+
"groupName": "github-actions",
79+
"labels": ["dependencies", "ci"],
80+
"schedule": ["before 06:00 on Monday every 4 weeks"],
81+
"automerge": false
82+
}
83+
],
84+
85+
// Reviewer assignment
86+
"reviewers": ["heid-lab/chemtorch-maintainers"],
87+
"assignees": ["heid-lab/chemtorch-maintainers"],
88+
89+
// Commit message convention (+emoji). Defaults to upgrade arrow; special cases below.
90+
"commitMessagePrefix": ":arrow_up: deps:",
91+
"commitMessageAction": "update",
92+
"commitMessageTopic": "{{depName}}",
93+
94+
// PR body template (short; release notes are appended automatically)
95+
"prBodyTemplate": "This PR updates dependencies managed by Renovate.\n\n- Group: {{groupName}}\n- Package: {{depName}}\n- From: {{currentVersion}} -> To: {{newVersion}}\n\nChecklist:\n- [ ] uv lock regenerated (CI or manual)\n- [ ] Tests & docs build pass\n- [ ] (If lightning/torch) Verify PyTorch Geometric extension compatibility.\n\n---\n",
96+
}

0 commit comments

Comments
 (0)